Нормальный график вероятности для нескольких факторов - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь запустить диагностику нормальности в 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 голосов
/ 04 ноября 2018

Мне непонятно, почему вы думаете, что остатки в насыщенной модели не должны быть "симметричными", вы можете посмотреть на них прямо с помощью:

> 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...