38. Kesten过程与企业动态#

除了Anaconda中包含的内容外,本讲座还需要以下库:

!pip install quantecon
!pip install --upgrade yfinance

Hide code cell output

Requirement already satisfied: quantecon in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (0.10.1)
Requirement already satisfied: numba>=0.49.0 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from quantecon) (0.61.0)
Requirement already satisfied: numpy>=1.17.0 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from quantecon) (2.1.3)
Requirement already satisfied: requests in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from quantecon) (2.32.3)
Requirement already satisfied: scipy>=1.5.0 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from quantecon) (1.15.3)
Requirement already satisfied: sympy in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from quantecon) (1.13.3)
Requirement already satisfied: llvmlite<0.45,>=0.44.0dev0 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from numba>=0.49.0->quantecon) (0.44.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from requests->quantecon) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from requests->quantecon) (3.7)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from requests->quantecon) (2.3.0)
Requirement already satisfied: certifi>=2017.4.17 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from requests->quantecon) (2025.4.26)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from sympy->quantecon) (1.3.0)
Collecting yfinance
  Downloading yfinance-0.2.66-py2.py3-none-any.whl.metadata (6.0 kB)
Requirement already satisfied: pandas>=1.3.0 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from yfinance) (2.2.3)
Requirement already satisfied: numpy>=1.16.5 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from yfinance) (2.1.3)
Requirement already satisfied: requests>=2.31 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from yfinance) (2.32.3)
Collecting multitasking>=0.0.7 (from yfinance)
  Downloading multitasking-0.0.12.tar.gz (19 kB)
  Preparing metadata (setup.py) ... ?25l-
 done
?25hRequirement already satisfied: platformdirs>=2.0.0 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from yfinance) (4.3.7)
Requirement already satisfied: pytz>=2022.5 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from yfinance) (2024.1)
Collecting frozendict>=2.3.4 (from yfinance)
  Downloading frozendict-2.4.6-py313-none-any.whl.metadata (23 kB)
Collecting peewee>=3.16.2 (from yfinance)
  Downloading peewee-3.18.2.tar.gz (949 kB)
?25l     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/949.2 kB ? eta -:--:--
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 949.2/949.2 kB 71.3 MB/s eta 0:00:00
?25h
  Installing build dependencies ... ?25l-
 \
 done
?25h  Getting requirements to build wheel ... ?25l-
 done
?25h  Preparing metadata (pyproject.toml) ... ?25l-
 done
?25hRequirement already satisfied: beautifulsoup4>=4.11.1 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from yfinance) (4.12.3)
Collecting curl_cffi>=0.7 (from yfinance)
  Downloading curl_cffi-0.13.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (13 kB)
Requirement already satisfied: protobuf>=3.19.0 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from yfinance) (5.29.3)
Collecting websockets>=13.0 (from yfinance)
  Downloading websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.8 kB)
Requirement already satisfied: soupsieve>1.2 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)
Requirement already satisfied: cffi>=1.12.0 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from curl_cffi>=0.7->yfinance) (1.17.1)
Requirement already satisfied: certifi>=2024.2.2 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from curl_cffi>=0.7->yfinance) (2025.4.26)
Requirement already satisfied: pycparser in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from cffi>=1.12.0->curl_cffi>=0.7->yfinance) (2.21)
Requirement already satisfied: python-dateutil>=2.8.2 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from pandas>=1.3.0->yfinance) (2.9.0.post0)
Requirement already satisfied: tzdata>=2022.7 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from pandas>=1.3.0->yfinance) (2025.2)
Requirement already satisfied: six>=1.5 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from python-dateutil>=2.8.2->pandas>=1.3.0->yfinance) (1.17.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from requests>=2.31->yfinance) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from requests>=2.31->yfinance) (3.7)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/runner/miniconda3/envs/quantecon/lib/python3.13/site-packages (from requests>=2.31->yfinance) (2.3.0)
Downloading yfinance-0.2.66-py2.py3-none-any.whl (123 kB)
Downloading curl_cffi-0.13.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB)
?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/8.3 MB ? eta -:--:--
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 109.4 MB/s eta 0:00:00
?25hDownloading frozendict-2.4.6-py313-none-any.whl (16 kB)
Downloading websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (182 kB)
Building wheels for collected packages: multitasking, peewee
  DEPRECATION: Building 'multitasking' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'multitasking'. Discussion can be found at https://github.com/pypa/pip/issues/6334

  Building wheel for multitasking (setup.py) ... ?25l-
 \
 | done
