10.통계데이터분석 - 분산분석 - F검정.R
0.00MB

통계데이터분석 - 분산분석 - F검정 🔑 ANOVA | F test | F값(F value) | F분포(F distribution) | 집단 간 분산과 집단 내 분산의 비

# 분산분석에 사용되는 F분포와 F검정

# F검정

  • 분산분석은 F검정을 통해 수행
  • F검정은 집단 간 분산과 집단 내 분산의 비로 계산되는 F값을 가설검정을 위한 검정통계량으로 사용함
  • F검정 결과가 통계적으로 유의하면  집단 간 평균의 차이가 존재한다고 결론 내릴 수 있음. 즉, 독립변수인 집단이 종속변수에 영향을 미친다는 것임

 

# 집단 간의 평균의 차이를 검정할 때 분산을 바탕으로 검정통계량을 산출해 분석하는 이유

  • 집단의 평균이 서로 다르다는 것은 기본적으로 각 집단의 평균이 서로 멀리 떨어져 있다는 것을 의미(그림1)
    • 이는 집단평균의 퍼져 있는 정도를 나타내는 집단평균의 분산이 크다는 의미
    • 따라서 집단평균의 분산이 클수록 집단 간의 평균은 서로 다를 가능성이 커짐
  • 집단평균 분산이 커도 각 집단 내 분산 또한 크다면, 즉, 분포가 넓게 퍼져 있다면 집단 간 분포가 서로 겹치는 영역이 많아짐(그림2)
    • 그래서 각 집단의 분포가 서로 명확히 구분되지 않게 돼서 집단 간의 평균이 다르다고 주장하기 힘들어짐
    • 어느 한 집단에서 나타날 수 있는 값이 다른 집단에서도 나타날 가능성이 커지게 되고 이렇게 되면 집단 간 평균이 다르다고 주장하기 어려워짐 예) 관측값이 여기쯤(빨간점) 있다고 한다면 이 관측값은 가운데의 분포, 왼쪽 분포의 오른쪽 꼬리, 오른쪽 분포의 왼쪽 꼬리 세 군데 모두에 속함
    • 그래서 세 개 분포 어디에도 나타날 수 있는 값이기 때문에 집단 간의 평균이 다르다고 주장하기 어려워짐
  • 각 집단 내 분산이 상대적으로 작으면, 즉, 분포가 뾰족하고 좁은 형태라면 집단 간 분포는 명확히 구분되고 서로 겹치는 영역이 작아짐(그림3)
    • 한 집단에서 나타난 값이 다른 집단에서도 나타날 가능성이 작아지고 집단 간 서로 다른 평균을 가지고 있다고 주장하기 쉬워짐
  • 하지만 집단 내 분산이 작더라도 집단평균의 분산 역시 작으면, 즉, 집단평균들이 서로 가까이 모여 있으면 각 집단의 분포가 서로 겹치는 영역이 존재하게 됨(그림4)
    • 즉, 각 집단의 분포가 서로 명확히 구분되지 않게 돼 집단 간의 평균이 다르다고 주장하기 힘들어짐
  • 이상의 내용을 종합해보면 집단 간 분산이 클수록, 그리고 집단 내 분산이 작을수록 집단평균이 다를 가능성이 증가함
  • 따라서 이 두 종류의 분산이 갖는 값의 상대적 크기에 의해 집단 간 평균의 동일성 여부가 결정된다고 할 수 있음
  • 이처럼 집단평균의 동일성 여부, 즉, 각 집단이 동일한 모집단에 속하는지 여부는 집단 간 분산 및 집단 내 분산을 검토함으로써 평가할 수 있음
  • 이와 같이 집단 간 분산과 집단 내 분산을 검토해서 이 두 종류의 분산을 분석함으로써 모집단평균의 동일성에 대한 검정을 수행한다고 해서 이를 분산분석이라고 부르게 됨.
  • 다시 말해, 분산분석이란 각 집단의 표본평균의 분산정도, 즉, 집단 간 분산이 집단 내 관측값의 분산정도, 즉, 집단 내 분산에 비해 어느 정도 변동성이 큰지를 분석해서 모집단평균의 동일성 여부에 대한 추론을 하는 절차라고 할 수 있음

 

  • 질문) 집단 간 분산과 집단 내 분산의 비율이 어느 정도 커야만 집단 간 평균이 서로 다르다고 주장할 수 있는가
    • F값 정의: 집단 간 분산과 집단 내 분산의 비는 F값으로 정의되고 이 F값은 F분포를 따름
    • F분포
      1. 집단 간 분산의 자유도와 집단 내 분산의 자유도에 의해 분포 모양이 결정됨
      2. 그림에서 보시는 것처럼 대체로 오른쪽으로 긴 꼬리를 가짐
      3. 모집단평균이 동일하다는 가정하에서 표본으로부터 관측된 F값이 예외적으로 큰 값을 나타내면, 즉, 예로 유의수준 0.05를 사용하고 유의확률 5% 미만에 속하는 값 가지면, "모집단 평균이 동일하다"는 귀무가설 기각
      4. F값은 두 분산 비율로 계산되기에 항상 양수값을 갖게 되고 F분포 항상 양(+)의 영역에서 분포가 이루어짐
  • 집단 간 분산과 집단 내 분산을 이용한 분산분석 절차
    • 슬라이드 오른쪽에 1) 집단 간 분산 산식, 2) 집단 내 분산 산식, 3) 이 두 개 비율로 계산되는 F값 계산식 정리
    • 집단 간 분산: 집단 표본평균들이 전체 표본 평균으로부터 떨어져 있는 정도 나타낸 값
      1. 집단 간 분산: 표본평균들이 집단 간에 변동하는 정도를 의미. 집단 간 제곱합을 자유도로 나눠서 계산
      2. 집단 간 제곱합: 개별 집단의 표본평균에서 전체 표본평균을 뺀 편차를 제곱하고 해당 집단의 표본크기를 곱한 값을 모든 집단에 대해 합산해서 계산함
      3. 자유도: 집단의 개수에서 1을 뺀 값으로 산출
    • 집단 내 분산: 집단 내의 관측값이 그 집단의 평균으로부터 떨어져 있는 정도를 나타낸 값
      1. 집단 내 분산: 개별 관측값이 해당 집단 내에서 변동하는 정도를 의미. 개별 집단의 분포의 분산을 의미. 집단 내 제곱합을 자유도로 나눠서 계산
      2. 집단 내 제곱합: 집단 내 개별 관측값에서 해당 집단의 표본평균을 뺀 편차를 제곱하고 이것을 모든 관측값, 모든 집단에 대해 합산해서 구할 수 있음
      3. 집단 내 분산의 자유도: 개별 집단의 표본크기에서 1을 뺀 값을 모든 집단에 대해 합산해서 계산
        • 이 자유도는 전체 표본크기(개별 집단 표본크기를 모두 합산한 값)에서 집단의 개수를 뺀 값으로 변환해서 계산 가능
        • 분산분석에서는 모집단의 등분산을 가정하기 때문에, 각 집단의 분산을 표본크기를 고려한 가중평균으로 하나의 집단 내 분산값을 도출할 수도 있음(?)
        • 그래서 왼쪽 산식은 개별 집단의 분산을 이용한 오른쪽 산식으로 변환해 사용 가능
    • F값: 이렇게 구해진 집단 간 분산과 집단 내 분산을 이용해서 F값을 계산
      1. F값: 집단 간 분산을 집단 내 분산으로 나눠서 산출
  • F값으로 집단 간 평균의 차이를 검정하는 과정
    • 가설검정을 위해, 귀무가설이 사실이라는 전제하에, 표본으로부터 얻은 F값이 얼마나 흔히 관찰될 수 있는지, 혹 얼마나 드물게 관찰될 수 있는지 알아야 함
    • 검정방법1: 이를 위해서 유의수준 0.05 또는 0.01에서의 F값을 구한 후, 관측된 F값과 비교함  ▶  관측된 F값이 유의수준에 대응되는 F값보다 크면 귀무가설을 기각함
    • 검정방법2:(= 또는) 관측된 F값에서의 유의확률을 구한 후, 이를 유의수준 0.05 또는 0.01과 비교함  ▶  관측된 F값의 유의확률이 0.05 또는 0.01의 유의수준보다 작으면  귀무가설을 기각함


