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

R语言分段回归工资预测及年龄相关性阈值求解问询

问题1:各分段模型下30岁人群的wage预测

直接构造仅包含age=30的新数据集,调用tidymodels内置的predict()方法即可完成预测,不需要额外调用extract系列函数,同时支持输出置信区间:

# 构造待预测数据集
new_data <- tibble(age = 30)

# 批量生成所有模型的预测结果
model_list <- list(pw3 = pw3_wf_fit, pw4 = pw4_wf_fit, pw5 = pw5_wf_fit, pw6 = pw6_wf_fit)
map_dfr(model_list, ~bind_cols(new_data, 
                               predict(.x, new_data), 
                               predict(.x, new_data, type = "conf_int")),
        .id = "model")

返回结果中.pred列就是对应模型下30岁人群的wage预测值,.pred_lower和.pred_upper分别为95%置信区间的上下限。


问题2:pw6_wf_fit模型下age与wage相关性最强的分界点

你用step_discretize做的是分箱阶跃回归,每个age分箱内的预测wage为固定均值,要找相关性最强的区间可以先提取分箱断点,再计算每个区间内age和wage的相关系数,取系数绝对值最大的区间左端点即可:

# 提取6断点分箱的所有分界值
pw6_breaks <- tidy(extract_recipe(pw6_wf_fit), number = 1) %>% 
  pull(value) %>% 
  as.numeric() %>% 
  sort()

# 给原始数据添加age分箱标签
Wage_with_bin <- Wage %>%
  mutate(age_bin = cut(age, breaks = c(-Inf, pw6_breaks, Inf)))

# 计算每个分箱内age与wage的皮尔逊相关系数
bin_corr <- Wage_with_bin %>%
  group_by(age_bin) %>%
  summarise(corr = cor(age, wage),
            min_age = min(age)) %>%
  arrange(desc(abs(corr)))

# 输出相关性最强区间的最小age值
bin_corr$min_age[1]

如果要判断相邻分箱的wage变化幅度最大的分界点,也可以直接提取模型系数,找绝对值最大的系数对应的分箱分界点:

# 提取pw6模型的回归系数
pw6_coef <- tidy(extract_fit_parsnip(pw6_wf_fit))
pw6_coef %>% arrange(desc(abs(estimate)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:54:01