gpt4 book ai didi

r - 一般线性混合效应 (glmer) 异方差建模

转载 作者:行者123 更新时间:2023-12-04 09:30:39 26 4
gpt4 key购买 nike

我的变量是在一个带有二次抽样设计的随机块上测量的,其中我的处理是 23 次加入。我有 3 个完整的块和每块 6 个样本。示例数据帧有 4 个响应变量(LH、REN、FTT、DFR)、Accesion(处理)、Bloque(块编号)和 Plot(即用于子采样的变量)。数据的头部是:

  Plot Accesion Bloque   LH  REN FTT DFR
1 221 22 1 20.6 1127 23 88
2 221 22 1 20.5 1638 20 88
3 221 22 1 24.5 1319 16 88
4 221 22 1 21.4 960 17 88
5 221 22 1 25.7 1469 18 88
6 221 22 1 25.8 1658 21 88

因此,在所有类型的转换(对数、boxcox、幂等)之后,几乎所有 100 个响应变量的数据都是非正态和异方差的。大多数变量显示卡方或类泊松分布,每次加入都有不同的方差。

Histogram for FTT

到目前为止,我一直致力于使用 glmer() 使用泊松运行广义线性模型效应。 FTT 作为响应变量。我正在使用此代码:
FTTglme = glmer(FTT ~ Accesion + Bloque + (1|Plot), data = Lyc,   
family=poisson(link="identity"))

根据 shapiro.test(),残差是非正态的。我认为,这是因为在残差中观察到了异方差性。作为 Accesion 残差的箱线图,显示了方差的差异:

Boxplot of Residuals by Accesion

预计植物种群之间存在异方差性,但我知道它可以在 glme 内部建模。正如我已经调查过的,我应该添加的代码是:
vf <- varIdent(form=~Accesion)

FTTglme = glmer(FTT ~ Accesion + Bloque + (1|Plot), data = Lyc,
family=poisson(link="identity"), weights = vf)

我想要不同的差异来解释每个加入类别。但我不断收到错误消息:

Error in model.frame.default(data = Lyc, weights = varIdent(form = ~Accesion),  : 
variable lengths differ (found for '(weights)')


有谁知道如何解释 glmer() 中的 Accesions 之间的差异差异?

也欢迎任何其他分析数据的建议。

最佳答案

我已经解决了这个问题。在 glmer() 中,权重参数对应于与原始向量长度相同的向量。为了对异方差建模,我生成了一个方差数据框:

VAR<-aggregate(Lyc[,6],by=list(Lyc$Accesion), var)
colnames(VAR)<-c("Accesion", "Var")

这产生了一个数据帧处理/方差,它的头部是:
 Accesion       Var
1 22 4.369281
2 23 16.251634
3 24 13.911765
4 25 15.404412
5 26 15.895833
6 27 44.838095

然后我创建一个新的数据帧合并两个数据帧
Lyc2<-merge(VAR, Lyc, by="Accesion")

正如我看到的那样做错了 1 次,需要使用逆方差,以纠正方差。
Lyc2$Var<-(1/Lyc2$Var)

在所有数据步骤之后,我运行代码:
FTTglme = glmer(FTT ~ Accesion + Bloque + (1|Plot), data = Lyc2,    
family=poisson(link="log"), weights = Lyc2$Var)

这解决了差异问题:

Corrected variance residuals boxplot

关于r - 一般线性混合效应 (glmer) 异方差建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45788123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com