原文:prob140/textbook/notebooks/ch09
译者:YAOYI626
自豪地采用谷歌翻译
# HIDDEN
from datascience import *
from prob140 import *
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
%matplotlib inline
import math
from scipy import stats
from scipy import misc
在接下来的几章中,我们将逐步研究以时序为索引的随机过程。 我们已经研究了其中的一些——例如,一系列试验可以被认为是一个随时间变化的随机过程。
自然地,在已经知道目前值的情况下,我们会对未来的过程预测产生兴趣。 接下来,涉及条件概率的方法将会发挥作用。 我们已经了解了其中的一些方法,在本章中我们将进一步研究它们。
本节中的理论并不新鲜。这是古老熟悉的乘法规则。我们将在有关时序索引随机过程的上下文中使用它,在某种方法中我们叫它早期条件作用。
假设 Jo 和 Bo 玩下面这个游戏。 Jo 掷骰子,然后 Bo 掷,然后 Jo 再掷,依此类推,直到第一次他们中的一个掷出点数 6。这个人就是胜利者。
问题。 Jo 获胜的几率是多少?
**答案。**在进行任何计算之前,请注意两个玩家的游戏并不对称。 Jo 拥有先行的优势,可以在第一轮获胜。所以 Jo 胜利的概率应该大于一半。
要确切了解概率的大小,请注意题设中存在自然递归或“更新”。为了赢得胜利,我们可以对前两次投掷进行条件化如下:
- Jo 在第一轮中获胜;
- 或着 Jo 在第 1 轮中掷出非 6 的点数,然后 Bo 在第 2 轮中也掷出非 6 的点数,然后游戏结束 Jo 获胜。
所以在时间 0 时(也就是说,在掷骰子之前),设
这很容易算出答案。
比我们猜测的一半更大一些。
设
现在假设赌徒有一个停止规则:当他的净收益为
每次掷硬币时我们都会记录赌徒的净收益。因此他将从 0 开始,并在他获得
将赌徒净增益的随机变化轨迹可视化为路径是个好主意。这是两张图,假设
# NO CODE
a = 3
b = 7
tosses = make_array(1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1)
fortune = np.cumsum(np.append(0, tosses))
plt.scatter(np.arange(14), fortune, color='k')
plt.plot([0, 13.5], [-1*a, -1*a], lw=2, color='r')
plt.plot([0, 13.5], [b, b], lw=2, color='g')
plt.ylim(-3.5, 10.5)
plt.xlim(-0.2, 13.5)
plt.xticks(np.arange(0, 14, 1))
plt.yticks(np.arange(-3, 11))
plt.xlabel('Tosses')
plt.ylabel('Net Gain')
plt.title('$a = 3$, $b = 7$: A Path to Fortune');
#NO CODE
a = 3
b = 7
tosses = make_array(1,1,1,-1,-1,1,-1,-1,-1,-1,-1)
fortune = np.cumsum(np.append(0,tosses)
plt.scatter(np.arange(12),fortune,color ='k')
plt.plot([0,11.5],[ - 1 * a,-1 * a],lw = 2,color ='r')
plt.plot([0,11.5],[b,b],lw = 2,color ='g')
plt.ylim(-3.5,10.5)
plt.xlim(-0.2,11.5)
plt.xlabel( 'Tosses')
plt.ylabel('Net Gain')
plt.xticks(np.arange(0,12,1)
plt.yticks(np.arange(-3,11)
plt.title(' $a = 3$, $b = 7$:破产之路');
**问题。**赌徒破产的概率是多少?
**答案。**你可以从上面的路径看到,在第一步,赌徒的净增益将是-1 或 1,所以我们必须从第一步开始计算破产概率。
对于任意
我们现在求的概率是
通过第一步的条件,我们得出 p_k 满足的一个等式:
易得“边界情况”为
将等式的左边写为
连续差相等,这意味着
我们仍然假设
a = 3
b = 7
plt.scatter(np.arange(-3,8,1),np.arange(1,-0.1,-0.1),lw = 2,color ='darkblue')
plt.plot([0,0],[0,0.7],lw = 1,color ='r')
plt.plot([ - 3,0],[0.7,0.7],lw = 1,color ='r')
plt.ylim(-0.03,1.03)
plt.xticks(np.arange(-3, 8))
plt.yticks(np.arange(0, 1.1, 0.1))
plt.xlabel('$k$')
plt.ylabel('$p_k$', rotation=2)
plt.title('$a=3$, $b=7$, p=0.5: Chance of Ruin Starting With $\$k$')
对于一般的
赌徒最终获得
对于固定的
如果赌徒押注一枚硬币以 $p \ne 1/2 的价格出售,则方程式变为
其中
像上面一样重新排列它,可得:
这说明连续差异的比率是恒定的,等于
因此破产的可能性是
注意,如果
这是一个破产概率的图表,如前所述
# NO CODE
a = 3
b = 10
p = 0.6
r = (1-p)/p
k = np.arange(-1*a, b+1)
ruin_probs = (r**(a+k) - r**(a+b))/(1 - r**(a+b))
p3 = ruin_probs.item(3)
plt.scatter(k, ruin_probs, lw=2, color='darkblue')
plt.plot([0, 0], [0, p3], lw=1, color='r')
plt.plot([-1*a, 0], [p3, p3], lw=1, color='r')
plt.ylim(-0.03, 1.03)
plt.xticks(np.arange(-1*a, b+1))
plt.yticks(np.arange(0, 1.1, 0.1))
plt.xlabel('$k$')
plt.ylabel('$p_k$', rotation=2)
plt.title('$a=3$, $b=7$, $p=0.6$: Chance of Ruin, Starting With $\$k$');
# HIDDEN
from datascience import *
from prob140 import *
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
%matplotlib inline
设
我们将从一个简单的例子开始来说明这些想法。设$ T
t = [3,4]
s = [5,6,7]
pp = [0.1,0.2,0.3,0.1,0.2,0.1]
jd2 =表()。值('T',t,'S',s)。概率(pp)
jt_dist = jd2.to_joint()
jt_dist
T=3 | T=4 | |
---|---|---|
S=7 | 0.3 | 0.1 |
S=6 | 0.2 | 0.2 |
S=5 | 0.1 | 0.1 |
注意,要查找
3 *(0.3 + 0.2 + 0.1)+ 4 *(0.1 + 0.2 + 0.1)
3.4
这相当于转到表格的每个单元格,用单元格中的概率加权该单元格中
设以
jt_dist.conditional_dist('T', 'S')
T=3 | T=4 | Sum | |
---|---|---|---|
Dist. of T | S=7 | 0.75 | 0.25 | 1.0 |
Dist. of T | S=6 | 0.50 | 0.50 | 1.0 |
Dist. of T | S=5 | 0.50 | 0.50 | 1.0 |
Marginal of T | 0.60 | 0.40 | 1.0 |
三个条件分布中的每一个都是一个独立的分布。因此,它的直方图有一个平衡点,就像
jt_dist.conditional_dist('T','S',show_ev = True)
您可以在对应于
$~E(T \mid S = 5)= 3.5$ $~E(T \mid S = 6)= 3.5$ $~E(T \mid S = 7)= 3.25$
ev_T_given_S = Table()。with_column(
's',s,
'E(T | S = s)',[3.5,3.5,3.25],
'P(S = s)',[0.2,0.4,0.4]
)
ev_T_given_S
s | E(T | S = s) | P(S = s) |
---|---|---|
5 | 3.5 | 0.2 |
6 | 3.5 | 0.4 |
7 | 3.25 | 0.4 |
由于它是一个随机变量,它有一个期望值,我们可以使用非线性函数规则来计算。答案是您将认识到的数量。
ev = sum(ev_T_given_S.column('E(T | S = s)')* ev_T_given_S.column('P(S = s)')
ev
3.4000000000000004
这是正确的:它是
我们从中学到的是,
简而言之,
通常,假设
然后对于
所以对于每个
期望与条件期望之间的关键区别:
-
$E(T)$ ,$T$ 的预期,是一个实数。 -
$E(T \mid S)$ ,给定$S$ 的$T$ 的条件期望是$S$ 的函数,因此是一个随机变量。
由于
假设我们想求一个随机变量的期望,并且假设给出相关随机变量的值时我们很容易求出期望是什么。 迭代期望的规则说我们可以首先找到条件期望,用它来找到我们的答案。
形式上,设 S 和 T 为同一空间下的两个随机变量。且 E(T) = E(E(T \mid S)。
证明:
设
定义随机总和
其中当
请注意,
**问题。**什么是
**答案。**如果
- 固定第一个条件,即
$N$ 的值。给定$N = n$ ,$S$ 是$n$ 个独立同分布变量的总和。那么
这是实数相等。请注意,对所有
- 接下来用随机变量表示法写出条件期望。
这是随机变量的相等。
- 现在使用迭代期望。
这是一个自然得出的答案。这就是加入的项的数量的期望值乘以每个项的期望大小。
这是关于通过条件计算期望的重要注意事项。自然的答案往往是正确的。
在* Galton-Watson 分支过程*中,每个粒子都有一个随机数的后代。假设不同例子的后代数是均值为
**问题。**假设没有死亡,那么在世代 0 到
**答案。**设
所以通过归纳,对于每个
其实 k = 0 的结果也符合上式。所以对 n 代总粒子数的期望是
\mu 的值,即单个粒子的后代数的期望,决定了当 n 变大时这个总数期望的变化趋势。在粒子不会死亡的前提下,如果 \mu <1,当 n \to \infty 时,粒子总数的期望趋于一个正常数。但如果 \mu \ge 1 那么粒子总数的期望将会无限大。
条件期望的最重要属性是我们在本节中研究的迭代。但条件期望具有与期望类似的其他属性。 它们现在表示为随机变量的等式,而不是实数的等式。
浏览列表,你会发现它们都是自然且合理的。证明是常规的;我们不会在这里证明它们。
-
可加性。
$~E(T + U \mid S)= E(T \mid S)+ E(U \mid S)$ -
线性变换。
$~E(aT + b \mid S)= aE(T \mid S)+ b$
另外两个属性形式化了这样一种观点,即给定的变量可以在条件期望中被视为常量。
-
“常量”:设
$g$ 成为一个函数。然后$E(g(S)\mid S)= g(S)$ 。 -
“提出常数”:
$~E(g(S)T \mid S)= g(S)E(T \mid S)$ 。
例如,
虽然我们真诚地希望你不会遇到这么奇怪的随机变量。
# HIDDEN
from datascience import *
from prob140 import *
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
%matplotlib inline
import math
from scipy import stats
from scipy import misc
让我们通过条件得出一些期望。下面的所有计算都涉及早期条件下的随机过程。
一枚正面落地概率为
因为它的项与几何级数中的项形式相同,所以上式被称为
该方法基于用混合随机变量来表示
- 概率为 1 时,必须至少进行一次抛掷。所以
$X = 1 + Y$ ,其中$Y$ 是第一次抛掷之后的随机抛掷次数。 - 有
$p$ 的概率第一次投掷是正面,这时$Y = 0$ 。 - 剩下的概率为
$q$ ,即第一次投掷出现反面,然后该过程独立于以前发生的事情重新开始。也就是说,有$q$ 的概率,$Y = X ^ *$ 其中$X ^ *$ 是$X$ 的独立副本。
因此,通过可加性和平均条件期望,
解出
“直到第一次成功的试验次数”为丰富的例子提供了框架,因为“试验”和“成功”都可以被定义为比投掷硬币和获得正面要复杂得多的设定。一个典型的例子是关于一位教授(或一只猴子)从字母表中的 26 个字母中随机独立抽取,看看他们是否得到了序列datascience
。他们将以概率为 1,通过过高估计他们必须进行的抽取次数。
- 将“试验”定义为随机挑选的 11 个字母。
- 将“成功”定义为,随机挑选的 11 个字母组成序列
datascience
。
第一次出现datascience
为止的试验次数服从参数为 data
结束并且下一个试验以science
开头,那么你可以得到序列datascience
并停止试验,但事实上在我们的计算中这两个块都被称为失败并且试验将继续。
datascience
序列没什么特别之处。无论多长时间,你都可以用任何有限的字母代替它。你只需要用字符串的长度替换 11 即可。
假设我们抛出
**问题。**什么是
**答案。**我们可以通过调整第一次投掷来找到
- 概率为 1 时,
$N = 1 + M$ 其中$M$ 是第一次投掷之后所需的额外投掷次数。 - 第一次投掷是正面的概率为
$p$ ,此时$M = W_T$ ,其中$W_T$ 服从几何分布$(q)$ 。 - 第一次投掷是反面的概率为
$q$ ,此时$M = W_H$ ,其中$W_H$ 服从几何分布$(p)$ 。
所以
在
**问题。**什么是
**答案 1. **我们可以发现这有几种方法。一种方法是通过条件化前两次投掷。
- 第一次投掷是反面的概率为
$p$ ,所以$W_ {HH} = 1 + W ^ *$ 其中$W ^ *$ 是$W_ {HH}$ 的独立副本。 - 前两次投掷为 HT 的概率为
$pq$ ,$W_ {HH} = 2 + W ^ {* *}$ 其中$W ^ {* *}$ 是$W_ {HH}$ 的独立副本。 - 概率
$p ^ 2$ ,前两个投掷是头,$W_ {HH} = 2$ 。
所以如果
所以
通过重复利用
**答案 2. **另一种方法是调整
注意
-
$X$ 之后的第一次投掷出现正面的概率为$p$ ,此时$Y = 1$ 。 -
$X$ 之后的第一次投掷出现反面的概率为$q$ ,此时$Y = 1 + W ^ *$ 其中$W ^ {* *}$ 是$W_ {HH}$ 的独立副本。 - 前两次投掷都出现正面的概率为
$p ^ 2$ ,此时$W_ {HH} = 2$ 。
所以,当
所以
通过重复利用
**答案 2. **另一种方法是条件化
注意
-
$X$ 之后的第一次投掷出现正面的概率为$p$ ,此时$Y = 1$ 。 -
$X$ 之后的第一次投掷出现反面的概率为$q$ ,此时$Y = 1 + W ^ *$ 其中$W ^ *$ 是$W_ {HH}$ 的独立副本。
所以,当
所以
像之前一样。
让我们用公平硬币和正整数
**问题。**游戏的预期持续时间是多少?
**答案。**设
通过第一步条件化,我们得到
边界情况
你可以检查函数