R에서 ANCOVA를 수행하는 방법


17

식물 epiphytes의 밀도에 관한 데이터의 ANCOVA 분석을 수행하고 싶습니다. 처음에는 두 경사면, 하나의 N과 S 사이에 식물 밀도에 차이가 있는지 알고 싶습니다만, 호스트 식물의 고도, 캐노피 개방도 및 높이와 같은 다른 데이터가 있습니다. 공변량이 두 개의 경사 (N 및 S) 여야한다는 것을 알고 있습니다. 나는 R에서 실행되는이 모델을 만들었고 그것이 잘 수행되는지 잘 모르겠습니다. 또한 나는 기호를 사용하는 경우의 차이가 무엇인지 알고 싶습니다 +*.

model1 <- aov(density~slope+altitude+canopy+height)
summary(model1)
model1

3
+는 주 효과 만 계산하고 *는 *와 연결된 요인 간의 상호 작용을 추정합니다. ANCOVA 프레임 워크는 일반적으로 연속 요인의 주요 효과 만 추정하지만 모든 그룹화 된 요인 간의 상호 작용을 추정합니다.
russellpierce

답변:


14

이를위한 기본 도구는 lm; 노트 aov에 대한 래퍼입니다 lm.

특히 일부 그룹화 변수 (인자), 및 연속 공변량 가있는 경우 모형 은 주 효과 ANCOVA 모형에 적합하고 공변량과의 상호 작용을 포함하는 모형에는 적합합니다. 동일한 수식을 사용합니다.엑스y ~ x + gy ~ x * gaov

Note의 도움말에서 특히주의하십시오 aov.

에 관해서는 +*, russellpierce 거의 커버는,하지만 난 당신이보고 권 해드립니다 ?lm그리고 ?formula가장 특히 매뉴얼의 11.1 R에 소개 당신이 방법을 생각하지 않은 경우 (또는 당신이 온라인으로 찾을 수 있습니다 R와 함께 제공 컴퓨터에서 찾을 수있는 가장 쉬운 방법은 R 또는 RStudio에서 "도움말"풀다운 메뉴를 찾는 것입니다.


모형이 y i j = μ + α i + η j + x i j 1 γ 1 + x i j 2 γ 2 인 두 개의 그룹 계수 및 두 공변량 x 1 , x 2 가 있다고 가정합니다 + ϵ i j y ~ g_1 + g_2 + x_1 + x_2도 같은 방법입니까? x_1 및 x_2 테스트에 대해 얻은 F 값 γ 1 = 0γ를 수행하십시오.1,2엑스1,엑스2
와이나는제이=μ+α나는+η제이+엑스나는제이1γ1+엑스나는제이2γ2+ϵ나는제이
γ1=0각각 2 = 0 ? γ2=0
Sayan

내가 이것을 어떻게 놓쳤는 지 확실하지 않습니다. 예. .... 그리고 한 번에 두 가지를 모두 테스트하려면 두 가지를 모두 사용하거나 사용하지 않고 적합 한 lm 객체를 전달 anova하십시오 (해당하는 경우 일부 SS가 음수이므로 잘못된 순서로 제공하는지 곧 알 수 있습니다) )
Glen_b-복지국 모니카

10

R by Field를 사용하여 Discovering Statistics를 읽고 읽는 것이 좋습니다 . 그는 ANCOVA에 관한 멋진 섹션을 가지고 있습니다.

R에서 ANCOVA를 실행하려면 다음 패키지를로드하십시오.

car
compute.es
effects
ggplot2
multcomp
pastecs
WRS

당신이 사용하는 경우 lm또는 aov(내가 사용은 aov) 당신이 중 하나를 수행하기 전에 "대조"기능을 사용하여 대조를 설정하는 것이 있는지 확인 aov하거나 lm. R은 기본적으로 비 직교 대비를 사용하여 ANCOVA의 모든 것을 망칠 수 있습니다. 직교 대비를 설정하려면 다음을 사용하십시오.

