Anova를 통한 사후 테스트 사용 가이드


ANOVA 는 세 개 이상의 독립적인 그룹의 평균 간에 통계적으로 유의미한 차이가 있는지 여부를 확인하는 데 사용되는 통계 테스트입니다.

ANOVA에 사용된 가정은 다음과 같습니다.

귀무 가설(H 0 ): µ 1 = µ 2 = µ 3 = … = µ k (평균은 각 그룹에 대해 동일함)

대립 가설: (Ha): 적어도 하나의 수단이 다른 수단과 다릅니다.

ANOVA의 p-값이 유의 수준보다 낮으면 귀무 가설을 기각하고 그룹 평균 중 적어도 하나가 다른 평균과 다르다고 말할 수 있는 충분한 증거가 있다는 결론을 내릴 수 있습니다.

그러나 이는 어떤 그룹이 서로 다른지는 알려주지 않습니다. 이는 단순히 모든 그룹 평균이 동일하지는 않다는 것을 알려줍니다.

어떤 그룹이 서로 다른지 정확히 알기 위해서는 사후 테스트 (다중 비교 테스트라고도 함)를 수행해야 합니다. 이를 통해 여러 그룹의 평균 간의 차이를 탐색하는 동시에 패밀리를 제어할 수 있습니다. . 합리적인 오류율.

기술 참고 사항: ANOVA p-값이 통계적으로 유의할 때만 사후 테스트를 수행해야 한다는 점에 유의하는 것이 중요합니다. p-값이 통계적으로 유의하지 않으면 모든 그룹의 평균이 서로 다르지 않음을 나타냅니다. 따라서 어떤 그룹이 서로 다른지 확인하기 위해 사후 테스트를 수행할 필요가 없습니다.

계열 오류율

앞서 언급했듯이 사후 테스트를 통해 여러 그룹의 평균 간의 차이를 테스트하는 동시에 계열별 오류율 도 제어할 수 있습니다.

가설 검정 에는 항상 제1종 오류율이 있는데, 이는 유의 수준(알파)에 의해 정의되며 실제로 참인 귀무 가설을 기각할 확률을 알려줍니다. 즉, “가양성”을 얻을 확률, 즉 그룹 간에 통계적으로 유의미한 차이가 있다고 주장하지만 실제로는 그렇지 않은 경우입니다.

가설 검정을 수행할 때 제1종 오류율은 유의 수준과 동일하며 일반적으로 0.01, 0.05 또는 0.10으로 선택됩니다. 그러나 여러 가설 검정을 한 번에 실행하면 거짓양성이 나올 가능성이 높아집니다.

예를 들어, 20면체 주사위를 굴린다고 가정해 보겠습니다. 주사위가 “1”이 나올 확률은 5%에 불과합니다. 그러나 한 번에 두 개의 주사위를 굴리면 주사위 중 하나가 “1”에 나올 확률은 9.75%로 증가합니다. 한번에 5개의 주사위를 굴리면 확률은 22.6%로 높아집니다.

주사위를 더 많이 굴릴수록 주사위 중 하나가 “1”에 나올 확률이 높아집니다. 마찬가지로 유의 수준 0.05를 사용하여 여러 가설 검정을 한 번에 실행하면 거짓양성이 나올 확률은 0.05 이상으로 증가합니다.

ANOVA의 다중 비교

ANOVA를 수행할 때 우리는 종종 세 개 이상의 그룹을 비교합니다. 따라서 그룹 평균 간의 차이를 탐색하기 위해 사후 테스트를 수행할 때 여러 쌍별 비교를 탐색하려고 합니다.

예를 들어, A, B, C, D라는 4개의 그룹이 있다고 가정해 보겠습니다. 이는 사후 테스트를 통해 조사하려는 총 6개의 쌍별 비교가 있음을 의미합니다.

A – B(A그룹 평균과 B그룹 평균의 차이)
교류
발표
기원전
만화
CD

그룹이 4개보다 많으면 수행하려는 쌍별 비교 수가 훨씬 더 늘어납니다. 다음 표는 각 그룹 수와 연관된 쌍별 비교 수와 패밀리당 오류율을 보여줍니다.

