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

如何为波士顿数据集的分位数回归模型计算伪R-squared?

分位数回归伪R-squared的正确计算方法

分位数回归的伪R²需要对比仅含截距项的基准分位数模型的损失来计算,你目前只计算了目标模型的损失值,缺少基准模型的参照,所以得到的不是0-1区间的结果。以下是具体实现步骤:

1. 加载依赖包与数据

library(MASS)
library(quantreg) # rq函数来自该包,需显式加载
data(Boston)

2. 拟合目标模型与基准模型

# 你的分位数回归模型(tau=0.9)
qr_res_0.9 <- rq(medv ~ lstat + rm + crim + dis, tau = 0.9, data = Boston)

# 基准模型:仅包含截距项的分位数回归(tau需与目标模型一致)
qr_null_0.9 <- rq(medv ~ 1, tau = 0.9, data = Boston)

3. 手动计算伪R-squared

分位数回归的伪R²定义为 1 - 模型损失 / 基准模型损失,其中损失由分位数损失函数rho计算:

# 定义分位数损失函数
rho <- function(u, tau = .5) u * (tau - (u < 0))

# 计算目标模型的总损失
V <- sum(rho(qr_res_0.9$resid, qr_res_0.9$tau))
# 计算基准模型的总损失
V0 <- sum(rho(qr_null_0.9$resid, qr_null_0.9$tau))

# 计算伪R²(取值0-1)
pseudo_r2 <- 1 - V / V0
pseudo_r2

4. 用quantreg内置函数快速计算

quantreg包提供了内置方法直接计算伪R²,结果与手动计算一致:

# 直接调用内置函数
pseudoR2(qr_res_0.9, type = "pseudo")

结果说明

该伪R²表示你的模型相比仅截距的基准模型,减少了多少分位数损失,数值越接近1,说明模型对分位数的拟合效果越好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:05:07