2017-01-24 17 views
0
df <- data.frame(
    num = 
    c(5, 7, 3, 
     4, 2, 6, 
     5, 3, 6, 
     5, 6, 0, 
     7, 4, 0, 
     7, 7, 0, 
     6, 6, 0, 
     4, 6, 1, 
     6, 4, 0, 
     7, 7, 0, 
     2, 4, 0, 
     5, 7, 4, 
     7, 5, 0, 
     4, 5, 0, 
     6, 6, 3 
    ), 
    x1 = factor(rep(c("xx", "pp", "tru"), 15)), 
    x2 = factor(rep(c("A", "B", "C"), 15)), 
    x3 = factor(rep(1:15, rep(3, 15)))) 

Я хотел бы, чтобы вычислить значение для:Многофакторных линейная регрессия

x1 
x2 
x3 
interaction x1/x2 
interaction x1/x3 
interaction x2/x3 
interaction x1/x2/x3 

Я думаю, что я должен сделать линейную модель lm поэтому я попытался

lm(df[,"num"] ~ df[,"x1"] * df[,"x2"] * df[,"x3"]) 

Я не являюсь если это правильно.

ответ

1

Правило большого пальца, чтобы соответствовать линейной модели, то выполнить ANOVA:

fit <- lm(num ~ x1 * x2 * x3, data = df) 
anova(fit) 

Однако ваш предложенный пример игрушки действительно плохой, так что ничего интересного не будет видно.

  1. У вас есть x1 и x2 одинаковые (поэтому у них отличная вложенность). В связи с этим вы получите множество коэффициентов NA;
  2. У вас нет репликации. Для каждой комбинации факторов у вас есть только одно наблюдение, поэтому вы получите точное соответствие нулевым остаткам.