2012-11-20 2 views
2

선행 대조 설정에 문제가있어 도움을 요청하고 싶습니다. 다음 코드는 요소 수준 "d"에 대해 두 개의 직교 대조를 제공해야합니다.lm()에 대한 선명한 대조 R

Call: 
aov(formula = Response ~ A) 

Residuals: 
    Min   1Q  Median   3Q  Max 
-1.000e+00 -3.136e-16 -8.281e-18 -8.281e-18 1.000e+00 

Coefficients: 
     Estimate Std. Error t value Pr(>|t|)  
(Intercept) 4.0000  0.1091 36.661 < 2e-16 *** 
Ad vs h  -1.0000  0.1543 -6.481 2.02e-06 *** 
Ad vs c  2.0000  0.1543 12.961 1.74e-11 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.5345 on 21 degrees of freedom 
Multiple R-squared: 0.8889,  Adjusted R-squared: 0.8783 
F-statistic: 84 on 2 and 21 DF, p-value: 9.56e-11 

그러나 나는 그것이 바로, 레벨 D 같아야한다로 (절편)의 추정은, 5.00 것으로 예상 :

Response <- c(1,3,2,2,2,2,2,2,4,6,5,5,5,5,5,5,4,6,5,5,5,5,5,5) 
A <- factor(c(rep("c",8),rep("d",8),rep("h",8))) 
contrasts(A) <- cbind("d vs h"=c(0,1,-1),"d vs c"=c(-1,1,0)) 
summary.lm(aov(Response~A)) 

내가 얻을 수있다? 또한 다른 견적은 이상하게 보입니다 ...

relevel (A, ref = "d")를 사용하여 올바른 값을 쉽게 얻을 수 있다는 것을 알고 있지만 (올바른 위치에서 표시되는 경우) 올바른 배합을 배우는 데 관심이 있습니다. 자신의 가설을 시험하기. 나는 (웹 사이트에서)를 folowing 코드와 유사한 예제를 실행하면 예상대로 작동합니다

irrigation<-factor(c(rep("Control",10),rep("Irrigated 10mm",10),rep("Irrigated20mm",10))) 
biomass<-1:30 
contrastmatrix<-cbind("10 vs 20"=c(0,1,-1),"c vs 10"=c(-1,1,0)) 
contrasts(irrigation)<-contrastmatrix 
summary.lm(aov(biomass~irrigation)) 


Call: 
aov(formula = biomass ~ irrigation) 

Residuals: 
     Min   1Q  Median   3Q  Max 
-4.500e+00 -2.500e+00 3.608e-16 2.500e+00 4.500e+00 

Coefficients: 
        Estimate Std. Error t value Pr(>|t|)  
(Intercept)   15.5000  0.5528 28.04 < 2e-16 *** 
irrigation10 vs 20 -10.0000  0.7817 -12.79 5.67e-13 *** 
irrigationc vs 10 10.0000  0.7817 12.79 5.67e-13 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 3.028 on 27 degrees of freedom 
Multiple R-squared: 0.8899,  Adjusted R-squared: 0.8817 
F-statistic: 109.1 on 2 and 27 DF, p-value: 1.162e-13 

정말이에 대한 몇 가지 설명을 부탁드립니다.

감사합니다, 예레미야

답변

6

나는 문제가 contrasts의 이해 (세부 사항에 대한 당신 수도 ?contrasts)에 생각합니다. , 평균은 그냥

A <- factor(c(rep("c",8),rep("d",8),rep("h",8))) 
> contrasts(A) 
    d h 
c 0 0 
d 1 0 
h 0 1 

따라서 모델 lm 당신이 그룹 c에 대한
Mean(Response) = Intercept + beta_1 * I(d = 1) + beta_2 * I(h = 1) 

summary.lm(aov(Response~A)) 
Coefficients: 
    Estimate Std. Error t value Pr(>|t|)  
(Intercept) 2.000  0.189 10.6 7.1e-10 *** 
Ad    3.000  0.267 11.2 2.5e-10 *** 
Ah    3.000  0.267 11.2 2.5e-10 *** 

그래서

입니다 제공

