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


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)

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
Как Петр уже прокомментировал: в центре внимания вопроса были «стандартизированные» коэффициенты ...
Феликс С.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.