如何使用汇总表将响应和预测变量(均值中心)居中?
Posted
技术标签:
【中文标题】如何使用汇总表将响应和预测变量(均值中心)居中?【英文标题】:how to center the response and predictor( center at mean) variable using the summary table? 【发布时间】:2022-01-14 06:23:49 【问题描述】:**we dont have the data only summary table is given**
Estimate Std. Error t value Pr(>|t|)
(Intercept) -36.8522 12.6560 -2.912 0.005573 **
X1 -0.7120 1.4540 -0.490 0.626747
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 12.27 on 45 degrees of freedom
Multiple R-squared: 0.7377, Adjusted R-squared: 0.7144
F-statistic: 31.63 on 4 and 45 DF, p-value: 1.478e-12
我知道要居中,我需要居中以均值为中心的预测变量具有新值 - 整个尺度已经移动,因此均值现在的值为 0。而且我知道截距会改变,但回归该变量的系数不会。
【问题讨论】:
将变量居中,然后再次运行回归。 在运行模型之前使用函数scale
,以便预测变量值和估计值以标准偏差为单位与平均值
@user2974951 我们没有得到数据,我们只有汇总表
@danlooo 我们没有得到数据,我们只有汇总表
那你就完蛋了。
【参考方案1】:
看起来您可以访问 R 中的模型(因为您提到您可以获得 beta 的方差/协方差矩阵)。如果是这种情况,那么您可以使用模型对其进行转换。
标准化坡度与非标准化坡度的关系为:
beta = b*(sx/sy)
嵌入在所有lm
中的是数据,可以使用以下 R 代码访问:
model$model
(假设拟合的对象称为“模型”)
要获得标准化的坡度,您所要做的就是这样:
get_betas = function(object)
b = summary(object)$coef[, 1]
sx = apply(model.matrix(object), 2, sd)
sy = apply(object$model[1], 2, sd)
beta <- b * sx/sy
return(beta)
然后您将使用该函数来提取测试版
get_betas(model)
【讨论】:
我在一个例子上试过这个,结果没有检查出来。 我误解了 cov.unscaled 是什么。我认为这是预测变量的方差/协方差矩阵......但它实际上是 x'x(-1)。也许有办法从那里到达 X ?让我考虑一下。以上是关于如何使用汇总表将响应和预测变量(均值中心)居中?的主要内容,如果未能解决你的问题,请参考以下文章