728x90
반응형

1. T-분포(Chi-square Distribution)

 

==> T-분포는 모분산이 알려지지 않은 정규모집단의 모평균에 대한 추론

 

==>서로 독립인 표준정규화확률변수 Z와 자유도 n인 카이제곱 확률변수 V에 대하여 정의

 

==> T ~ t(n)으로 나타낸다.

 

t-분포
t-분포 자유도 결정

 

==>분포 곡선은 t=0에서 최대값을 갖고 , 대칭 ==> 평균, 중위수 , 최빈값이 동일

 

==> 표준정규분포와 같이 종 모양

 

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

fig = plt.figure(figsize=(15,8))
dof_2 = []
for dof in np.arange(1 , 10 , 3)+1:
    ax = sns.lineplot(x = X , y=scipy.stats.t(dof).pdf(X) )
    dof_2.append(dof)

ax2 = sns.lineplot(x=X , y=scipy.stats.norm.pdf(X) , color = 'red')

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

==> scipy.stats.t.pdf()활용!!!

t-분포

==> t-분포의 꼬리 부분이 표준정규분포보다 약간 두텁다.

 

==>자유도 n이 증가하면 t-분포는 표준정규분포에 근접

 

 

EX-01) 자유도 10인 T-분포에서 중심확률이 0.9인 두 임계점 t_L , t_R

 

 

==> 꼬리확률 5%

 

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

fig = plt.figure(figsize=(15,8))
dof_2 = [10]

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


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

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

plt.annotate('' , xy=(0, .17), xytext=(1.7 , .17)  , arrowprops = dict(facecolor = 'black'))

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

ax.text(t_l + 0.25 , 0.02 , r'$t_l$' + f'= {t_l}' , fontsize = 13 )

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-분포

T_l = -1.812

T_r = 1.812

 

 

EX-02) 자유도 4인 t-분포

 

 

1>P(T> t_0.025) = 0.025를 만족하는 임계값 t_0.025

 

P(T<= t_0.025) = 1 - 0.025

 

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

fig = plt.figure(figsize=(15,8))
dof_2 = [4]

ax = sns.lineplot(x = X , y=scipy.stats.t(dof_2).pdf(X) )
t_r =  scipy.stats.t(dof_2).ppf(1- 0.025)
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.5, .007), xytext=(2.5 , .16)  , arrowprops = dict(facecolor = 'black'))

ax.text(1.71 , .17, r'$P(T>t_{0.025})$' + f'= {0.025}',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-분포

t_0.025 = 2.776

 

 

2>P(|T|< t_0) = 0.99를 만족하는 임계값 t_0

 

꼬리확률 = 0.005

 

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

fig = plt.figure(figsize=(15,8))
dof_2 = [4]

ax = sns.lineplot(x = X , y=scipy.stats.t(dof_2).pdf(X) )
t_r =  scipy.stats.t(dof_2).ppf(0.995)
print(t_r)
t_l = scipy.stats.t(dof_2).ppf(0.005)
print(t_l)


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

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

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

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


ax.text(t_l + 0.25 , 0.02 , r'$t_l$' + f'= {t_l}' , fontsize = 13 )

ax.text(t_r + 0.21 , 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-분포

t_0 = 4.604

 

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

※혼자 공부 정리용

728x90
반응형

+ Recent posts