Standaryzowane wagi beta dla regresji wielopoziomowej


11

Jak uzyskać znormalizowane wagi regresji (efekt stały) z regresji wielopoziomowej?

I jako „dodatek”: Jaki jest najłatwiejszy sposób na uzyskanie tych standardowych wag z obiektu mer-object (z lmerfunkcji lme4pakietu w R)?


W szczególności czy pytasz o jakieś współczynniki modelu liniowego?
Robert Kubrick,

Właściwie bardziej interesuje mnie, jak to zrobić ogólnie (wcześniej znormalizowałbym wszystkie zmienne, jak w zwykłych modelach liniowych, ale nie jestem pewien, czy takie podejście jest prawidłowe w MLM). Powyżej chciałbym zobaczyć, jak to się robi z obiektami lme4. Odpowiednio sformułowałem pytanie!
Felix S

1
Może zainteresować Cię ten artykuł Andrew Gelmana i Iaina Pardoe (2007) Średnie porównania predykcyjne dla modeli z nieliniowością, interakcjami i składnikami wariancji .
Andy W

Odpowiedzi:


9

Po prostu skaluj zmienne objaśniające, tak aby miały średnią zero i wariancję jednej, zanim umieścisz je w modelu. Wtedy wszystkie współczynniki będą porównywalne. Charakter mieszanych efektów modelu nie ma wpływu na ten problem.

Najlepszym sposobem na zrobienie tego i najmniejszym prawdopodobieństwem popełnienia błędu jest użycie skali () przed dopasowaniem modelu.


Dzięki, to właśnie chciałem wiedzieć: przeskalowanie do wielkiego środka (ignorowanie struktury grupy ...).
Felix S

3

Aby szybko uzyskać znormalizowane współczynniki beta bezpośrednio z dowolnego modelu lm (lub glm) w R, spróbuj użyć lm.beta(model)z pakietu QuantPsyc. Na przykład:

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

library(QuantPsyc)
lm.beta(glmModel)

1
W tym e-mailu Ben Bolker przetłumaczył tę funkcję na „lmer-land”.
crsh

Ale połączony kod, który zapewnia Ben, nie działa tak, jak napisano w tym e-mailu, nie wygląda. Zawiera słowa / pseudokod .... Edytuj: Odpowiedź na to pytanie zapewni działający kod: stats.stackexchange.com/questions/123366/…
Bajcz

2

W przypadku standardowych modeli liniowych z regresją za pomocą lm () można albo skalować () dane predyktorów, albo po prostu użyć tej prostej formuły:

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

Zakładając, że ustawiłeś wyjście swojego lmermodelu na lmer.results, fixef(lmer.results)zwróci ogólne ustalone współczynniki efektów.


2
Nie będą one jednak „standaryzowane”, prawda? Przeczytałem pytanie jako chcące poznać rozmiar ustalonych efektów, gdyby wszystkie zmienne objaśniające były w tej samej skali.
Peter Ellis,

Nie wiem, czy można uzyskać znormalizowane współczynniki z merobiektu - nie pojawiają się one w podsumowaniu, więc zakładam, że lme4metody ich nie tworzą. fixef()zwróci wszystkie informacje o stałym efekcie dostępne z merobiektu.
Michelle,

1
Jak już skomentował Peter: pytanie skupiło się na współczynnikach „znormalizowanych” ...
Felix S
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.