通过协变量的相互作用比较回归线的斜率

时间:2018-05-25 15:16:50

标签: r regression lm anova mixed-models

我在这个主题上发现了很多问题,但没有一个类似于我的情景。这主要是一个一般的统计方法问题,但是有关如何在R中处理此类数据的任何有用信息都非常感谢!

这是一项生物学研究,我有三个独立的突变,“A,B和C”,我用它来创建基因型。对于我的研究设计,我有一个因变量(Distance)和一个自变量(Load)。我在以下基因型中测量:

Genotypes:

Reference
A
B
C
A:B
A:C
B:C
A:B:C

即。我的参考基因型中有给定负荷的背景水平。我想测试的是每个突变(A,B或C)和组合突变(AB,AC,BC,ABC)对给定负荷的距离的贡献。我的计划是测试由不同基因型产生的回归的斜率是否彼此显着不同。这将允许我确定距离的损失是否是由于负载的添加剂增加,或者某些基因型在增加负荷的情况下更快或更慢地失去距离。

我不确定是否/如何使用ANCOVA或混合效果模型来解决这个问题。

我有类似的方法,我看到距离因基因型而异。在该示例中,我的数据结构如下所示(csv):

Genotype, Distance, A, B, C
Reference, 15, 0, 0, 0
Reference, 16, 0, 0, 0
A, 15, 1, 0, 0
A, 16, 1, 0, 0
B, 12, 0, 1, 0
B, 11, 0, 1, 0
C, 15, 0, 0, 1
C, 15, 0, 0, 1
AB, 3, 1, 1, 0
AB, 4, 1, 1, 0
AC, 13, 1, 0, 1
AC, 14, 1, 0, 1
BC, 8, 0, 1, 1
BC, 9, 0, 1, 1
ABC, 2, 1, 1, 1
ABC, 2, 1, 1, 1

我测量每种基因型的距离(带有重复),并使用数据矩阵来指示基因型有哪些突变: 所以A有1,0,0表示它有A,但不是B,而不是C; AB有1,1,0表示它有A和B,但没有C.等...

然后我用:

 lm<-lm(Distance~A*B*C, data=data)
summary(lm)

测试每个突变对Distance的贡献,并查看是否有任何交互项(例如A:B)是重要的。这使用A,B和C作为连续变量(违反了常态,但它至少是一种方法)。

非常感谢任何帮助,洞察力或指示,任何人都可以指向我。应用这种lm()方法适用于一个因变量和基因型作为自变量,但使用基因型(包括交互)作为第二个自变量的协变量是我在其他问题中没有看到的。

1 个答案:

答案 0 :(得分:1)

使用固定效果模型:

fit.null <- lm(Distance ~ A*B*C + Genotype)

fit.alt<- lm(Distance ~ A*B*C * Genotype)

并使用aov(fit.alt, fit.null)测试嵌套模型。

假设:足够的力量和同方差性:一个简单的技巧,交叉制表freqs <- table(A, B, C, Genotype)并检查any(freqs) < 5。低精度意味着低功耗。

混合效应类比使用方差同质性检验与lme4(也许用户@BenBolker可以评论此模型的优先性):

fit.null <- lmer(Distance ~ A*B*C + (1|Genotype))

fit.alt <- lmer(Distance ~ A*B*C + (A*B*C|Genotype))

您无法在此测试嵌套模型,因为它是对方差组件的测试。这样的测试模型更像是stats.stackexchange.com的问题