# 실제 데이터를 이용해서 집단 간 분산과 집단 내 분산을 계산하고 F값을 산정해서 가설검정

  • 실험설명
    • 위 데이터는 10명의 ADHD 환자를 대상, 두 가지 심리치료 시행 후, 각 심리치료별로 치료효과를 측정한 데이터임
    • 심리치료A에 환자 s1부터 s5까지 다섯 명의 환자 할당, 심리치료B에 환자 s6부터 s10까지 다섯 명의 환자 할당
    • 각각의 심리치료 시행 후, ADHD 평가점수를 기록함
  • 실험결과
    • 심리치료A의 평균값이 101.6, 심리치료B의 평균값이 114.6, 전체 표본평균은 108.1

# 이 데이터로 "심리치료 방법에 따라 치료효과에 차이가 있는지" 일원분산분석을 이용해 검정

  • 집단 간 분산 계산
    • 각 집단별 표본평균(심리치료A의 표본평균, 심리치료B의 표본평균)와 전체 표본평균 데이터 필요
    • 이 두 개의 집단별 표본평균전체 표본평균으로 집단 간 제곱합을 계산
    • 먼저 심리치료A에 대한 집단 간 제곱합을 계산 후, 심리치료B에 대한 집단 간 제곱합 계산
    • 그래서 (그걸 합산한 집단 간 제곱합)을 (집단의 개수 2에서 1을 뺀 자유도)로 나눠서 집단 간 분산을 계산
  • 집단 내 분산
    • 집단 내 분산은 개별 집단 내에서의 관측값이 변동하는 정도를 의미
    • 그래서 (심리치료A의 분포 내 개별 관측값이 해당 집단의 평균과 변동하는 정도의 편차 계산) 후 (제곱해) (모든 관측값에 대해서 합산)함
    • (95에서 101.6과의 차이 / 105에서 101.6과의 차이 / 98과 101.6과의 차이 / 103과 101.6과의 차이 / 107과 101.6과의 차이를 차례대로 계산)해 (제곱) 후 (합산)하면 심리치료A에 대한 집단 내 제곱합이 계산됨
    • 심리치료B에 대해서도 동일한 방식으로 계산. (심리치료B의 개별 관측값과 해당 집단의  표본평균과의 차이를 차례대로 계산) 후 그것들의 (제곱)을 계산해 집단 내 제곱합을 산정. 그러면 집단 내 제곱합이 심리치료B에 대해서 산정됨
    • 모든 집단의 제곱합을 더한 후, (해당 집단의 표본크기에서 1을 뺀 자유도)를 (모든 집단에 대해서 합산한 값)으로 나누게 되면 집단 내 분산이 산정됨
  • F값
    • 이렇게 계산된 (집단 내 분산)을 (집단 간 분산)과의 (비)를 계산하게 되면, F값이 산정됨
  • 검정
    • 그럼 이렇게 산정된 F값을 F분포 안에서 유의수준 0.05 또는 0.01하에서 얼마나 흔한지 혹은 드문지 판단해서 그에 따라 귀무가설을 채택할지 대립가설을 채택할지 판단하게 됩니다

 