?25h  Created wheel for multitasking: filename=multitasking-0.0.12-py3-none-any.whl size=15548 sha256=ae199a0a57979797154e6d81c428bda5930e0130aa7d075c27ef30d1d2832602
  Stored in directory: /home/runner/.cache/pip/wheels/1e/df/0f/e2bbb22d689b30c681feb5410ab64a2523437b34c8ecfc6476
  Building wheel for peewee (pyproject.toml) ... ?25l-
 \
 |
 done
?25h  Created wheel for peewee: filename=peewee-3.18.2-cp313-cp313-linux_x86_64.whl size=302166 sha256=86ae1f65a9dffc949fee71f0f27681b0cfe299d48924b83aa771cf1aac85ae53
  Stored in directory: /home/runner/.cache/pip/wheels/1c/48/cc/00b7d0e7defa21a58915654917c89eaedd32a6e614d8e4ad92
Successfully built multitasking peewee
Installing collected packages: peewee, multitasking, websockets, frozendict, curl_cffi, yfinance
?25l
   ━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━ 2/6 [websockets]
   ━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━ 4/6 [curl_cffi]
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6/6 [yfinance]
?25h
Successfully installed curl_cffi-0.13.0 frozendict-2.4.6 multitasking-0.0.12 peewee-3.18.2 websockets-15.0.1 yfinance-0.2.66

38.1. 概述#

之前 我们学习了线性标量值随机过程(AR(1)模型)。

现在,我们将进一步推广这些线性模型,允许乘法系数具有随机性。

这些过程被称为Kesten过程,以德裔美国数学家Harry Kesten(1931-2019)的名字命名。

虽然Kesten过程的数学形式看起来很简单,但它们在经济学中非常重要,主要有两个原因:

  1. 很多关键的经济过程可以用Kesten过程来描述。

  2. Kesten过程能够产生复杂的动态行为,尤其是在某些条件下,它们可以生成带有”重尾”特征的横截面分布,这与我们在现实经济数据中观察到的情况相符。

我们接下来会讨论这些问题。

现在我们从一些导入开始:

import matplotlib.pyplot as plt
import matplotlib as mpl
FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
mpl.font_manager.fontManager.addfont(FONTPATH)
plt.rcParams['font.family'] = ['Source Han Serif SC']

plt.rcParams["figure.figsize"] = (11, 5)  #设置默认图形大小
import numpy as np
import quantecon as qe

以下两行仅用于避免pandas和matplotlib之间的兼容性问题导致的FutureWarning

from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

关于本讲座的更多技术细节,读者可以参考[Buraczewski et al., 2016]这本专著。

38.2. Kesten过程#

Kesten过程是一种形式如下的随机过程:

(38.1)#\[X_{t+1} = a_{t+1} X_t + \eta_{t+1}\]

其中\(\{a_t\}_{t \geq 1}\)\(\{\eta_t\}_{t \geq 1}\)是独立同分布序列。

我们感兴趣的是当\(X_0\)给定时\(\{X_t\}_{t \geq 0}\)的动态变化。

我们将重点关注非负标量的情况,其中\(X_t\)的取值范围为\(\mathbb R_+\)

特别地,我们假设:

  • 初始条件\(X_0\)是非负的,

  • \(\{a_t\}_{t \geq 1}\)是非负的独立同分布随机过程,且

  • \(\{\eta_t\}_{t \geq 1}\)是另一个非负的独立同分布随机过程,并与第一个过程相互独立。

38.2.1. 示例:GARCH波动率#

GARCH模型在金融应用中很常见,其中时间序列(如资产收益)表现出时变波动率。

例如,考虑以下纳斯达克综合指数从2006年1月1日到2019年11月1日的日收益率图。

import yfinance as yf

s = yf.download('^IXIC', '2006-1-1', '2019-11-1', auto_adjust=False)['Adj Close']

r = s.pct_change()

fig, ax = plt.subplots()

ax.plot(r, alpha=0.7)

ax.set_ylabel('收益率', fontsize=12)
ax.set_xlabel('日期', fontsize=12)

plt.show()
[*********************100%***********************]  1 of 1 completed

_images/9288a92609cecb6c28dd03572d41455b6544e535d8da6be25bf68f7f65b4b6fa.png

注意该序列如何呈现出波动率爆发(高方差),随后又趋于平稳。

GARCH模型可以复现这一特征。

GARCH(1, 1)波动率过程的形式如下:

(38.2)#\[\sigma_{t+1}^2 = \alpha_0 + \sigma_t^2 (\alpha_1 \xi_{t+1}^2 + \beta)\]

