預測區間信賴區間

什么是预测区间和置信区间

預測區間信賴區間

什么是预测区间和置信区间

最近需要画带有置信区间的拟合图,其中在matlab的doc中搜索“Confidence and Prediction Bounds”,出现了两种置信区间。
原博客:https://www.cnblogs.com/100thMountain/p/5539024.html

置信区间估计

(confidence interval estimate):利用估计的回归方程,对于自变量 x 的一个给定值 x0 ,求出因变量 y 的平均值的估计区间。

预测区间估计

(prediction interval estimate):利用估计的回归方程,对于自变量 x 的一个给定值 x0 ,求出因变量 y 的一个个别值的估计区间。

预测区间的范围总是要比置信区间的范围要大的。就是说,给定一个X,估计对应Y的平均值平均值比估计一个个别值更精确一点。其实也好理解,估计平均值比估计个别值貌似更简单一点嘛。个别值更容易受一些外界因素影响而有差异性,而平均值则相对稳定些。

例1:

当根据样本建立了回归方程后,假设需要预测以下2个问题:

  1. 今年最大积雪深度为7米,预测今年灌溉面积
  2. 对于那些积雪深度为7米的年份,预测灌溉面积

第一个问题就是一个预测个别值的例子,而第2个问题就是预测一个平均值的例子。

例2:

转自:https://www.6sq.net/question/496481
预测区间:95%的预测区间,意味着,在此总体中随机抽取100个样本,其中大概有95个的个别值会落在这个区间
置信区间:95%的置信区间,意味着,从总体中随机抽取若干样本,其平均值会落在这个范围
所以,从实际意义来说,置信区间比较有意义,预测区间是个别值,仅供参考,布局代表性

置信区间是以样本去估算总体,就是说 95% 的置信区间是指总体的区间,总体均值有95%在这个区间,而不是假如每100 有95个在区间内。
预测区间是指 个体的区间,就是说100个有95个在这个区间。
预测区间更广,置信区间更严谨更窄

总结

