我正试图使用二项式GLM进行分析,以测试相对计数频率随时间(天)的差异。GLM模型/公式看起来像这样:
(1:2)~一天
我们正在测试天对A1:A2频率的影响。基本上,这是一个二项式广义线性模型,其中A1和A2指的是每个基因的替代等位基因的读取计数,Day是一个多水平因子。另一件事是,我将在许多不同的基因(100个)上进行测试,这样我们就可以进行许多测试。
R中的基本模型公式很简单(例如使用长格式数据集):`
glm(AF1:AF2 ~ Day, data = dfLong, family = "binomial")
但我真的不确定如何构建数据或在Gene变量上循环来完成这项任务?
以下是一个示例数据帧:
> df<-read.csv("test.csv")
> df
Gene A.count_1 A.count_2 Day
1 1 60 40 1
2 2 100 30 1
3 3 100 3 1
4 1 55 100 3
5 2 423 410 3
6 3 191 89 3
7 1 20 10 5
8 2 200 10 5
9 3 100 20 5
我想要的输出是测试Day作为一个因素(而不是数字变量)对每个基因的等位基因计数比率的影响,为每个基因产生p值(例如,在一般情况下,1、2和3,或更多,100s)。
如果能为我指明正确的方向,我们将不胜感激。
谢谢!!
我认为
library('lme4')
m <- lmList(cbind(A.count_1,A.count_2) ~ Day | Gene, data = dfLong,
family = "binomial")
summary(m)
可能应该这么做吗?(从?binomial
,两列矩阵响应被视为{成功次数,失败次数})
这适用于lme4
包附带的一些内置数据:
lmList(cbind(incidence, size-incidence) ~ period | herd,
data = cbpp, family = binomial)