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

如何在R中合并GLM分析中LS均值一致的区域变量并重构模型?

在R中合并区域变量并重建GLM(对应SAS ESTIMATE合并操作)

你需要先创建合并后的新区域变量,再用该变量重新拟合广义线性模型,具体操作步骤如下:

1. 创建合并后的新区域变量

假设你的数据框为df,原区域变量名为Region,要合并的目标区域是BB、KE、ZA,可通过两种方式实现:

方式一:基础R实现

# 生成新变量,将目标区域合并为"BB-KE-ZA",其余区域保留原名称
df$new_Region <- ifelse(df$Region %in% c("BB", "KE", "ZA"), "BB-KE-ZA", as.character(df$Region))
# 转换为因子类型(若原Region为因子,保持分类变量属性)
df$new_Region <- factor(df$new_Region)

方式二:dplyr包实现(更简洁)

library(dplyr)

df <- df %>%
  mutate(new_Region = case_when(
    Region %in% c("BB", "KE", "ZA") ~ "BB-KE-ZA",
    TRUE ~ as.character(Region)
  )) %>%
  mutate(new_Region = factor(new_Region))

2. 重新构建GLM模型

假设原模型以family_income为因变量,包含education、num_children、industry、Region作为自变量,合并后只需将Region替换为新变量new_Region:

# 原GLM模型(示例,需根据数据调整family参数,如gaussian、poisson等)
original_glm <- glm(family_income ~ education + num_children + industry + Region, 
                    data = df, family = gaussian)

# 合并区域后的新GLM模型
new_glm <- glm(family_income ~ education + num_children + industry + new_Region, 
               data = df, family = gaussian)

3. 验证合并结果(可选)

若需确认合并后的最小二乘(LS)均值与SAS中ESTIMATE语句结果一致,可使用emmeans包计算验证:

library(emmeans)

# 计算新区域变量的LS均值
emmeans(new_glm, ~ new_Region)

# 对比原模型中三个目标区域的均值平均值,验证是否与合并后的均值一致
original_emm <- emmeans(original_glm, ~ Region)
mean(original_emm[original_emm$Region %in% c("BB", "KE", "ZA")]$emmean)

内容的提问来源于stack exchange,提问作者Sofia Bániková

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:25:32