多因素正态概率图

时间:2018-11-04 02:58:14

标签: r

我正在尝试通过两次重复在2 ^ 4阶乘问题中运行正常性诊断程序。这是我的代码:

n = 2

A <- factor(c(rep("-", 1*n), rep("+", 1*n)))
B <- factor(c(rep("-", 2*n), rep("+", 2*n)))
C <- factor(c(rep("-", 4*n), rep("+", 4*n)))
D <- factor(c(rep("-", 8*n), rep("+", 8*n)))

obs <- c(90, 93,
         74, 78,
         81, 85,
         83, 80,
         77, 78,
         81, 80,
         88, 82,
         73, 70,
         98, 95,
         72, 76,
         87, 83,
         85, 86,
         99, 90,
         79, 75,
         87, 84,
         80, 80)

df <- data.frame(A, B, C, D, obs)

model <- aov(obs ~ A*B*C*D, data = df)

summary(model)


par(mfrow=c(1,2))

qqnorm(resid(model), ylab = "Residuals", xlab = "Quantiles", pch = 16)
qqline(resid(model))

plot(resid(model) ~ fitted(model), ylab = "Residual", xlab = "Predicted",            pch = 16)
abline(0,0)

ANOVA表为我提供了正确的值,但是当我使用正态Q-Q图分析正态条件时,它错误地为我提供了对称残差。我注意到,只有在分析四个或更多交互时才遇到此问题。在三个或更少的交互作用下,所有残差图具有相同代码的正确预期输出。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我不清楚您为什么认为饱和模型中的残差不应该是“对称的”,您可以使用以下方法直接查看它们:

> print( sort(model$residuals),  digits=4)
        26         14          5         19         22         28 
-4.500e+00 -3.000e+00 -2.000e+00 -2.000e+00 -2.000e+00 -2.000e+00 
         3          1         16         18         30          8 
-2.000e+00 -1.500e+00 -1.500e+00 -1.500e+00 -1.500e+00 -1.500e+00 
        23         12          9         31         32         10 
-5.000e-01 -5.000e-01 -5.000e-01  6.947e-17  6.947e-17  5.000e-01 
        11         24          7         29         15         17 
 5.000e-01  5.000e-01  1.500e+00  1.500e+00  1.500e+00  1.500e+00 
         2         20         21         27          4          6 
 1.500e+00  2.000e+00  2.000e+00  2.000e+00  2.000e+00  2.000e+00 
        13         25 
 3.000e+00  4.500e+00 

就中位数的两侧具有成对的值而言,它们看起来很对称。显示数值的另一种方法可能是:

table( abs(sort(model$residuals)) )

6.9468775251052e-17   0.499999999999995   0.499999999999998 
                  2                   2                   1 
  0.499999999999999                 0.5   0.500000000000002 
                  1                   1                   1 
   1.49999999999999                 1.5    1.50000000000006 
                  2                   6                   2 
                  2                   3                 4.5 
                 10                   2                   2