실제로 데이터가 가정을 완전히 충족하지 못하는 경우 사람들이 어떻게 분산을 처리합니까?


19

이것은 엄격하게 통계적인 질문이 아닙니다. 나는 분산 분석 가정에 대한 모든 교과서를 읽을 수 있습니다. 실제로 작동하는 분석가가 가정을 충족시키지 못하는 데이터를 어떻게 처리하는지 파악하려고합니다. 나는이 사이트에서 많은 답변을 찾고 있으며 ANOVA를 사용하지 않을 때 (추상적이고 이상적인 수학적 상황에서) 또는 R에서 아래에 설명 된 것들 중 일부를 수행하는 방법에 대한 게시물을 계속 찾습니다. 사람들이 실제로 어떤 결정을 내리고 왜 그런지 알아 내려고 노력하고 있습니다.

4 개 그룹의 트리 (통계 트리가 아닌 실제 트리)에서 그룹화 된 데이터에 대한 분석을 실행하고 있습니다. 각 트리마다 약 35 개의 속성에 대한 데이터가 있으며 각 속성을 통해 그룹이 해당 속성과 크게 다른지 확인합니다. 그러나 두 경우에 분산이 같지 않기 때문에 분산 분석 가정이 약간 위반됩니다 (알파 = .05를 사용하는 Levene 검정에 따라).

내가 볼 수 있듯이 내 옵션은 다음과 같습니다. 1. 데이터를 변환하고 Levene p-val이 변경되는지 확인합니다. 2. Wilcoxon과 같은 비모수 적 테스트를 사용하십시오 (있는 경우 어떤 테스트입니까?). 3. Bonferroni와 같은 분산 분석 결과에 대해 일종의 수정을 수행하십시오 (실제로 이와 같은 것이 있는지 확실하지 않습니까?). 처음 두 가지 옵션을 시도했지만 약간 다른 결과를 얻었습니다. 어떤 경우에는 한 가지 방법이 중요하고 다른 방법은 그렇지 않습니다. 나는 p- 값 낚시 함정에 빠지는 것을 두려워하며 어떤 접근 방식을 정당화 할 수 있는지 조언을 찾고 있습니다.

또한 평균과 분산이 서로 연관되어 있지 않으면 (즉, 둘 다 함께 증가하지 않는 한) 이분산성이 ANOVA에 큰 문제가 아니라는 것을 암시하는 일부 내용을 읽었습니다. 그런 패턴? 그렇다면 이에 대한 테스트가 있습니까?

마지막으로, 나는 동료 평가 저널에 게시하기 위해이 분석을 수행하고 있다고 덧붙여 야합니다. 따라서 누군가가 환상적이고 공개 된 유사한 예제에 대한 링크를 제공 할 수 있다면.


3
사용 여부에 관계없이 R여기에서 내 대답을 읽는 것이 도움이 될 수 있습니다.이 분산 데이터에 대한 일원 분산 분석의 대안 .
gung-모니 티 복원

답변:


18

실제 작업 분석가가 가정을 충족시키지 못하는 데이터를 어떻게 처리하는지 파악하려고합니다.

그것은 내 요구, 어떤 가정, 어떤 방식으로, 얼마나 나쁜지, 얼마나 많은지, 추론에 영향을 미치는지, 때로는 샘플 크기에 따라 결정됩니다.

4 개 그룹의 트리에서 그룹화 된 데이터에 대한 분석을 실행하고 있습니다. 각 트리마다 약 35 개의 속성에 대한 데이터가 있으며 각 속성을 통해 그룹이 해당 속성과 크게 다른지 확인합니다. 그러나 두 경우에 분산이 같지 않기 때문에 분산 분석 가정이 약간 위반됩니다 (알파 = 0.05를 사용하는 Levene 검정에 따라).

1) 표본 크기가 같으면 큰 문제가 없습니다. n이 같으면 분산은 다른 분산에 대해 상당히 (레벨) 견고합니다.

2) 여러 연구에서 권장되는지 여부를 결정하기 전에 분산의 동등성을 테스트 합니다. 그들이 평등에 가까울 것이라는 의심이 든다면, 그것들이 동일하지 않다고 가정하는 것이 좋습니다.

