1

想想用老鼠做的实验。我们将老鼠分成两组,给这些组不同剂量的咖啡因。我们也可以将接受给定剂量咖啡因的每组分成两组,我们给予不同剂量的睾酮。我们将有一个所谓的 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 组),则不应添加任何影响。我认为这不是仅仅取两个因素的平均值那么简单。重要的是,这种相互作用效应是渐进的,因为因素效应是渐进的。

如果我然后绘制我的数据,我应该得到类似的结果(如果它不是一个美丽的情节,请道歉!): 在此处输入图像描述

非常感谢

4

0 回答 0