置信区间是以样本去估算总体,就是说 95% 的置信区间是指总体的区间,而不是假如每100 有95个在区间内,是指 总体均值有95%在这个区间,那么 预测区间是指 个体的区间,就是说100个有95个在这个区间。预测区间更广,置信区间更严谨更窄
总之,一般比较关注置信区间。
本文主要是粗糙的理解预测区间和置信区间,在matlab的帮助文档中搜索“Confidence and Prediction Bounds”会有更详细的解释(https://ww2.mathworks.cn/help/curvefit/confidence-and-prediction-bounds.html?searchHighlight=Confidence%20and%20Prediction%20Bounds&s_tid=doc_srchtitle)

看到咱们这个题目,不少小伙伴可能好奇了,求预测区间不就是求置信区间吗?

咦,难道这两个指的不是一回事儿?

没错,还真不是一码事儿呢,请看下图:

預測區間信賴區間

有没有发现,图中有件神奇的事情——预测区间比置信区间要宽许多.

这到底是为什么呢?

1. 回归模型

在做回归分析的时候,首先要确定哪些是因变量,哪些是自变量.

因变量,就是因为某些影响因素变化而变化的量,它是被解释或被预测的对象,所以又被称为响应变量. 如果对应到机器学习中,回归模型的因变量就是我们所说的输出.

自变量,就是解释或预测因变量的量,所以又被称为解释变量. 如果对应到机器学习中,回归模型的自变量就是我们所说的输入.

根据因变量与自变量之间是否存在线性关系,回归模型可以分为

  • 线性回归模型
  • 非线性回归模型

根据因变量包含的特征个数,可以分为

  • 一元回归模型
  • 多元回归模型

根据是否具有参数结构,又可以分为

  • 参数回归模型
  • 非参数回归模型
  • 半参回归模型

说起来,回归模型可是占了统计学或者机器学习半边天的模型,真的是聊个一年半载都聊不完的话题.

因此,今天我们只从最简单的一元线性回归出发,解释一下置信区间与预测区间.

一元线性回归模型可以表示为:

y = \beta_0 + \beta_1 x + \epsilon \\

模型中,x 为自变量,y 为因变量,\beta_0\beta_1 为模型参数,\epsilon 为随机误差项.

假如我们现在有一组样本量为 n 样本:

T = \left\{(x_1, y_1), (x_2, y_2), \cdots, (x_n y_n)\right\} \\

样本中 xy 之间的散点图,如下图所示:

預測區間信賴區間

散点图中,各观测点基本上分布在直线周围,这说明,可以选择一元线性回归模型来研究该组数据.

假如模型中误差项 \epsilon 是一个服从正态分布 N(0, \sigma_e^2)的随机变量,那么,y 在每一个样本点处分布的形状相同,但是中心点不同

y_i \sim N(\beta_0 + \beta_1x_i, \sigma_e^2). \\

預測區間信賴區間

这就说明,每给定一个 x = x_iy 都服从期望为 \beta_0 + \beta_1x_i,方差为\sigma_e^2 的正态分布.

我们之后解释置信区间和预测区间时就用到了这里的分布.

如果用期望的形式重写之前的模型,可以表示为:

E(y|x) = \beta_0 + \beta_1x. \\

假设 x 是非随机的,也就说x 的取值是固定的,那么模型可以进一步简化为

E(y) = \beta_0 + \beta_1x. \\

这里的期望形式被称为回归方程,是统计研究中常用的一种表达方式,因为我们在进行建模的s时候大多用的是条件期望来解释模型的,就如同在生活中大家最常用的是平均值.

如果考虑不同分位数水平下的情况,方程左边就不是期望值,而是分位数,那构建的就是分位数模型了. 比如,下面这种样本数据,我们就可以尝试用分位数模型建模.

預測區間信賴區間

这里提到分位数模型,只是为了帮大家打开数据分析的思路,表明获得的数据不同,研究的问题不同,那么建模的目的就不同,需要使用的模型也不同.

2. 参数估计

对于一元线性回归模型

y = \beta_0 + \beta_1 x + \epsilon. \\

该如何进行参数估计呢?

最小二乘法!

这个方法非常有名,因为这样估计参数,方法简单,又具有良好的性质.

預測區間信賴區間

下面咱们就来看看最小二乘法的原理.

简单来说,这个方法其实就是基于损失最小化来的,损失函数用的是平方损失,那么模型在每个点的损失就是

[y_i - (\beta_0 + \beta_1 x_i )]^2, \\

在样本集上的损失和为

\sum_{i=1}^{n}(y_i - \beta_0 - \beta_1 x_i )^2. \\

最小二乘法,就是寻找使平方损失和最小的参数

\arg \min_{\beta_0, \beta_1} \sum_{i=1}^{n}(y_i - \beta_0 - \beta_1 x_i )^2. \\

为方便起见,我们把目标函数记为

Q = \sum_{i=1}^{n}(y_i - \beta_0 - \beta_1 x_i )^2. \\

可能有小伙伴这时候纳闷了,为什么目标函数不用平方损失的均值呢?

\frac{1}{n}\sum_{i=1}^{n}(y_i - \beta_0 - \beta_1 x_i )^2 \\

这是因为,在训练模型的时候,我们用的是同一组样本,这个策略只是为了寻找到使这组样本达到平方损失最小的模型.

对于这组样本而言,{1}/{n} 始终是不变的,那么有没有这个 {1}/{n} 又有何分别呢?

根据奥卡姆剃刀原理,在效果相同的时候,自然是选择更简洁的那个策略啦.

再回到刚才所讲的最小二乘法, 由于目标函数一个凸函数,求最小值,可以通过对目标函数求偏导,令其导函数为 0 获得,

\left\{\begin{aligned} &\frac{\partial Q}{\partial \beta_0} = -2\sum_{i=1}^{n} (y_i - \beta_0 - \beta_1 x_i ) =0 \\ &\frac{\partial Q}{\partial \beta_1} = -2\sum_{i=1}^{n} x_i(y_i - \beta_0 - \beta_1 x_i ) =0 \\ \end{aligned} \right. \\

解上述方程组,将结果记为 \hat{\beta}_0\hat{\beta}_1,即为估计所得参数:

\left\{\begin{aligned} &\hat{\beta}_1 = \frac{n\sum_{i=1}^n x_i y_i - \sum_{i=1}^{n}x_i \sum_{i=1}^{n}y_i}{n\sum_{i=1}^{n}(x_i - \overline{x})^2 } \\ &\hat{\beta}_0 = \overline{y} - \hat{\beta}_1 \overline{x} \\ \end{aligned} \right. \\

这里 \overline{x} = \sum_{i=1}^n x_i/n\overline{y} = \sum_{i=1}^n y_i/n.

拟合所得回归直线为:

\hat{y}_i = \hat{\beta}_0 + \hat{\beta}_1x_i. \\

这里,\hat{y}_i 就是通过训练所得模型计算出来的输出值.

預測區間信賴區間

之所以回顾参数估计,是因为预测时的置信区间和预测区间就是根据这个估计值的来的.

通过简单运算,易得,\hat{\beta}_1 的分布为

\hat{\beta}_1 \sim N(\beta_1, \frac{\sigma_e^2}{\sum_{i=1}^{n}(x_i - \overline{x})^2}) \\

无论是模型的检验(一般只关注于自变量系数),还是下文的回归预测,都不需要 \hat{\beta}_0 的分布,所以这里并未列出.

3. 预测

如果通过各种检验之后,发现咱们训练出的这个模型的确还不错,那么就可以用来做预测啦.

预测其实也就是估计,可以做点估计也可以做区间估计.

拍一下脑袋,直接一想:点估计应该很简单吧,根据训练得到的模型计算一个数值不就可以了.

其实不然,由于含义不同,这里的点估计分为两种:平均值估计和个别值估计.

这两种点估计理解了,下面的置信区间和预测区间,不费吹灰之力就能搞懂.

3.1 置信区间

置信区间其实就是从平均值点估计出发的区间估计.

「平均值估计」

E(y) = \beta_0 + \beta_1x \\

先看这个回归方程,它表示什么含义呢?

对于某个特定的 x = x_0,根据估计所得的参数,可以计算

\hat{y}_0 = \hat{\beta}_0 + \hat{\beta}_1x_0 \cdots (公式1) \\

那么,此处的 \hat{y}_0 表示 E(y_0) 的估计值, 也就是把 y_0 看做随机变量的话,\hat{y}_0 就表示 y_0 所服从的分布的中心点的估计值.

这就是平均值点估计. 但是,若要度量这个预测的可信程度,一个点是不行的,还是得需要区间估计.

「置信区间」

要做区间估计,首先得找到 \hat{y}_0 的分布.

为方便计算,我们先把 \hat{y}_0 分解为两个不相关的随机变量.

\begin{align*} \hat{y}_0 &= \hat{\beta}_0 + \hat{\beta}_1x_0 \\ & = \overline{y} + \hat{\beta}_1(x_0 - \overline{x})\\ \end{align*} \cdots (公式2) \\

从(公式2)可以看出,平均值估计 \hat{y}_0 的分布其实是通过 \overline{y}\hat{\beta}_1 的分布来决定的.

这时候可能有人会问,为什么你不考虑 \overline{x} 分布呢?

这是因为,在给出这个回归模型的时候,我们假设 x 是非随机的,也就是说 \overline{x} 都不是一个随机变量,又何谈分布呢?

在第一小节中,当误差项服从 N(0,\sigma_e^2) 分布时,

y_i \sim N(\beta_0 + \beta_1x_i, \sigma_e^2). \\

可以得到,

\overline{y} \sim N(\beta_0 + \beta_1\overline{x}, \frac{\sigma_e^2}{n}). \\

可见,\overline{y}\hat{\beta}_1 的分布都为正态分布,而两个正态分布变量线性组合之后所得的 \hat{y}_0,也应该服从正态分布.

下面只要求出 \hat{y}_0 的期望和方差就可以了.

期望

\begin{align*} E(\hat{y}_0) &= E\{\overline{y}) + E(\hat{\beta}_1(x_0 - \overline{x})\} \\ & = \beta_0 + \beta_1\overline{x} + (x_0 - \overline{x}) \beta_1 \\ & = \beta_0 + \beta_1x_0 \end{align*} \\

方差

\begin{align*} Var(\hat{y}_0) & = Var(\overline{y}) + Var\{\hat{\beta}_1(x_0 - \overline{x})\} \\ & = Var(\overline{y}) + (x_0 - \overline{x})^2 Var{\hat{\beta}_1} \\ & = \left\{\frac{1}{n} + \frac{(x_0 - \overline{x})^2}{\sum_{i=1}^{n}(x_i - \overline{x})^2}\right\}\sigma_e^2 \end{align*} \\

即,\hat{y}_0 的分布为

N(\beta_0 + \beta_1x_0, \left\{\frac{1}{n} + \frac{(x_0 - \overline{x})^2}{\sum_{i=1}^{n}(x_i - \overline{x})^2}\right\}\sigma_e^2) \\

一般情况下,\sigma_e^2 的值未知,所以只能用估计来替代,

s_e^2 = \frac{\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}{n-2} \\

其中,\hat{y}_i 是对应于 x_i 的回归值.

\frac{(n-2)s_e^2}{\sigma_e^2} \sim\mathcal{X}^2(n-2) \\

所以,

\frac{\hat{y}_0 - (\beta_0 + \beta_1x_0)}{s_e\sqrt{\frac{1}{n} + \frac{(x_0 - \overline{x})^2}{\sum_{i=1}^{n}(x_i - \overline{x})^2}}} \sim t(n-2) \\

给定 1-\alpha 的置信水平的话,区间估计就是

\hat{y}_0 \pm t_{\alpha/2}(n-2)\cdot s_e\sqrt{\frac{1}{n} + \frac{(x_0 - \overline{x})^2}{\sum_{i=1}^{n}(x_i - \overline{x})^2}} \\

这就是给定 x = x_0 的情况下,E(y_0)1-\alpha 置信水平下的置信区间.

3.2 预测区间

预测区间就是从个别值点估计出发的区间估计了.

「个别值点估计」

个别值点估计可以从回归直线来理解.

对于某个特定的值 x = x_0,根据估计所得的参数,可以计算 y 的个别值的点估计:

\hat{y}_0 = \hat{\beta}_0 + \hat{\beta}_1x_0+ \epsilon_0 \cdots (公式3) \\

这里 \hat{y}_0 表示个别值 y_0 的估计值.

因为 y_0 是包含一个随机误差项,所以 \hat{y}_0 实际上应该是包含 \epsilon_0.

只是,在计算 y_0 估计值的时候,默认 \epsilon_0 = 0 罢了.

对比(公式1)和(公式3),大家应该发现,(公式3)等式右边多了一个误差项,这个误差项是一个随机变量.

也就是说,因为看问题的视角不同,一个是平均值角度,一个是个别值角度,所以两个公式左边的 \hat{y}_0 含义不同,对应的分布也不同.

在个别值估计的视角,计算\hat{y}_0 的期望和方差.

期望

\begin{align*} E(\hat{y}_0) &= E\{\overline{y}) + E(\hat{\beta}_1(x_0 - \overline{x})\} + E(\epsilon_0) \\ & = \beta_0 + \beta_1\overline{x} + (x_0 - \overline{x}) \beta_1 + 0\\ & = \beta_0 + \beta_1x_0 \end{align*} \\

方差

\begin{align*} Var(\hat{y}_0) & = Var(\overline{y}) + Var\{\hat{\beta}_1(x_0 - \overline{x})\} + Var(\epsilon_0)\\ & = Var(\overline{y}) + (x_0 - \overline{x})^2 Var{\hat{\beta}_1} + Var(\epsilon) \\ & = \left\{1 + \frac{1}{n} + \frac{(x_0 - \overline{x})^2}{\sum_{i=1}^{n}(x_i - \overline{x})^2}\right\}\sigma_e^2 \end{align*} \\

当用估计值 s_e^2 来替 代\sigma_e^2 时,

\frac{\hat{y}_0 - (\beta_0 + \beta_1x_0)}{s_e\sqrt{1 + \frac{1}{n} + \frac{(x_0 - \overline{x})^2}{\sum_{i=1}^{n}(x_i - \overline{x})^2}}} \sim t(n-2) \\

给定 1-\alpha 的置信水平的话,区间估计就是

\hat{y}_0 \pm t_{\alpha/2}(n-2)\cdot s_e\sqrt{1 + \frac{1}{n} + \frac{(x_0 - \overline{x})^2}{\sum_{i=1}^{n}(x_i - \overline{x})^2}} \\

这就是给定 x = x_0 的情况下,y_01-\alpha 置信水平下的预测区间.

在做预测的时候:

  • 如果是从平均意义视角出发,得到的是一个平均值的区间估计,只和参数有关,所以是置信区间;
  • 如果是从个别样本视角出发,得到的是一个个别致的区间估计,除了与参数有关,还和误差项有关,所以是预测区间;
  • 预测区间比置信区间宽一些(本文只是以一元线性回归为例进行说明,多元线性回归时,也可得到相同的结论).