观测值不独立时的无效推论


13

我在基本统计中了解到,对于一般的线性模型而言,要使推论有效,观察必须是独立的。发生聚类时,除非考虑到这一点,否则独立性不再可能导致无效的推理。解决这种聚类的一种方法是使用混合模型。我想找到一个示例数据集,无论是否模拟,都可以清楚地说明这一点。我尝试使用UCLA网站上的示例数据集之一来分析聚类数据

> 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

除非我丢失了某些内容,否则这些结果非常相似,以至于我不会认为输出lm()无效。我查看了其他一些示例(例如,来自布里斯托大学多层级建模中心的5.2),发现标准误差也没有太大差异(我对混合模型本身的随机效应不感兴趣,但值得注意的是混合模型输出的ICC为0.42)。

因此,我的问题是:1)在发生聚类时标准误差在什么条件下会明显不同; 2)有人可以提供这样一个数据集的示例(是否模拟)。


您可以扩展群集的含义吗?
bayerj 2014年

@bayerj通过聚类表示,我的意思是当彼此相似的观察结果在某种单位内分组在一起时,例如,对50个人进行10次血压测量。
乔·金

Answers:


11

首先,您是对的,这个数据集可能不是理解混合模型的最佳方法。但是让我们先看看为什么

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

您看到您有310个观测值和187个组,其中132个只有一个观测值。这并不意味着我们不应该使用多级建模,而只是我们不会像您所说的那样获得非常不同的结果。

多层次建模动机

使用多级建模的动机是从设计本身开始的,而不仅仅是从进行的分析的结果开始。当然,最常见的例子是对个人进行多次观察,但是为了使事情变得更加极端以使人们更容易理解情况,可以考虑向世界各地的个人询问收入。因此,最好的例子是那些具有很多异质性的例子,因为采用在检查结果中同质的聚类当然不会有太大的区别。

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))

因此,运行线性模型,您将获得

> 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

并且您得出结论,x没有统计效果y。看看标准误差有多大。但是运行随机拦截模型

> 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

您会看到估算值的标准误差发生了多少变化。看一下随机效应部分,我们看到了可变性如何分解-收入的大部分可变性是在国家之间,而在国家内部,人们的收入更相似。简而言之,这里发生的事情是,没有考虑到群集效应x是“迷失”(如果我们可以使用这种术语),而是分解了可变性,您将发现实际应该得到的。


+1谢谢你,太好了。尽管我确定我记得多次读过,但由于无法考虑聚类,所以SE通常较小,因此我仍然有些困惑-线性模型返回的SE太小会出现什么情况?
乔·金

@JoeKing对于集群健壮的SE而言,这是正确的,对于多层建模则不然。您也可以在ats.ucla的页面中看到数据。
史蒂夫

@JoeKing可以完全了解差异外观stats.stackexchange.com/questions/8291/…–
史蒂夫(Steve)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.