其中\(\{\xi_t\}\)是独立同分布的,\(\mathbb E \xi_t^2 = 1\)且所有参数都是正的。

给定资产的收益率可建模为:

(38.3)#\[r_t = \sigma_t \zeta_t\]

其中\(\{\zeta_t\}\)也是独立同分布的,且与\(\{\xi_t\}\)相互独立。

驱动收益率动态变化的波动率序列\(\{\sigma_t^2 \}\)是一个Kesten过程。

38.2.2. 示例:财富动态#

假设某个家庭在每一期都将其当前财富按固定比例\(s\)进行储蓄。

该家庭在时期\(t\)开始时获得劳动收入\(y_t\)

其财富则按照以下方式演化:

(38.4)#\[w_{t+1} = R_{t+1} s w_t + y_{t+1}\]

其中\(\{R_t\}\)是资产的总收益率。

如果\(\{R_t\}\)\(\{y_t\}\)都是独立同分布的,那么(38.4)就是一个Kesten过程。

38.2.3. 平稳性#

在之前的讲座中,如AR(1)过程,我们引入了平稳分布的概念。

在当前背景下,我们可以这样定义一个平稳分布:

对于Kesten过程(38.1),若满足

(38.5)#\[X_t \sim F^* \quad \implies \quad a_{t+1} X_t + \eta_{t+1} \sim F^*\]

则定义在\(\mathbb R\)上的分布\(F^*\)被称为该过程的平稳分布

换句话说,如果当前状态\(X_t\)服从分布\(F^*\),那么下一期状态\(X_{t+1}\)也服从相同的分布\(F^*\)

我们可以将其等价写为:

(38.6)#\[F^*(y) = \int \mathbb P\{ a_{t+1} x + \eta_{t+1} \leq y\} F^*(dx) \quad \text{对所有 } y \geq 0 \text{成立 }\]

式子左边是当前状态服从\(F^*\)时,下一期状态的分布。

(38.6)这一等式表明这个分布保持不变。

38.2.4. 横截面解释#

平稳分布具有重要的横截面解释,之前我们已经讨论过,但仍值得在这里重复。

例如,假设我们对财富分布(某个国家当前家庭财富的分布)感兴趣。

进一步的假设:

  • 每个家庭的财富根据(38.4)独立演化;

  • \(F^*\)是这个随机过程的平稳分布;

  • 存在大量家庭。

那么,\(F^*\)就是这个国家横截面财富分布的稳态。

换句话说,如果\(F^*\)是当前的财富分布,则在其他条件不变的情况下,其在后续时期将保持这一分布不变。

要理解这一点,假设\(F^*\)是当前的财富分布。

下一期财富小于\(y\)的家庭比例是多少?

为了得到这一比例,我们对明天的财富小于\(y\)的概率进行求和,给定条件为当前财富为\(w\),按拥有财富\(w\)的家庭比例进行加权。

注意到财富在区间\(dw\)中的家庭比例是\(F^*(dw)\),我们得到:

\[ \int \mathbb P\{ R_{t+1} s w + y_{t+1} \leq y\} F^*(dw) \]

根据平稳性的定义和\(F^*\)是财富过程的平稳分布的假设,上述积分结果为\(F^*(y)\)

因此,下一期中财富在\([0, y]\)内的家庭比例与当前期相同。

由于\(y\)是任意选择的,财富分布保持不变。

38.2.5. 平稳性条件#

Kesten过程\(X_{t+1} = a_{t+1} X_t + \eta_{t+1}\)并不总是具有平稳分布。

例如,如果对所有\(t\)都有\(a_t \equiv \eta_t \equiv 1\),那么\(X_t = X_0 + t\),此时序列会发散到无穷大。

为了防止这种发散,我们要求\(\{a_t\}\)在大多数情况下严格小于1。

特别地,如果:

(38.7)#\[\mathbb E \ln a_t < 0 \quad \text{且} \quad \mathbb E \eta_t < \infty\]

那么在\(\mathbb R_+\)上存在唯一的平稳分布。

作为这个结果的一个应用,我们看到,只要劳动收入具有有限均值且满足\(\mathbb E \ln R_t + \ln s < 0\),财富过程(38.4)就会有唯一的平稳分布。

38.3. 重尾#

在某些条件下,Kesten过程的平稳分布具有帕累托尾。

(参见我们之前关于重尾分布的讲座。)

这个事实对经济学很重要,因为帕累托尾分布在经济现象中广泛存在。

38.3.1. Kesten–Goldie定理#

