如何解决具有互动和不平衡数据的GLSnlme模型
我有一个土壤pH值数据集和两个解释性因素,一个是5级(土地利用),另一个是> 100级(土壤类型)。数个符合nlme
的GLS模型的数据探索和比较表明,这两个因素之间存在相互作用。我使用GLS而不是lm,因为根据土壤类型,残差中似乎存在一些异质性,我想使用GLS(varIdent
)进行修复。我可以用似然比检验(ML)检验交互作用的重要性,但是我不知道如何在不平衡数据中包括交互作用项和有效值(按土壤类型)。
理想情况下,我将这样编写模型:
gls0 <- gls(pH ~ SoilType * LandUse,weights = varIdent(form=~1|SoilType),data=mydata)
但是它给出了以下错误(因为数据不平衡):
computed "gls" fit is singular,rank 312
因此,我通过交互作用创建了一个新因子,拟合了模型,并检查了交互作用项是否有意义:
gls.ii <- gls(pH ~ ii,data = mydata,na.action = na.omit)
gls.m1 <- gls(pH ~ SoilType + LandUse,data=mydata)
anova(update(gls.ii,method = "ML"),update(glsm1,method = "ML"))
# or
gls.m1 <- gls(pH ~ SoilType,method = "ML"))
我的第一个问题是我无法适应模型gls.ii <- gls(pH ~ ii,weights = varIdent(form=~1|ii),na.action = na.omit)
来解决内存问题(Error: cannot allocate vector of size 17.8 Gb
)。这就是为什么我测试交互项而不在模型中包括误差方差项的原因。
但是我的第二个问题是,是否还有另一种方法可以同时对两个变量指定不平衡数据(不消除观测值以使其平衡)来拟合模型?这样,我可以尝试包含weights = varIdent(form=~1|SoilType)
而不是weights = varIdent(form=~1|ii)
。
我在CrossValidated上发布了问题,但也许在这里更好。特别是,也许任何人都可以让我知道如何解决内存问题。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。