想想用老鼠做的实验。我们将小鼠分成两组,我们给这些组不同剂量的cafein。我们也可能将接受给定剂量的cafein的每组分成2组,我们给予不同剂量的睾丸激素。我们会有一个所谓的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栏:第一个因素(cafein)的组
第3栏:第二因素(睾丸激素)的组
第3栏:第三因素(食物数量)的组
第5栏:只是一个ID,不要太在意它!第6列:性状值(它可能与实验后这些小鼠的平均体重有差异)
在这个特定的矩阵中,我们每组有1个人。当然,设计各不相同,每组的人数也各不相同。我们可能有2x3x5设计(3个因子,2,3和5组在第1,第2和第3因子中),每组12个ind。
我的目标:模拟这些疗法的一些效果。
基本上有两种效果:
对治疗的影响(因素影响对象)
和
治疗之间相互作用的影响(interaction.effects object)。
我有两个对象:
> factors.effect
[1] 1 2 3
> interactions.effect
[[1]]
[1] 1 3
[[2]]
[1] 1 2 3
这些对象是“半随机”创建的。
我已经解决了如何应用 factors.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包含一个整数,表示治疗的最大可能影响。随着组号的增加,代码可以提高效果。
我的问题是:我如何为interaction.effect计算类似的东西?
因此,如果我们采用interaction.effect [1](即c(1,3)),如果factor1和factor3为高,代码应该增加特征值。但如果这些因素中的任何一个等于1(组1),则不应添加任何效果。我认为这不仅仅是考虑这两个因素的平均值。重要的是,这种互动效应是渐进的,因为因素是影响因素。
如果我然后绘制我的数据,我应该得到类似的东西(如果它不是一个美丽的情节,请道歉!):
非常感谢