为了说明Kesten过程的平稳分布具有帕累托尾的条件,我们首先回顾,如果随机变量的分布不集中在\(\{\dots, -2t, -t, 0, t, 2t, \ldots \}\)上(对任意\(t \geq 0\)),则称该随机变量是非算术的

例如,任何具有密度函数的随机变量都是非算术的。

著名的Kesten–Goldie定理(参见,例如,[Buraczewski et al., 2016],定理2.4.4)指出,如果:

  1. (38.7)中的平稳性条件成立;

  2. 随机变量\(a_t\)几乎必然为正且是非算术的;

  3. 对所有\(x \in \mathbb R_+\)\(\mathbb P\{a_t x + \eta_t = x\} < 1\)

  4. 存在正常数\(\alpha\)使得:

\[ \mathbb E a_t^\alpha = 1, \quad \mathbb E \eta_t^\alpha < \infty, \quad \text{且} \quad \mathbb E [a_t^{\alpha+1} ] < \infty \]

那么Kesten过程的平稳分布具有帕累托尾,尾部指数为\(\alpha\)

更精确地说,如果\(F^*\)是唯一的平稳分布且\(X^* \sim F^*\),则:

\[ \lim_{x \to \infty} x^\alpha \mathbb P\{X^* > x\} = c \]

其中\(c\)是某个正常数。

38.3.2. 直觉解释#

稍后我们将通过绘秩-规模图来直观地验证Kesten–Goldie定理的结论。

在此之前,我们可以对定理条件进行以下直觉性解释。

两个重要条件是\(\mathbb E \ln a_t < 0\),即模型是平稳的,以及存在某个\(\alpha > 0\)使得\(\mathbb E a_t^\alpha = 1\)

第一个条件意味着\(a_t\)的分布中,大部分概率质量集中在1以下。

第二个条件意味着\(a_t\)的分布中,至少有部分概率质量位于1或以上。

第一个条件确保平稳分布的存在。

第二个条件意味着当前状态可以被\(a_t\)放大。

如果这种情况在连续几个时期发生,那么效果会相互叠加,因为\(a_t\)是乘性的。

这导致时间序列中出现尖峰,从而填充分布的极端右尾。

在以下模拟中可观察到时间序列中的尖峰,该模拟在\(a_t\)\(b_t\)服从对数正态分布时生成了10条路径:

μ = -0.5
σ = 1.0

def kesten_ts(ts_length=100):
    x = np.zeros(ts_length)
    for t in range(ts_length-1):
        a = np.exp(μ + σ * np.random.randn())
        b = np.exp(np.random.randn())
        x[t+1] = a * x[t] + b
    return x

fig, ax = plt.subplots()

num_paths = 10
np.random.seed(12)

for i in range(num_paths):
    ax.plot(kesten_ts())

ax.set(xlabel='时间', ylabel='$X_t$')
plt.show()
_images/ed5a7a701f6058eac5b84958fb96ddcc5a1af210b1f9fd03d41762b5981f7e75.png

38.4. 应用:企业动态#

正如我们在关于重尾的讲座中提到的,对于收入或就业等常见的企业规模衡量指标,美国企业规模分布表现出帕累托尾的特征(参见,例如,[Axtell, 2001][Gabaix, 2016])。

让我们尝试运用Kesten–Goldie定理来解释这个相当有趣的事实。

38.4.1. Gibrat定律#

多年前,Robert Gibrat [Gibrat, 1931]提出假设,认为企业规模按照一个简单的规则演化,即下一期规模与当前规模成比例。

这一假设现在被称为Gibrat比例增长定律

我们可以通过以下方式表达这一观点:企业规模的适当衡量指标\(s_t\)满足

(38.8)#\[\frac{s_{t+1}}{s_t} = a_{t+1}\]

其中\(\{a_t\}\)是某个正的独立同分布序列。

Gibrat定律的一个含意是,单个企业的增长率不依赖于它们的规模。

然而,在过去几十年里,文献中积累了很多与Gibrat定律相矛盾的研究。

例如,通常发现,平均而言:

  1. 小企业比大企业增长更快(参见,例如,[Evans, 1987][Hall, 1987]),且

  2. 小企业的增长率比大企业更不稳定[Dunne et al., 1989]

另一方面,研究发现Gibrat定律通常对大企业是一个合理的近似[Evans, 1987]

我们可以通过修改(38.8)为以下形式来适应这些实证结果:

(38.9)#\[s_{t+1} = a_{t+1} s_t + b_{t+1}\]

其中\(\{a_t\}\)\(\{b_t\}\)都是独立同分布的,且相互独立。

在练习中,你需要证明(38.9)中的Gibrat定律比(38.8)中的更符合上述实证结果。

