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

如何计算回归模型中新预测值的Leverage?

计算回归模型中新预测值的杠杆值(Leverage)

对于新观测的杠杆值,不需要将其加入原数据集重构帽子矩阵,正确做法是利用原模型的设计矩阵信息,通过公式直接计算:

单个新观测的杠杆值:( h_{new} = x_{new} \cdot (X^T X)^{-1} \cdot x_{new}^T )
其中( x_{new} )是新观测对应的含截距项的设计矩阵行向量,( X )是原模型的设计矩阵。

具体实现代码

基于你提供的示例,修改如下:

data("mtcars")
mod = lm(mpg ~ wt + cyl, data = mtcars)
X = model.matrix(mod)
# 计算原模型的(X^T X)逆矩阵,crossprod是t(X)%*%X的高效写法
XTX_inv = solve(crossprod(X))

# 处理新数据,生成与原模型结构一致的设计矩阵(自动包含截距项)
new_dt = data.table(wt = c(2.5, 3.456), cyl = c(4, 8))
X_new = model.matrix(mod$terms, new_dt)

# 计算两个新观测的杠杆值
new_leverage = diag(X_new %*% XTX_inv %*% t(X_new))

代码说明

  • model.matrix(mod$terms, new_dt):确保新数据的设计矩阵和原模型完全匹配(自动添加截距项、变量顺序一致),避免手动构造时出错。
  • diag(X_new %*% XTX_inv %*% t(X_new)):对每个新观测的行向量单独计算杠杆值,最终得到对应两个新预测值的杠杆值向量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:52:06