Skip to content

Latest commit

 

History

History
180 lines (121 loc) · 8.8 KB

12.1.md

File metadata and controls

180 lines (121 loc) · 8.8 KB

随机变量

原文:https://www.bookbookmark.ds100.org/ch/12/prob_random_vars.html

# HIDDEN
# Clear previously defined variables
%reset -f

# Set directory for data loading to work properly
import os
os.chdir(os.path.expanduser('~/notebooks/12'))
# HIDDEN
import warnings
# Ignore numpy dtype warnings. These warnings are caused by an interaction
# between numpy and Cython and can be safely ignored.
# Reference: https://stackoverflow.com/a/40846742
warnings.filterwarnings("ignore", message="numpy.dtype size changed")
warnings.filterwarnings("ignore", message="numpy.ufunc size changed")

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
%matplotlib inline
import ipywidgets as widgets
from ipywidgets import interact, interactive, fixed, interact_manual
import nbinteract as nbi

sns.set()
sns.set_context('talk')
np.set_printoptions(threshold=20, precision=2, suppress=True)
pd.options.display.max_rows = 7
pd.options.display.max_columns = 8
pd.set_option('precision', 2)
# This option stops scientific notation for pandas
# pd.set_option('display.float_format', '{:.2f}'.format)
# HIDDEN
import scipy.stats as stats

几乎所有现实世界中的现象都包含一定程度的随机性,使得数据生成和收集本身就是随机过程。由于我们将模型与这些数据相匹配,因此我们的模型也包含随机性。为了数学上表示这些随机过程,我们使用随机变量。

随机变量是一个代数变量,表示由概率事件确定的数值。在本书中,我们总是使用大写字母(不是希腊字母),如$X$或$Y$来表示随机变量。尽管随机变量可以代表离散的(如 10 人样本中男性的数量)或连续的数量(如洛杉矶的平均温度),但我们将仅在本教材中使用离散随机变量。

我们必须总是指定一个给定的随机变量代表什么。例如,我们可以写下随机变量$x$表示 10 个硬币翻转中的头数。随机变量的定义决定了它可以接受的值。在本例中,$x$只能包含 0$到 10$之间的值。

我们还必须能够确定随机变量接受每个可能值的概率。例如,$x=0$被写为$p(x=0)=(0.5)^ 10$的概率,我们同样可以计算$x$是任何以$0,1,ldots,10 为单位的值的概率。

概率质量函数

随机变量$x$的概率质量函数(pmf)或分布提供$x$接受其每个可能值的概率。如果我们将$\mathbb x 设为$x$可以接受的一组值,并且$x$是$\mathbb x 中的特定值,则$x$的 PMF 必须满足以下规则:

$$ 1) \sum_{x \in \mathbb{X}} P(X = x) = 1 $$$$ 2) \text{ For all } x \in \mathbb{X}, 0 \leq P(X = x) \leq 1 $$

第一条规则规定,$x$sum 到$1$的所有可能值的概率。

第二条规则规定,给定值$x$的每个概率必须介于$0$和$1$之间。

假设我们让 x 美元代表一个公平的六面骰子的一个骰子的结果。我们知道,$x 在 1、2、3、4、5、6 中,$p(x=1)=p(x=2)=\ldots=p(x=6)=\frac 1 6 美元。我们可以绘制$x$的 PMF 作为概率分布:

# HIDDEN

def plot_pmf(xs, probs, rv_name='X'):
    plt.plot(xs, probs, 'ro', ms=12, mec='b', color='b')
    plt.vlines(xs, 0, probs, colors='b', lw=4)
    plt.xlabel('$x$')
    plt.ylabel('$P(X = x)$')
    plt.ylim(0, 1)
    plt.title('PMF of $X$');
# HIDDEN
xk = np.arange(1, 7)
pk = (1/6, 1/6, 1/6, 1/6, 1/6, 1/6)

plot_pmf(np.arange(1, 7), np.repeat(1/6, 6))

plt.yticks(np.linspace(0, 1, 7),
           ('0', r'$\frac{1}{6}$', r'$\frac{2}{6}$', r'$\frac{3}{6}$',
            r'$\frac{4}{6}$', r'$\frac{5}{6}$', '1'));

关节分布

单随机变量的 PMF 概念自然地扩展到多随机变量的联合分布。特别是,两个或多个随机变量的联合分布产生这些随机变量同时接受一组特定值的概率。

例如,让随机变量$X$表示 10 个硬币翻转中的头数,让$Y$表示同一组 10 个硬币翻转中的尾部数。我们可以注意到:

$$P(X=0, Y=10) = P(X=10, Y=0) = (0.5)^{10}$$

同时$P(x=6,y=6)=0 美元,因为我们不可能在 10 个硬币翻转中有 6 个头部和 6 个尾部。

边际分布

