我需要将正交对比拟合到以下模型。请参阅以下示例数据:
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 个元素:只使用第一个