在 R 中手动复制标准化 Beta 权重

问题描述 投票:0回答:0

我正在尝试使用以下公式从 R 中的 lm.beta 库手动复制以下标准化 beta 权重输出:

b * Sx / Sy
.

# lm.beta output
             sce           ew
pl    0.04052626 -0.008595548
ed    0.07877526 -0.023042967
fins -0.09066186  0.062338676
hp   -0.11021743  0.181966171

复制的数据如下。

# b
b <- structure(c(0.0502391680619868, 0.0693972485528214, -0.156313543659845, 
                 -0.271869666251473, -0.0183987350917768, -0.0117566158655761, 
                 0.185582953955953, 0.259951673424353), 
               dim = c(4L, 2L), dimnames = list(c("pl", "ed", "fins", "hp"), 
                                                c("sce", "ew")))
# Sx
Sx <- c(pl = 1.21, ed = 2.94, fins = 0.870000000000001, 
        hp = 1.05)

# Sy
Sy <- c(sce = 2.59, ew = 1.5)

所以当我使用下面的脚本时,第二列匹配,

ew
,但是第一列的估计值
sce
估计有很大偏差。

b * Sx / Sy

             sce           ew
pl    0.02347081 -0.008595548
ed    0.13601861 -0.023042967
fins -0.05250687  0.062338676
hp   -0.19030877  0.181966171

然后我使用了以下脚本,现在

sce
ew
行中的两列(
hp
ed
)都有部分匹配,但其他行都关闭了。

SxSy <- t(sapply(Sx, `/`, Sy))

b * SxSy

                 sce           ew
pl        0.02347081  -0.01484165
ed        0.07877526  -0.02304297
fins     -0.05250687   0.10763811
hp       -0.11021743   0.18196617
r lm
© www.soinside.com 2019 - 2024. All rights reserved.