Aov 모델에서 공변량의 순서를 변경할 때 p- 값의 의미가 변하는 이유는 무엇입니까?


10

482 개의 관측치 데이터 세트가 있습니다.

data=Populationfull

3 개의 SNP에 대한 유전자형 연관 분석을 수행하려고합니다. 내 분석을 위해 모델을 작성하려고 시도하고 aov (y ~ x, data = ...)를 사용하여 Im. 하나의 특성에 대해 다음과 같이 모델에 포함 된 여러 고정 효과 및 공변량이 있습니다.

Starts <- aov(Starts~Sex+DMRT3+Birthyear+Country+Earnings+Voltsec+Autosec, data=Populationfull)

summary(Starts)
                Df Sum Sq Mean Sq F value   Pr(>F)    
Sex              3  17.90    5.97  42.844  < 2e-16 ***
DMRT3            2   1.14    0.57   4.110    0.017 *  
Birthyear        9   5.59    0.62   4.461 1.26e-05 ***
Country          1  11.28   11.28  81.005  < 2e-16 ***
Earnings         1 109.01  109.01 782.838  < 2e-16 ***
Voltsec          1  12.27   12.27  88.086  < 2e-16 ***
Autosec          1   8.97    8.97  64.443 8.27e-15 ***
Residuals      463  64.48    0.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

모델의 변수 순서를 변경하면 다른 p- 값이 있음을 발견했습니다. 아래를 참조하십시오.

Starts2 <- aov(Starts~Voltsec+Autosec+Sex+DMRT3+Birthyear+Country+Earnings, data=Populationfull)

summary(Starts2)

                Df Sum Sq Mean Sq F value   Pr(>F)    
Voltsec   1   2.18    2.18  15.627 8.92e-05 ***
Autosec   1 100.60  100.60 722.443  < 2e-16 ***
Sex              3  10.43    3.48  24.962 5.50e-15 ***
DMRT3            2   0.82    0.41   2.957  0.05294 .  
Birthyear        9   3.25    0.36   2.591  0.00638 ** 
Country          1   2.25    2.25  16.183 6.72e-05 ***
Earnings      1  46.64   46.64 334.903  < 2e-16 ***
Residuals      463  64.48    0.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

변수 / 인자 / 공변량 / 고정 효과 (?)의 순서에 따라 다른 p- 값을 얻는 이유는 무엇입니까? "수정"할 수있는 방법이 있습니까? Im이 잘못된 모델을 사용하고 있습니까? 나는 여전히 R에서 아주 새롭기 때문에 당신이 이것으로 나를 도울 수 있다면 그것을 간단하게 유지하여 대답을 이해할 수 있도록하십시오 ... 감사합니다, 누군가가 이것을 이해하도록 도울 수 있기를 바랍니다.


3
Populationfull문제를 재현 할 수 있도록 몇 가지 샘플 데이터를 제공 하십시오 . aov()도움말 페이지 의 예제에서는 발생하지 않습니다 . summary(aov(yield ~ block + N + P + K, npk)); summary(aov(yield ~ K + P + block + N , npk))
MrFlick

전체 값 필드가 변경되었으므로 p 값이 변경됩니다. 첫 번째 실행 Earnings 1 109.01 109.01 782.838 < 2e-16 ***두 번째 실행 Earnings 1 46.64 46.64 334.903 < 2e-16 ***. 결과가 동일하지 않습니다. 재주문 변수 이상의 것을 수행하지 않았는지 확인하여 시작하십시오.

1
또한 두 번째 모델에서는 수입이 아닌 적립을 사용합니다. 이름이 다른 변수가 두 개인 경우 SO 질문 공간에 복사하는 데 오타가 아닌 경우 문제가 될 수 있습니다.

예, 값이 변하는데 왜 그렇습니까? 두 모델에서 정확히 동일한 데이터 프레임에서 정확히 동일한 열을 사용했습니다 (두 번째 모델에서 Earnings vs Earn은 내가 잘못 쓴 것이므로 지금 수정했습니다).
Rbeginner

1
불균형 한 설계로 인해 발생합니다. 이 포럼을 검색하거나 Google "unbalanced ANOVA in R"을 검색하면 이에 대한 많은 도움을 얻을 수 있습니다. car패키지를 살펴 보는 것이 좋습니다. 유형 II 및 유형 III 분산 분석을 구현합니다.이 분석은 변수 순서에 의존 aov하지 않지만 유형 I 분산 분석은 수행합니다.
느린 로리

답변:


15

문제는 aov()기본 유의성 검정 을 수행 하는 방식에서 비롯됩니다 . 모델에 변수가 지정된 순서대로 테스트가 수행되는 "Type I"ANOVA 분석을 사용합니다. 따라서 첫 번째 예에서, 얼마나 많은 분산이 설명되고 sex그 중요성을 테스트 한 다음, 나머지 분산 의 어떤 부분 이 설명되고 DMRT3나머지 분산 에 대한 중요성 등을 테스트 합니다. 두 번째 예에서는, DMRT3오직 한 후 평가 Voltsec, Autosec그리고 sex순서대로, 이렇게 남은 작은 차이가, DMRT3설명하는이.

두 예측 변수가 상관되어있는 경우 모형에 입력 된 첫 번째 변수는 완전한 "신용"을 얻게되며, 두 번째 예측 변수에 대한 "설명"에 대한 차이가 덜 남습니다. 기능적으로는 아닙니다. 이 질문 과 답변은 다양한 유형의 분산 분석을 설명합니다.

이 문제를 해결하는 한 가지 방법은 클래식 분산 분석의 제한에서 자신을 추출 lm()하고 R이 아닌 R 로 간단한 선형 모델을 사용하는 것 aov()입니다. 이를 통해 모든 예측 변수를 동시에 효과적으로 분석하여 모든 예측 변수를 한 번에 "수정"합니다. 이 경우, 상관 된 두 예측 변수는 추정 된 회귀 계수의 표준 오차가 커질 수 있으며, 계수는 모집단의 표본마다 다를 수 있지만 최소한 모형 사양에 변수를 입력하는 순서는 중요하지 않습니다.

응답 변수가 이름에서 Starts알 수 있듯이 카운트 변수 유형 인 경우 p- 값 해석에 필요한 대로 잔차가 정규 분포를 따르지 않으므로 ANOVA를 사용하지 않아야 합니다. 카운트 변수는 일반화 된 선형 모델 (예 : glm()R) 로 더 잘 처리되며 lm()다른 유형의 잔류 오차 구조 에 대한 일반화로 생각할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.