프로그래밍

[R] R을 이용한 분산분석

RainIron 2021. 5. 23. 20:00
반응형

1. 분산분석의 개념

1) 배경

t검정 -> 비효율성을 줄이기 위해 F 분포에 근거하여 검정
두 집단 간 속성에 대한 평균 차이를 검증하는 방법 집단간 변화량과 집단 내 변화량을 비교하는 방법

* 비효율성: 3개 이상 모집단을 비교할 때, 두 독립집단끼리 비교하는 t 검정을 3번 시행

 

2) 정의

- 두 개 이상 집단들의 평균을 비교하는 통계 분석 기법

- 두 개 이상 집단들의 평균 간 차이에 대한 통계적 유의성을 검증하는 방법

- 관측자료가 몇 개의 그룹으로 구분된 경우 그룹 평균 간 차이를 그룹 내 변동에 비교하여 살펴보는 데이터 분석 방법

 

3) 사용하는 이유

- '각 집단의 평균이 다르다.' = '집단 간 평균이 떨어져 있어, 분산이 크다' = '집단간 분산이 클수록 집단 간 평균이 서로 다를 가능성이 높다.'

=> 집단 평균 차이 비교에 분산 분석 이용

 

2. 분산분석의 특성

1) 기본 가정

- 정규성: 각 집단에 해당되는 모집단의 분포가 정규분포임

- 분산동일성(등분산성): 각 집단에 해당되는 모집단의 분산은 모두 동일함

- 독립성: 표본은 각 모집단에서 독립적으로(무작위로) 추출됨

 

2) F 통계량(F-value): 집단간 분산과 집단내 분산의 비

 

F = 집단간 분산/집단내 분산

 

- 집단간 분산이 클수록, 집단내 분산이 작을수록 집단평균이 다를 가능성 증가

- 두 종류의 분산이 갖는 값의 상대적 크기에 의해 집단 간 평균의 동일성 여부가 결정됨

 

- 총변동 = 집단간 변동 + 집단내 변동

 

3) 분산분석 종류

분석방법 특징
일원(배치) 분산분석
(one way ANOVA)
- 요인(집단을 구분하는 독립변수)이 하나인 경우
- 모집단의 수에 제한이 없음
- 각 표본의 수가 같이 않아도 됨
이원(배치) 분산분석
(two way ANOVA)
- 요인(집단을 구분하는 독립변수)이 둘인 경우
- 요인이 2개 이상인 경우, 요인이 결과에 미치는 영향을 알아보기 위한 주효과와 상호작용 효과를 알아볼 수 있음
다원배치 분산분석
(mulitple way ANOVA)
- 독립변수가 둘 이상인 경우를 총칭

 

4) 가설 설정

구분 H0(귀무가설) H1(대립가설)
일원분산분석 μ1 =μ2 =μ3
(모집단평균은 모두 동일함)
적어도 두 개의 평균들 간에는 차이가 있음
이원분산분석 μ1 =μ2 =μ3 = ... = μn
(모집단평균은 모두 동일함)
적어도 두 개의 평균들 간에는 차이가 있음

 

5) 연구 사례 예시

- 세대 간에 패스트푸드에 대한 선호도의 차이가 있는가?

=> 일원분산분석: 독립변수(세대), 종속변수(패스트푸드에 대한 선호도)

 

- 사용 이동통신사에 따른 모바일 뱅킹 이용횟수 수준 차이가 있는가?

=> 일원분산분석: 독립변수(이동통신사), 종속변수(모바일 뱅킹 이용횟수)

 

- 세대 및 성별에 따른 패스트푸드 선호도의 차이가 있는가?

=> 이원분산분석: 독립변수(세대, 성별), 종속변수(패스트푸드에 대한 선호도)

 

- 사용 이동통신사 및 성별에 따른 모바일 뱅킹 이용횟수 수준 차이가 있는가?

=> 이원분산분석: 독립변수(이동통신사, 성별), 종속변수(모바일 뱅킹 이용횟수)

 

* 이원분산분석 주효과: 각 독립변수가 종속변수에 미치는 영향

* 이원분산분석 상호작용효과: 여러 개의 독립변수가 상호 작용하여 나타나는 종속변수의 결과

 


3. 분산분석

* 거식증 환자의 치료방법에 따른 몸무게의 변화가 있는가

1) 데이터 입력(R에 있는 anorexia 데이터 사용)

# 데이터 입력(anorexia 데이터 사용)
data(anorexia, package = "MASS")
anorexia

 

2) 분산 분석의 시행

# 분산분석의 시행
out1 = aov(Postwt~Treat, data = anorexia)
out1

나온 결과를 summary()로 확인한다.

summary(out1)

Treat의 P값이 0.05보다 작으므로, 귀무가설을 기각

귀무 가설이 기각 -> 각 집단의 평균은 같지 않음 -> 거식증 치료 방법별로 몸무게가 같지 않음

 

3) anova함수를 사용해 분산분석을 실시

# anova함수를 사용해 분산분석을 실시
out2 = anova(lm(Postwt~Treat, data = anorexia))
out2
summary(out2)

anova 함수를 실행하기 전, 회귀분석으로 도출한 결과를 먼저 얻는다.

 

4) oneway함수를 사용해 분산분석 실시

* oneway함수는 기본적으로 등분산을 갖어하지 않음(등분산성이 확실시 되면 var.equal = True 옵션 할당)

# oneway함수를 사용해 분산분석 실시
out3 = oneway.test(Postwt~Treat, data = anorexia)
out3
summary(out3)

마찬가지로 p-value가 0.05보다 작으므로 귀무가설 기각

 

반응형