2014-10-02 1 views
2

일반적으로 aov()에서 summary() 함수를 사용한 후에 잔차를 얻을 수 있습니다.반복 측정에서 잔차를 얻는 방법 R

그러나 반복 측정 ANOVA를 사용할 때 잔차를 얻고 수식이 어떻게 다릅니 까?

## as a test, not particularly sensible statistically 
npk.aovE <- aov(yield ~ N*P*K + Error(block), npk) 
npk.aovE 
summary(npk.aovE) 
Error: block 
      Df Sum Sq Mean Sq F value Pr(>F) 
N:P:K  1 37.0 37.00 0.483 0.525 
Residuals 4 306.3 76.57    

Error: Within 
      Df Sum Sq Mean Sq F value Pr(>F) 
N   1 189.28 189.28 12.259 0.00437 ** 
P   1 8.40 8.40 0.544 0.47490 
K   1 95.20 95.20 6.166 0.02880 * 
N:P  1 21.28 21.28 1.378 0.26317 
N:K  1 33.14 33.14 2.146 0.16865 
P:K  1 0.48 0.48 0.031 0.86275 
Residuals 12 185.29 15.44     
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Intuitial summary(npk.aovE)$residuals 반환 NULL .. 이 사람이 나를 도울 수 수 있습니까?

+0

당신은 견적에서 관찰을 뺄 수 없다? –

답변

2

> names(npk.aovE) 

의 출력을보고

> npk.aovE$residuals 

편집을 시도 : 내가 너무 빨리 예를 읽을 죄송합니다. 내가 제안한 것은 aov()가있는 다중 레벨 모델에서는 불가능합니다. 다음을 시도해보십시오

require(MASS) ## for oats data set 
require(nlme) ## for lme() 
require(multcomp) ## for multiple comparison stuff 

Aov.mod <- aov(Y ~ N * V + Error(B/V), data = oats) 
the_residuals <- aov.out.pr[[3]][, "Residuals"] 

Lme.mod <- lme(Y ~ N * V, random = ~1 | B/V, data = oats) 
the_residuals <- residuals(Lme.mod) 

:

x1 <- gl(8, 4)                 
block <- gl(2, 16)                
y <- as.numeric(x1) + rnorm(length(x1))           
d <- data.frame(block, x1, y)             

m <- aov(y ~ x1 + Error(block), d)            
m.pr <- proj(m)                 
m.pr[[3]][, "Residuals"] 
+0

지층 모델의 경우 위에 쓴 것처럼 작동하지 않습니다. –

+1

답변을 업데이트했습니다. – MAB

+0

감사합니다. 'proj()'함수에 대해 몰랐다. –

1

다른 옵션은 LME 함께 :

> npk.pr <- proj(npk.aovE) 
> npk.pr[[3]][, "Residuals"] 

여기 주위에 그들이 같은 문제로 실행하면 엉망 할 수있는 간단하고 재현성있는 사람입니다 원래 예제는 상호 작용없이 (Lme.mod <- lme(Y ~ N * V, random = ~1 | B/V, data = oats)) 왔지만 함께 작동하고있는 것처럼 보입니다. (결과가 다르기 때문에 뭔가하고 있습니다.)

그리고 그것 뿐이다 ...

...하지만 완전성에 대한

:

1 - 반복 측정 분산 분석과 함께 Tukey에 테스트 - 모델

summary(Aov.mod) 
anova(Lme.mod) 

2의 요약 (이것을 찾으면서 3 시간!!). 상호 작용이있을 때 (+ 대신 *) 경고가 발생하지만 ignore it은 안전합니다. VN은 수식의 요소입니다.

summary(Lme.mod) 
summary(glht(Lme.mod, linfct=mcp(V="Tukey"))) 
summary(glht(Lme.mod, linfct=mcp(N="Tukey"))) 

- 3 정상 및 homoscedasticity 플롯

par(mfrow=c(1,2)) #add room for the rotated labels 
aov.out.pr <- proj(aov.mod)            
#oats$resi <- aov.out.pr[[3]][, "Residuals"] 
oats$resi <- residuals(Lme.mod) 
qqnorm(oats$resi, main="Normal Q-Q") # A quantile normal plot - good for checking normality 
qqline(oats$resi) 
boxplot(resi ~ interaction(N,V), main="Homoscedasticity", 
     xlab = "Code Categories", ylab = "Residuals", border = "white", 
     data=oats) 
points(resi ~ interaction(N,V), pch = 1, 
     main="Homoscedasticity", data=oats) 

enter image description here

관련 문제