당신이 factor A의 기본 방법을 사용하는 경우

: 나를 자세히 설명하자 차단 2, 그룹 d의 경우 평균은 2 + 3 = 5이고 그룹 h의 경우도 마찬가지입니다. 당신이 당신의 자신의 대비를 사용하면 어떻게

:

contrasts(A) <- cbind("d vs h"=c(0,1,-1),"d vs c"=c(-1,1,0)) 

A 
[1] c c c c c c c c d d d d d d d d h h h h h h h h 
attr(,"contrasts") 
    d vs h d vs c 
c  0  -1 
d  1  1 
h  -1  0 

당신이 밝혀 맞는 모델은 그룹 c에 대한 그래서

Mean(Response) = Intercept + beta_1 * (I(d = 1) - I(h = 1)) + beta_2 * (I(d = 1) - I(c = 1)) 
    = Intercept + (beta_1 + beta_2) * I(d = 1) - beta_2 * I(c = 1) - beta_1 * I(h = 1) 

Coefficients: 
Estimate Std. Error t value Pr(>|t|)  
(Intercept) 4.000  0.109 36.66 < 2e-16 *** 
Ad vs h  -1.000  0.154 -6.48 2.0e-06 *** 
Ad vs c  2.000  0.154 12.96 1.7e-11 *** 

할 수는 평균 그룹 d, 평균에 대한 4 - 2 = 2입니다 그룹 h에 대해 4 - 1 + 2 = 5 인 경우, 평균은 4 - (-1) = 5입니다.

==========================

업데이트 :

당신의 대비를 할 수있는 가장 쉬운 방법은 설정하는 것입니다 기본 (참조) 레벨은 d입니다.

contrasts(A) <- contr.treatment(3, base = 2) 
Coefficients: 
      Estimate Std. Error t value Pr(>|t|)  
(Intercept) 5.00e+00 1.89e-01 26.5 < 2e-16 *** 
A1   -3.00e+00 2.67e-01 -11.2 2.5e-10 *** 
A3   -4.86e-17 2.67e-01  0.0  1  

당신이 당신의 대비를 사용하려면

:

Response <- c(1,3,2,2,2,2,2,2,4,6,5,5,5,5,5,5,4,6,5,5,5,5,5,5) 
A <- factor(c(rep("c",8),rep("d",8),rep("h",8))) 
mat<- cbind(rep(1/3, 3), "d vs h"=c(0,1,-1),"d vs c"=c(-1,1,0)) 
mymat <- solve(t(mat)) 
my.contrast <- mymat[,2:3] 
contrasts(A) <- my.contrast 
summary.lm(aov(Response~A)) 

Coefficients: 
Estimate Std. Error t value Pr(>|t|)  
(Intercept) 4.00e+00 1.09e-01 36.7 < 2e-16 *** 
Ad vs h  7.69e-16 2.67e-01  0.0  1  
Ad vs c  3.00e+00 2.67e-01 11.2 2.5e-10 *** 

참조 : http://www.ats.ucla.edu/stat/r/library/contrast_coding.htm

+0

안녕하세요 Liuminzhao, 당신의 빠른 응답 주셔서 대단히 감사합니다! 불행히도 아직 전체 아이디어를 얻지 못했습니다.귀하의 대답에서 볼 수 있듯이, 자신의 대조를 사용하여 (가로 채기)는 전반적인 평균이며 반면에 기본 치료 대조에서는 참고 수준입니다. 하지만 내 자신의 대조를 통해 실제로 테스트 된 것은 무엇입니까? 두 대조가 모두 중요한 것으로 표시되었으므로 명백하게 내가 테스트하고 싶은 것은 아닙니다 ... 레벨 d 대 c 및 d 대 h를 올바르게 테스트하여 어떻게 배울 수 있는지 보여 주시겠습니까? 건배, Jeremias – Jeremias

+0

나는 나의 회귀 노트를 되돌아 보았고, 잠시 동안 googled했다. 희망찬 업데이트 된 답변이 도움이되기를 바랍니다. – liuminzhao

+0

대단히 감사합니다. 매우 도움이되었습니다. – Jeremias