2015-05-14 119 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)。是的,之后,这段代码应该可以工作。 –