如何比较自举回归斜率?


13

让我们假设我有两个数据集,分别具有n个对独立变量x和因变量y的数据对的观察。让我们进一步假设,我想通过将观察值(替换后)自举N次并计算回归y = a + bx来生成每个数据集的回归斜率分布。每一次。我如何比较两个分布,以说斜率明显不同?用于测试分布中位数之间差异的U检验将严重依赖于N,即,我重复自举的次数越多,差异将越显着。我如何计算分布之间的重叠来确定显着差异?

Answers:


19

进行自举以获得比大样本理论所假定的更为稳健的采样分布图。引导时,实际上对您获取的“ bootsamples”数量没有限制;实际上,越多的引导样本就可以更好地近似于采样分布。通常使用引导样本,尽管这个数字并没有什么神奇的。此外,您无需对引导样本进行测试;您可以估算出抽样分布-直接使用它。这是一个算法:B=10,000

  1. 通过对启动观察值进行替换采样,对一个数据集进行一次引导采样。[关于以下评论,一个相关的问题是什么构成用于引导样本的有效“引导观察”。实际上,有几种合法的方法。我将提到两个健壮的函数,它们可让您镜像数据的结构:当您具有观测数据(即,数据在所有维度上采样时,引导观测可以是有序的n元组(例如,一行)例如,如果您有一个预测变量和一个响应变量,则应对采样n 1x y n 1 j y j y Xn1n1 (x,y)有序对。另一方面,在处理实验数据时,未对预测变量值进行采样,而是将实验单位分配给每个预测变量的预期水平。在这种情况下,您可以从预测变量的级别中的每个采样值,然后将这些与该预测变量级别的对应值配对。这样,您将不会在采样。]n1j yjyX
  2. 拟合您的回归模型并存储斜率估计值(称为)β^1
  3. 通过对替换后的启动观察进行采样来获取其他数据集的启动样本n2
  4. 拟合其他回归模型并存储斜率估计值(称为)β^2
  5. 根据两个估算值形成一个统计量(建议:使用斜率差)β^1β^2
  6. 存储统计信息并转储其他信息,以免浪费内存
  7. 重复步骤1-6,次B=10,000
  8. 对斜率差异的自举抽样分布进行排序
  9. 计算与0重叠的bsd的百分比(以较小者为准,右尾为%或左尾为%)
  10. 将此百分比乘以2

此算法作为统计检验的逻辑从根本上类似于经典检验(例如t检验),但是您不假设数据或所得抽样分布具有任何特定分布。(例如,您没有假设正态性。)您所做的主要假设是,您的数据代表了您要采样的样本/要推广到的总体。也就是说,样本分布类似于总体分布。请注意,如果您的数据与您感兴趣的人群无关,那么您就走运了。

如果您不愿意假设正态性,则有些人会担心使用例如回归模型来确定斜率。但是,这种担心是错误的。高斯-马尔可夫定理告诉我们,估计值是无偏的(即,以真实值为中心),所以很好。缺乏正态性仅意味着真实采样分布可能与理论上的正采样分布不同,因此p值无效。引导过程为您提供了一种解决此问题的方法。

关于自举的另外两个问题:如果满足经典假设,则自举的效率(即,功率较小)比参数测试低。其次,当您在分布中心附近进行探索时,自举最有效:均值和中位数很好,四分位数不太好,最小或最大自举必然失败。关于第一点,您可能不需要根据自己的情况进行引导。关于第二点,引导坡度非常好。


尽管我可能是错的,但我认为回归的引导程序必须基于残差而不是原始数据才能得到验证……
西安

@西安,我在自己之前错了,但我不明白为什么您认为只有自举残差才有效。Efron&Tibshirani(1994)的第9.5节说:“自举对对的假设要比自举对残差的敏感性低。即使[线性模型的概率结构]完全错误,自举对所获得的标准误差也会给出合理的答案。” 这暗示着引导程序的应用更加健壮,尽管它们暗示在某些情况下引导程序的效率可能较低。
gung-恢复莫妮卡

我担心自举对子的担心是,您还合并了预测变量的分布,通常在常规线性模型中,预测变量的分布不在图中。这就是为什么我总是教我的学生仅引导残差的原因。
西安

@西安,这很合理,我想我假设是一个观测数据结构。我已经编辑了答案,以添加有关这些问题的更多详细信息。但是,我看不出这意味着自举对必然是无效的。
gung-恢复莫妮卡

在两个独立的数据集之间强制配对是人为的且效率低下。您可以做得更好!
ub

4

si

yi=β0+β1xi+β2si+β3sixi+ϵi
β3
E[yix,si=1]=(β0+β2)+(β1+β3)xiE[yix,si=0]=β0+β1xi.
β3nn2n

如果错误项之间具有相关性,则可能需要稍微更改此过程,因此请回写。

您可以将这种方法推广到看似无关的回归(SUR)框架。这种方法仍然允许截距和斜率的系数在两个数据集中任意不同。


1
是个好主意。但这不还假设两个回归都具有iid错误吗?
ub

1
好点子。它要求各组的误差没有不同的方差,并且各组的误差不相关。
查理

0

在一次回归中做所有事情都很整齐,独立性的假设很重要。但这种方式计算点估计也不会需要不断的变化。试试这个R代码;

x <- rbinom(100, 1, 0.5)
z <- rnorm(100)
y <- rnorm(100)
coef(lm(y~x*z))
coef(lm(y~z, subset= x==1))[1] - coef(lm(y~z, subset= x==0))[1]
coef(lm(y~z, subset= x==1))[2] - coef(lm(y~z, subset= x==0))[2]

无论哪种方式,我们都得到相同的点估计。估计标准误差可能需要恒定的方差(具体取决于您使用的哪一个),但是此处考虑的引导过程不会使用估计的标准误差。


1
如果要测试斜率的差是否为零(如@Charlie的回复,您似乎正在跟进),则需要准确,有效的标准误差估计。是否启动该估计值与否无关紧要。
Whuber
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.