如何确定 R 中 WLS 回归的权重?

机器算法验证 r 多重回归 加权回归
2022-03-23 06:18:23

我试图将年龄预测为一组 DNA 甲基化标记的函数。这些预测变量在 0 到 100 之间是连续的。在执行 OLS 回归时,我可以看到方差随着年龄的增长而增加。

因此,我决定拟合加权回归模型。但是,我无法决定如何为我的模型定义权重。我使用了 fGLS 方法,如下所示:

OLSressq <- OLSres^2                 # Square residuals
lnOLSressq <- log(OLSressq)          # Take natural log of squared residuals
aux <- lm(lnOLSressq~X)              # Run auxillary model
ghat <- fitted(aux)                  # Predict g^
hhat <- exp(ghat)                    # Create h^
fGLS <- lm(Y~X, weights = 1/hhat)    # Weight is 1/h^

这些是我的结果:

Call:
lm(formula = Y ~ X, weights = 1/hhat)

Weighted Residuals:
    Min      1Q  Median      3Q     Max 
-4.9288 -1.2491 -0.1325  1.2626  5.1452 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) 23.1009494  5.2299867   4.417 1.64e-05 ***
XASPA       -0.1441404  0.0474738  -3.036  0.00271 ** 
XPDE4C       0.6421385  0.0812891   7.899 1.83e-13 ***
XELOVL2     -0.2040382  0.0866564  -2.355  0.01951 *  
XELOVL2sq    0.0088532  0.0009381   9.438  < 2e-16 ***
XEDARADD    -0.1965472  0.0348989  -5.632 5.98e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.762 on 200 degrees of freedom
Multiple R-squared:  0.9687,    Adjusted R-squared:  0.9679 
F-statistic:  1239 on 5 and 200 DF,  p-value: < 2.2e-16

然而,在弄清楚如何执行 fGLS 方法之前,我尝试了不同的权重,只是想看看会发生什么。我使用 1/(OLS 模型的平方残差)作为权重,结果如下:

Call:
lm(formula = Y ~ X, weights = 1/OLSressq)

Weighted Residuals:
    Min      1Q  Median      3Q     Max 
-1.0893 -0.9916 -0.7855  0.9998  2.0238 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) 30.8756737  1.1355861   27.19   <2e-16 ***
XASPA       -0.1956188  0.0116329  -16.82   <2e-16 ***
XPDE4C       0.6168490  0.0102149   60.39   <2e-16 ***
XELOVL2     -0.1596969  0.0116723  -13.68   <2e-16 ***
XELOVL2sq    0.0078459  0.0001593   49.26   <2e-16 ***
XEDARADD    -0.2492048  0.0068751  -36.25   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1 on 200 degrees of freedom
Multiple R-squared:      1, Adjusted R-squared:      1 
F-statistic: 1.133e+06 on 5 and 200 DF,  p-value: < 2.2e-16

由于残差标准误差较小,R² 等于 1(这甚至可能吗?)并且 F 统计量要高得多,我很想假设这个模型比我通过 fGLS 方法获得的模型更好。然而,在我看来,通过反复试验随机选择权重应该总是产生比你实际尝试用数学方法估计正确权重时更糟糕的结果。

有人可以就我的模型使用哪些权重给我一些建议吗?我也在这里和那里读到过,您不能以与执行 OLS 回归时相同的方式解释 R²。但是应该如何解释它,我是否仍然可以使用它来以某种方式将我的 WLS 模型与我的 OLS 模型进行比较?

2个回答

这里有两个问题

  1. 的方差成反比的权重高斯-马尔可夫定理如是说。Yi

  2. 你不知道个体Yi

如果您有确定性权重,那么您就处于 WLS/GLS 设计的情况。一个传统的例子是当每个观察是多次测量的平均值,而是测量的次数。wiwi

如果您的权重通过少量参数依赖于数据,您可以将它们视为固定的,并在 WLS/GLS 中使用它们,即使它们不是固定的。例如,您可以估计作为拟合的函数并使用 - 这似乎是您在第一个示例中所做的. 这也是线性混合模型中发生的情况,其中模型固定效应部分的权重取决于从数据中估计的方差分量。σ2(μ)μwi=1/σ2(μi)

在这种情况下,可以证明尽管权重存在一些随机性,但它不会影响所得的大样本分布。可以将视为事先知道它们。β^wi

如果您的权重几乎不是确定性的,那么整个事情就会崩溃,并且权重的随机性对于偏差和方差都变得很重要。时,这就是您的第二个示例中发生的情况这是一个显而易见的想法,但它不起作用。的估计方程(正态方程、分数方程) = 其中wi=1/ri2β^

ixiwi(yixiβ)=0
ixi(yixiβ)(yixiβ^)2=0
β^是未加权的估计。如果新的估计值接近旧的估计值(这对于大型数据集应该是正确的,因为两者都是一致的),你最终会得到像 除以平均值为零的变量,这是一个坏信号。
ixi1(yixiβ)=0

所以:

如果您有一个良好的均值模型(以便平方残差对方差近似无偏)并且不过度拟合它们,则可以估计权重。如果你对它们进行过拟合,你会得到一个错误的估计值和不准确的标准误差。β

你为什么使用FLGS?你有残差之间的异方差性和相关性吗?矩阵 var-cov 矩阵是未知的吗?尝试bptest(your_model),如果 p 值小于 alpha(例如,0.05),则存在异方差。然后您应该尝试通过 Durbin Watson 检验了解残差之间是否存在相关性:dwtest(your_model)如果统计量 W 在 1 和 3 之间,则不存在相关性。因此,如果您只有异方差性,则应使用 WLS,如下所示:

mod_lin <- lm(Price~Weight+HP+Disp., data=df)
wts     <- 1/fitted( lm(abs(residuals(mod_lin))~fitted(mod_lin)) )^2
mod2    <- lm(Price~Weight+HP+Disp., data=df, weights=wts)

旧模型也是如此mod2,现在是 WLS。

R-square = 1,太诡异了。也许存在共线性。