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

tbl_uvregression线性回归参考类别估计值返回异常问题

解决tbl_uvregression参考行估计值显示0的问题

问题原因

add_estimate_to_reference_rows参数在高斯族线性回归(family = gaussian)且exponentiate = F时,默认会将参考类别的估计值设为0——这是因为线性回归中参考组的效应是相对于自身的基准值,但你需要的是对应模型的截距(即参考组的预测均值)。

解决方案

通过modify_table_body函数手动替换参考行的估计值为对应单变量模型的截距,具体代码如下:

# 生成原始表格
tbl <- tbl_uvregression(
  trial[, c('trt', 'age', 'stage', 'marker', 'death')], 
  method = glm, 
  y = marker, 
  method.args = list(family = gaussian), 
  exponentiate = F, 
  add_estimate_to_reference_rows = T
) %>%  modify_column_hide(columns = p.value)

# 提取每个单变量模型的截距
model_intercepts <- tbl$inputs$models %>%
  purrr::map_dbl(~ coef(.x)[[1]])

# 定位参考行并替换估计值
tbl_fixed <- tbl %>%
  modify_table_body(
    ~ .x %>%
      dplyr::mutate(
        estimate = dplyr::case_when(
          reference_row == TRUE ~ model_intercepts[match(variable, unique(variable))],
          TRUE ~ estimate
        )
      )
  )

# 查看修正后的表格
tbl_fixed

代码说明

  1. 先生成原始的回归表格,保留参考行但此时估计值为0;
  2. 从表格的inputs$models中提取每个单变量模型的截距(截距对应参考组的预测均值);
  3. 通过modify_table_body筛选出reference_row == TRUE的行,将其estimate列替换为对应模型的截距值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:30:05