前面的各种模型都可以归纳为在解决预测问题,
Q:如何评价预测结果的好坏?
A:预测与观测越接近越好。
Q:如何刻画”接近”?
A:需要定义”距离”,一般我们使用残差的平方和(L2 loss) 记为SS(Sum of Squares) \[ SS = \sum\limits_{i = 1}^n {{{({y_i} - {\varphi _i})}^2} = ||{\bf{y}} - {\bf{\varphi }}|{|^2}} \\ 其中,y_i是实际观测值,\varphi_i是模型预测值。 \] 它是我们给出的预测\(\varphi\)的函数
我们希望最小化残差的平方和(目标)
Q:如果我们只有y的信息,我们应该如何预测?
A:使用均值去预测所有情况
记此时的残差平方和为SST(Sum of Squares Total) \[ SST = \sum\limits_{i = 1}^n {{{({y_i} - {\rm{\bar y}})}^2}} \] 除以n-1后正好是y方差的估计量 \[ Var(y) = \frac{1}{{n - 1}}\sum\limits_{i = 1}^n {{{({y_i} - {\rm{\bar y}})}^2}} \] Q:如果我们还有x的信息,我们能否改进我们的预测?
A:使用各种模型去刻画x与y的关系,记新的预测为\(\hat y_i\)
并记此时的残差平方和为SSE(Sum of Squares Error) \[ SSE = \sum\limits_{i = 1}^n {{{({y_i} - {{\hat y}_i})}^2}} \] 显然SSE<=SST(因为不应该预测得更差, 当R square小于0时,说明模型拟合结果比直接用均值来预测效果更差)。
一个重要的观察是两个平方和的差值仍然是平方和的形式!
记此时的平方和为SSM/SSR(Sum of Squares Model/Regression) \[ SST - SSE = \sum\limits_{i = 1}^n {{{({y_i} - {\rm{\bar y}})}^2}} - \sum\limits_{i = 1}^n {{{({y_i} - {{\hat y}_i})}^2}} = \sum\limits_{i = 1}^n {{{({{\hat y}_i} - {\rm{\bar y}})}^2}} = SSM \] 可以看作当前预测\(\hat y_i\)与底线预测\(\bar y\)之间的差距,
因此我们有重要关系: \[ SST= SSE + SSM \] 事实上任何模型均可以看作是对SST的分解,当数据一定时,SST的值就是确定的, 但是,SSE在SST中占比越小,SSR在SST中占比越大,说明模型预测得越好(SSE越小,SSR越大,说明模型预测得越好)。
将SSR所占SST的比例理解为方差被解释的程度,记为R方 \[ {R^2} = \frac{{SSM}}{{SST}} = 1 - \frac{{SSE}}{{SST}} \] 但R方无法直接回答模型是否统计显著这个问题,因为堆砌参数会不断地增加R方(过拟合)
我们希望公平地比较SSE与SSM,因此我们引入平方和的平均值,
分别记为MSE(Mean Squared Error)和MSM(Mean Squared Mode1) \[ \begin{array}{c} MSE = SSE/(n - p)\\ MSM = SSE/({\rm{p - 1}}) \end{array} \] 其中p为模型参数的个数(包括截距项)。
称分母为各自的自由度(degree of freedom), 原因是SSE和SSM在零假设(模型无用)下服从自由度为n-p和p-1的卡方分布, 进而有两者的比值服从自由度为n-p和p-1的F分布 \[ {F_{{\rm{model}}}} = MSE/MSM \] 将上述所有内容汇总起来 记为方差分析表(ANOVA Table)。
data(mtcars)
mod1 <- lm(mpg~wt, data=mtcars)
anova(mod1)
## Analysis of Variance Table
##
## Response: mpg
## Df Sum Sq Mean Sq F value Pr(>F)
## wt 1 847.73 847.73 91.375 1.294e-10 ***
## Residuals 30 278.32 9.28
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# p=1.294e-10<<0.01,因此模型是显著的
之前的ANOVA可以看作是将当前模型mod1和只保留截距项的最简单模型进行比较; 类似地可推广至比较全模型(Ful1 mode1)和简化模型(Reduced model)
\[ \begin{array}{r} {F_{{\rm{ModelCompare}}}} = \frac{{(SS{E_{reduced}} - SS{E_{full}})/(d{f_{full}} - d{f_{reduced}})}}{{MS{E_{full}}}}\\ = \frac{{(SS{M_{full}} - SS{M_{reduced}})/(d{f_{full}} - d{f_{reduced}})}}{{MS{E_{full}}}} \end{array} \]
# mod1 <- lm(mpg~wt, data=mtcars)
mod2 <- lm(mpg~wt+am, data=mtcars)
anova(mod1, mod2) # 小的放第一个,大的放第二个
## Analysis of Variance Table
##
## Model 1: mpg ~ wt
## Model 2: mpg ~ wt + am
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 30 278.32
## 2 29 278.32 1 0.0022403 2e-04 0.9879
# p=0.9879>0.05,因此在mod2并不比mod1好,即模型在已有wt的情况下,加入am对模型是没有帮助的,因此最终选择mod1。