2015-05-14 118 views
0

我跑了一個三重重複措施ANOVA與ezANOVA。ggplot2殘差與ezANOVA

anova_1<-ezANOVA(data = main_data, dv = .(rt), wid.(id), 
      within = .(A,B,C), type = 3, detailed = TRUE) 

我想看看有什麼經qqplot回事殘差,但我不知道怎麼去給他們,或者如果they'r即使在那裏。隨着我的LME模型我只是從模型

main_data$model_residuals <- as.numeric(residuals(model_1)) 

提取它們並畫出他們

residuals_qq<-ggplot(main_data, aes(sample = main_data$model_residuals)) +  
     stat_qq(color="black", alpha=1, size =2) + 
     geom_abline(intercept = mean(main_data$model_residuals), slope = sd(main_data$model_residuals)) 

我想使用ggplot,因爲我想保持一致性的感覺在我的圖形。

編輯

也許我不清楚我在做什麼。使用lme模型,我可以簡單地從main_data data.frame中的殘差對象中創建變量model_residuals,該變量包含我在ggplot中繪製的殘差。我想知道,如果ezAnova中的殘差可能類似,或者我可以通過方法來獲得方差分析的殘差。

+0

您的語法錯誤。你可以通過名字來調用變量,而不是引用(或者你可以使用'aes_string')或者通過'data.frame'中的變量名稱。你的問題與'ezANOVA'無關。考慮修改標題以反映你想要達到的目標。 –

回答

2

我和ezANOVA有同樣的問題。我選擇的解決方案是切換到ez.glm(來自afex包)。 ezANOVAez.glm都包裝了一個不同包中的函數,所以你應該得到相同的結果。 這看起來像這樣爲你的例子:

anova_1<-ez.glm("id", "rt", main_data, within=c("A","B","C"), return="full") 
nice.anova(anova_1$Anova) # show the ANOVA table like ezANOVA does. 

然後就可以拉出LM對象,並讓您的殘差以通常的方式:

residuals(anova_1$lm) 

希望有所幫助。


編輯:進行少許修改,使其與上一版本

anova_1<-aov_ez("id", "rt", main_data, within=c("A","B","C")) 
print(m1) 
print(m1$Anova) 
summary(m1$Anova) 
summary(m1) 

然後就可以拉出LM對象,並讓您的殘差以通常的方式工作:

residuals(anova_1$lm) 
+1

它應該說anova_1它讀取m1,函數的名稱現在是'aov_ez',參數'return ='full''不再被接受,'nice.anova'不再存在,您可以執行(anova_1)或者nice(anova_1),還有摘要(anova_1)或摘要(anova_1 $ Anova)。是的,之後,這段代碼應該可以工作。 –