[증명] 분산의 성질

2020. 5. 20. 10:50통계 빠개기/Statistics

https://datascienceschool.net/view-notebook/b9dcd289a49546ffacfdc5f5bc9a2fc0/

 

Data Science School

Data Science School is an open space!

datascienceschool.net

7.3 분산과 표준편차

이 절에서는 확률분포함수의 모양을 설명하는 두 번째 특성인 분산을 공부한다. 분산은 확률분포함수에서 확률이 모여있는지 퍼져있는지를 나타내는 값이다. 기댓값이 확률변수에서 어떤 값이 나올지를 예측한 것이라면 분산은 그 예측의 정확도 혹은 신뢰성을 표현한 것이라고 볼 수 있다.

확률분포의 분산

확률밀도함수 p(x)의 수식을 알고 있다면 이론적인 분산을 구할 수 있다. 분산을 구하는 연산은 영어 Variance의 앞글자를 따서 Var[]로 표기하고 이 연산으로 계산된 분산값은 σ2으로 표기한다.

σ2=Var[X]=E[(Xμ)2]

이산확률변수의 분산은 평균으로부터 표본 데이터까지 거리의 제곱을 확률질량함수 p(x)로 가중하여 더한 값이다.

σ2=xiΩ(xiμ)2p(xi)

연속확률변수의 분산은 평균으로부터 표본 데이터까지 거리의 제곱을 확률밀도함수 p(x)로 가중하여 적분한 값이다.

σ2=(xμ)2p(x)dx

분산의 성질

분산은 다음과 같은 성질을 만족한다.

  • 분산은 항상 0 또는 양수이다.

Var[X]0

  • 확률변수가 아닌 상수 값 c에 대해 다음 식이 성립한다.

Var[c]=0Var[cX]=c2Var[X]

또한 기댓값의 성질을 이용하여 다음 성질을 증명할 수 있다.

Var[X]=E[X2](E[X])2=E[X2]μ2

또는

E[X2]=μ2+Var[X]

(증명)

Var[X]=E[(Xμ)2]=E[X22μX+μ2]=E[X2]2μE[X]+μ2=E[X2]2μ2+μ2=E[X2]μ2

두 확률변수의 합의 분산

두 확률변수 X, Y의 합의 분산은 각 확률변수의 분산의 합과 다음과 같은 관계가 있다.

Var[X+Y]=Var[X]+Var[Y]+2E[(XμX)(YμY)]

마지막 항은 양수도 될 수 있고 음수도 될 수 있다.

이 식의 증명은 다음과 같다. 우선 확률변수 X+Y의 기댓값은 기댓값의 성질로부터 각 확률변수의 기댓값의 합과 같다.

E[X+Y]=μX+μY

분산의 정의와 기댓값의 성질로부터 다음이 성립한다.

Var[X+Y]=E[(X+Y(μX+μY))2]=E[((XμX)+(YμY))2]=E[(XμX)2+(YμY)2+2(XμX)(YμY)]=E[(XμX)2]+E[(YμY)2]+2E[(XμX)(YμY)]=Var[X]+Var[Y]+2E[(XμX)(YμY)]

확률변수의 독립

두 확률변수가 서로 독립(independent)이라는 것은 두 확률변수가 가질 수 있는 모든 사건의 조합에 대해 결합사건의 확률이 각 사건의 확률의 곱과 같다는 뜻이다. 쉽게 생각하면 두 확률변수가 서로에게 영향을 미치지 않는다라는 의미로 생각해도 된다. 예를 들어 주사위를 두 번 던져 각각 나오는 값을 나타내는 확률변수 X1 X2는 서로 독립이다.

독립의 반대, 즉 두 확률변수에서 하나의 확률변수의 값이 특정한 값이면 다른 확률변수의 확률분포가 영향을 받아 변하게 되면 종속(dependent)이라고 한다. 쉽게 생각하면 두 확률변수가 서로에게 영향을 미치는 경우이다. 예를 들어 주사위를 두 번 던져 나오는 값의 합은 각각의 주사위에서 나온 값에 종속적이다.

