2012-07-06 1 views
0

분석해야하는 데이터의 연구 설계가 간단합니다. 1 개의 대조군 (CTRL)과 개의 2 가지 치료군 (TREAT_1 및 TREAT_2)이 있습니다. 데이터는 또한 2 개의 공변량 COV1 및 COV2를 포함한다. 데이터에 선형 또는 2 차 처리 효과가 있는지 확인하도록 요청 받았습니다. 당신이 제어 및 치료 그룹 사이에 선형 관계가 플롯에서 볼 수 있듯이Anova Type 2 및 Contrasts

df1 <- data.frame(

Observation = c(rep("CTRL",15), rep("TREAT_1",13), rep("TREAT_2", 12)), 

COV1 = c(rep("A1", 30), rep("A2", 10)), 

COV2 = c(rep("B1", 5), rep("B2", 5), rep("B3", 10), rep("B1", 5), rep("B2", 5), rep("B3", 10)), 

Variable = c(3944133, 3632461, 3351754, 3655975, 3487722, 3644783, 3491138, 3328894, 
      3654507, 3465627, 3511446, 3507249, 3373233, 3432867, 3640888, 

      3677593, 3585096, 3441775, 3608574, 3669114, 4000812, 3503511, 3423968, 
      3647391, 3584604, 3548256, 3505411, 3665138, 

      4049955, 3425512, 3834061, 3639699, 3522208, 3711928, 3576597, 3786781, 
      3591042, 3995802, 3493091, 3674475) 
) 

plot(Variable ~ Observation, data = df1) 

:

나는 나의 상황을 설명하기 위해 더미 데이터 세트를 만들었습니다. 중요한 나는 contr.poly() 함수를 사용하여 대조를 변경하려면이 선형 효과가 통계적 있는지 확인하고이 같은 선형 모델에 맞게 : 우리는 선형 효과가 통계적으로 유의 한 것으로 볼 수있는 요약에서

contrasts(df1$Observation) <- contr.poly(levels(df1$Observation)) 

lm1 <- lm(log(Variable) ~ Observation, data = df1) 
summary.lm(lm1) 

를 :

Observation.L 0.029141 0..355 0.024 * 
Observation.Q 0.002233 0.012482 0.179 0.859 

그러나이 첫 번째 모델에는 두 개의 공변량이 포함되어 있지 않습니다. 을 포함하면 선형 관계가 아닌 중요한 p- 값 결과 :

lm2 <- lm(log(Variable) ~ Observation + COV1 + COV2, data = df1) 
summary.lm(lm2) 

Observation.L 0.04116 0.02624 1.568 0.126  
Observation.Q 0.01003 0.01894 0.530 0.600  
COV1A2  -0.01203 0.04202 -0.286 0.776  
COV2B2  -0.02071 0.02202 -0.941 0.354  
COV2B3  -0.02083 0.02066 -1.008 0.320 

를 지금까지 너무 좋아. 그러나 Type I보다 Type II Anova를 수행해야한다고 들었습니다. Type II Anova를 수행하기 위해 Car 패키지에서 Anova() 함수를 사용했습니다.

Anova(lm2, type="II") 

Anova Table (Type II tests) 

Response: log(Variable) 
       Sum Sq Df F value Pr(>F) 
Observation 0.006253 2 1.4651 0.2453 
COV1  0.000175 1 0.0820 0.7763 
COV2  0.002768 2 0.6485 0.5292 
Residuals 0.072555 34 

유형 II를 사용할 때의 문제는 선형 및 2 차 효과에 대해 p- 값을 얻지 못한다는 것입니다. 따라서 효과가 통계적으로 선형인지 2 차원인지 알 수 없습니다.

다음 코드는 Anova() 함수와 마찬가지로 Observation에 대해 동일한 p 값을 생성한다는 것을 알게되었습니다.

lm2 <- lm(log(Variable) ~ Observation + COV1 + COV2, data = df1) 
lm3 <- lm(log(Variable) ~ COV1 + COV2, data = df1) 
anova(lm2, lm3) 

아무도 타입 II 분산 분석을 수행하고 대조가 선형 및 차를위한 P-값을 얻기 위해 작동하는 방법을 알고 있나요 :하지만 결과는 또한 선형 또는 차 효과에 대한 P-값을 포함하지 않습니다 효과?

도움을 주시면 대단히 감사하겠습니다. 피터

답변

4

최저 나는 이것에 대한 하나의 부분적인 해결 방법을 찾았지만 추가로 보정을 요구할 수있다. stats 패키지의 drop1() 함수에 대한 문서는이 함수가 제곱의 Type II 합계 (이 페이지는 http://www.statmethods.net/stats/anova.html 임에도 불구하고)가 drop1()이 제곱의 Type III sum을 생성한다고 선언하고 너무 많은 시간을 소비하지 않았 음을 나타냅니다 이것 (http://afni.nimh.nih.gov/sscc/gangc/SS.html)을 보면서 제곱합 계산의 교차 검사를 할 수 있습니다. 수동으로 모든 것을 계산할 수는 있지만 누군가가 이미이 문제를 해결했다면 좋을 것이므로이 질문을하고있는 것 같습니다.

어쨌든, 나는 (당신은 단지 주어진 시간에 주어진 벡터 대조 한 세트를 지정할 수 있습니다) Observation2라는 더미 데이터에 두 번째 벡터를 추가하고, 로 바로 선형 대조를 설정 :

df1[,"Observation2"]<-df1$Observation 
contrasts(df1$Observation2, how.many=1)<-contr.poly 

이어서 3 리니어 모델 생성 :

lm3<-lm(log(Variable)~Observation2+COV1+COV2, data=df1) 

을 두 모델 사이 형과 II ANOVAs를 F 통계 비교 drop1와 F 시험을 실시 : LM2, 모두 t 포함 그는 선형 및 차 조건 :

drop1(lm2, test="F") 

LM3, 단지 선형 대조 포함

drop1(lm3, test="F") 

이 서로에 대한 모델의 직접적인 비교를 포함하지 않습니다는 F 통계 있지만, 선형 모델에 대해 더 높고 (그에 따라 p 값이 더 낮다), 이는 이차 모델 대신에 의존하게된다.