标准化Beta权重可进行多级回归


11

如何从多层次回归中获得标准化(固定效应)回归权重?

并且,作为“附加组件”:从mer-object(从中lmerlme4包功能R)获得这些标准化权重的最简单方法是什么?


特别是mer或您是否需要任何线性模型系数?
罗伯特·库布里克

实际上,我对通常的操作方式更感兴趣(我会像对常规线性模型一样预先对所有变量进行标准化,但是我不确定该方法在MLM中是否有效)。上面,我想看看lme4对象是如何完成的。我相应地改了个问题!
Felix S

1
您可能对Andrew Gelman和Iain Pardoe(2007)的具有非线性,相互作用和方差成分的模型的平均预测比较感兴趣。
Andy W

Answers:


9

在将解释变量放入模型之前,只需将其解释为均值为零且方差为1。然后,系数将全部可比。模型的混合效应性质不会影响此问题。

最好的方法(最不可能出错)是在拟合模型之前使用scale()。


谢谢,这就是我想知道的内容:重新缩放为平均值(忽略组结构...)。
Felix S

3

为了直接从R中的任何lm(或glm)模型直接获得标准化的beta系数,请尝试使用lm.beta(model)QuantPsyc软件包。例如:

library("MASS")
glmModel = glm(dependentResponseVar ~ predictor1 + predictor2, data=myData)
summary(glmModel)

library(QuantPsyc)
lm.beta(glmModel)

1
Ben Bolker 在此电子邮件中将此功能翻译为“ lmer-land”。
crsh 2013年

但是Ben提供的链接代码实际上不像该电子邮件中所写的那样起作用,看起来也不像。它包括字/伪....编辑:在回答这个问题将提供工作代码:stats.stackexchange.com/questions/123366/...
Bajcz

2

对于使用lm()回归的标准线性模型,您可以scale()您的预测变量数据,也可以仅使用以下简单公式:

lm.results = lm(mydata$Y ~ mydata$x1)

sd.y = sd(mydata$Y)
sd.x1 = sd(mydata$x1)
x1.Beta = coef(lm.results)["mydata$x1"] * (sd.x1 / sd.y)

1

假设您将lmer模型的输出设置为lmer.resultsfixef(lmer.results)将返回总体固定效果系数。


2
他们不会被“标准化”,对吗?我将问题理解为如果解释变量都在相同范围内,则想知道固定效果的大小。
彼得·埃利斯

我不知道有可能从mer对象中获取标准化系数-它们不会出现在摘要中,因此我假设这些lme4方法不会创建它们。fixef()将返回mer对象可用的所有固定效果信息。
米歇尔

1
正如彼得已经说过的:问题的重点是“标准化”系数……
Felix S
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.