일부 참고 문헌 :

Zimmerman, DW (2004),
"동일한 분산의 예비 테스트에 대한 참고 사항"
Br. J. 수학. 통계 Psychol. , 5 월 ; 57 (Pt 1) : 173-81.
http://www.ncbi.nlm.nih.gov/pubmed/15171807

Henrik는 여기에 세 가지 참조를 제공 합니다.

3) 샘플의 크기가 크게 다를 수 있는지 여부가 아니라 효과 크기입니다. 따라서 큰 표본에서 분산의 작은 차이는 Levene의 검정에 의해 매우 중요하지만 본질적으로 그 영향에는 영향을 미치지 않습니다. 표본이 크고 효과 크기 (분산의 비율 또는 분산의 차이)가 원래의 값과 매우 가까운 경우 p- 값은 영향을 미치지 않습니다. 반면에, 작은 샘플에서는 좋은 p- 값이 거의 편안하지 않습니다. 어느 쪽이든 시험이 올바른 질문에 답하지 못합니다.

2- 표본 t- 검정에서와 같이 ANOVA의 잔류 표준 오차 및 df 추정값에 대한 Welch-Satterthwaite 유형 조정이 있습니다.

  1. Wilcoxon과 같은 비모수 적 테스트를 사용하십시오 (그렇다면 어느 것입니까?).

위치 이동 대안에 관심이있는 경우에도 계속 확산되는 것으로 가정합니다. 훨씬 일반적인 대안에 관심이 있다면 아마도 고려해 볼 수 있습니다. Wilcoxon 검정과 동등한 k- 표본은 Kruskal-Wallis 검정입니다.

분산 분석 결과에 대해 일종의 수정을 수행하십시오.

Welch-Satterthwaite를 고려하는 위의 제안을 참조하십시오.

(또는 ANOVA를 한 쌍의 웰치 형 t- 검정으로 캐스트 할 수도 있습니다.이 경우 Bonferroni 또는 이와 유사한 것을 살펴볼 수 있습니다)

또한 평균과 분산이 서로 관련이없는 한 이분산성이 실제로 분산 분석에 큰 문제가되지 않는다는 것을 암시하는 몇 가지 사항을 읽었습니다.

그런 것을 인용해야합니다. t- 검정과 관련된 여러 가지 상황을 살펴본 결과, 이것이 사실이라고 생각하지 않으므로 왜 그렇게 생각하는지 알고 싶습니다. 아마도 상황은 어떤 식 으로든 제한되어 있습니다. 일반화 된 선형 모델이 그 상황에 도움이 될 수 있기 때문에 경우에 좋을 것입니다.

마지막으로, 나는 동료 평가 저널에 게시하기 위해이 분석을 수행하고 있다고 덧붙여 야합니다.

검토자가 만족할만한 것을 예측하기는 매우 어렵습니다. 우리 대부분은 나무를 다루지 않습니다.


12

실제로 그렇지 않습니다간단한 선형 모델 (예를 들어, 일원 또는 이원 분산 분석 유사 모델)에서 이분산성을 다루는 것은 어렵지 .

ANOVA의 견고성

첫째, 다른 사람들이 지적했듯이 분산 분석은 특히 분산 데이터 (각 그룹의 관측치 수가 동일)가있는 경우 등분 산 가정의 편차에 놀라 울 정도로 강력합니다. 반면에 등분 산에 대한 예비 시험은 그렇지 않습니다 (레벤의 시험은 교과서에서 일반적으로 가르치는 F- 시험보다 훨씬 낫 습니다). 조지 박스는 다음과 같이 말합니다.

차이에 대한 예비 테스트를하는 것은 해로가 항구를 떠날 수있는 조건이 충분히 평온한 지 알아보기 위해 노를 젓는 보트에 바다에 들어가는 것과 같습니다!

분산 분석을 고려하기가 매우 쉽기 때문에 분산 분석은 매우 강력하지만 그렇게하지 않을 이유는 거의 없습니다.

비모수 적 테스트

평균 차이에 관심이있는 경우 비모수 적 테스트 (예 : Kruskal-Wallis 테스트)는 실제로 사용되지 않습니다. 그룹 간 차이를 테스트하지만 평균적으로 차이를 테스트 하지는 않습니다 .

데이터 예

분산 분석을 사용하고 싶지만 등분 산 가정이 사실이 아닌 간단한 데이터 예제를 생성 해 봅시다.

set.seed(1232)
pop = data.frame(group=c("A","B","C"),
                 mean=c(1,2,5),
                 sd=c(1,3,4))
d = do.call(rbind, rep(list(pop),13))
d$x = rnorm(nrow(d), d$mean, d$sd)

평균과 분산의 차이가 명확한 세 그룹이 있습니다.

stripchart(x ~ group, data=d)

예제 데이터를 보여주는 스트립 차트.

분산 분석

당연히 일반적인 분산 분석이이를 잘 처리합니다.

> mod.aov = aov(x ~ group, data=d)
> summary(mod.aov)
            Df Sum Sq Mean Sq F value  Pr(>F)    
group        2  199.4   99.69   13.01 5.6e-05 ***
Residuals   36  275.9    7.66                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

어떤 그룹이 다른가요? Tukey의 HSD 방법을 사용합시다 :

> TukeyHSD(mod.aov)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = x ~ group, data = d)

$group
        diff        lwr      upr     p adj
B-A 1.736692 -0.9173128 4.390698 0.2589215
C-A 5.422838  2.7688327 8.076843 0.0000447
C-B 3.686146  1.0321403 6.340151 0.0046867

A를 P의 0.26의 -value, 우리는 그룹 A와 B 그리고 우리가 경우에도 사이 (수단)에 차이 주장 할 수 없습니다 하지 않았다 우리는 세 가지 비교했던 것을 고려, 우리는 낮은 얻을 수 없겠죠 P를 - 값 ( P  = 0.12) :

> summary.lm(mod.aov)
[…]
Coefficients:
            Estimate Std. Error t value  Pr(>|t|)    
(Intercept)   0.5098     0.7678   0.664     0.511    
groupB        1.7367     1.0858   1.599     0.118    
groupC        5.4228     1.0858   4.994 0.0000153 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.768 on 36 degrees of freedom

왜 그런 겁니까? 플롯을 바탕으로, 거기에 있다 꽤 명확한 차이. 그 이유는 ANOVA가 각 그룹에서 동일한 분산을 가정하고 공통 표준 편차 2.77을 추정하기 때문입니다 ( '잔류 표준 오류'로 표시됨).summary.lm 표 되거나 잔차 평균 제곱의 제곱근 (7.66)을 취하여 얻을 수 있음)을 때문입니다. ANOVA 테이블에서).

그러나 그룹 A는 (인구) 표준 편차가 1이고,이 2.77로 과대 평가하면 통계적으로 유의미한 결과를 얻는 것이 어려워집니다 (즉, 저전력 테스트).

분산이 다른 'ANOVA'

그렇다면 분산의 차이를 고려한 적절한 모델을 맞추는 방법은 무엇입니까? R에서는 쉽습니다.

> oneway.test(x ~ group, data=d, var.equal=FALSE)
    One-way analysis of means (not assuming equal variances)

data:  x and group
F = 12.7127, num df = 2.000, denom df = 19.055, p-value = 0.0003107

따라서 등분 산을 가정하지 않고 R에서 간단한 단방향 'ANOVA'를 실행하려면이 함수를 사용하십시오. 기본적으로 t.test()분산이 같지 않은 두 샘플에 대한 (Welch)의 확장입니다 .

불행하게도, 그것은 작동하지 않습니다 TukeyHSD()(또는 대부분의 다른 기능은 당신이에 사용하는 aov객체) 우리가 확신 거기 그렇게해도 된다 그룹의 차이는, 우리가 모르는 들이 있습니다.

이분산성 모델링

가장 좋은 솔루션은 분산을 명시 적으로 모델링하는 것입니다. 그리고 R에서는 매우 쉽습니다.

> library(nlme)
> mod.gls = gls(x ~ group, data=d,
                weights=varIdent(form= ~ 1 | group))
