@@ -68,31 +68,29 @@ from statsmodels.iolib.summary2 import summary_col
6868
6969### 思路流程
7070
71- 最大似然估计的第一步是选择被认为产生数据的概率分布 。
71+ 最大似然估计的第一步是选择一个我们认为能够合理描述数据生成过程的概率分布 。
7272
7373更准确地说,我们需要对产生数据的* 参数分布族* 做出假设。
7474
75- * 例如,所有正态分布的类别,或所有伽马分布的类别 。
75+ * 比如正态分布族或伽马分布族 。
7676
77- 每个这样的类别都是由有限个参数索引的分布族 。
77+ 每个分布族都由一些参数来确定具体的分布形式 。
7878
79- * 例如,正态分布类是由其均值 $\mu \in (-\infty, \infty)$ 和标准差 $\sigma \in (0, \infty)$ 索引的分布族 。
79+ * 以正态分布为例,它由均值 $\mu \in (-\infty, \infty)$ 和标准差 $\sigma \in (0, \infty)$ 两个参数来确定 。
8080
81- 我们将让数据通过确定参数来选择类别中的特定元素 。
81+ 我们会利用数据来估计这些参数,从而找到最适合数据的具体分布 。
8282
83- 以这种方式产生的参数估计被称为 ** 最大似然估计** 。
83+ 这种方法就是 ** 最大似然估计** 。
8484
85- ### 统计亿万富豪
85+ ### 研究亿万富豪
8686
87- Treisman {cite}` Treisman2016 ` 致力于估计不同国家的亿万富豪数量 。
87+ 在Treisman {cite}` Treisman2016 ` 的研究中,他想要分析各国亿万富豪的数量 。
8888
89- 亿万富豪的数量是整数值。
90-
91- 因此我们考虑仅取非负整数值的分布。
89+ 由于亿万富豪数量只能是整数,我们需要选择一个只取整数值的分布。
9290
9391(这是最小二乘回归不是当前问题最佳工具的原因之一,因为线性回归中的因变量不限于整数值)
9492
95- [ 泊松分布] ( https://en.wikipedia.org/wiki/Poisson_distribution ) 是一种整数分布,其概率质量函数( pmf) 为
93+ 对于这类计数数据, [ 泊松分布] ( https://en.wikipedia.org/wiki/Poisson_distribution ) 是一个很好的选择。它的概率质量函数( pmf) 为
9694
9795$$
9896f(y) = \frac{\mu^{y}}{y!} e^{-\mu},
@@ -144,7 +142,7 @@ df = pd.read_stata('https://github.com/QuantEcon/lecture-python/blob/master/sour
144142df.head()
145143```
146144
147- 通过直方图,我们可以查看2008年各国亿万富翁人数` numbil0 ` 的分布情况(为了绘图目的,已排除美国数据 )
145+ 通过直方图,我们可以查看2008年各国亿万富翁人数` numbil0 ` 的分布情况(为了方便绘图,我们排除了美国数据 )
148146
149147``` {code-cell} ipython3
150148numbil0_2008 = df[(df['year'] == 2008) & (
@@ -159,15 +157,15 @@ plt.ylabel('计数')
159157plt.show()
160158```
161159
162- 从直方图来看,泊松分布的假设似乎是合理的(尽管μ值很低且有一些异常值 )。
160+ 从直方图来看,泊松分布的假设似乎是合理的(尽管 $\mu$ 值很低且有一些异常值 )。
163161
164162## 条件分布
165163
166164在Treisman的论文中,因变量——国家$i$的亿万富翁数量$y_i$——被建模为人均GDP、人口规模以及加入关贸总协定和世贸组织年限的函数。
167165
168- 因此, $y_i$的分布需要以解释变量向量 $\mathbf{x}_ i$为条件 。
166+ 这意味着 $y_i$的分布取决于这些解释变量(记为向量 $\mathbf{x}_ i$) 。
169167
170- 标准公式——即所谓的 * 泊松回归* 模型——如下:
168+ 这种关系可以用 * 泊松回归* 模型来描述:
171169
172170``` {math}
173171:label: poissonreg
243241
244242首先,我们需要构建似然函数 $\mathcal{L}(\boldsymbol{\beta})$,它类似于联合概率密度函数。
245243
246- 假设我们有一些数据 $y_i = \{ y_1, y_2\} $ 且
247- $y_i \sim f(y_i)$。
244+ 假设我们有一些数据 $y_i = \{ y_1, y_2\} $ 且 $y_i \sim f(y_i)$。
248245
249246如果 $y_1$ 和 $y_2$ 是独立的,这些数据的联合概率质量函数是
250247$f(y_1, y_2) = f(y_1) \cdot f(y_2)$。
251248
252- 如果 $y_i$ 服从参数为 $\lambda = 7$ 的泊松分布,
253- 我们可以这样可视化联合概率质量函数
249+ 如果 $y_i$ 服从参数为 $\lambda = 7$ 的泊松分布,我们可以这样可视化联合概率质量函数
254250
255251``` {code-cell} ipython3
256252def plot_joint_poisson(μ=7, y_n=20):
295291现在我们有了似然函数,我们要找到能使似然值最大的 $\hat{\boldsymbol{\beta}}$
296292
297293$$
298-
299294\underset{\boldsymbol{\beta}}{\max} \mathcal{L}(\boldsymbol{\beta})
300295$$
301296
342337
343338许多分布都没有很好的解析解,因此需要数值方法来求解参数估计。
344339
345- 牛顿-拉夫森算法就是这样一种数值方法 。
340+ 牛顿-拉夫森(Newton-Raphson)算法就是这样一种数值方法 。
346341
347342我们的目标是找到最大似然估计 $\hat{\boldsymbol{\beta}}$。
348343
@@ -395,6 +390,7 @@ $\beta_0$(OLS参数估计可能是一个合理的猜测),然后
395390 $$
396391 \boldsymbol{\beta}_{(k+1)} = \boldsymbol{\beta}_{(k)} - H^{-1}(\boldsymbol{\beta}_{(k)})G(\boldsymbol{\beta}_{(k)})
397392 $$
393+
398394 其中:
399395
400396 $$
@@ -490,7 +486,7 @@ def newton_raphson(model, tol=1e-3, max_iter=1000, display=True):
490486 print(f'迭代次数:{i}')
491487 print(f'β_hat = {model.β.flatten()}')
492488
493- # 返回β的扁平数组(而不是k_by_1列向量 )
489+ # 返回β的扁平数组(而不是k×1的列向量 )
494490 return model.β.flatten()
495491```
496492
@@ -519,7 +515,7 @@ poi = PoissonRegression(y, X, β=init_β)
519515
520516你可以看到,每次迭代后对数似然值都在增加。
521517
522- 请记住,我们的目标是最大化对数似然函数,这正是算法一直在努力实现的 。
518+ 请记住,我们的目标是最大化对数似然函数,这正是算法所做的 。
523519
524520同时,注意到$\log \mathcal{L}(\boldsymbol{\beta}_ {(k)})$的增量在每次迭代后都变得更小。
525521
@@ -569,7 +565,7 @@ ax.grid(alpha=0.3)
569565plt.show()
570566```
571567
572- 请注意,我们实现的牛顿-拉夫森算法相当基础 --- 如需更稳健的实现方案,请参考例如 [ scipy.optimize] ( https://docs.scipy.org/doc/scipy/reference/optimize.html ) 。
568+ 请注意,我们对牛顿-拉夫森算法的实现相当基础 --- 如需更稳健的实现方案,请参考例如 [ scipy.optimize] ( https://docs.scipy.org/doc/scipy/reference/optimize.html ) 。
573569
574570## 使用 ` statsmodels ` 进行最大似然估计
575571
@@ -579,7 +575,7 @@ plt.show()
579575
580576` statsmodels ` 使用与上述相同的算法来找到最大似然估计值。
581577
582- 在开始之前,让我们用 ` statsmodels ` 重新估计我们的简单模型,以确认我们能得到相同的系数和对数似然值 。
578+ 在开始之前,让我们用 ` statsmodels ` 重新估计我们的简单模型,并确认我们能得到相同的系数和对数似然值 。
583579
584580``` {code-cell} ipython3
585581X = np.array([[1, 2, 5],
@@ -637,7 +633,7 @@ print(poisson_reg.summary())
637633
638634我们的输出表明,人均GDP、人口和关税贸易总协定(GATT)的成员年限与一个国家的亿万富翁数量呈正相关,这符合预期。
639635
640- 让我们也来估算作者的更完整模型,并将它们显示在同一个表格中
636+ 让我们继续估计作者提出的两个更复杂的模型,并将三个模型的结果并排展示以便比较
641637
642638``` {code-cell} ipython3
643639regs = [reg1, reg2, reg3]
@@ -671,9 +667,9 @@ results_table.add_title('表1 - 解释2008年各国亿万富翁数量')
671667print(results_table)
672668```
673669
674- 输出结果表明,亿万富翁的频率与人均GDP、人口规模、股票市场市值呈正相关,与最高边际所得税率呈负相关 。
670+ 结果显示,一个国家的亿万富翁数量会随着人均GDP、人口规模和股票市场规模的增加而增加。相反,较高的最高边际所得税率会降低亿万富翁的数量 。
675671
676- 为了按国家分析我们的结果,我们可以绘制预测值与实际值之间的差异,然后从高到低排序并绘制前15个国家
672+ 为了更好地理解各国的具体情况,我们来看看模型预测值与实际观测值之间的差异。我们将按差异大小排序,并展示差异最大的前15个国家。
677673
678674``` {code-cell} ipython3
679675data = ['const', 'lngdppc', 'lnpop', 'gattwto08', 'lnmcap08', 'rintr',
@@ -713,7 +709,6 @@ Treisman利用这一实证结果讨论了俄罗斯亿万富豪过多的可能原
713709
714710## 练习
715711
716-
717712``` {exercise}
718713:label: mle_ex1
719714
0 commit comments