# 이 데이터로 "심리치료 방법에 따라 치료효과에 차이가 있는지" 일원분산분석을 이용해 검정 (R 사용)

# 특정 F값에 대응되는 유의확률 계산 & 특정 유의수준에 대응되는 F값 산출

https://youtu.be/tNVZof67XUg?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=809

# 10.통계데이터분석 - 분산분석 - F검정 🔑 ANOVA | F test | F값(F value) | F분포(F distribution) | 집단 간 분산과 집단 내 분산의 비

# https://www.youtube.com/watch?v=BnFkVjjSv6I&list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&index=11



### 특정 F값에 대응되는 유의확률 계산 & 특정 유의수준에 대응되는 F값 산출
# https://youtu.be/tNVZof67XUg?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=809 


## pf() 함수로 특정 F값에 대응되는 유의확률 계산
# pf() 함수 이용 시, 특정 F값에 대응되는 유의확률을 쉽게 계산 가능
pf(9.59, df1=1, df2=8, lower.tail=FALSE)
# 1st 인수: F값 지정. 집단 간 분산과 집단 내 분산의 비율로써 F값 9.59를 계산했음
# 2nd 인수: 집단 간 분산의 자유도. 여기서는 1
# 3rd 인수: 집단 내 분산의 자유도. 여기서는 8
# lower.tail 인수: F분포상에서 9.59 이하가 발생할 확률을 계산. 그런데 우리가 필요한 것은 F값 9.59 이상이 발생할 확률이기 때문에 lower.tail 인수에 FALSE를 지정해서 9.59 이상이 발생확률 계산