그룹별 오류율은 그룹 수가 증가함에 따라(따라서 쌍별 비교 수가 증가함에 따라) 급격히 증가합니다. 실제로 6개 그룹에 도달하면 잘못된 긍정을 얻을 확률은 실제로 50%가 넘습니다!

이는 가족별 오류율이 너무 높다는 것을 알면서 쌍별 비교를 너무 많이 수행해야 한다면 결과에 대해 심각한 의구심을 갖게 될 것임을 의미합니다.

다행히 사후 테스트를 통해 제품군별 오류율을 제어하면서 그룹 간 다중 비교를 수행할 수 있습니다.

예: 사후 테스트를 통한 일원 분산 분석

다음 예에서는 사후 테스트를 통해 일원 분산 분석을 수행하는 방법을 보여줍니다.

참고: 이 예에서는 R 프로그래밍 언어를 사용하지만 테스트 결과나 핵심 내용을 이해하기 위해 R을 알 필요는 없습니다.

먼저, 그룹당 20개의 관측치가 있는 4개의 그룹(A, B, C, D)이 포함된 데이터 세트를 만듭니다.

 #make this example reproducible
set.seed(1)

#load tidyr library to convert data from wide to long format
library(tidyr)

#create wide dataset
data <- data.frame(A = runif(20, 2, 5),
                   B = runif(20, 3, 5),
                   C = runif(20, 3, 6),
                   D = runif(20, 4, 6))

#convert to long dataset for ANOVA
data_long <- gather(data, key = "group", value = "amount", A, B, C, D)

#view first six lines of dataset
head(data_long)

# group amount
#1 To 2.796526
#2 A 3.116372
#3 A 3.718560
#4 A 4.724623
#5 A 2.605046
#6 A 4.695169

다음으로 데이터 세트에 대해 일원 분산 분석을 수행합니다.

 #fit anova model
anova_model <- aov(amount ~ group, data = data_long)

#view summary of anova model
summary(anova_model)

# Df Sum Sq Mean Sq F value Pr(>F)    
#group 3 25.37 8.458 17.66 8.53e-09 ***
#Residuals 76 36.39 0.479            

ANOVA 테이블 결과에서 F 통계는 17.66이고 해당 p-값은 매우 작다는 것을 알 수 있습니다.

이는 모든 그룹 평균이 동일하다는 귀무가설을 기각할 수 있는 충분한 증거가 있음을 의미합니다. 그런 다음 사후 테스트를 사용하여 어떤 그룹 평균이 서로 다른지 확인할 수 있습니다.

다음 사후 테스트의 예를 검토합니다.

Tukey 테스트 – 가능한 모든 쌍별 비교를 수행하려는 경우 유용합니다.

Holm의 방법 – Tukey 테스트보다 약간 더 보수적인 테스트

Dunnett의 수정 – 각 그룹의 평균을 관리 평균과 비교하고 처리 평균을 서로 비교하고 싶지 않을 때 유용합니다.

터키 테스트

다음과 같이 내장 R 함수 TukeyHSD()를 사용하여 다중 비교를 위한 Tukey 테스트를 수행할 수 있습니다.

 #perform Tukey's Test for multiple comparisons
TukeyHSD(anova_model, conf.level=.95) 

#Tukey multiple comparisons of means
# 95% family-wise confidence level
#
#Fit: aov(formula = amount ~ group, data = data_long)
#
#$group
# diff lwr upr p adj
#BA 0.2822630 -0.292540425 0.8570664 0.5721402
#CA 0.8561388 0.281335427 1.4309423 0.0011117
#DA 1.4676027 0.892799258 2.0424061 0.0000000
#CB 0.5738759 -0.000927561 1.1486793 0.0505270
#DB 1.1853397 0.610536271 1.7601431 0.0000041
#DC 0.6114638 0.036660419 1.1862672 0.0326371

신뢰 수준을 95%로 지정했는데, 이는 패밀리당 오류율이 0.05가 되기를 원한다는 의미입니다. R은 각 쌍별 차이를 비교할 수 있는 두 가지 측정항목을 제공합니다.

  • 평균 차이에 대한 신뢰 구간( lwrupr 값으로 제공)
  • 평균 차이에 대해 조정된 p-값

