R,模拟治疗效果,包括治疗之间相互作用的影响

时间:2013-04-30 08:21:05

标签: r simulation

想想用老鼠做的实验。我们将小鼠分成两组,我们给这些组不同剂量的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),则不应添加任何效果。我认为这不仅仅是考虑这两个因素的平均值。重要的是,这种互动效应是渐进的,因为因素是影响因素。

如果我然后绘制我的数据,我应该得到类似的东西(如果它不是一个美丽的情节,请道歉!): enter image description here

非常感谢

0 个答案:

没有答案