5.2 最小二乘估计

在实际问题中,我们有一系列的观察值,但是我们不知道模型系数 \(\beta_0,\beta_1, \dots, \beta_k\) 的具体值。因此,我们需要利用模型对这些参数进行估计。

最小二乘估计方法通过最小化残差平方和来确定模型的各个参数。也就是说,我们通过最小化下式来确定 \(\beta_0, \beta_1, \dots, \beta_k\) 的估计值: \[ \sum_{t=1}^T \varepsilon_t^2 = \sum_{t=1}^T (y_t - \beta_{0} - \beta_{1} x_{1,t} - \beta_{2} x_{2,t} - \cdots - \beta_{k} x_{k,t})^2. \]

由于它的目标是最小化残差平方和,因此被称为最小二乘估计。寻找最优参数的过程,一般被称为“拟合”模型,或者被称为模型的“学习”或者“训练”。图5.3中的拟合线就是通过该方法得到的。

参数的估计值,一般用 \(\hat\beta_0, \dots, \hat\beta_k\) 来表示。相关方程在5.7节中会详细阐述。

tslm()函数可以将时间序列数据拟合到线性回归模型中。它和广泛用于线性模型的lm()函数非常相似,但不同的是tslm()函数可用于时间序列数据。

示例:美国消费支出

美国消费的多元线性回归模型为: \[ y_t=\beta_0 + \beta_1 x_{1,t}+ \beta_2 x_{2,t}+ \beta_3 x_{3,t}+ \beta_4 x_{4,t}+\varepsilon_t, \] 其中, \(y\) 是实际个人消费支出的百分比变化, \(x_1\) 是实际个人可支配收入的百分比变化, \(x_2\) 是工业产值的百分比变化, \(x_3\) 是个人储蓄的百分比变化, \(x_4\) 是失业率的变化。

以下是关于拟合模型的一些信息。Coefficients的第一列是每个 \(\beta\) 的估计值,第二列是估计值的标准误差(通过重复估计类似数据集上的 \(\beta\) 系数可以获得标准差)。标准误差是 \(\beta\) 的不确定性度量。

fit.consMR <- tslm(Consumption ~ Income + Production + Unemployment + Savings,
  data=uschange)
summary(fit.consMR)
#> 
#> Call:
#> tslm(formula = Consumption ~ Income + Production + Unemployment + 
#>     Savings, data = uschange)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -0.8830 -0.1764 -0.0368  0.1525  1.2055 
#> 
#> Coefficients:
#>              Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)   0.26729    0.03721    7.18  1.7e-11 ***
#> Income        0.71448    0.04219   16.93  < 2e-16 ***
#> Production    0.04589    0.02588    1.77    0.078 .  
#> Unemployment -0.20477    0.10550   -1.94    0.054 .  
#> Savings      -0.04527    0.00278  -16.29  < 2e-16 ***
#> ---
#> Signif. codes:  
#> 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 0.329 on 182 degrees of freedom
#> Multiple R-squared:  0.754,  Adjusted R-squared:  0.749 
#> F-statistic:  139 on 4 and 182 DF,  p-value: <2e-16

对于预测来说,我们并不是特别关心估计系数的 \(t\) 值和 \(p\) 值。 \(t\) 值是估计系数 \(\beta\) 与其标准误差的比值;估计结果的最后一列是 \(p\) 值,若消费支出和相关的预测变量没有显著的关系时, \(p\) 值将会很大。这在检验及研究各预测变量对被预测变量是否有显著影响时很有用,但对于预测本身并不特别有用。

拟合值

我们可以利用回归方程中的估计系数并将误差项设置为零来预测 \(y\) 。我们通常将模型写成如下形式: \[\begin{equation} \hat{y}_t = \hat\beta_{0} + \hat\beta_{1} x_{1,t} + \hat\beta_{2} x_{2,t} + \cdots + \hat\beta_{k} x_{k,t}. \tag{5.2} \end{equation}\] 将训练样本中 \(x_{1,t},\ldots,x_{k,t}\) (其中 \(t=1,\ldots,T\) )的值代入模型中,我们将会得到 \(y_t\) 的预测值,即为模型的拟合值。需要注意的是,这是模型估计得到的训练样本的预测值,而不是 \(y\) 未来真实值的预测值。

