Inferenza non valida quando le osservazioni non sono indipendenti


13

Ho imparato dalle statistiche elementari che, con un modello lineare generale, affinché le inferenze siano valide, le osservazioni devono essere indipendenti. Quando si verifica il clustering, l'indipendenza potrebbe non essere più ritenuta determinante un'inferenza non valida a meno che ciò non sia giustificato. Un modo per tenere conto di tale clustering è utilizzare modelli misti. Vorrei trovare un set di dati di esempio, simulato o meno, che lo dimostra chiaramente. Ho provato a utilizzare uno dei set di dati di esempio sul sito UCLA per analizzare i dati del cluster

> require(foreign)
> require(lme4)
> dt <- read.dta("http://www.ats.ucla.edu/stat/stata/seminars/svy_stata_intro/srs.dta")

> m1 <- lm(api00~growth+emer+yr_rnd, data=dt)
> summary(m1)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 740.3981    11.5522  64.092   <2e-16 ***
growth       -0.1027     0.2112  -0.486   0.6271    
emer         -5.4449     0.5395 -10.092   <2e-16 ***
yr_rnd      -51.0757    19.9136  -2.565   0.0108 * 


> m2 <- lmer(api00~growth+emer+yr_rnd+(1|dnum), data=dt)
> summary(m2)

Fixed effects:
             Estimate Std. Error t value
(Intercept) 748.21841   12.00168   62.34
growth       -0.09791    0.20285   -0.48
emer         -5.64135    0.56470   -9.99
yr_rnd      -39.62702   18.53256   -2.14

A meno che non mi manchi qualcosa, questi risultati sono abbastanza simili da non pensare che l'output da lm()non sia valido. Ho esaminato alcuni altri esempi (ad esempio 5.2 del Bristol University Centre for Multilevel Modeling ) e ho scoperto che anche gli errori standard non sono terribilmente diversi (non mi interessano gli effetti casuali stessi del modello misto, ma vale la pena notare che l'ICC dall'output del modello misto è 0,42).

Quindi, le mie domande sono 1) a quali condizioni gli errori standard saranno notevolmente diversi quando si verifica il clustering, e 2) qualcuno può fornire un esempio di tale set di dati (simulato o meno).


Puoi espandere ciò che intendi per clustering?
Bayerj,

@bayerj per raggruppamento, intendo quando le osservazioni simili tra loro sono raggruppate all'interno di un qualche tipo di unità, ad esempio 10 misurazioni della pressione arteriosa effettuate su 50 individui.
Joe King,

Risposte:


11

Prima di tutto, hai ragione questo set di dati forse non è il migliore per capire il modello misto. Ma prima diamo un'occhiata al perché

require(foreign)
dt <- read.dta("http://www.ats.ucla.edu/stat/stata/seminars/svy_stata_intro/srs.dta")

length(dt$dnum)          # 310
length(unique(dt$dnum))  # 187 
sum(table(dt$dnum)==1)   # 132

Vedi che hai 310 osservazioni e 187 gruppi, di cui 132 hanno una sola osservazione. Questo non significa che non dovremmo usare la modellazione multilivello, ma solo che non otterremo risultati molto diversi come hai affermato.

Motivazione della modellazione multilivello

La motivazione per utilizzare la modellazione multilivello parte dal design stesso e non solo dai risultati dell'analisi intrapresa. Naturalmente l'esempio più comune è prendere più osservazioni dagli individui, ma per rendere le cose più estreme per dare una situazione più facilmente comprensibile, pensate di chiedere agli individui di diversi paesi del mondo il loro reddito. Quindi i migliori esempi sono quelli che hanno molta eterogeneità, poiché prendere cluster che sono omogenei nel risultato dell'esame ovviamente non farà molta differenza.

Esempio

10100yx0.5

set.seed(1)
I <- 100
J <- 10
n <- I*J
i <- rep(1:I, each=J)
j <- rep(1:J,I)
x <- rnorm(n,mean=0, sd=1)
beta0  <- 1000
beta1  <- 0.5
sigma2 <- 1
tau2   <- 200
u <- rep(rnorm(I,mean=0,sd=sqrt(tau2)),each=J)
y <- beta0 + beta1*x + u + rnorm(n,mean=0, sd=sqrt(sigma2))

Quindi, eseguendo un modello lineare si ottiene

> summary(lm(y~x))

Coefficients:
            Estimate Std. Error  t value Pr(>|t|)    
(Intercept) 999.8255     0.4609 2169.230   <2e-16 ***
x             0.5728     0.4456    1.286    0.199    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Residual standard error: 14.57 on 998 degrees of freedom
Multiple R-squared:  0.001653,  Adjusted R-squared:  0.0006528 
F-statistic: 1.653 on 1 and 998 DF,  p-value: 0.1989

e concludi che xnon ha alcun effetto statistico in y. Guarda quanto è grande l'errore standard. Ma eseguendo un modello di intercettazione casuale

> summary(lmer(y~x + (1|i)))

Random effects:
 Groups   Name        Variance Std.Dev.
 i        (Intercept) 213.062  14.597  
 Residual               1.066   1.032  
Number of obs: 1000, groups:  i, 100

Fixed effects:
            Estimate Std. Error t value
(Intercept) 999.8247     1.4600   684.8
x             0.4997     0.0327    15.3

vedi quanto è cambiato l'errore standard del preventivo. Osservando la parte dell'effetto casuale, vediamo come la variabilità è stata scomposta - la maggior parte della variabilità del reddito è tra i paesi e all'interno dei paesi le persone hanno redditi più simili. In parole semplici, ciò che è accaduto qui è che non tenere conto del raggruppamento dell'effetto xè "perdersi" (se possiamo usare questo tipo di termine), ma decomprimendo la variabilità trovi ciò che dovresti effettivamente ottenere.


+1 Grazie, è fantastico. Anche se sono sicuro di ricordare di aver letto più volte che gli ES sono in genere più piccoli quando non riescono a rendere conto del clustering, quindi sono ancora un po 'confuso: quali sono gli scenari in cui il modello lineare restituirebbe un SE troppo piccolo?
Joe King,

@JoeKing questo è vero per SE robusto cluster, non per la modellazione multilivello. Puoi vederlo anche nella pagina in ats.ucla dove hai preso i dati.
Steve,

@JoeKing per capire completamente la differenza guarda stats.stackexchange.com/questions/8291/…
Steve
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.