728x90
반응형

1. 표본평균의 표본분포(모분산을 아는 경우)

 

 

표본평균에 대한 표본분포
표본평균에 대한 표본분포

==> 표본평균에 대한 표본분포는 정규분포를 따른다.

 

 

 

EX-01)  모평균 100 , 모분산 9인 정규모집단으로부터 크기 25인 표본을 임의로 추출

 

1> 표본평균 |X의 표본분포

 

뮤_|X = 100 , 분산_|X = 9/25 = 0.36

 

|X ~ N(100, 0.6**2)

 

2> 표본평균이 99이상, 101이하일 확률

 

https://knowallworld.tistory.com/254

 

정규분포의 표준정규분포로의 변환★기초통계학-[Chapter06 - 연속확률분포-03]

1. 정규분포와 표준정규분포의 관계 =========================== ==> P(z_a =2.5 , facecolor = 'skyblue') # x값 , y값 , 0 , x= 2.5) = P(Z 박테리아의 수가 75마리 이상 103마리 이하일 확률 P(75

knowallworld.tistory.com

==> 표준화 방법

 

(99-100) / 0.6 = -1.67

(101-100) /0.6 = 1.67

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =1 인 정규분포 플롯


ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = (x<=1.67) & (x>=-1.67) , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔



area =  (stats.norm.cdf(1.67) - stats.norm.cdf(0)) * 2
ax.text(1.71 , .17, f'P(-1.67<=Z<=1.67) : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(0, .17), xytext=(1.7 , .17)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= 1.67, ymin= 0 , ymax= stats.norm.pdf(1.67, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))
ax.vlines(x= -1.67, ymin= 0 , ymax= stats.norm.pdf(-1.67, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

P(-1.67 <= Z <= 1.67) = (P(Z<=1.67)  - P(Z<=0) ) * 2= 0.9051

 

표본평균의 정규분포

3> 표본평균이 모평균보다 1.5이상 더 클 확률

 

모평균 = 100

 

표본평균 + 1.5 이상 클 확률 = P(|X >= 100+1.5) 

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =1 인 정규분포 플롯


ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = (x>=2.5)  , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔



area =  (1-  stats.norm.cdf(2.5) )
ax.text(1.71 , .11, f'P(Z>=2.5) : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(2.6, .007), xytext=(2.6 , .1)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= 2.5, ymin= 0 , ymax= stats.norm.pdf(2.5, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

 

표본평균의 정규분포

 

Z = (101.5 - 100) / 0.6 = 2.5

 

1 - P(Z<=2.5) = 0.0062

 

 

EX-02)  모평균 20 , 모분산 25인 정규모집단에서 크기 36인 표본을 임의로 추출

 

1> 표본평균 |X의 표본분포

 

뮤_|X = 20 , 분산_X = 25/36

 

|X ~ N(20 , 0.833**2)

 

 

2> 표본평균이 19.4이상 , 21.8 이하일 확률

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =1 인 정규분포 플롯

z_1 = round((19.4-20) / 0.833 ,2)
z_2 = round((21.8-20) / 0.833 , 2)

ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = (x<=z_2) & (x>=z_1) , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔



area =  (stats.norm.cdf((z_2)) - stats.norm.cdf(z_1))
ax.text(1.71 , .17, f'P({z_1}<=Z<={z_2}) : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(0, .17), xytext=(1.7 , .17)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= z_2, ymin= 0 , ymax= stats.norm.pdf(z_2, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))
ax.vlines(x= z_1, ymin= 0 , ymax= stats.norm.pdf(z_1, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

표본평균의 정규분포

P(19.4 <= |X <= 21.8) = P(19.4-20 / 0.833 <=Z <= 21.8-20 / 0.833) = P(-0.72<= Z<= 2.16) = 0.7489

 

 

3> 표본평균과 모평균의 차의 절대값이 1.5보다 클 확률

 

모평균 = 20

x = np.arange(-5,5 , .001)

fig = plt.figure(figsize=(15,8))

ax = sns.lineplot(x , stats.norm.pdf(x, loc=0 , scale =1)) #정의역 범위 , 평균 = 0 , 표준편차 =1 인 정규분포 플롯

z_1 = round((18.5-20) / 0.833 ,2)
z_2 = round((21.5-20) / 0.833 , 2)

ax.fill_between(x, stats.norm.pdf(x, loc=0 , scale =1) , 0 , where = (x<=z_2) & (x>=z_1) , facecolor = 'skyblue') # x값 , y값 , 0 , x<=0 인곳 , 색깔



area =  (stats.norm.cdf((z_2)) - stats.norm.cdf(z_1))
ax.text(1.71 , .17, f'P({z_1}<=Z<={z_2}) : {round(area,4)}',fontsize=15)
plt.annotate('' , xy=(0, .17), xytext=(1.7 , .17)  , arrowprops = dict(facecolor = 'black'))
ax.vlines(x= z_2, ymin= 0 , ymax= stats.norm.pdf(z_2, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))
ax.vlines(x= z_1, ymin= 0 , ymax= stats.norm.pdf(z_1, loc=0 , scale =1) , color = 'black' , linestyle ='solid' , label ='{}'.format(2))

표본평균의 정규분포

P(20 -1.5<=|X < = 20 + 1.5) = P(18.5 - 20 / 0.833 < Z <= 21.5 / 0.833) = P(-1.8<= Z <= 1.8) = 0.9281

 

 

2. 표본평균의 표본분포(모분산을 모르는 경우)

 

==> 대부분의 모집단은 모분산 또는 모표준편차가 알려지지 않음. ==> 표본평균이 정규분포를 따른다고 할 수 없다.

 

==> |X의 표준화 확률변수 Z는 자유도가 n-1인 t-분포를 따른다. 

 

==> 모분산이 알려지지 않은 정규모집단에서 크기 n인 표본을 선정할때, 표본평균 |X의 표준화 확률변수를 T로 나타낸다.

 

https://knowallworld.tistory.com/259

 

★scipy.stats.t(자유도).ppf()★t-분포★기초통계학-[Chapter06 - 연속확률분포-07]

1. T-분포(Chi-square Distribution) ==> T-분포는 모분산이 알려지지 않은 정규모집단의 모평균에 대한 추론 ==>서로 독립인 표준정규화확률변수 Z와 자유도 n인 카이제곱 확률변수 V에 대하여 정의 ==> T ~

knowallworld.tistory.com

==> T-분포

 

표준화 확률변수 T

 

EX-03)  평균이 77점인 정규분포 따른다. 신입생 9명 선정하여 표본조사

 

1> 표본평균에 대한 표본분포

 

뮤 = 77 , n = 9 ==> 모분산을 모르는 정규분포

 

==> 표본평균에 대한 표본분포는 자유도 (9-1)인 t-분포를 따른다. 

 

T = (|X - 77) / (s/3) ~ t(8)

 

 

 

2> 무작위로 얻은 표본 [72 ,86 ,75 , 83 ,67 ,77 ,82 ,79 ,88] 일때 표본평균과 표본표준편차

a = [72 ,86 ,75 , 83 ,67 ,77 ,82 ,79 ,88]

print(np.mean(a))

print(np.std(a , ddof= 1))

==> ddof = 1 이 표본에 대한 계산

 

|x = (72+86 ········ + 88) / 9 ~ 78.78

 

s = 6.778

 

 

3> [72 ,86 ,75 , 83 ,67 ,77 ,82 ,79 ,88]의 표본을 이용하여 표본평균이 상위 5%인 점수를 구하라.

 

P(|X >= x_0) = 0.05, T = (|X - 77) / (6.778/3) ~ t(8) 

 

P(|X>= x_0) = P( (|X - 77) / (6.778/3) >= (x_0 - 77) / (6.778/3)) = P(T>=(x_0 - 77) / (6.778/3) ) = 0.05

 



X = np.arange(-5,5 , .01)

fig = plt.figure(figsize=(15,8))
dof_2 = [8] #자유도

ax = sns.lineplot(x = X , y=scipy.stats.t(dof_2).pdf(X) )
t_r =  scipy.stats.t(dof_2).ppf(1- 0.05)
print(t_r)



ax.fill_between(X, scipy.stats.t(dof_2).pdf(X) , 0 , where = (X>=t_r) , facecolor = 'skyblue') # x값 , y값 , 0 , X조건 인곳 , 색깔

ax.vlines(x = t_r ,ymin=0 , ymax= scipy.stats.t(dof_2).pdf(t_r) , colors = 'black')

plt.annotate('' , xy=(3.0, .007), xytext=(2.5 , .16)  , arrowprops = dict(facecolor = 'black'))

ax.text(1.71 , .17, r'$P(T>t_{0.05})$' + f'= {0.05}',fontsize=15)


ax.text(t_r - 1 , 0.02 , r'$t_r$' + f'= {t_r}'  , fontsize = 13)


b = ['t-(n={})'.format(i) for i in dof_2]
plt.legend(b , fontsize = 15)

자유도 8인 t-분포표에서 상위 5%인 95% 백분위수가 t_0.05 = 1.86

t-분포

x_0 = sympy.Symbol('k')
sol_k = ((x_0 - 77) / (6.778/3))  - 1.86
k_sol = solve(sol_k)
print(k_sol)

==> SOLVE () 함수는 0값을 만들어 놓아야 한다.

 

==> 81.20235

 

 

 

EX-04)  신차의 연비가 평균 15km인 정규분포를 따른다. 크기 10인 표본을 임의로 추출하여 표본조사

 

1> 표본평균에 대한 표본분포

 

뮤 = 15 , n = 10 ==> 모분산을 모르는 정규분포

 

==> 표본평균에 대한 표본분포는 자유도 (10-1)인 t-분포를 따른다. 

 

T = (|X - 15) / (s/루트10) ~ t(9)

 

 

2> 무작위로 얻은 표본 [15.1 ,14.6 ,16.4 , 15.5 ,14.2 ,14.4 ,14.6 ,16.0 ,16.2 , 16.7] 일때 표본평균과 표본표준편차

 

a = [15.1 ,14.6 ,16.4 , 15.5 ,14.2 ,14.4 ,14.6 ,16.0 ,16.2 , 16.7]

print(np.mean(a))

print(np.std(a , ddof= 1))

뮤_|X = 15.37

s_|x = 0.913

 

 

3> [15.1 ,14.6 ,16.4 , 15.5 ,14.2 ,14.4 ,14.6 ,16.0 ,16.2 , 16.7]의 표본평균이 상위 10%인 연비를 구하라.

 

P(|X >= x_0) = 0.1, T = (|X - 15) / (0.913/3) ~ t(9) 

 

P(|X>= x_0) = P( (|X - 15) / (0.913/3) >= (x_0 - 15) / (0.913/3)) = P(T>=(x_0 - 77) / (0.913/3) ) = 0.1

 



X = np.arange(-5,5 , .01)

fig = plt.figure(figsize=(15,8))
dof_2 = [9] #자유도

ax = sns.lineplot(x = X , y=scipy.stats.t(dof_2).pdf(X) )
t_r =  scipy.stats.t(dof_2).ppf(1- 0.1)
print(t_r)



ax.fill_between(X, scipy.stats.t(dof_2).pdf(X) , 0 , where = (X>=t_r) , facecolor = 'skyblue') # x값 , y값 , 0 , X조건 인곳 , 색깔

ax.vlines(x = t_r ,ymin=0 , ymax= scipy.stats.t(dof_2).pdf(t_r) , colors = 'black')

plt.annotate('' , xy=(2.0, .007), xytext=(2.5 , .16)  , arrowprops = dict(facecolor = 'black'))

ax.text(1.71 , .17, r'$P(T>t_{0.1})$' + f'= {0.1}',fontsize=15)


ax.text(t_r - 1 , 0.02 , r'$t_r$' + f'= {t_r}'  , fontsize = 13)


b = ['t-(n={})'.format(i) for i in dof_2]
plt.legend(b , fontsize = 15)

t-분포

x_0 = sympy.Symbol('k')
sol_k = (x_0 - 15) / (0.913/3)   - 1.383
k_sol = solve(sol_k)
print(k_sol)

==> 15.4208

 

출처 :  [쉽게 배우는 생활속의 통계학]  [북스힐 , 이재원] 

※혼자 공부 정리용

728x90
반응형

+ Recent posts