使用 GLS 进行预测

机器算法验证 回归 预测 广义最小二乘法
2022-03-29 07:37:25

假设我建立了一个广义最小二乘模型。我遵循标准程序并首先估计一个 LM 模型。然后我根据这个模型的残差创建一个误差响应协方差矩阵。现在我再次构建了一个 LM 模型,只是这次我根据误差响应协方差矩阵指定了权重。

现在假设我想用样本外的 GLS 模型进行预测以测试模型的稳定性。我想确认我可以使用 GLS 估计的系数简单地执行预测,并且不再需要提供权重(特别是因为在残差不可用的预测场景中,无法生成误差响应协方差矩阵)。

后续问题:

我们继续使用来自训练数据的系数对测试数据进行评分。(测试数据的维度由 N 个个体的横截面和 T 个观察值组成。)我们希望产生一致的标准误差。因此,我们不是以 OLS 方式计算估计的标准误差,而是通过“GLS 权重”向量对残差(见下文)进行加权:

SEE 的 OLS 计算:sqrt( sum( ( residuals from linear model ) ^ 2 ) ) / residualDegreeFreedom )

SEE 的 GLS 计算:sqrt( sum( ( residuals from linear model) ^ 2 * glsWeight ) ) / sum( glsWeight ) * length( glsWeight ) / residualDegreeFreedom )

“gls weight”是以通常方式计算的向量,作为在某一日期的每个横截面的残差的方差的倒数(即长度为T的向量)。但是,这里我使用的是来自测试数据的残差,而不是训练数据(实际上这是必需的,否则超时残差的维度将与 GLS 权重向量的维度不匹配)。

违反直觉的是,如果我想在一个人的样本外测量 GLS 模型的 SEE,我需要在样本外对所有个体进行评分(否则构建 GLS 权重向量将是不可能的,因为有没有残差方差)。

问题是 - 在计算 SEE 样本外时我是否需要使用 GLS 权重,或者我可以简单地使用 SEE 的 OLS 计算?

2个回答

假设我们有一个 GLS 模型:

y=Xβ+u,

Euu=Ω.

假设我们要预测y

y=xβ+u,

Goldberger证明了的最佳线性无偏预测如下:y

y^=xβ^+wΩ1u^,

在哪里

β^=(XΩ1X)1XΩ1y,u^=yXβ^

w=Euu

所以你的第一个问题的答案是,如果你使用简单的预测,那么你的预测将不是最优的。另一方面,要使用此公式,您需要知道为此,您需要了解更多有关的信息。戈德伯格在他的文章中讨论了几种特殊情况。wΩ

至于你的第二个问题,我有点不清楚你想要达到什么目标。GLS 模型的问题在于,如果我们使用系数的 OLS 标准误差,那么它们就会有偏差。您提供的公式用于计算误差项的标准误差。但这仅对 OLS 模型有意义,因为对于 GLS 模型,误差项通常不会有唯一的方差。

如果您要预测方差,那么 @whuber 评论成立,您无法在此设置中计算它。基本问题是你预测一个观察结果,所以你得到一个数字。一个数的方差为零。您可以计算的是理论预测方差,但这取决于您要测试的模型。

如果你想计算PRESS:来自折刀程序的残差平方和并用加权它们,我想你会遇到如何计算样本外的相同问题。ΩΩ

来自 GLS的是对有助于平均响应的预测效应的估计,GLS 的假设是的平均值对于每个数据点都是相同的——只有非常量方差和序列允许相关性。因此,要预测一个新数据点,是的,您只需将预测值插入线性预测值即可。观察到的预测误差通常采用如下形式βY|X

i(YiY^i)2

如果测试数据点以与训练数据相同的方式异方差/自相关,则这可能是非独立随机变量总和的平均值。幸运的是,期望的线性,

E(iXi)=iE(Xi)

无论是否独立,它都是正确的,因此您的预测误差不会有偏差。Xi