【发布时间】:2018-09-11 03:37:00
【问题描述】:
我有一个缺失值的数据集。我使用 mouse 包进行估算,并使用 lm 和 pool 运行我的线性模型以获得结果。我只得到非标准化的 beta 权重。有没有办法获得标准化的 beta 权重?
【问题讨论】:
我有一个缺失值的数据集。我使用 mouse 包进行估算,并使用 lm 和 pool 运行我的线性模型以获得结果。我只得到非标准化的 beta 权重。有没有办法获得标准化的 beta 权重?
【问题讨论】:
有两种方法可以做到这一点(据我所知),可以有很多:
1) 第一种方法:
您需要先扩展数据,因此假设您先估算数据,然后您可以执行以下操作: 玩具示例:
mtcars1 <- mtcars[,c("mpg", "disp", "hp", "wt", "qsec", "drat")]
mtcars_scaled <- data.frame(sapply(mtcars1, scale), stringsAsFactors=F) ##scaling for standardization,
model_fit_st <- lm(mpg ~ disp + wt + drat, data=mtcars_scaled)
这里的 model_fit_st 是您的标准化结果,但它确实具有截距(这有点奇怪,原因是我们使用 lm 提供它,它会生成截距),但是如果您将它与 QuantPsyc::lm.beta 函数进行比较系数值将匹配。
2) 第二种方法:
这里QuantPsyc::lm.beta 可以在您安装 QuantPsyc 包后使用,该包用于生成如下所示的标准化测试版。
QuantPsyc::lm.beta(lm(mpg ~ disp + wt + drat, data=mtcars))
除了截距(在标准化的 beta 中没有截距的感觉)之外,两个结果(通过缩放和 quantpsyc 结果)都在这里匹配。
【讨论】: