You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中将分组线性模型(LM)代码适配为广义线性模型(GLM)?

将分组LM代码修改为GLM实现

你只需要对现有代码做两处关键调整,就能实现按种群分组运行广义线性模型:

  1. 把模型函数从lm()替换为glm()
  2. 为glm()指定分布族(family)参数——这是GLM区别于LM的核心,必须根据你的因变量y的类型选择合适的分布:
    • 若y是连续型数据(和LM场景一致):用family = gaussian()
    • 若y是二分类数据(0/1):用family = binomial()
    • 若y是计数数据:用family = poisson()
    • 其他特殊需求可参考R的?glm文档选择对应分布族

修改后的完整代码如下:

powerana7 <- data_sim6 %>% 
  nest(data = -squid_pop) %>% 
  mutate(model = map(data, ~glm(y~ early_diet_group + 
                                  later_diet_group + 
                                  early_diet_group*later_diet_group + 
                                  age + 
                                  SVL + 
                                  egg_batch + 
                                  individual, 
                                data = .,
                                family = gaussian())), # 替换为你的数据对应的分布族
         tidied = map(model, tidy)) %>% 
  unnest(tidied)

额外说明

  • 务必根据y的实际数据类型选择正确的family,否则模型结果会失真
  • 如果需要自定义链接函数,可以在family参数里补充指定,例如二分类数据用family = binomial(link = "probit")(默认是logit链接,可省略)

内容的提问来源于stack exchange,提问作者Josie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:45:24