Не могу разобраться, двухфакторная анова без репликации в R - PullRequest
0 голосов
/ 18 декабря 2011

Я попытался с помощью manova () и, кажется, не могу получить правильное программирование. Я пробовал это так (в другом посте):

Manova в R сообщение об ошибке: длина 'dimnames '[1] не равен экстенту массива

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

вот эти данные:

acc <- data.frame(Degrees = c("d5","d8","d10"), MPH10=c(0.35, 0.37, 0.32), 
MPH25=c(0.19, 0.28, 0.30), MPH40=c(0.14, 0.19, 0.29), MPH55=c(0.10, 0.19, 0.23))

в соответствии

acc
  Degrees MPH10 MPH25 MPH40 MPH55
1     5  0.35  0.19  0.14  0.10
2     8  0.37  0.28  0.19  0.19
3     10  0.32  0.30  0.29  0.23

Не знаю, что делать дальше.

1 Ответ

2 голосов
/ 18 декабря 2011

Обычный ответ будет:

macc <- melt(acc, id.var="Degrees")
lm(value ~ Degrees + variable, macc)
anova(lm(value ~ Degrees + variable, macc))

И все, что остается, - это составить правильное описание результатов. (Обратите внимание, что я использовал «+» вместо «*»). Вы получаете почти идеальный ответ при построении насыщенной модели (без остатков) при использовании модели взаимодействия:

anova(lm(value ~ Degrees * variable, macc))

Вы могли бы закодировать одну или обе переменные в градусах или MPH как числовые и получить ненасыщенную модель. Но это все равно усложнило бы описание результата.

 acc <- data.frame(Degrees = c(5,8,10), MPH10=c(0.35, 0.37, 0.32), 
     MPH25=c(0.19, 0.28, 0.30), MPH40=c(0.14, 0.19, 0.29), MPH55=c(0.10, 0.19, 0.23))
 macc <- melt(acc, id.var="Degrees")
 anova(lm(value ~ Degrees * variable, macc))

Использование sub для удаления "MPH" из символьных переменных. Я подумал, что будет необходимо использовать as.numeric(as.character()) для того, что я считаю переменной фактора, но операция sub, очевидно, удаляет атрибут фактора, и достаточно просто использовать as.numeric.

macc$speed <- as.numeric(sub("MPH", "", macc$variable))
anova(lm(value ~ Degrees + speed, macc))
# output omitted
anova(lm(value ~ Degrees * speed, macc))
#-------------------
    Analysis of Variance Table

Response: value
              Df   Sum Sq  Mean Sq F value   Pr(>F)    
Degrees        1 0.016827 0.016827  16.904 0.003384 ** 
speed          1 0.048735 0.048735  48.959 0.000113 ***
Degrees:speed  1 0.006367 0.006367   6.396 0.035309 *  
Residuals      8 0.007963 0.000995                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
...