随机数据的加权最小二乘回归,比“预期”更频繁地给出大的 t 统计量

机器算法验证 最小二乘 加权回归 广义最小二乘法
2022-03-19 17:26:42

我的问题是关于加权最小二乘回归中 t 统计量的分布。

我发现对于固定Y和随机的Xand W,R 报告的“ t 值”(t 统计量)(在 matlab 中手动单独计算)的绝对值大于 2,接近 10% 的时间(如与约 5% 不同,这对于随机数据来说是预期的)。这是我的代码:

N = 100
runs = 10000
Y = rnorm(N);

tstats = rbind(lapply(seq(10), function(X){W=abs(rnorm(100,1)); X = rnorm(100,1);
                                  summary(lm(Y~X,weights=W))$coefficient[2,3] }))

这段代码只是通过一个循环运行,其中对于每一行M(这是一个 10,000 x 100 随机矩阵)---在给定的迭代中调用该行X---,它得到一组新的随机(非负)“权重”,然后使用权重回归Y并拉出“t值”(即系数的元素(2,3))。由于 W 每次都是随机的,因此和之间的平均相关性应该为 0(如果这可能有影响的话)。XWYW

更糟糕的是,即使我跳过了权重,下面的回归似乎也有 |t-statistic| 大约 10% 的时间也大于 2:

lm( I(Y*sqrt(W)) ~ I(X*sqrt(W)) )

这个回归将有相同的输入,除了我保持截距(常数向量)而不是sqrt(W)像加权回归的情况下那样乘以它。这尤其让我感到困惑。

或者,如果您使用上面的代码,但将lm()此处的加权替换为

lm( Y ~ X )

您将看到系数仅在 5% 的情况下显着。

这里发生了什么?

1个回答

我认为问题在于您正在随机生成权重,与 y 值不相关。在实际加权回归中,方差较低的点将具有较高的权重。由于真正的关系是均值和方差为 0,这意味着离 0 最远的点将与更高的方差一致,因此权重更低,但你没有给它们更低的权重,它们会得到随机的权重,可能高或低给出一些比预期更多的极端值。

如果您通过生成一组权重来更真实地进行模拟,然后根据权重生成具有方差的 Y,然后进行分析(您可以使用同一组 x,或者也随机生成 x),我希望 t -values 行为更正确。

这是一个简单的例子:

tstats <- replicate(1000, { x <- rnorm(N); w <- abs(rnorm(100,1)); 
    y <- rnorm(100, 0, sqrt(1/w));
    coef(summary(lm(y~x, weights=w)))[2,3]})
mean(abs(tstats)>2)

正如预期的那样,我看到了不到 5%。