Стандартизированные бета-веса для многоуровневой регрессии

11

Как можно получить стандартизированные (с фиксированным эффектом) веса регрессии из многоуровневой регрессии?

И, как «дополнение»: Каков самый простой способ получить эти стандартизированные веса из mer-объекта (из lmerфункции lme4пакета в R)?

Феликс С
источник
Конкретно мер или вы просите какие-либо линейные модельные коэффициенты?
Роберт Кубрик
На самом деле меня больше интересует, как это сделать вообще (я бы заранее стандартизировал все переменные, как в обычных линейных моделях, но я не уверен, что этот подход действителен в MLM). Выше хотелось бы посмотреть, как это делается с объектами lme4. Я перефразировал вопрос соответственно!
Феликс С
1
Возможно, вас заинтересует эта статья Эндрю Гельмана и Иэйна Пардо (Iain Pardoe, 2007). Средние прогностические сравнения для моделей с нелинейностью, взаимодействиями и компонентами дисперсии .
Энди Ш

Ответы:

9

Просто масштабируйте свои объясняющие переменные, чтобы они имели среднее значение от нуля и дисперсию до того, как поместить их в модель. Тогда все коэффициенты будут сравнимы. Характер смешанных эффектов модели не влияет на эту проблему.

Лучший способ сделать это, и с наименьшей вероятностью ошибиться, это использовать scale () до того, как вы подгоните модель.

Питер Эллис
источник
Спасибо, вот что я хотел знать: изменение масштаба до среднего (игнорирование структуры группы ...).
Феликс С
3

Чтобы быстро получить стандартизированные бета-коэффициенты непосредственно из любой модели lm (или glm) в R, попробуйте использовать lm.beta(model)пакет QuantPsyc. Например:

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

library(QuantPsyc)
lm.beta(glmModel)
CJH
источник
1
В этом электронном письме Бен Болкер перевел эту функцию на lmer-land.
2011 г.
Но связанный код, который предоставляет Бен, на самом деле не функционален, как написано в этом письме, на него не похоже. Он включает слова / псевдокод .... Редактировать: Ответ на этот вопрос предоставит рабочий код: stats.stackexchange.com/questions/123366/…
Bajcz
2

Для стандартных линейных моделей, регрессированных с помощью lm (), вы можете либо масштабировать () данные ваших предикторов, либо просто использовать эту простую формулу:

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.results, fixef(lmer.results)вернет общие фиксированные коэффициенты эффектов.

Мишель
источник
2
Они не будут «стандартизированы», правда? Я прочитал вопрос как желающий узнать размер фиксированных эффектов, если бы все объясняющие переменные были в одном масштабе.
Питер Эллис
Я не знаю, что можно получить стандартизированные коэффициенты от merобъекта - они не появляются в сводке, поэтому я предполагаю, что lme4методы не создают их. fixef()вернет всю фиксированную информацию о эффекте, доступную от merобъекта.
Мишель
1
Как Петр уже прокомментировал: в центре внимания вопроса были «стандартизированные» коэффициенты ...
Феликс С.