연습 문제 7.3.1

  1. 서로 독립이라고 생각되는 두 확률변수의 예를 들어라.
  2. 서로 종속이라고 생각되는 두 확률변수의 예를 들어라.

두 확률변수 X, Y가 서로 독립이면 다음 식이 성립한다.

E[(XμX)(YμY)]=0

 

왜 이 등식이 성립하는가는 추후 설명하기로 한다. 이 등식을 이용하면 서로 독립인 두 확률변수의 합의 분산은 각 확률변수의 분산의 합과 같다는 것을 보일 수 있다.

Var[X+Y]=Var[X]+Var[Y]

 

연습 문제 7.3.2

  1. 넘파이를 사용하여 숫자 100개를 무작위로 생성하여 표본집합을 구한다. 이 표본집합을 확률변수 X1의 표본이라고 하자.
  2. 같은 방식으로 숫자 100개를 생성하며 확률변수 X2의 표본집합을 구한다.
  3. 두 확률변수의 표본 쌍의 값을 더하여 확률변수 X1+X2의 표본집합을 구한다.
  4. X1+X2의 표본분산과 X1, X2의 표본분산값의 합을 각각 계산하여 두 값이 비슷함을 보여라.

표본평균의 분산

확률변수 X의 표본평균 ˉX도 확률변수이고 그 기댓값 E[ˉX]은 원래 확률변수 X의 기댓값 E[X]과 같다는 것을 증명한 적이 있다.

E[ˉX]=E[X]

 

표본평균 ˉX의 분산 Var[ˉX]은 원래 확률변수 X의 분산 Var[X]과 다음 관계를 가진다.

Var[ˉX]=1NVar[X]

 

따라서 표본평균을 계산한 표본 개수가 커지면 표본평균의 값의 변동은 작아진다. 표본의 수가 무한대가 되면 표본평균의 값은 항상 일정한 값이 나온다. 즉 확률적인 값이 아니라 결정론적인 값이 된다.

증명은 다음과 같다.

Var[ˉX]=E[(ˉXE[ˉX])2]=E[(ˉXμ)2]=E[(1NNi=1Xiμ)2]=E[(1NNi=1Xi1NNμ)2]=E[(1N(Ni=1XiNμ))2]=E[(1NNi=1(Xiμ))2]=E[1N2Ni=1Nj=1(Xiμ)(Xjμ)]=1N2Ni=1Nj=1E[(Xiμ)(Xjμ)]

 

i번째 표본값은 j번째(ij) 표본값에 영향을 미치지 않으므로 Xi Xj (ij)는 독립이다. 따라서

E[(Xiμ)(Xjμ)]=0(ij)

 

라는 사실을 이용하면 i=j인 항, 즉 제곱항만 남는다.

Var[ˉX]=1N2Ni=1E[(Xiμ)2]=1N2Ni=1E[(Xμ)2]=1N2NE[(Xμ)2]=1NE[(Xμ)2]=1NVar[X]

 

위 식이 의미하는 바는 다음과 같다.

  • 데이터를 생성하는 확률변수 X의 기댓값을 구하려면 확률밀도함수 p(x)의 수식을 알아야 한다.
  • 그런데 우리는 데이터를 생성하는 확률변수 X의 확률밀도함수 p(x)의 수식을 정확히 알지 못한다.
  • 하지만 표본평균이라는 새로운 확률변수 ˉX의 기댓값 E[ˉX]은 원래 확률변수 X의 기댓값 E[X]과 같으므로 표본평균 ˉx는 원래 확률변수 X의 기댓값 E[X]과 비슷한 값이 나올 것이다. 하지만 정확한 값은 아니다.
  • 만약 표본 개수 N이 크면 표본평균 ˉx의 분산이 아주 작아지므로 표본평균의 값 ˉx은 항상 표본평균의 기댓값 E[ˉX]=E[X] 근처의 거의 일정한 값이 나올 것이다.
  • 따라서 표본 개수 N가 크면 표본평균 ˉx은 원래 확률변수 X의 기댓값 E[X]의 근삿값이라고 할 수 있다.

