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

如何在回归分析结果数据框中添加p值?

如何在回归结果数据框中添加p值?

你当前生成回归结果数据框的代码如下:

results <- data.frame(prov = rownames(reg1$coefficients), b = reg1$coefficients, se = 0)
results$se[!is.na(reg1$coefficients)] <- reg1$se
results

运行后得到的结果:

prov            b         se
ln_Y             ln_Y  1.028167431 0.02080551
ln_E             ln_E  1.031713536 0.01992422
ln_DIST       ln_DIST -0.667898564 0.03304988
CNTG             CNTG  0.438520721 0.08357299
LANG             LANG -0.013346340 0.08555195
CLNY             CLNY  0.445627119 0.13327170
RTA               RTA  0.003917042 0.04995412
ln_REM_EXP ln_REM_EXP  1.176112822 0.09881562
ln_REM_IMP ln_REM_IMP  1.186171498 0.08737484

要添加p值,只需在现有代码基础上通过t统计量计算双侧p值即可,修改后的代码如下:

# 构建包含变量名、系数、标准误的基础数据框
results <- data.frame(
  prov = rownames(reg1$coefficients),
  b = reg1$coefficients,
  se = reg1$se  # 直接赋值,无需先设0再替换
)

# 计算t统计量:系数除以标准误
results$t_stat <- results$b / results$se

# 计算双侧p值:利用t分布的尾部概率,自由度取回归模型的残差自由度
results$p_value <- 2 * pt(abs(results$t_stat), df = reg1$df.residual, lower.tail = FALSE)

# 查看最终结果
results

说明:

  • 若你的reg1是lm()拟合的回归对象,reg1$df.residual会自动给出残差自由度,无需手动计算;如果是其他类型的回归模型,需要替换为对应模型的自由度数值
  • 双侧p值的计算逻辑:取t统计量的绝对值,计算右侧尾部概率后乘以2,对应回归分析中常用的双侧检验标准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:23:28