신뢰 구간과 p-값은 동일한 결론을 도출합니다.

예를 들어 그룹 C와 그룹 A의 평균 차이에 대한 95% 신뢰 구간은 (0.2813, 1.4309)이며, 이 구간에는 0이 포함되어 있지 않으므로 두 그룹의 평균 차이가 통계적으로 유의하다는 것을 알 수 있습니다. 특히 신뢰 구간의 하한이 0보다 크기 때문에 차이가 양수라는 것을 알 수 있습니다.

마찬가지로, 그룹 C와 그룹 A의 평균 차이에 대한 p-값은 0.0011로, 유의 수준 0.05보다 낮으며, 이는 두 그룹의 평균 차이가 통계적으로 유의하다는 것을 나타냅니다.

또한 R의 plot() 함수를 사용하여 Tukey 테스트의 결과인 95% 신뢰 구간을 시각화할 수 있습니다.

 plot(TukeyHSD(anova_model, conf.level=.95))

간격에 0이 포함되어 있으면 그룹 평균 간의 차이가 통계적으로 유의하지 않다는 것을 알 수 있습니다. 위 예에서 BA와 CB의 차이는 통계적으로 유의하지 않지만 다른 네 가지 쌍별 비교의 차이는 통계적으로 유의합니다.

홀름의 방법

우리가 수행할 수 있는 또 다른 사후 테스트는 Holm의 방법입니다. 이 테스트는 일반적으로 Tukey 테스트보다 더 보수적인 것으로 간주됩니다.

R에서 다음 코드를 사용하여 다중 쌍별 비교를 위해 Holm의 방법을 실행할 수 있습니다.

 #perform holm's method for multiple comparisons
pairwise.t.test(data_long$amount, data_long$group, p.adjust="holm") 
# Pairwise comparisons using t tests with pooled SD 
#
#data: data_long$amount and data_long$group 
#
#ABC
#B 0.20099 - -      
#C 0.00079 0.02108 -      
#D 1.9e-08 3.4e-06 0.01974
#
#P value adjustment method: holm

이 테스트는 각 쌍별 비교에 대한 p-값 그리드를 제공합니다. 예를 들어, 그룹 A와 그룹 B의 평균 차이에 대한 p-값은 0.20099입니다.

이 검정의 p-값을 Tukey 검정의 p-값과 비교하면 그룹 C와 D 간의 차이를 제외하면 각각의 쌍별 비교가 동일한 결론에 도달한다는 것을 알 수 있습니다. – 이 차이에 대한 값은 Holm 방법의 0.02108과 비교하여 Tukey 테스트에서는 0.0505였습니다.

따라서 Tukey 검정을 이용하면 유의수준 0.05에서 그룹 C와 그룹 D의 차이가 통계적으로 유의하지 않다는 결론을 얻었으나, Holm의 방법을 이용하면 그룹 C와 그룹 D의 차이가 통계적으로 유의 하다는 결론을 내렸다.

일반적으로 Holm의 방법으로 생성된 p-값은 Tukey 테스트로 생성된 값보다 낮은 경향이 있습니다.

Dunnett의 수정

다중 비교에 사용할 수 있는 또 다른 방법은 Dunett 보정입니다. 각 그룹의 평균을 제어 평균과 비교하고 처리 평균을 서로 비교하고 싶지 않을 때 이 접근 방식을 사용합니다.

예를 들어 아래 코드를 사용하여 B, C, D의 그룹 평균을 그룹 A의 그룹 평균과 비교합니다. 따라서 그룹 A를 제어 그룹으로 사용하고 그룹 B, C 간의 차이에는 관심이 없습니다. ., 그리고 D.

 #load multcomp library necessary for using Dunnett's Correction
library(multicomp)

#convert group variable to factor 
data_long$group <- as.factor(data_long$group)

#fit anova model
anova_model <- aov(amount ~ group, data = data_long)

#performcomparisons
dunnet_comparison <- glht(anova_model, linfct = mcp(group = "Dunnett"))

#view summary of comparisons
summary(dunnet_comparison)

