[R] - 통계데이터분석 - F검정

반응형

F검정

분산분석은 F검정(f test)을 통해 수행합니다.

F 검정은 집단 간 분산(between-groups variability)과 집단 내 분산(within-groups variability)의 비로 계산되는 F값(F value, F statistic)을 가설 검정을 위한 검정통계량으로 사용합니다.

F 검정 결과가 통계적으로 유의하면 집단 간 평균의 차이가 존재합니다. ( 즉 독립변수가 종속변수에 영향을 미침 )

왜 분산 ?

집단 간 분산과 집단 내 분산의 비교 , 집단 간 분산이 클수록 그리고 집단 내 분산이 작을수록 집단평균이 다를 가능성이 증가합니다.

스크린샷 2023-07-31 오후 3 45 28

위의 내용을 종합해보면 집단 간 분석이 클수록 그리고 집단 내 분산이 작을수록 집단 평균이 다를 가능성이 증가합니다. 따라서 이 두 종류의 분산이 갖는 값의 상대적 크기에 의해서 집단 간 평균의 동일성 여부가 결정된다고 할 수 있습니다.

이와 같이 집단 간 분산과 집단 내 분석을 검토하여 두 종류의 분산을 분석함으로써 모집단 평균의 동일성에 대한 검정을 수행한다고 하여 '분산분석'이라고 부르게 됩니다. 다시 말해 분산 분석이란 각 집단의 표본 평균의 분산 정도 즉 집단간 분산이 집단 내 관측값의 분산 정도, 즉 집단 내 분산에 비해 어느정도 변동성이 큰 지를 분석해서 모집단 평균의 동일성 여부에 대한 추론을하는 절차라 할 수 있습니다.

F 분포

스크린샷 2023-07-31 오후 4 18 47

집단 간 분산 (Between-group Variance): 개별 관측값이 해당 집단에서 변동하는 정도를 의미

$ SSB = \sum_{i=1}^{k} n_g \cdot (\bar{x}_g - \bar{x})^2 $

$ MSB = \frac{SSB}{g - 1} $

여기서:

  • $( MSB )$ 는 집단 간 평균 제곱 (Mean Square Between groups)입니다.
  • $( SSB )$ 는 집단 간 제곱합 (Sum of Squares Between groups)입니다.
  • $( g )$ 는 집단의 수입니다.
  • $( n_g )$ 는 g집단의 표본크기
  • $( \bar{x}_g )$ 는 g집단의 표본 평균
  • $( \bar{x} )$ 는 전체 표본 평균입니다.

집단 내 분산 (Within-group Variance): 개별 집단의 분포의 분산

스크린샷 2023-07-31 오후 4 45 44

일원분산분석 예시

실제 데이터를 바탕으로 집단 간 분산집단 내 분산을 구해서 F 가설 검정을 해봅시다.

스크린샷 2023-07-31 오후 4 49 10

집단 간 분산을 구하기 위해서는 각 집단별 표본 평균이 필요합니다.
심리치료 A의 표본평균 101.6 , 심리치료 B의 표본평균 114.6 , 전체 표본 평균 108.1

집단 간 분산 : 두 개의 집단의 표본평균과 전체 표본평균을 활용하여 집단 간 제곱합을 계산합니다. 집단 간 제곱합을 자유도 (집단의 개수 - 1) 로 나눠서 계산합니다.

집단 내 분산 : 개별 관측값과 해당 집단의 표본 평균의 차이를 제곱하여 모두 더합니다. (집단 내 제곱합) 그리고 해당 집단의 표본 크기에서 1을 뺀 자유도를 모든 집단에 대해서 합산을 한 값으로 나누면 됩니다.

이렇게 구한 집단 간 분산(442.5)과 집단 내 분산(44.0)의 비를 산정하면 F값 9.59를 산정할 수 있습니다.

산정된 F값이 F 분포내에서 유의수준 0.05을 기준으로 얼마나 흔한지를 구하여 귀무가설을 채택할지 대립가설을 채택할지 정할 수 있습니다.

스크린샷 2023-07-31 오후 4 49 17

R 실습

pf()함수를 사용하면 특정 f값에 대응되는 유의확률을 쉽게 구할 수 있습니다.
첫 번째 인수로 f값을 지정합니다. 방금 위에서 계산한 9.59를 넣습니다.
다음 인수로 두 개의 자유도를 2개 나란히 지정합니다.

pf()함수를 실행하게 되면 f분포상에서 9.59 이하가 발생할 확률을 계산합니다.
우리가 필요한건 9.59 이상이 발생할 확률이기 때문에 lower.tail=FALSE 를 지정해줍니다.

유의수준 0.05에 미치지 못하기 때문에 귀무가설을 기각할 수 있습니다.


> pf(9.59, df1=1, df2=8,lower.tail=FALSE)
[1] 0.0147376

qf()를 사용해서 특정 유의 수준에 대응되는 f값을 얻을 수 있습니다.


> qf(0.05, df1=1, df2=8)
[1] 0.004186155
스크린샷 2023-07-31 오후 5 15 18
반응형