contrasts(dataname$factorvariable)=contr.poly(# of levels, i.e. 3) 

그런 다음 모델을 다음과 같이 실행하십시오.

model.1=aov(dv~covariate+factorvariable, data=dataname)

모델을 보려면

Anova(model.1, type="III") 

Anova여기에 대문자 "A"를 사용 하십시오 anova. 유형 III SS를 사용하여 결과를 제공합니다.

summary.lm(model.1)다른 요약을 제공하고 R- 제곱을 포함합니다. 산출.

posth=glht(model.1, linfct=mcp(factorvariable="Tukey"))  ##gives the post-hoc Tukey analysis
summary(posth) ##shows the output in a nice format.

회귀 기울기의 동질성을 테스트하려면 IV 및 공변량에 대한 교호 작용 항을 포함시킬 수도 있습니다. 그것은 :

model=aov(dv~covariate+IV+covariate:IV, data=dataname)

교호 작용 항이 유의하면 동질성이 없습니다.


비 직교 대비가 왜 모든 것을 망칠까요?
tintinthong

1
"비 직교 대비가 모든 것을 망가 뜨리는 이유"에 대한 위의 질문에 대답하기 위해. 답은 R이 기본이 아닌 비 직교 (즉, 평균의 차이)로 설정되어 각 IV의 기여를 개별적으로보고 싶다면 문제를 일으킬 수 있다는 것입니다. 직교 대비를 지정할 때 IV에 대한 SS가 완전히 분할되고 겹치지 않도록 R에 알립니다. 이러한 방식으로 각 예측 변수에 따른 변동이 깨끗하고 명확하게 나타납니다. 지정하지 않으면 R은 기본적으로 대비에 대한보다 자유로운 접근 방식을 사용합니다.

2
왜 III 형 SS에 관심이 있습니까?
Frank Harrell

4

다음은 @Butorovich가 제안한 절차에 대한 보완 문서 http://goo.gl/yxUZ1R 입니다. 또한 공변량이 이진일 때 summary (lm.object)를 사용하면 Anova (lm.object, type = "III")에서 생성 한 것과 동일한 IV 추정치가 제공됩니다.


1
이것이 정답인지는 확실하지 않습니다. 그렇습니까? 그렇다면 수정하려면 수정하십시오. 질문이 있으시면 ASK QUESTION상단의을 클릭하여 질문하십시오. 그럼 우리는 당신을 올바르게 도울 수 있습니다.
gung-복직 모니카

동의했다. 메시지는 이전 메시지에 대한 (보완적인) 답변으로 개정되었습니다.
XX

3

회귀 분석을 사용하여 예측 변수의 변동이 반응 변수에 미치는 영향을 설명하는 모델을 만듭니다. 때때로 예 / 아니오 또는 남성 / 여성과 같은 값을 가진 범주 형 변수가있는 경우 단순 회귀 분석은 범주 형 변수의 각 값에 대해 여러 결과를 제공합니다. 이러한 시나리오에서는 예측 변수와 함께 범주 변수를 사용하고 범주 변수의 각 수준에 대한 회귀선을 비교하여 범주 변수의 효과를 연구 할 수 있습니다. 이러한 분석을 ANCOVA라고도하는 공분산 분석이라고합니다.

내장 데이터 세트를
고려하십시오 . 그것에서 우리는 필드 가 전송 유형 (자동 또는 수동)을 나타냅니다. 값이 0과 1 인 범주 형 변수 입니다. 자동차의 갤런 당 마일 (마일 ) 값 ( )은 마력 값 ( ) 외에 자동차에 따라 달라질 수 있습니다 . 와 사이의 회귀에 대한 값의 효과를 연구합니다 . 여러 회귀를 비교하는 함수 와 함수를 사용하여 수행됩니다 .Rmtcarsammpghpammpghpaov()anova()

입력 데이터
필드를 포함하는 데이터 프레임을 만들고 mpg, hp그리고 am데이터 세트 mtcars. 여기서는 mpg반응 변수, hp예측 변수 및 am범주 변수로 사용합니다.

input <- mtcars[,c("am","mpg","hp")]
head(input)

위의 코드를 실행하면 다음과 같은 결과가 생성됩니다.

                  am  mpg  hp
Mazda RX4          1 21.0 110
Mazda RX4 Wag      1 21.0 110
Datsun 710         1 22.8  93
Hornet 4 Drive     0 21.4 110
Hornet Sportabout  0 18.7 175
Valiant            0 18.1 105

ANCOVA 분석
우리는 회귀 모델 복용 만들 hp예측 인자 변수로와 mpg사이에 계정으로 상호 작용을 복용 응답 변수로 amhp.

범주 형 변수와 예측 변수 간의 상호 작용이있는 모형

회귀 모형 작성 1

result1 <- aov(mpg~hp*am,data=mtcars)
summary(result1)

위의 코드를 실행하면 다음과 같은 결과가 생성됩니다.

            Df Sum Sq Mean Sq F value   Pr(>F)    
hp           1  678.4   678.4  77.391 1.50e-09 ***
am           1  202.2   202.2  23.072 4.75e-05 ***
hp:am        1    0.0     0.0   0.001    0.981    
Residuals   28  245.4     8.8                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

이 결과는 두 경우 모두 p- 값이 0.05보다 작으므로 마력과 변속기 유형이 갤런 당 마일에 상당한 영향을 미친다는 것을 보여줍니다. 그러나 p- 값이 0.05보다 커서이 두 변수 간의 상호 작용은 중요하지 않습니다.

범주 형 변수와 예측 변수 간의 상호 작용이없는 모형

회귀 모형 작성

result2 <- aov(mpg~hp+am,data=mtcars)
summary(result2)

위의 코드를 실행하면 다음과 같은 결과가 생성됩니다.

            Df Sum Sq Mean Sq F value   Pr(>F)    
hp           1  678.4   678.4   80.15 7.63e-10 ***
am           1  202.2   202.2   23.89 3.46e-05 ***
Residuals   29  245.4     8.5                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

이 결과는 두 경우 모두 p- 값이 0.05보다 작으므로 마력과 변속기 유형이 갤런 당 마일에 상당한 영향을 미친다는 것을 보여줍니다.

두 모델 비교
이제 두 모델을 비교하여 변수의 상호 작용이 실제로 중요하지 않은지 결론을 내릴 수 있습니다. 이를 위해 우리는 anova()기능 을 사용합니다 .

 anova(result1,result2)

 Model 1: mpg ~ hp * am
 Model 2: mpg ~ hp + am
   Res.Df    RSS Df  Sum of Sq     F Pr(>F)
 1     28 245.43                           
 2     29 245.44 -1 -0.0052515 6e-04 0.9806

p- 값이 0.05보다 크면 마력과 변속기 유형 간의 상호 작용이 중요하지 않다는 결론을 내립니다. 따라서 갤런 당 마일리지는 자동 및 수동 변속기 모드에서 자동차의 마력에 유사한 방식으로 의존합니다.


그렇다면 어느 것이 가장 먼저 왔습니까?이 답변 또는 자습서 의이 게시물은 무엇입니까? tutorialspoint.com/r/r_analysis_of_covariance.htm . 이 답변을 표절로 삭제해야합니까? 아니면 튜토리얼이 여기에서 복사 했습니까?
John
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.