下图是美国消费支出百分比变化的拟合值与真实值的比较。图5.6中的时间序列图表明拟合值非常接近实际数据。这一点可以通过散点图5.7中显示的明显的正相关关系来验证。

autoplot(uschange[,'Consumption'], series="真实值") +
  autolayer(fitted(fit.consMR), series="拟合值") +
  xlab("年份") + ylab("") +
  ggtitle("美国消费支出的百分比变化") +
  theme(text = element_text(family = "STHeiti"))+
  theme(plot.title = element_text(hjust = 0.5))
美国消费支出真实值与拟合值的时间序列图。

图 5.6: 美国消费支出真实值与拟合值的时间序列图。

cbind(Data=uschange[,"Consumption"], Fitted=fitted(fit.consMR)) %>%
  as.data.frame() %>%
  ggplot(aes(x=Data, y=Fitted)) +
    geom_point() +
    xlab("拟合值(预测值)") +
    ylab("真实值") +
    ggtitle("美国消费支出的百分比变化") +
    geom_abline(intercept=0, slope=1)+
    theme(text = element_text(family = "STHeiti"))+
    theme(plot.title = element_text(hjust = 0.5))
美国消费支出真实值与拟合值的关系图。

图 5.7: 美国消费支出真实值与拟合值的关系图。

拟合优度

一般用可决系数(\(R^2\))评价线性回归模型对数据的拟合程度。它可以通过计算观测值 \(y\) 和预测值 \(\hat{y}\) 之间的相关性来得出。或者,通过下式计算: \[ R^2 = \frac{\sum(\hat{y}_{t} - \bar{y})^2}{\sum(y_{t}-\bar{y})^2}, \] 可决系数反映了回归模型所能解释的被预测变量的变异占被预测变量总变异的比例。

在简单线性回归模型中, \(R^2\) 也等于 \(y\)\(x\) 的相关系数的平方(假设存在截距项)。

预测值越接近于真实值, \(R^2\) 则会越接近于1。相反,若预测值和真实值不相关,则 \(R^2=0\) (假设存在截距项)。在其它情况下, \(R^2\) 的值则会处在0和1之间。

但是仅仅利用 \(R^2\) 来衡量模型是远远不够的。因为当增加解释变量的个数时, \(R^2\) 值将会不断增加,但这并不意味着更好的模型效果。目前并不存在衡量 \(R^2\) 值好坏的规则, \(R^2\) 值的有效性需要视具体情况而定。因此,利用模型在测试集上的预测结果来衡量模型好坏比直接根据 \(R^2\) 大小来衡量模型更加有效。

示例:美国消费支出

5.7绘制了实际消费支出与拟合值的关系曲线。变量之间的相关系数为 \(r=0.868\)\(R^2= 0.754\) 。从 \(R^2\) 值来看,该模型的拟合效果较好,模型可以解释消费支出75.4%的变异。而5.1节中,利用简单回归模型对数据进行拟合,结果显示其 \(R^2\) 值为0.16。因此,添加三个额外的预测变量可以使模型解释消费数据中更多的变化。

回归的标准误差

另外一个衡量模型拟合效果的指标是残差的标准偏差,通常称之为“残差标准误差”。在上例中,模型的残差标准误差为0.329。它可以通过下式来计算:

\[\begin{equation} \hat{\sigma}_e=\sqrt{\frac{1}{T-k-1}\sum_{t=1}^{T}{e_t^2}}, \tag{5.3} \end{equation}\] 其中, \(k\) 是模型中预测变量的个数。需要注意的是,由于需要估计的参数个数为 \(k+1\) (截距项和 \(k\) 个解释变量),因此上式中分母为 \(T-k-1\)

模型的标准误差和平均误差有一定联系。我们可以将标准误与 \(y\) 的均值或标准差做对比,得到一些关于模型精度的结论。

在生成被预测变量的预测区间时,标准误差将十分有用。我们会在5.6节中详细讨论该内容。