生成和编码方案
generating a sum coding scheme
我有一个如下所示的数据框:
df <- data.frame(id= rep(seq(1:125),3),
timpoint= c(rep("T1", 125), rep("T2", 125), rep("T3", 125)),
treatment=c(rep("A",25),rep("B",25),rep("C",25),rep("D",25),rep("E",25)))
interaction.col <- paste(df$timpoint, df$treatment, sep = "_")
df <- cbind(df, interaction.col)
我正在尝试为交互列生成总和编码方案,该列是前两列的组合。根据 this 论文,我应该得到 (a−1)×(b−1) 列和 n 行的矩阵(在本例中为 375)
我已经阅读了有关使用对比的内容:
contrasts(df$interaction.col) <- "contr.sum"
df.c <- contrasts(df$interaction.col)
但是,不知何故输出是 15x14 矩阵,而它应该是 375x8。
此外,只有最后一行设置为 -1,这不应该是这种情况。对于最后一次治疗 (E) 的所有 ID,交互列应针对相应的时间点设置为 -1。
对于所有列,治疗组 E 中的最后一个 ID 都应为 -1。我在这里做错了什么?
根据您感兴趣的效果以及拟合模型的方式,您最终会得到不同数量的效果。例如,在拟合主效应和交互效应的情况下,最终应该有 8 列用于交互,即 (a-1) x (b-1)。如果您不符合主效应,您最终会得到 a*b - 1:
创建矩阵的方法如下:
主要影响:
model.matrix(~treatment * timpoint, df, list(treatment = contr.sum, timpoint=contr.sum))
在这种情况下,最后 8 列是您感兴趣的
没有主效应:
model.matrix(~treatment:timpoint, df, list(treatment = contr.sum, timpoint=contr.sum))
我有一个如下所示的数据框:
df <- data.frame(id= rep(seq(1:125),3),
timpoint= c(rep("T1", 125), rep("T2", 125), rep("T3", 125)),
treatment=c(rep("A",25),rep("B",25),rep("C",25),rep("D",25),rep("E",25)))
interaction.col <- paste(df$timpoint, df$treatment, sep = "_")
df <- cbind(df, interaction.col)
我正在尝试为交互列生成总和编码方案,该列是前两列的组合。根据 this 论文,我应该得到 (a−1)×(b−1) 列和 n 行的矩阵(在本例中为 375)
我已经阅读了有关使用对比的内容:
contrasts(df$interaction.col) <- "contr.sum"
df.c <- contrasts(df$interaction.col)
但是,不知何故输出是 15x14 矩阵,而它应该是 375x8。 此外,只有最后一行设置为 -1,这不应该是这种情况。对于最后一次治疗 (E) 的所有 ID,交互列应针对相应的时间点设置为 -1。 对于所有列,治疗组 E 中的最后一个 ID 都应为 -1。我在这里做错了什么?
根据您感兴趣的效果以及拟合模型的方式,您最终会得到不同数量的效果。例如,在拟合主效应和交互效应的情况下,最终应该有 8 列用于交互,即 (a-1) x (b-1)。如果您不符合主效应,您最终会得到 a*b - 1:
创建矩阵的方法如下:
主要影响:
model.matrix(~treatment * timpoint, df, list(treatment = contr.sum, timpoint=contr.sum))
在这种情况下,最后 8 列是您感兴趣的
没有主效应:
model.matrix(~treatment:timpoint, df, list(treatment = contr.sum, timpoint=contr.sum))