#Multiple Comparisons of Means: Dunnett Contrasts
#
#Fit: aov(formula = amount ~ group, data = data_long)
#
#Linear Assumptions:
#Estimate Std. Error t value Pr(>|t|)    
#B - A == 0 0.2823 0.2188 1.290 0.432445    
#C - A == 0 0.8561 0.2188 3.912 0.000545 ***
#D - A == 0 1.4676 0.2188 6.707 < 1e-04 ***

출력의 p-값에서 다음을 확인할 수 있습니다.

  • 그룹 B의 평균과 그룹 A의 평균 차이는 유의수준 0.05에서는 통계적으로 유의 하지 않습니다 . 이 검정의 p-값은 0.4324 입니다.
  • 그룹 C와 그룹 A의 평균 차이는 유의수준 0.05에서 통계적으로 유의 합니다 . 이 검정의 p-값은 0.0005 입니다.
  • 그룹 D와 그룹 A의 평균 차이는 유의수준 0.05에서 통계적으로 유의 합니다 . 이 검정의 p-값은 0.00004 입니다.

이전에 언급한 바와 같이 이 접근 방식은 그룹 A를 “대조군”으로 취급하고 다른 모든 그룹의 평균을 그룹 A의 평균과 비교합니다. 그룹 B, C, D 간의 차이에 대한 테스트는 수행되지 않습니다. 하지 마세요. 나는 이 그룹들 사이의 차이점에 관심이 없습니다.

사후 테스트 및 통계 능력에 대한 참고 사항

사후 테스트는 가족별 오류율을 효과적으로 제어하지만 비교의 통계적 검정력이 감소한다는 단점이 있습니다. 실제로 가족별 오류율을 줄이는 유일한 방법은 모든 개별 비교에 대해 더 낮은 유의 수준을 사용하는 것입니다.

예를 들어, 6개의 쌍별 비교에 Tukey 검정을 사용하고 가족별 오류율을 0.05로 유지하려면 각 개별 유의 수준에 대해 약 0.011의 유의 수준을 사용해야 합니다. 쌍별 비교를 많이 할수록 각 개별 유의 수준에 사용해야 하는 유의 수준이 낮아집니다.

문제는 유의 수준이 낮을수록 통계적 검정력이 낮다는 것입니다. 이는 집단 평균 간의 차이가 실제로 모집단에 존재하는 경우, 덜 강력한 연구에서는 이를 발견할 가능성이 적다는 것을 의미합니다.

이러한 절충 효과를 줄이는 한 가지 방법은 수행하는 쌍별 비교 횟수를 줄이는 것입니다. 예를 들어, 이전 예에서는 4개의 서로 다른 그룹에 대해 6개의 쌍별 비교를 수행했습니다. 그러나 연구의 필요에 따라 몇 가지 비교만 하고 싶을 수도 있습니다.

비교 횟수를 줄이면 통계적 검정력을 크게 줄일 필요가 없습니다.

ANOVA를 수행하기 전에 비교하려는 그룹과 이러한 비교에 사용할 사후 테스트를 정확히 결정해야 한다는 점에 유의하는 것이 중요합니다. 그렇지 않고 어떤 사후 테스트가 통계적으로 유의미한 결과를 생성하는지 단순히 확인하면 연구의 무결성이 저하됩니다.

결론

이 기사에서 우리는 다음과 같은 내용을 배웠습니다.

  • ANOVA는 세 개 이상의 독립적인 그룹의 평균 간에 통계적으로 유의미한 차이가 있는지 여부를 확인하는 데 사용됩니다.
  • ANOVA가 유의 수준보다 낮은 p-값을 생성하는 경우 사후 테스트를 사용하여 어떤 그룹 평균이 서로 다른지 확인할 수 있습니다.
  • 사후 테스트를 통해 여러 쌍별 비교를 수행하면서 패밀리당 오류율을 제어할 수 있습니다.
  • 계열별 오류율을 제어하는 것의 균형은 통계적 검정력이 떨어집니다. 쌍별 비교를 적게 함으로써 낮은 통계적 검정력의 영향을 줄일 수 있습니다.
  • 먼저 쌍별 비교를 수행할 그룹과 이를 수행하는 데 사용할 사후 테스트를 결정해야 합니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다