38.4.2. 重尾#

那么这与帕累托尾有什么关系?

答案是(38.9)是一个Kesten过程。

如果Kesten–Goldie定理的条件满足,那么可以预测企业规模分布会呈现重尾特征 — 这正是我们在数据中看到的。

在下面的练习中,我们会进一步探讨这个想法,推广企业规模动态模型并检验相应的秩-规模图。

我们还将说明为什么帕累托尾的发现对定量分析很重要。

38.5. 练习#

练习 38.1

使用(38.2)(38.3)中的GARCH(1, 1)过程模拟并绘制15年的日收益率(假设每年有250个工作日)。

\(\xi_t\)\(\zeta_t\)为独立的标准正态分布。

\(\alpha_0 = 0.00001, \alpha_1 = 0.1, \beta = 0.9\)\(\sigma_0 = 0\)

上文所示的纳斯达克综合指数收益率进行直观对比。

虽然时间路径不同,但应能观察到高波动率的爆发。

练习 38.2

在我们关于企业动态的讨论中,认为(38.9)(38.8)中的Gibrat定律更符合实证文献。

(实证文献在(38.9)之前刚刚进行了回顾。)

在什么意义上这是正确的(或错误的)?

练习 38.3

考虑如(38.1)中给出的任意Kesten过程。

假设\(\{a_t\}\)是对数正态分布,参数为\((\mu, \sigma)\)

换句话说,当\(Z\)是标准正态分布时,每个\(a_t\)\(\exp(\mu + \sigma Z)\)具有相同的分布。

进一步假设\(\mathbb E \eta_t^r < \infty\)对所有\(r > 0\)成立,例如,当\(\eta_t\)也是对数正态分布时,这一条件成立。

证明:当且仅当\(\mu < 0\)时,Kesten–Goldie定理的条件被满足。

并求出使Kesten–Goldie条件成立的\(\alpha\)值。

练习 38.4

在如(38.9)中所述的企业动态模型中,的一个不现实方面是它忽略了企业的进入和退出。

在任何时期和任何市场中,我们都能观察到大量企业进入和退出市场。

关于这个问题的实证讨论可以在Hugo Hopenhayn [Hopenhayn, 1992]的一篇著名论文中找到。

在这篇论文中,Hopenhayn构建了一个包含企业利润最大化和市场出清数量、工资及价格的进入退出模型。

在他的模型中,当进入企业数量等于退出企业数量时,便达到了平稳均衡。

在这种背景下,企业动态可以表示为:

(38.11)#\[s_{t+1} = e_{t+1} \mathbb{1}\{s_t < \bar s\} + (a_{t+1} s_t + b_{t+1}) \mathbb{1}\{s_t \geq \bar s\}\]

其中:

  • 状态变量\(s_t\)代表生产率(这是产出和企业规模的代理变量),

  • 独立同分布序列\(\{ e_t \}\)被视为新进入企业的生产率样本值,且

  • 变量\(\bar s\)是一个被视为给定的阈值,尽管它在Hopenhayn的模型中是内生的。

(38.11)背后的思想是,只要企业的生产率\(s_t\)保持在\(\bar s\)或在\(\bar s\)以上,这些企业就可以留在市场中。

  • 在这种情况下,它们的生产率根据(38.9)更新。

当企业的生产率\(s_t\)低于\(\bar s\)时,企业会选择退出。

  • 在这种情况下,它们被生产率\(e_{t+1}\)的新企业替代。

关于动态特性我们能得出什么结论?

虽然(38.11)不是Kesten过程,但当\(s_t\)很大时,它的更新方式与Kesten过程相同。

所以,也许它的平稳分布仍然有帕累托尾?

你的任务是通过模拟和秩-规模图来研究这个问题。

方法是:

  1. 选定很大的\(M\)\(T\),生成\(M\)\(s_T\)的抽取样本;

  2. 将结果中最大的1,000个抽取样本绘制成秩-规模图。

(当\(T\)很大时,\(s_T\)的分布将接近于平稳分布。)

在这个模拟中,假设:

  • \(a_t, b_t\)\(e_t\)都是对数正态分布,

  • 参数为:

μ_a = -0.5        # a的位置参数
σ_a = 0.1         # a的尺度参数
μ_b = 0.0         # b的位置参数
σ_b = 0.5         # b的尺度参数
μ_e = 0.0         # e的位置参数
σ_e = 0.5         # e的尺度参数
s_bar = 1.0       # 阈值
T = 500           # 抽样日期
M = 1_000_000     # 企业数量
s_init = 1.0      # 每个企业的初始条件