> anova(mod.gls)
Denom. DF: 36 
            numDF  F-value p-value
(Intercept)     1 16.57316  0.0002
group           2 13.15743  0.0001

물론 여전히 중요한 차이점. 그러나 이제 그룹 A와 B의 차이점도 정적으로 중요해졌습니다 ( P  = 0.025).

> summary(mod.gls)
Generalized least squares fit by REML
  Model: x ~ group
  […]
Variance function:
 Structure: Different standard
            deviations per stratum
 Formula: ~1 | group 
 Parameter estimates:
       A        B        C 
1.000000 2.444532 3.913382 

Coefficients:
               Value Std.Error  t-value p-value
(Intercept) 0.509768 0.2816667 1.809829  0.0787
groupB      1.736692 0.7439273 2.334492  0.0253
groupC      5.422838 1.1376880 4.766542  0.0000
[…]
Residual standard error: 1.015564 
Degrees of freedom: 39 total; 36 residual

따라서 적절한 모델을 사용하면 도움이됩니다! 또한 (상대) 표준 편차의 추정치를 얻습니다. 그룹 A에 대한 추정 표준 편차는 결과 하단에서 찾을 수 있습니다 (1.02). 그룹 B의 추정 표준 편차는 2.44 배 또는 2.48이며 그룹 C의 추정 표준 편차는 3.97과 유사합니다 ( intervals(mod.gls)그룹 B 및 C의 상대 표준 편차에 대한 신뢰 구간을 얻는 유형 ).

여러 테스트에 대한 수정

그러나 실제로 여러 테스트를 수정해야합니다. 'multcomp'라이브러리를 사용하면 쉽습니다. 불행히도, 그것은 'gls'객체를 기본적으로 지원하지 않으므로 먼저 도우미 함수를 추가해야합니다.

model.matrix.gls <- function(object, ...)
    model.matrix(terms(object), data = getData(object), ...)
model.frame.gls <- function(object, ...)
  model.frame(formula(object), data = getData(object), ...)
terms.gls <- function(object, ...)
  terms(model.frame(object),...)

이제 일하자 :

> library(multcomp)
> mod.gls.mc = glht(mod.gls, linfct = mcp(group = "Tukey"))
> summary(mod.gls.mc)
[…]
Linear Hypotheses:
           Estimate Std. Error z value Pr(>|z|)    
B - A == 0   1.7367     0.7439   2.334   0.0480 *  
C - A == 0   5.4228     1.1377   4.767   <0.001 ***
C - B == 0   3.6861     1.2996   2.836   0.0118 *  

그룹 A와 그룹 B의 통계적으로 유의미한 차이! ☺ 그리고 그룹 평균의 차이에 대해 (동시) 신뢰 구간을 얻을 수도 있습니다.

> confint(mod.gls.mc)
[…]
Linear Hypotheses:
           Estimate lwr     upr    
B - A == 0 1.73669  0.01014 3.46324
C - A == 0 5.42284  2.78242 8.06325
C - B == 0 3.68615  0.66984 6.70245

대략 정확한 모델을 사용하면 이러한 결과를 신뢰할 수 있습니다!

이 간단한 예에서 그룹 C의 데이터는 그룹 A와 B의 차이에 대한 정보를 실제로 추가하지 않습니다. 각 그룹에 대해 별도의 평균과 표준 편차를 모두 모델링하기 때문입니다. 다중 비교를 위해 수정 된 pairwise t -tests를 사용할 수 있습니다 .

> pairwise.t.test(d$x, d$group, pool.sd=FALSE)
    Pairwise comparisons using t tests with non-pooled SD 

data:  d$x and d$group 

  A       B      
B 0.03301 -      
C 0.00098 0.02032

P value adjustment method: holm 

그러나보다 복잡한 모델, 예를 들어 양방향 모델 또는 많은 예측 변수가있는 선형 모델의 경우 GLS (일반 최소 제곱)를 사용하고 분산 함수를 명시 적으로 모델링하는 것이 가장 좋습니다.

