Pesi beta standardizzati per una regressione multilivello


11

Come si possono ottenere pesi di regressione standardizzati (ad effetto fisso) da una regressione multilivello?

E, come "componente aggiuntivo": qual è il modo più semplice per ottenere questi pesi standardizzati da un oggetto mer(dalla lmerfunzione del lme4pacchetto in R)?


In particolare mer o stai chiedendo dei coefficienti del modello lineare?
Robert Kubrick,

In realtà sono più interessato a come farlo in generale (standardizzerei prima tutte le variabili, come nei normali modelli lineari, ma non sono sicuro che tale approccio sia valido nelle MLM). Sopra, vorrei vedere come si fa con gli oggetti lme4. Ho riformulato la domanda di conseguenza!
Felix S,

1
Potresti essere interessato a questo articolo di Andrew Gelman e Iain Pardoe (2007) Confronti predittivi medi per modelli con componenti di non linearità, interazioni e varianza .
Andy W,

Risposte:


9

Basta ridimensionare le variabili esplicative in modo da avere la media di zero e la varianza di una prima di inserirle nel modello. Quindi i coefficienti saranno tutti comparabili. La natura mista degli effetti del modello non influisce su questo problema.

Il modo migliore per farlo, e probabilmente per non sbagliare, è usare scale () prima di adattare il modello.


Grazie, questo è quello che volevo sapere: riscalare in senso lato (ignorando la struttura del gruppo ...).
Felix S,

3

Per un modo rapido per ottenere i coefficienti beta standardizzati direttamente da qualsiasi modello lm (o glm) in R, prova a utilizzare lm.beta(model)dal pacchetto QuantPsyc. Per esempio:

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

library(QuantPsyc)
lm.beta(glmModel)

1
In questa e-mail Ben Bolker ha tradotto questa funzione in "terra-terra".
crsh

Ma il codice collegato che Ben fornisce in realtà non funziona come scritto in quell'email, non sembra. Include parole / pseudocodice .... Modifica: la risposta a questa domanda fornirà il codice di lavoro: stats.stackexchange.com/questions/123366/…
Bajcz

2

Per i modelli lineari standard regrediti con lm () puoi ridimensionare () i dati dei tuoi predittori o semplicemente usare questa semplice formula:

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

Supponendo di aver impostato l'output del lmermodello in uso lmer.results, fixef(lmer.results)verranno restituiti i coefficienti di effetti fissi complessivi.


2
Non saranno "standardizzati", vero? Ho letto la domanda come voler conoscere la dimensione degli effetti fissi se le variabili esplicative fossero tutte sulla stessa scala.
Peter Ellis,

Non so che è possibile ottenere i coefficienti standardizzati da un meroggetto: non compaiono nel riepilogo, quindi presumo che i lme4metodi non li creino. fixef()restituirà tutte le informazioni sugli effetti fissi disponibili da un meroggetto.
Michelle,

1
Come già commentato Peter: il focus della domanda era sui coefficienti "standardizzati" ...
Felix S
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.