Стандартизовані бета-ваги для багаторівневої регресії


11

Як можна отримати стандартизовані (фіксований ефект) ваги регресії з багаторівневої регресії?

І, як "надбудова": Який найпростіший спосіб отримати ці стандартизовані ваги з mer-об'єкта (від lmerфункції lme4пакета в R)?


Зокрема, або ви запитуєте про будь-які коефіцієнти лінійної моделі?
Роберт Кубрик

Насправді мене більше цікавить, як це зробити в цілому (я б попередньо стандартизував всі змінні, як у звичайних лінійних моделях, але я не впевнений, чи підходить цей підхід у MLM). Вище хотілося б побачити, як це робиться з lme4 об’єктами. Я відповідно перефразував це питання!
Фелікс S

Відповіді:


9

Просто розмістіть свої пояснювальні змінні до значення середнього нуля та дисперсії, перш ніж поставити їх у модель. Тоді всі коефіцієнти будуть порівнянні. Характер змішаних ефектів моделі не впливає на це питання.

Найкращий спосіб зробити це, і, найменш ймовірно, піти не так, - використовувати масштаб () перед тим, як підібрати модель.


Дякую, ось що я хотів знати: перехід до великої середньої величини (ігнорування структури групи ...).
Фелікс S

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".
crsh

Але пов'язаний код, який надає Бен, насправді не функціональний, як написано в цьому електронному листі, він не виглядає так. Він включає слова / псевдокод .... Редагувати: Відповідь на це запитання надасть робочий код: 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
Як Петро вже коментував: у центрі уваги питання було про «стандартизовані» коефіцієнти ...
Felix S
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.