如何使用汇总表将响应和预测变量(均值中心)居中?

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 ?让我考虑一下。

以上是关于如何使用汇总表将响应和预测变量(均值中心)居中?的主要内容,如果未能解决你的问题,请参考以下文章

如何居中对齐 flexbox 容器? [复制]

如何居中对齐测验标题中心下方的一组单选按钮并保持响应?

在引导响应页面中如何使 div 居中

深度学习时间序列预测如何构建矩阵

在预测之前是不是有必要对数据进行中心化和缩放?

仅对包含分类级别的变量使用“tidyverse”获取使用和响应的平均值