我正在尝试使用以下公式从 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