연습 문제 7.3.3

(1) 넘파이를 사용하여 숫자 100개를 무작위로 생성하여 표본집합을 구한다. 이 표본집합을 확률변수 X1의 표본이라고 하자. X1의 표본분산을 계산한다.

(2) 같은 작업을 50번 반복하여 확률변수 X2,X3,,X50의 표본집합을 구한다.

(3) 확률변수 Xi의 표본집합의 표본평균 ˉxi를 각각 계산한다. 이 값들은 표본평균 확률변수 ˉX의 표본집합이다.

(4) 확률변수 ˉX의 표본분산값을 계산하고 X1의 표본분산과의 비율을 계산한다.

표본분산의 기댓값

앞에서 표본평균의 기댓값을 구하면 이론적인 평균 즉, 기댓값과 같아진다는 것을 증명했다.

그런데 표본분산 S2의 기대값을 구하면 이론적인 분산 σ2과 같아지는 것이 아니라 이론적인 분산값의 N1N배가 된다. 즉 표본분산값이 이론적인 분산값보다 더 작아진다.

E[S2]=N1Nσ2

 

증명은 다음과 같다.

E[S2]=E[1NNi=1(XiˉX)2]=E[1NNi=1{(Xiμ)(ˉXμ)}2]=E[1NNi=1{(Xiμ)22(Xiμ)(ˉXμ)+(ˉXμ)2}]=E[1NNi=1(Xiμ)2]2E[1NNi=1(Xiμ)(ˉXμ)]+E[1NNi=1(ˉXμ)2]

 

이때 첫 번째 항은

E[1NNi=1(Xiμ)2]=E[1NNi=1(Xμ)2]=E[1NN(Xμ)2]=E[(Xμ)2]=Var[X]=σ2

 

두 번째 항은

E[1NNi=1(Xiμ)(ˉXμ)]=E[1NNi=1(Xiμ)(1NNj=1Xjμ)]=E[1NNi=1(Xiμ)(1NNj=1(Xjμ))]=E[1N2Ni=1Nj=1(Xiμ)(Xjμ)]

 

Xi Xj (ij)는 독립일 때,

E[(Xiμ)(Xjμ)]=0(ij)

 

라는 성질을 이용하면

E[1NNi=1(Xiμ)(ˉXμ)]=E[1N2Ni=1(Xiμ)2]=1NE[1NNi=1(Xiμ)2]=1NE[1NNi=1(Xμ)2]=1NE[1NN(Xμ)2]=1NE[(Xμ)2]=1NVar[X]=σ2N

 

세 번째 항은 다음과 같아진다.

E[1NNi=1(ˉXμ)2]=E[1NNi=1(1NNj=1Xjμ)2]=E[1NNi=1(1NNj=1(Xjμ))2]=E[1N3Ni=1Nj=1Nk=1(Xjμ)(Xkμ)]

 

Xj Xk (jk)는 독립일때,

E[(Xjμ)(Xkμ)]=0(jk)

 

라는 성질을 이용하면

E[1NNi=1(ˉXμ)2]=E[1N3Ni=1Nj=1(Xjμ)2]=E[1N3NNj=1(Xjμ)2]=E[1N2Nj=1(Xjμ)2]=1NE[1NNj=1(Xjμ)2]=1NVar[X]=σ2N

 

따라서 세 항의 합은 다음과 같다.

E[S2]=σ22σ2N+σ2N=N1Nσ2

 

그러므로 표본분산의 기대값이 정확하게 σ2이 되려면 평균과의 거리의 제곱의 평균을 구할 때 분모가 N이 아니라 N1으로 써야 한다.

σ2=NN1E[S2]=NN1E[1N(XiˉX)2]=E[1N1(XiˉX)2]

 

따라서 기댓값이 정확한 분산값과 일치하는 비편향 표본분산은 다음처럼 정의한다.

S2unbiased1N1(XiˉX)2

 