분산 함수는 단순히 각 그룹에서 다른 상수 일 필요는 없습니다. 우리는 그것에 구조를 부과 할 수 있습니다. 예를 들어, 분산 을 각 그룹 평균 의 거듭 제곱 (따라서 하나의 모수, 지수 만 추정 하면 됨) 또는 모형에있는 예측 변수 중 하나의 로그로 모형화 할 수 있습니다. 이 모든 것은 GLS와 gls()R에서 매우 쉽습니다 .

일반화 된 최소 제곱은 IMHO가 매우 잘 사용되지 않는 통계 모델링 기술입니다. 모형 가정의 편차에 대해 걱정하는 대신 이러한 편차를 모델링하십시오 !


1
답변 감사합니다! 불균형 분산 분석 (Welch ANOVA)에 대한 oneway.test () 및 gls ()의 결과에 대해 이해하지 못합니다. oneway.test ()의 p 값은 p-value = 0.0003107입니다. 그러나 gls (x ~ 그룹, data = d, weights = varIdent (form = ~ 1 | group))의 p 값은 0.0001입니다. 이 두 결과가 다른 이유는 무엇입니까?
WCMC

2
여러 테스트에 대한 수정에 대한 우려가 커지고 있습니다. 수정하지 않은 p- 값을 비교 횟수와 함께보고하는 것이 더 투명하다고 생각합니다. 특히 R에서 테스트 할 때 모든 쌍별 비교에 관심이 없을 수 있으므로 관심없는 비교를 고려하여 수정합니다.
Nakx

7
  1. 실제로 정규 분포를 생성하는 일부 데이터 변환이있을 수 있습니다. 물론 이제는 변환되지 않은 데이터가 아니라 변환 된 데이터에 대한 추론이 이루어집니다.

  2. 일원 분산 분석에 대해 이야기한다고 가정하면 Kruskal-Wallis 테스트는 일원 분산 분석에 대한 적절한 비모수 적 아날로그입니다. Conover-Iman 테스트 (거부 후 Dunn의 테스트보다 훨씬 더 강력 함)와 같은 다른 테스트가 있지만 Dunn의 테스트 (정원 다양성 순위 합계 테스트 아님)는 사후 쌍 쌍 다중 비교에 적합한 가장 일반적인 비모수 테스트 일 것입니다. kruskal-Wallis)와 Dwass-Steele-Crichtlow-Fligner 테스트를 거쳤습니다.

  3. 다중 비교 절차 ( 가족 별 오류율 다양성 또는 허위 발견율 다양성과 상관없이)는 실제로 특정 테스트 가정 (예 : 데이터의 정규성)과 직접 관련이 없으며, 다음의 의미와 관련이 있습니다.α (여러 검정을 수행하고 있음을 감안할 때 귀무 가설을 기각하려는 의지).

분산 분석은 그룹 내 및 그룹 분산 간의 비율을 기반으로합니다. 이 맥락에서 이분산성에 의해 당신이 무엇을 의미하는지 완전히 확신하지는 못하지만 그룹간에 불균형이 다른 것을 의미한다면, 그것은 검정의 귀무 가설의 논리를 근본적으로 깨뜨릴 것 같습니다.

"Dunn 's test"에 대한 간단한 Google Scholar 검색어와 전문 분야의 일반적인 용어가 게시 된 예를 많이 반환해야합니다.


참고 문헌

Conover, WJ and Iman, RL (1979). 여러 비교 절차에서 . 기술 보고서 ​​LA-7677-MS, Los Alamos Scientific Laboratory.

Crichtlow, DE 및 Fligner, MA (1991). 분산의 한 방법으로 분석 유통이없는 다중 비교에 . 통계 커뮤니케이션 – 이론과 방법 , 20 (1) : 127.

던, 오제이 (1964). 순위 합계를 사용한 다중 비교 . 기술 통계, 6 (3) : 241–252.


2
좋아요,이 답변에 감사드립니다. 그러나 나는 당신이 말하는 것을 완전히 명확하지 않습니다. '이분산성 (heteroscedasticity)'에 관한 한, 나는 평범한 의미로이 단어를 사용하고 있다고 생각했다. 통계 분산의 다른 측정. "-Wikipedia. 내 데이터에서 하위 그룹의 분산은 동일하지 않습니다 (레벤의 테스트에 따르면) 이분산성이라고 설명했습니다. 이것이 맞지 않습니까?
Jas Max

