# 二十二、预测 

> 原文：[prob140/textbook/notebooks/ch22](https://nbviewer.jupyter.org/github/prob140/textbook/tree/gh-pages/notebooks/Chapter_22/) 
> 
> 译者：[吕哲](https://github.com/lvzhetx) 
> 
> 协议：[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) 
> 
> 自豪地采用[谷歌翻译](https://translate.google.cn/) 

```python 
# HIDDEN 
from datascience import * 
from prob140 import * 
import numpy as np 
import matplotlib.pyplot as plt 
plt.style.use('fivethirtyeight') 
get_ipython().run_line_magic('matplotlib', 'inline') 
from scipy import stats 
``` 
## 预测 ## 
这一章节的主要内容是基于一些其他的变量信息来预测一个变量的值,其中，主要预测手段是条件期望，在先前我们已经给出了条件期望的定义，但在这一章中，我们会将它作为一个猜测值，给出一个变量的值来预测另一个变量。 
我们会定义一个比较预测的标准，并且使用这个标准来确定最佳的预测方法。我们将会定义一个量，叫做条件方差，并且使用它来计算、比较不同预测方法的优劣。 
```python 
# HIDDEN 
from datascience import * 
from prob140 import * 
import numpy as np 
import matplotlib.pyplot as plt 
plt.style.use('fivethirtyeight') 
get_ipython().run_line_magic('matplotlib', 'inline') 
from scipy import stats 
``` 
```python 
# HIDDEN 
n = 10000 
a = -2 
b = 2 
z = stats.norm.rvs(size=n) 
y = z**2 + stats.uniform.rvs(a, b-a, size=n) 
xmin = min(z) 
xmax = max(z) 
``` 
```python 
# HIDDEN 
def plot_curved_scatter(): 
plt.scatter(z, y) 
plt.xlabel('$X$') 
plt.ylabel('$Y$', rotation=0) 
plt.xlim(-2, 2) 
plt.ylim(-3, 6); 
``` 
## 映射作为条件期望 ## 
假设我们正在预测一个与随机变量 $X$ 有关的随机变量 $Y$的值。正如你在 Data 8 中所见，比较常见的预测方法就是使用给定 $X$ 的平行于 $Y$ 轴的那条线的中心， 
形式上，给定 $X = x$,我们尝试通过 $E(Y \mid X=x)$ 来预测 $Y$ 的值， 
```python 
# NO CODE 
plot_curved_scatter() 
xstar = 1.25 
ystar = 3 
tbl = Table().with_columns('x', z, 'y', y) 
strip1 = tbl.where('x', are.between(xstar-0.01, xstar+0.012)) 
plt.plot(strip1.column(0), strip1.column(1), color='darkblue') 
strip2 = tbl.where('x', are.between(-0.01, 0.012)) 
plt.plot(strip2.column(0), strip2.column(1), color='darkblue') 
x = np.arange(xmin, xmax+0.01, 0.01) 
plt.plot(x, x**2, color='gold', lw=3) 
plt.title('Gold Curve $E(Y | X=x)$: Centers of Vertical Strips'); 
``` 
![f7526a1ce5268116fd9460a5ef3d9d86.png](evernotecid://F17AA07F-4B92-4CD6-BE14-895C982E4266/appyinxiangcom/20602204/ENResource/p84) 
条件期望 $E(Y \mid X)$ 是一个 $X$ 的函数，这个函数的定义是： 
$$ 
b(x) ~ = ~ E(Y \mid X = x) 
$$ 
我们使用字母 $b$ 来表示给定 $X$ 的值的对于 $Y$ 的最好的猜测。在这一章的后面一点的部分，我们将会准确地说明哪种猜测（期望）是最好的。 
在随机变量表示中， 
$$ 
E(Y \mid X) ~ = ~ b(X) 
$$ 
对于一个点 $(X, Y)$ ，这个预测的误差可以表示为： 
$$ 
D_w = Y - b(X) 
$$ 
下标 $w$ 提示我们，这个误差的意思就是在给定 $X$ 的情况下，$X$ 对应的垂线的中点的值与 $Y$ 真实值的差异。 
```python 
# NO CODE 
plot_curved_scatter() 
x = np.arange(xmin, xmax+0.01, 0.01) 
#plt.plot([xmin, xmax], [1, 1], color='k', lw=3) 
plt.plot(x, x**2, color='gold', lw=3) 
xstar = 1.25 
ystar = 3 
plt.plot([xstar, xstar], [ystar, xstar**2], color='purple', lw=3) 
#plt.plot([xstar, xstar], [xstar**2, 1], color='lime', lw=3) 
plt.scatter(xstar, ystar, color='darkblue', s=30, zorder=3) 
plt.title('$D_w = $ Length of Purple Segment') 
plt.xlim(-2, 2) 
plt.ylim(-3, 6); 
``` 
![484f0b14fe148e16e91da7e4c2fe9ab7.png](evernotecid://F17AA07F-4B92-4CD6-BE14-895C982E4266/appyinxiangcom/20602204/ENResource/p85) 
为了找到预测 $Y$ 时，$b(X)$ 的性质。我们先回忆一下条件期望的知识。 
### 条件期望：复习 ### 
条件期望的性质与期望的性质类似，但是特殊点就在于，它的变量是随机变量，而不是真实的数字。也有一些与普通期望不同的一些特殊的性质。下面是我们给出的一些参考。 
- **线性变换**：$E(aY + b \mid X) ~ = ~ aE(Y \mid X) + b$ 
- **可加性**：$E(Y + W \mid X) ~ = ~ E(Y \mid X) + E(W \mid X)$ 
- **“给定的变量是一个常量”**：$E(g(X) \mid X) ~ = ~ g(X)$ 
- **“分离”常量**：$E(g(X)Y \mid X) ~ = ~ g(X)E(Y \mid X)$ 
- **独立性**：如果 $X$ 和 $Y$ 是相互独立的，那么 $E(Y \mid X) = E(Y)$ 
- **可迭代性**：$E(Y) = E\big{(}E(Y \mid X)\big{)}$ 
现在可得 
$$ 
E(D_w \mid X) ~ = ~ E(Y \mid X) - E(b(X) \mid X) ~ = ~ b(X) - b(X) = 0 
$$ 
换句话说，在一个给定 $X$ 的垂线上的平均误差是 0。 
通过迭代： 
$$ 
E(D_w) ~ = ~ 0 ~~~~~~ \text{and} ~~~~~~ E\big{(}b(X)\big{)} = E(Y) 
$$ 
### $D_w$ 和 $X$ 的函数### 
假设 $g(X)$ 是 关于 $X$ 的任意函数。那么 $g(X)$ 和 $D_w$ 的协变量就是： 
$$ 
Cov\big{(}g(X), D_w\big{)} ~ = ~ E\big{(}g(X)D_w\big{)} 
$$ 
因为 $E(D_w) = 0$。通过迭代， 
$$ 
\begin{align*} 
E(g(X)D_w) ~ &= ~ E\big{(}E(g(X)D_w \mid X)\big{)}\\ 
&= ~ E\big{(}g(X)E(D_w \mid X)\big{)}\\ 
&= ~ 0 
\end{align*} 
$$ 
因此，条件均值的误差，也就是 $D_w$，**是与 $x$ 无关的函数**。 
这个性质被称为正交性，它非常有用，并且在这一章节中将会被重复地使用。用一种不太准确的例子思考，假设 $X$ 的任意一个函数是一个水平桌面上的一个点，想象 $Y$ 是一个略高于桌面的一个点。为了通过 $x$ 找到对应的最接近的 $Y$，我们当然会从 $Y$ 向桌面做垂线。 
- 从 $Y$ 做垂线到桌面上对应的点是 $b(X)$。我们称，给定 $X$ 的 $Y$ 的条件期望就是 $Y$ 在 $X$ 的函数空间上的*映射*。 
- $D_w$ 的值应该是从 $Y$ 垂直映射到桌面的，所以抽象一点，它应该是正交的。 
稍后在这一章中，我们会准确地了解到为什么正交的 $b(X)$ 是对 $Y$ 最好的猜测值。 