Inferência inválida quando as observações não são independentes

13

Aprendi nas estatísticas elementares que, com um modelo linear geral, para que as inferências sejam válidas, as observações devem ser independentes. Quando ocorre o agrupamento, a independência não pode mais ser mantida, levando a inferência inválida, a menos que isso seja explicado. Uma maneira de explicar esse cluster é usar modelos mistos. Gostaria de encontrar um exemplo de conjunto de dados, simulado ou não, que demonstre isso claramente. Tentei usar um dos conjuntos de dados de amostra no site da UCLA para analisar dados em 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 menos que esteja faltando alguma coisa, esses resultados são semelhantes o suficiente para que eu não ache que a saída lm()seja inválida. Analisei alguns outros exemplos (por exemplo, 5.2 do Centro de Modelagem Multinível da Bristol University ) e descobri que os erros padrão também não são muito diferentes (não estou interessado nos efeitos aleatórios do modelo misto, mas vale a pena notar que o ICC da saída do modelo misto é 0,42).

Portanto, minhas perguntas são 1) sob quais condições os erros padrão serão marcadamente diferentes quando ocorrer o agrupamento e 2) alguém pode fornecer um exemplo desse conjunto de dados (simulado ou não).

Joe King
fonte
Você pode expandir o que você quer dizer com clustering?
precisa saber é
@bayerj por agrupamento, quero dizer quando as observações que são semelhantes umas às outras são agrupadas em algum tipo de unidade, por exemplo, 10 medições de pressão arterial realizadas em 50 indivíduos.
Joe King

Respostas:

11

Antes de tudo, você está certo de que esse conjunto de dados talvez não seja o melhor para entender o modelo misto. Mas vamos ver primeiro porque

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

Você vê que possui 310 observações e 187 grupos, dos quais 132 têm apenas uma observação. Isso não significa que não devemos usar modelagem multinível, mas apenas que não obteremos resultados muito diferentes, como você afirmou.

Motivação de modelagem multinível

A motivação para usar a modelagem multinível começa no próprio design, e não apenas nos resultados da análise realizada. É claro que o exemplo mais comum é fazer várias observações de indivíduos, mas para tornar as coisas mais extremas para facilitar a compreensão, pense em perguntar a indivíduos de diferentes países ao redor do mundo sobre sua renda. Portanto, os melhores exemplos são aqueles que têm muita heterogeneidade, pois pegar clusters homogêneos no resultado do exame naturalmente não fará muita diferença.

Exemplo

Então, vamos simular alguns dados para tornar as coisas mais claras, a simulação funciona melhor, pois os dados da vida real não são tão óbvios. Imagine que você pega países e pergunta a indivíduos de cada país sobre sua renda e algo mais que tenha um efeito positivo na renda com coeficiente .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))

Então, executando um modelo linear você obtém

> 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 você conclui que xnão tem efeito estatístico em y. Veja quão grande é o erro padrão. Mas executar um modelo de interceptação aleatória

> 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

você vê o quanto o erro padrão da estimativa foi alterado. Observando a parte do efeito aleatório, vemos como a variabilidade foi decomposta - a maior parte da variabilidade de renda ocorre entre países e, dentro dos países, as pessoas têm renda mais semelhante. Em palavras simples, o que aconteceu aqui é que não considerar o efeito de agrupamento xé "se perder" (se é que podemos usar esse tipo de termo), mas decompor a variabilidade que você encontra no que realmente deve obter.

Steve
fonte
+1 Obrigado, isso é ótimo. Embora eu tenha certeza de que lembro de ler várias vezes que os SEs geralmente são menores ao falhar em contabilizar o cluster, então ainda estou um pouco confuso - quais são os cenários em que o modelo linear retornaria um SE muito pequeno?
Joe King
@JoeKing isso é verdade para o SE robusto em cluster, não para a modelagem multinível. Você pode ver isso também na página em ats.ucla, onde você tirou os dados.
Steve
@JoeKing para entender completamente a diferença, veja stats.stackexchange.com/questions/8291/… #
Steve Steve