想想用老鼠做的实验。我们将老鼠分成两组,给这些组不同剂量的咖啡因。我们也可以将接受给定剂量咖啡因的每组分成两组,我们给予不同剂量的睾酮。我们将有一个所谓的 2x2 设计。以下矩阵表示 2x2x2 设计。
> groups
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 1 1 2 -0.811962000
[2,] 2 2 1 1 9 1.142115906
[3,] 3 1 2 1 3 -0.999317454
[4,] 4 2 2 1 7 -1.984324334
[5,] 5 1 1 2 10 1.816095153
[6,] 6 2 1 2 1 1.567284537
[7,] 7 1 2 2 6 0.009253221
[8,] 8 2 2 2 5 -1.764737015
行:个人
第1栏:只是一个ID,不要太在意!
第 2 列:第一个因素(咖啡因)的组
第 3 列:第二个因素(睾酮)的组
第 3 列:第三个因素(食物数量)的组
第5栏:只是一个ID,不要太在意!
第6栏:性状值(可能与实验后这些小鼠的平均体重的差异)
在这个特定的矩阵中,我们每组有 1 个个体。当然,设计各不相同,每组的人数也各不相同。我们可能有一个 2x3x5 设计(3 个因子,2,3 和 5 个组在第一个、第二个和第三个因子中),每组 12 个 inds。
我的目标:模拟这些治疗的一些效果。
基本上有两种类型的效果:
对治疗的影响(因素.影响对象)
和
治疗之间相互作用的效果(interactions.effects 对象)。
我有两个对象:
> factors.effect
[1] 1 2 3
> interactions.effect
[[1]]
[1] 1 3
[[2]]
[1] 1 2 3
这些对象是“半随机”创建的。
我已经解决了如何应用factor.effect。这是我正在使用的代码。
for (factor.effect in factors.effect){
for (group.effect in unique(groups[,factor.effect+1])[-1]){
groups[which(groups[,factor.effect+1]==group.effect),ncol(groups)] = groups[which(groups[,factor.effect+1]==group.effect),ncol(groups)] + seq(from=0,to=treatment.factors.inloop,length.out=length(unique(groups[,factor.effect+1])))[group.effect]
}
}
treatment.factor.inloop 包含一个整数,表示治疗的最大可能效果。该代码允许随着组数的增加而增加效果。
我的问题是:我怎样才能为interactions.effect计算类似的东西?
因此,如果我们采用interactions.effect [ 1 ](即c(1,3)),如果factor1 和factor3 很高,代码应该增加特征值。但如果这些因素中的任何一个等于 1(第 1 组),则不应添加任何影响。我认为这不是仅仅取两个因素的平均值那么简单。重要的是,这种相互作用效应是渐进的,因为因素效应是渐进的。
如果我然后绘制我的数据,我应该得到类似的结果(如果它不是一个美丽的情节,请道歉!):
非常感谢