이렇게 표본분산이 실제 분산보다 작아지는 이유는 다음과 같다.

  1. 표본분산을 계산할 때 사용하는 표본평균의 값이 데이터가 많이 몰려있는 쪽으로 편향되게 나온다.
  2. 이렇게 데이터가 몰려있는 위치에 있는 표본평균을 기준으로 각 데이터까지의 거리를 계산하면 원래의 기댓값으로부터의 거리보다 작게 나올 수 있다.

실제 데이터로 예를 들어 살펴보자. 기댓값 μ=0, 분산이 σ2=1인 정규분포로부터 7개의 표본을 뽑는다.

In [1]:

np.random.seed(15) N = 7 data = np.sort(np.random.normal(size=(N)))[::-1]

이 표본의 표본평균은 약 -0.46이다. 우연히 음수인 표본이 많이 나오는 바람에 원래의 기댓값 0에서 음수쪽으로 떨어진 값이 나왔다.

In [2]:

mean = np.mean(data) mean

-0.46494862738581794

데이터와 표본평균의 위치를 그림으로 그리면 다음과 같다.

In [3]:

plt.figure(figsize=(10, 2)) sns.rugplot(data, height=0.5, linewidth=4) x = np.linspace(-3, 3, 100) plt.axvline(x=0, ls=":", c="r", linewidth=2, label="실제 기댓값") plt.axvline(x=mean, ls="--", c="b", linewidth=2, label="표본평균") plt.legend() plt.xlim(-2, 2) plt.show()

표본표준편차는 표본평균으로부터 각 데이터가 떨어진 거리(의 제곱)의 평균이다.

In [4]:

distance_from_sample_mean = data - mean distance_from_sample_mean

array([ 0.80423333, 0.70051752, 0.30904009, 0.15262015, -0.03684105, -0.63091342, -1.29865663])

이 거리들은 진짜 평균(기댓값)으로부터 각 데이터가 떨어진 거리보다 평균적으로 작게 나온다. 그 이유는 우리가 생각한 기댓값인 표본평균이 우연히 왼쪽으로 몰려나온 데이터들 중간에 있기 때문이다.

In [5]:

sample_variance = (distance_from_sample_mean ** 2).mean() sample_variance

0.4774618257836171

따라서 표본분산값은 정확한 분산값인 1보다 작은 값이다. N1로 나누어 편향 보정한 값은 다음과 같다,

In [6]:

sample_variance * N / (N - 1)

0.5570387967475533

주의할 점은 표본분산의 기댓값이 원래의 분산값보다 작은 값이 나오는 경향이 있다는 것이지 항상 원래의 분산값보다 작게 나온다는 뜻은 아니다.

비대칭도와 첨도

비대칭도(skew)는 3차 모멘트 값에서 계산하고 확률밀도함수의 비대칭 정도를 가리킨다. 비대칭도가 0이면 확률분포가 대칭이다.

E[(Xμσ)3]=μ3σ3

 

첨도(kurtosis)는 4차 모멘트 값에서 계산하며 확률이 정규분포와 대비하여 중심에 모여있는지 바깥으로 퍼져있는지를 나타낸다.

E[(Xμσ)4]=μ4σ4

 

모멘트

앞서 구한 기댓값이나 분산은 확률분포의 모멘트(moment)의 하나다.

μn=E[(Xμ)n]=(xμ)np(x)dx

 

모멘트는 확률분포에서 계산한 특징값이다. 만약 두 확률분포 X,Y가 있고 1차부터 무한대 차수에 이르기까지 두 확률분포의 모든 모멘트값이 서로 같다면 두 확률분포는 같은 확률분포다.

E[X]=E[Y]E[(XμX)2]=E[(YμY)2]E[(XμX)3]=E[(YμY)3]E[(XμX)4]=E[(YμY)4]E[(XμX)5]=E[(YμY)5]

 

이면

Xd=Y

 

이다. d= 는 두 확률변수가 같은 분포(distribution)를 가진다는 것을 표시하는 기호다.