0

希望这是一个直截了当的问题。我不确定哪里有错误——似乎 aR在这里不起作用。我已经重新启动R并重现了错误,所以我不确定发生了什么。

问题:我有一些数据,并试图为效果生成一个半正态图。哼哼,一切都很好……除了最显着的效果没有出现在我的半正常情节中:

# load data
dat2 <- read.table("http://www.stat.ucla.edu/~hqxu/stat201A/data/solder2.dat")
# required library
library(faraway)
# rename vars
names(dat2) <- tolower(names(dat2))
# create full model
a1.1 <- aov(defects ~ a + b + c + d + e + f + g + h + a:b + a:e + a:f + a:g + a:h +
              b:f + b:g + b:h + c:f + c:g + c:h + d:f + d:g + d:h + e:f + e:g + e:h,data=dat2)
# plot effects
halfnorm(a1.1$coef[-1], nlab= length(a1.1$coef[-1])/3-1, labs= names(a1.1$coef[-1]),
         ylab= "abs|Factor Effects|",
         main= "Half Normal Plot") +  qqline(abs(a1.1$coef[-1]))

在此处输入图像描述

如您所见,我的情节缺少效果C。最大的一个。如果您无法重现此错误,请告诉我。我觉得这很奇怪。

# effects from the model, descending
a1.1$coef[-1][order(abs(a1.1$coef[-1]), decreasing=T)][1:10]
      c       a       e     a:h     b:f     c:f     a:f     c:g     c:h     a:g 
 56.875 -27.500  22.750  13.125 -13.000 -12.750  12.500  12.375   7.375   7.000

编辑正如预期的那样,如下所述,这很简单。这是正确的代码:

halfnorm(a1.1$coef[-1], nlab= round(length(a1.1$coef[-1])/3,0), labs= names(a1.1$coef[-1]),
         ylab= "abs|Factor Effects|",
         main= "Half Normal Plot") +  qqline(abs(a1.1$coef[-1]))
4

1 回答 1

1

您的 nlab 值最终不会是整数。查看代码,这会给函数带来问题,并且在某些情况下会导致最后一个效果没有得到标签。如果您将该值四舍五入或直接将其设置为整数,您的问题就会消失。

于 2013-11-13T00:47:03.777 回答