728x90
반응형

1. F-분포(F-distribution)

==> 서로 독립인 두 모집단의 모분산이 동일한지 아닌지를 통계적으로 추론

 

==> 서로 독립인 두 확률변수

 F ~ F(m , n)

F 확률분포
F-확률분포 평균
F-확률분포 분산

X = np.arange(0,10, .01)

fig = plt.figure(figsize = (15,8))
dof = [[5,8] , [2,3] , [23,23] , [18,25], [11,7]]
print(dof[0][0])
for i in dof:
    ax = sns.lineplot(X , scipy.stats.f(i[0] , i[1]).pdf(X))
b = ['F({},{})'.format(i,j) for i,j in dof]
plt.legend(b , fontsize= 15)

==> scipy.stats.f(자유도 1, 자유도 2) 

F-분포

==> 일반적으로 왼쪽으로 치우치고, 오른쪽으로 긴 꼬리를 갖는다.(양의 왜도)

 

 

EX-01) 자유도 7과 10인 F-분포에서 중심확률이 0.9인 두 임계점 f_L , f_R를 구하라

 

 

꼬리확률 = 0.1

 

f_0.95,7,10

 

f_0.05,7,10

 

X = np.arange(0,10, .01)

fig = plt.figure(figsize = (15,8))
dof = [[7,10]]
print(dof[0][0])
for i in dof:
    ax = sns.lineplot(X , scipy.stats.f(i[0] , i[1]).pdf(X))
b = ['F({},{})'.format(i,j) for i,j in dof]


X_r = scipy.stats.f(dof[0][0], dof[0][1]).ppf(0.95)

X_l = scipy.stats.f(dof[0][0], dof[0][1]).ppf(0.05)

ax.fill_between(X, scipy.stats.f(dof[0][0],dof[0][1]).pdf(X) , where = (X>=X_r) | (X<=X_l) , facecolor = 'skyblue') # x값 , y값 , 0 , x조건 인곳 , 색깔


ax.vlines(X_r , ymin = 0 , ymax = scipy.stats.f(dof[0][0],dof[0][1]).pdf(X_r) , color = 'black')
ax.vlines(X_l , ymin = 0 , ymax = scipy.stats.f(dof[0][0],dof[0][1]).pdf(X_l) , color = 'black')


ax.annotate('' , xy=(X_l -0.02 , 0.1) , xytext=(X_l + 0.5 , 0.1) , arrowprops = dict(facecolor = 'black'))
ax.text(X_l + 0.5 , 0.1 , r'$P(F\leqq f_{0.95,7,10})$' + f'= {0.05}' , fontsize = 14)

ax.annotate('' , xy=(X_r +0.3 , 0.01) , xytext=(X_r + 0.3 , 0.2) , arrowprops = dict(facecolor = 'black'))
ax.text(X_r + 0.3 , 0.21 , r'$P(F\geqq f_{0.05,7,10})$' + f'= {0.05}' , fontsize = 14)

ax.text(X_l + 0.05 , 0.01 , r'$f_{0.95,7,10}$)' + f'= {round(scipy.stats.f(dof[0][0] , dof[0][1]).ppf(0.05) ,2)}' ,fontsize = 13)
ax.text(X_r - 1.3 , 0.01 , r'$f_{0.05,7,10}$)' + f'= {round(scipy.stats.f(dof[0][0] , dof[0][1]).ppf(0.95) , 2)}' ,fontsize = 13)


plt.legend(b , fontsize= 15)

==> 수학 표현식 geqq , leqq

 

 

 

==> ppf 사용!

 

F-분포

f_L = 0.27

f_R = 3.14

 

 

 

 

EX-02) F ~ F(4,5)

 

 

 

X = np.arange(0,10, .01)

fig = plt.figure(figsize = (15,8))
dof = [[4,5]]
print(dof[0][0])
for i in dof:
    ax = sns.lineplot(X , scipy.stats.f(i[0] , i[1]).pdf(X))
b = ['F({},{})'.format(i,j) for i,j in dof]


X_l = scipy.stats.f(dof[0][0], dof[0][1]).ppf(1-0.95)

X_r = scipy.stats.f(dof[0][0], dof[0][1]).ppf(1-0.025)

ax.fill_between(X, scipy.stats.f(dof[0][0],dof[0][1]).pdf(X) , where = (X>=X_r) | (X<=X_l) , facecolor = 'skyblue') # x값 , y값 , 0 , x조건 인곳 , 색깔


ax.vlines(X_r , ymin = 0 , ymax = scipy.stats.f(dof[0][0],dof[0][1]).pdf(X_r) , color = 'black')
ax.vlines(X_l , ymin = 0 , ymax = scipy.stats.f(dof[0][0],dof[0][1]).pdf(X_l) , color = 'black')

area = 1- scipy.stats.f(dof[0][0],dof[0][1]).cdf(X_r)
area_2 = scipy.stats.f(dof[0][0],dof[0][1]).cdf(X_l)



ax.annotate('' , xy=(X_r +2 , 0.01) , xytext=(X_r + 2 , 0.2) , arrowprops = dict(facecolor = 'black'))
ax.text(X_l + 0.1 , 0.21 , r'$P(F\leqq f_{0.95,4,5})$' + f'= {round(area_2,2)}' , fontsize = 14)

ax.annotate('' , xy=(X_l +0.05 , 0.2) , xytext=(X_l + 0.3 , 0.2) , arrowprops = dict(facecolor = 'black'))
ax.text(X_r + 0.3 , 0.21 , r'$P(F\geqq f_{0.025,4,5})$' + f'= {round(area , 2)}' , fontsize = 14)

ax.text(X_r + 0.05 , 0.01 , r'$f_{0.025,4,5}$' + f'= {round(scipy.stats.f(dof[0][0] , dof[0][1]).ppf(1-0.025) ,2)}' ,fontsize = 13)
ax.text(X_l +0.1 , 0.01 , r'$f_{0.95,4,5}$' + f'= {round(scipy.stats.f(dof[0][0] , dof[0][1]).ppf(1-0.95) , 2)}' ,fontsize = 13)


plt.legend(b , fontsize= 15)

==>헷갈린다.

 

==> F분포의 경우 왼쪽 꼬리확률이 0.05인 임계점 f_0.95,4,5

 

==> 오른쪽 꼬리확률이 0.05인 임계점 f_0.05,4,5

 

F-분포

1> f_0.025 , 4 , 5 

 

==> 7.39

 

2> f_0.95,4,5

 

==> 0.16

 

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

※혼자 공부 정리용

728x90
반응형

+ Recent posts