首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中gamlss的随机效应规范

R中gamlss的随机效应规范
EN

Stack Overflow用户
提问于 2021-10-20 15:08:51
回答 1查看 176关注 0票数 1

我想使用gamlss软件包来拟合一个模型,从该包中更多可用的发行版中受益。然而,我很难正确地说明我的随机效应,或者至少我认为这是一个错误,因为如果我将lmer模型的输出与高斯分布进行比较,而gamlss模型与高斯分布的输出不同。如果将无随机效应的lm模型与高斯分布和无随机效应的gamlss模型进行比较,则输出是相似的。

不幸的是,我无法分享我的数据来复制它。这里我的代码:

代码语言:javascript
复制
df <- subset.data.frame(GFW_food_agg, GFW_food_agg$fourC_area_perc < 200, select = c("ISO3", "Year", "Forest_loss_annual_perc_boxcox", "fourC_area_perc", "Pop_Dens_km2", "Pop_Growth_perc", "GDP_Capita_current_USD", "GDP_Capita_growth_perc", 
                                                                                     "GDP_AgrForFis_percGDP", "Gini_2008_2018", "Arable_land_perc", "Forest_loss_annual_perc_previous_year", "Forest_extent_2000_perc"))
fourC <- lmer(Forest_loss_annual_perc_boxcox ~ fourC_area_perc + Pop_Dens_km2 + Pop_Growth_perc + GDP_Capita_current_USD + 
              GDP_Capita_growth_perc + GDP_AgrForFis_percGDP + Gini_2008_2018 + Arable_land_perc + Forest_extent_2000_perc + (1|ISO3) + (1|Year), 
            data = df)
summary(fourC)
resid_panel(fourC)


df <- subset.data.frame(GFW_food_agg, GFW_food_agg$fourC_area_perc < 200, select = c("ISO3", "Year", "Forest_loss_annual_perc_boxcox", "fourC_area_perc", "Pop_Dens_km2", "Pop_Growth_perc", "GDP_Capita_current_USD", "GDP_Capita_growth_perc", 
                                                                                     "GDP_AgrForFis_percGDP", "Gini_2008_2018", "Arable_land_perc", "Forest_loss_annual_perc_previous_year", "Forest_extent_2000_perc"))
df <- na.omit(df)
df$ISO3 <- as.factor(df$ISO3)
df$Year <- as.factor(df$Year)
fourC <- gamlss(Forest_loss_annual_perc_boxcox ~ fourC_area_perc + Pop_Dens_km2 + Pop_Growth_perc + GDP_Capita_current_USD + 
                  GDP_Capita_growth_perc + GDP_AgrForFis_percGDP + Gini_2008_2018 + Arable_land_perc + Forest_extent_2000_perc + random(ISO3) + random(Year), 
                data = df, family = NO, control = gamlss.control(n.cyc = 200))
summary(fourC)
plot(fourC)

如何在gamlss中指定随机效应,使之类似于lmer中的随机效应?

如果我指定随机效果,则使用

代码语言:javascript
复制
re(random = ~1|ISO3) + re(random = ~1|Year)

我得到了以下错误:model.frame.default中的错误(公式= Forest_loss_annual_perc_boxcox ~:可变长度的差异(在“re(随机= ~1 \\ISO3)”中找到)

EN

回答 1

Stack Overflow用户

发布于 2022-01-19 21:35:51

我发现+re(random=~1|x)规范在我的GAMLSS中运行得相当好。您是否已再次检查是否正在从数据集中删除NA?有时na.omit不能正常工作。

看看这个线程,它的错误与您的线程相同,但是在GAM中。您可以尝试使用该代码来删除您的NA

Error in model.frame.default: variable lengths differ

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69648563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档