与 R 中的 ANOVA 对比

机器算法验证 r 意思是 方差分析
2022-03-26 12:54:55

我需要将正交对比拟合到以下模型。请参阅以下示例数据:

   rep <- c(rep( 1, 15), rep(2, 15))
    parent1 <- c(1, 2, 3, 4, 5, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 1, 2, 3, 4, 5, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4)
    parent2 <- c(1, 2, 3, 4, 5, 2, 3, 4, 5, 3, 4, 5, 4, 5, 5,1, 2, 3, 4, 5, 2, 3, 4, 5, 3, 4, 5, 4, 5, 5)
    yld <- c(10, 12, 13, 14, 15, 12, 13, 14, 15, 13, 14, 15, 14, 15, 15,11, 13, 12, 13, 15, 14, 12, 13, 15, 12, 15, 15, 13, 15, 16)
    mydf <- data.frame(rep, parent1, parent2, yld)
    mydf$parent1 <- as.factor(mydf$parent1)
    mydf$parent2 <- as.factor(mydf$parent2)

Parent1 和 Parent2 是因子。

    mode11 <- lm(yld ~ rep + parent1:parent2, data = mydf)
    anova(mode11) 

我需要拟合对比,我想交互系数的处理顺序是:

Parent1    1, 2, 3, 4, 5, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4    
Parent2    1, 2, 3, 4, 5, 2, 3, 4, 5, 3, 4, 5, 4, 5, 5 

# contrasts for Parent1:Parent2 interaction 
mycontrast <- c(-4, -4, -4, -4, 4,  2, 2, 2, 2, 2,  2, 2, 2, 2,2)

我想在正交对比(mycontrasts)之上应用。我已经习惯了 SAS 来进行这种缺乏分析,但在 R 中却没有。
我有两个问题:

(a) 我怎样才能正确地对上述模型应用对比?

(b) 我在写系数时关心处理的顺序。查看我假定的命令:它们正确吗?我认为这应该是按字母顺序排列或在文件中排序。

编辑:以下是我自己回答问题的进度

>     mode11$coefficients # to see all coefficients 

>     mode11$coefficients[1:5] # just first five to save space here 
     (Intercept)               rep parent11:parent21 parent1**2**:parent2**1** parent1**3**:parent2**1** 
     1.500000e+01      1.087998e-15     -4.500000e+00                NA                NA 

正交对比度是否应该以此处的比较排序方式排序 - 1-2、2-1、3-1 等等。由于设计不平衡,您可以看到一些组合丢失,所以我们应该为它们提供一个像 0 这样的值。

  contrasts(parent1:parent2) <- cbind(c(-4, -4, -4, -4, 4,  2, 2, 2, 2, 2,

2, 2, 2, 2,2,-4, -4, -4, -4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2,2 )) contrasts<-( *tmp*, 值中的错误= c(-4, -4, -4, -4, 4, 2, 2, 2, : 对比仅适用于因子另外:警告消息:1:在*tmp*:parent2 中:数值表达式有 30 个元素:只有第一个used 2: In *tmp*:parent2 : 数值表达式有 30 个元素:只使用第一个

2个回答

看看?对比和胶片。R 中的默认对比与 SAS 中的不同,但对差异进行了解释,您可以指定替代形式。(我认为您想将输出与 SAS 进行比较是否正确?)我没有在公式中保留您的“:”,因为我认为包含完整的交互“*”会更清楚。

 model1 <- lm(yld ~ rep + parent1*parent2, data = mydf,
      contrasts = list(parent1="contr.SAS", parent2="contr.SAS"))
 model1  # note I did not retain your mode-eleven spelling.
#---------------------
Coefficients:
      (Intercept)                rep           parent11           parent12  
        1.500e+01          2.079e-15          6.872e-17          4.262e-16  
         parent13           parent14           parent21           parent22  
       -7.692e-16          5.000e-01         -4.500e+00         -2.500e+00  
         parent23           parent24  parent11:parent21  parent12:parent21  
       -2.500e+00         -2.000e+00                 NA                 NA  
parent13:parent21  parent14:parent21  parent11:parent22  parent12:parent22  
               NA                 NA          5.000e-01                 NA  
parent13:parent22  parent14:parent22  parent11:parent23  parent12:parent23  
               NA                 NA         -9.873e-16          2.040e-16  
parent13:parent23  parent14:parent23  parent11:parent24  parent12:parent24  
               NA                 NA          5.000e-01          1.500e+00  
parent13:parent24  parent14:parent24  
        5.000e-01                 NA  

另请注意,您的某些对比度系数实际上为 0,例如:“rep”、parents(11,12,13)​​、parent11:parent23 和 parent12:parent23。

看看Vikneswaran的“实验设计”的一个 R 伴侣。参见第 5 章,特别是“正交性、正交分解及其在现代实验设计中的作用”。