有时,我们从两个随机变量$X$和$Y$的联合分布开始,但只想找到$X$的分布。这个分布称为边际分布。为了找出$x$接受某个特定值的概率,我们必须考虑所有可能的$y$值(用$\mathbb y 表示),这些值可以与$x$同时发生,并对所有这些联合概率求和:

$$ \begin{aligned} \sum_{y \in \mathbb{Y}} P(X=x, Y=y) &= P(X=x) \end{aligned} $$

我们可以证明如下身份:

$$ \begin{aligned} \sum_{y \in \mathbb{Y}} P(X=x, Y=y) &= \sum_{y \in \mathbb{Y}} P(X=x) \times P(Y=y ; \vert ; X=x)\ &= P(X=x) \times \sum_{y \in \mathbb{Y}} P(Y=y ; \vert ; X=x)\ &= P(X=x) \times 1 \ &= P(X=x) \end{aligned} $$

在这个证明的最后一行中,我们将$y\;\vert\;x=x$作为一个带有未知 pmf 的随机变量。这一点很重要,因为我们使用了一个属性,即 pmf 中的概率总和为 1 美元,这意味着在 mathbb y p(y=y \ vert \ x=x)=1 美元。

独立随机变量

像事件一样,两个随机变量可以是相依的或独立的。任何两个随机变量都是独立的,只要知道一个变量的结果不会改变观察另一个变量任何结果的概率。

例如,假设我们把一枚硬币掷十次,让$x$作为头的数目,让$y$作为尾的数目。显然,$x$和$y$是因变量,因为知道$x=0$意味着$y$必须等于$10$。如果我们没有观察到$X$的值,$Y$可以以非零概率在$0$和$10$之间取任何值。

我们可以做两组十次翻转。如果$x$是第一组翻转中的头数,$y$是第二组翻转中的头数,$x$和$y$是独立的,因为第一组十个翻转的结果不会影响第二组翻转的结果。

年龄的例子

假设我们有一个由四个人组成的小数据集:

# HIDDEN
data={"Name":["Carol","Bob","John","Dave"], 'Age': [50,52,51,50]}
people = pd.DataFrame(data)
people
姓名 年龄
颂歌 五十
--- --- ---
1 个 鲍勃 五十二
--- --- ---
约翰 五十一
--- --- ---
戴夫 50
--- --- ---

假设我们从这个数据集中抽取两个人进行替换。如果随机变量$Z$代表样本中第一和第二个人的年龄差异,那么$Z$的 PMF 是什么?

为了解决这个问题,我们定义了两个新的随机变量。我们将$X$定义为第一个人的年龄,$Y$定义为第二个人的年龄。那么,$Z=X-Y$就可以了。然后,我们找到 x$和 y$的联合概率分布:x$和 y$可以同时接受的每个值的概率。在这种情况下,请注意$x$和$y$是独立的,分布相同;这两个随机变量表示来自同一数据集的两个独立的提取,第一个提取对第二个提取没有影响。例如,$x=51$和$y=50$的概率是$p(x=51,y=50)=\frac 1 4 \cdot\frac 2 4 frac 2 16。以类似的方式,我们得到:

Y=50 美元 Y=51 美元 Y=52 美元
X=50 美元 4/16 2/16 2/16
X=51 美元 2/16 1/16 1/16
X=52 美元 2/16 1/16 1/16

现在让我们考虑一下这样的情况:我们从上面相同的数据集中抽取两个人,但没有替换。如前所述,我们将$X$定义为第一个人的年龄,$Y$定义为第二个人的年龄,$Z=X-Y$。但是,现在$X$和$Y$不是独立的;例如,如果我们知道$X=51$,那么$Y\neq 51$。我们发现 X 美元和 Y 美元的联合分配如下:

$Y=50$ $Y=51$ $Y=52$
$X=50$ 2/12 2/12 2/12
$X=51$ 2/12 1/12
$X=52$ 2/12 1/12 0

我们还可以从表中找到$Y$的边际分布。

$$ \begin{aligned} P(Y = 50) &= P(Y = 50, X = 50) + P(Y = 50, X = 51) + P(Y = 50, X = 52) \ &= \frac{2}{12} + \frac{2}{12} + \frac{2}{12} \ &= \frac{1}{2} \ P(Y = 51) &= \frac{2}{12} + 0 + \frac{1}{12} = \frac{1}{4} \ P(Y = 52) &= \frac{2}{12} + \frac{1}{12} + 0 = \frac{1}{4} \end{aligned} $$

注意,我们对上面的联合分布表的每一列进行了汇总。我们可以想象计算每一列的总和,并将结果写在下表的空白处;这是术语边际分布的起源。

您还应该注意到,$X$和$Y$在没有替换的情况下采样时是不独立的。例如,如果 x=52 美元,$y\neq 52 美元。然而,$x$和$y$的边际分布仍然相同。

摘要

在本节中,我们将介绍随机变量,即根据随机过程获取值的数学变量。这些结果必须完全准确地定义,每个结果都必须有明确的发生概率。随机变量可以用来表示许多随机现象,包括数据收集过程。