# Result
# [1] 0.0147376
# 출력결과 1)  계산 결과, 0.014가 나와, 유의수준 0.05 사용 시 0.014는 0.05보다 작기 때문에 유의수준 0.05에서 "두 집단 간 치료효과의 차이가 없다"는 귀무가설을 기각할 수 있음. 즉, 두 가지 심리치료 방법에 따라 치료효과의 차이 존재함


## qf() 함수로 특정 유의수준에 대응되는 F값 산출
# qf() 함수로 특정 유의수준에 대응되는 F값을 산출 후, 표본으로부터 관측된 F값과 비교하는 방식으로 가설검정
# qf() 함수로 특정 확률에 대응되는 F값 산출가능
qf(0.05, df1=1, df2=8, lower.tail=FALSE)
# 1st 인수: 유의수준을 0.05로 사용한다면, 0.05 지정
# 2nd 인수: 집단 간 분산의 자유도. 여기서는 1
# 3rd 인수: 집단 내 분산의 자유도. 여기서는 8. 이렇게 qf() 함수 실행 시, F분포상 왼쪽 꼬리 부분의 확률이 0.05에 대응되는 F값을 산출함
# lower.tail 인수: 그런데 필요한 것은 오른쪽 꼬리 부분의 확률이 0.05에 대응되는 F값이기 때문에 lower.tail 인수에 FALSE를 지정

# Result
# [1] 5.317655
# 출력결과 1)  계산 결과, 5.3이라는 값이 산출되는데 5.3은 F분포상 오른쪽 꼬리 부분의 확률이 0.05에 대응되는 F값임.
# 표본으로부터 관측된 F값이 9.59고 거기에 비해 0.05에 대응되는 F값이 5.31
# 9.59는 5.31의 오른쪽 바깥쪽에 있기 때문에 더 드문 현상이 관찰된 것임
# 5%를 기준으로 삼을 때, 귀무가설이 사실이라는 가정하에, 표본으로부터 관측된 F값이 저렇게 크게 나올 가능성이 굉장히 작음
# 그래서 귀무가설을 기각하고 대립가설을 채택하게 됨

# 따라서 이 방법에 의해서도 "두 심리치료 방법의 집단 간에 치료효과의 차이가 없다"는 귀무가설 기각, "두 심리치료 방법 간에 치료효과의 차이가 있다"고 결론 내릴 수 있음



 

# 그림을 통해 산출된 F값과 유의수준에 대응되는 F값을 비교해 결과 해석

  • 유의수준 0.05에 대응되는 F값은 5.32로 계산됐음
  • 표본으로부터 계산한 F값은 9.59이기 때문에 이 9.59는 5.32의 상당히 오른쪽에 있음
  • 그렇기 때문에 5.32 이상이 발생할 확률이 0.05라고 하면 9.59 이상 발생확률은 그보다 훨씬 작을 것임
  • 이 값은 실제 R에서 pf() 함수 이용 계산결과, 0.0147이었음
  • 0.05에 비해서 굉장히 작기 때문에 귀무가설 기각하고 대립가설 채택
  • 두 가지 심리치료 방법별로 치료효과의 차이가 없다는 가정하에서, 이렇게 큰 F값이 관찰될 확률이 0.0147에 불과하기 때문에 유의수준 0.05에 비해서 굉장히 드문 현상이 관찰된 것임
  • 그래서 귀무가설을 기각하고 대립가설을 채택해 "두 가지 심리치료 방법 간에 차이가 있다"는 결론을 도출하게 됨

+ Recent posts