Anova в R с повторениями - PullRequest
       7

Anova в R с повторениями

0 голосов
/ 03 декабря 2018

Хорошо, я беру курс по статистике (я аспирант), и у меня возникли некоторые проблемы с выполнением анализа ановы в R. Код выглядит так:

df <- data.frame(
  x1 = c(-1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1),
  x2 = c(-1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1),
  x3 = c(-1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1),
  y = c(59, 74, 50, 69, 50, 81, 46, 79, 61, 70, 58, 67, 54, 85, 44, 81)
)

Я знаюЯ могу просто выполнить анову с

summary(aov(y ~ x1 + x2 + x3, data = df))

Проблема в том, что остаточный анализ неверен.Это дает мне SQR 474 и 12 степеней свободы, но это должно быть 64 и 8 соответственно.Я уверен в этом, потому что мы не только делали это в классе с моим профессором вручную (это заняло некоторое время), но мы также делали это в Matlab более чем одним методом и получили те же результаты.Есть идеи, почему R дает мне неправильный ответ?Я пытался использовать другой метод, например, anova.lme, но он не работал.Если посмотреть на степени свободы, если у меня 16 экспериментов и я рассчитываю 8 средних, это дает мне 8 dfs.С другой стороны, у меня есть 16 экспериментов и 8 разных групп (по одной на каждое взаимодействие по нормализации), что также дает мне 8 dfs.Формула для степеней свободы для SQR: N - k, где k - разные группы.В этом случае группы - это все возможные взаимодействия, поэтому 16 экспериментов - 8 возможных взаимодействий = 8 степеней свободы. Это уже доказывает, что 12 dfs неверны (я понятия не имею, откуда идут эти 12).Ниже ответ, который я получаю от R, SQG от x1, x2, x3 являются правильными, так же как и их степени свободы.Но поскольку остатки неверны, все мои значения F также отключены.

Взаимодействия (группы), о которых я говорю:

x1 x2 x3
-1 -1 -1;
 1 -1 -1;
-1  1 -1;
 1  1 -1;
-1 -1  1;
 1 -1  1;
-1  1  1;
 1  1  1;

И ниже дан ответ, который я получаюR

        Df Sum Sq Mean Sq F value   Pr(>F)    
x1           1   2116  2116.0  53.570 9.23e-06 ***
x2           1    100   100.0   2.532    0.138    
x3           1      9     9.0   0.228    0.642    
Residuals   12    474    39.5 

Спасибо за помощь и извините за любые ошибки, английский не является моим основным языком.

1 Ответ

0 голосов
/ 04 декабря 2018

Здесь вы моделируете x1, x2 и x3 как отдельные ковариаты, но вы, кажется, хотите объединить это в один фактор.Вы можете использовать функцию interaction() в R, чтобы сделать это.Например,

summary(aov(y ~ interaction(x1, x2, x3), data = df))
#                         Df Sum Sq Mean Sq F value   Pr(>F)    
# interaction(x1, x2, x3)  7   2635   376.4   47.05 7.07e-06 ***
# Residuals                8     64     8.0                     
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

, который, кажется, дает значения, которые вы ожидали. По сути, он создает новую переменную для вас с 8 различными значениями

with(df, table(interaction(x1, x2, x3)))
# -1.-1.-1  1.-1.-1  -1.1.-1   1.1.-1  -1.-1.1   1.-1.1   -1.1.1    1.1.1 
#        2        2        2        2        2        2        2        2 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...