Standardisierte Beta-Gewichte für eine mehrstufige Regression


11

Wie kann man aus einer mehrstufigen Regression standardisierte Regressionsgewichte (mit festem Effekt) erhalten?

Und als "Add-On": Was ist der einfachste Weg, um diese standardisierten Gewichte aus einem merObjekt zu erhalten (aus der lmerFunktion des lme4Pakets in R)?


Speziell mer oder Sie fragen nach linearen Modellkoeffizienten?
Robert Kubrick

Eigentlich interessiert mich mehr, wie man das allgemein macht (ich würde alle Variablen vorher standardisieren, wie in regulären linearen Modellen, aber ich bin nicht sicher, ob dieser Ansatz in MLMs gültig ist). Oben möchte ich sehen, wie es mit lme4-Objekten gemacht wird. Ich habe die Frage entsprechend umformuliert!
Felix S

1
Sie könnten an diesem Artikel von Andrew Gelman und Iain Pardoe (2007) interessiert sein. Durchschnittliche prädiktive Vergleiche für Modelle mit Nichtlinearität, Wechselwirkungen und Varianzkomponenten .
Andy W.

Antworten:


9

Skalieren Sie einfach Ihre erklärenden Variablen auf den Mittelwert Null und die Varianz Eins, bevor Sie sie in das Modell einfügen. Dann sind alle Koeffizienten vergleichbar. Die gemischten Effekte des Modells wirken sich nicht auf dieses Problem aus.

Der beste Weg, dies zu tun und am wenigsten Fehler zu machen, ist die Verwendung von scale (), bevor Sie das Modell anpassen.


Danke, das wollte ich wissen: Skalieren auf den großen Mittelwert (Ignorieren der Gruppenstruktur ...).
Felix S

3

Verwenden Sie lm.beta(model)das QuantPsyc-Paket , um schnell zu den standardisierten Beta-Koeffizienten direkt aus einem beliebigen lm- (oder glm-) Modell in R zu gelangen. Beispielsweise:

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

library(QuantPsyc)
lm.beta(glmModel)

1
In dieser E-Mail übersetzte Ben Bolker diese Funktion in "lmer-land".
Crsh

Aber der verknüpfte Code, den Ben bereitstellt, funktioniert nicht so, wie er in dieser E-Mail geschrieben ist. Er sieht nicht so aus. Es enthält Wörter / Pseudocode .... Bearbeiten: Die Antwort auf diese Frage liefert den Arbeitscode
Bajcz

2

Für lineare Standardmodelle, die mit lm () regressiert wurden, können Sie entweder Ihre Prädiktordaten skalieren () oder einfach diese einfache Formel verwenden:

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

Angenommen, Sie haben die Ausgabe Ihres lmerModells auf eingestellt lmer.results, fixef(lmer.results)werden die gesamten festen Effektkoeffizienten zurückgegeben.


2
Sie werden jedoch nicht "standardisiert" sein, oder? Ich habe die Frage so gelesen, dass ich die Größe fester Effekte wissen möchte, wenn die erklärenden Variablen alle auf derselben Skala liegen.
Peter Ellis

Ich weiß nicht, dass es möglich ist, die standardisierten Koeffizienten von einem merObjekt zu erhalten - sie erscheinen nicht in der Zusammenfassung, daher lme4gehe ich davon aus, dass die Methoden sie nicht erstellen. fixef()gibt alle Informationen zu festen Effekten zurück, die von einem merObjekt verfügbar sind .
Michelle

1
Wie Peter bereits kommentierte: Der Fokus der Frage lag auf den 'standardisierten' Koeffizienten ...
Felix S
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.