1
내가 실제로 논의하려는 것은 교과서 통계와 실제 세계 사이의 격차입니다. 모든 교과서에는 "분산은 분산이 동일해야합니다"라고 말하지만 물론 그렇지 않습니다. 따라서 특정 지점에서 임의로 차단하고 다른 테스트로 전환합니까? 내 분야 (식물 생물학)에서 대부분의 사람들은 많은 생각없이 사용하도록 훈련 된 테스트를 사용합니다. 나는 그것에 정말로 만족하지 않습니다. 통계의 '실제적인'사용에 대해 논의하는 서적 / 웹 사이트에 대한 제안, 즉 언제, 왜 어떤 테스트를 사용해야하는지 알고 싶습니다. Dunn의 제안에 감사드립니다.
Jas Max

2
아, 등분의 가정은이고 인구는 하지 차이 샘플 차이. 모집단 분산이 안구 테스트 또는 통계 테스트와 같은 다른 것으로 추론 할 수 있습니다.
Alexis

1
표본 분산을 평가하여 모집단 분산에 대해 어떻게 알 수 있습니까? Levene의 검정 p-val은 "모집 량 분산이 같다고 가정하면 표본 분산이 이와 크게 다를 확률은 얼마입니까?"라고 해석합니다. 낮은 p-val을 얻으면 모집단 분산이 같고 분산 분석을 사용할 수 없다는 가설을 기각합니다. Kruskal-Wallace는 좋은 대안으로 보이지만 분산 분석 가정을 충족시키기 위해 데이터를 변환하는 것이 바람직합니까?
Jas Max

1
또한, Levene의 테스트 p <.05는이 결정에 대한 적절한 테스트 및 차단입니까? O'Brien 's, Bartlett 's는 어떻습니까?이 테스트의 결과는 크게 다를 수 있으며 어떤 것을 사용 해야할지 모르겠습니다. 그러나 어쩌면 그것은 너무 과도합니다. 어쩌면 ANOVA를 포기하기에 너무 빠르면 불필요하게 내 분석의 통계적 힘을 줄이는 테스트로 전환하고 있습니다.
Jas Max

1

마치 발자국을 밟고 최선을 다하는 것처럼 들리지만, 당신의 노력이 논문을 검토 자에게 넘겨 줄만큼 충분하지 않을까 걱정됩니다. 실제 문제입니다. 모든 연구자들은 경계선에 있거나 때로는 솔직하게 가정을 위반하는 것으로 보이는 분석으로 어려움을 겪고 있다고 생각합니다. 결국 각 그룹에 6-7 마리의 마우스를 가진 3 개의 작은 그룹의 마우스에서 치료 효과를 평가하는 수백만 개의 논문이 있습니다. 그러한 논문에서 Anova 가정이 만족되는지 확인하는 방법!

나는 특히 심혈관 병리 생리학 분야의 많은 논문을 검토했으며 실제로 내가 읽은 기사에서 데이터를 신뢰할 수 있는지 여부를 100 % 확신하지 못합니다. 그러나 나를 위해 검토, 나는 실제로 문제에서 발생할 수 있다고 생각하는 경향이 있으므로 과학 많은 수준에서 이 있습니다. 아마도 통계에 너무 깊이 파고 들지 않을 것입니다. 백만 년 안에 말할 수 있습니다. 따라서,이 작업 분야에는 항상 신뢰할 수있는 요소가 존재하며, 연구원들은 절대 남용해서는 안됩니다.

내가 제공 할 가장 실제적인 제안은 제출하기 전에 모든 것을 매우 신중하게 생각하고 검토자가 요청한 모든 질문에 진실하게 대답 할 수 있어야한다는 것입니다. 최선을 다한 한, 당신의 의도는 정직하고 밤에는 잘 자요.


2
나는 제작물을 발견 할 수 없다는 것에 확신이 없다. 나는 이전에 그런 점을 발견했다.
Alexis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.