导言
假设我们想用Python程序模拟并绘制白噪声过程 ε 0 , ε 1 , . . . , ε T \varepsilon_0,\varepsilon_1,...,\varepsilon_T ε0,ε1,...,εT,其中每一个 ε t \varepsilon_t εt 均服从独立正态分布,在绘制的图像中,横轴为 t t t,纵轴为 ε t \varepsilon _t εt。我们将通过Python用不同的方式实现。
在运行Python程序之前,我们需要导入需要用到的包
import numpy as np
import matplotlib.pyplot as plt
# 导入分析所需要的包
方式一
代码如下:
plt.rcParams['figure.figsize'] = (10,6)
# 设置绘制图像显示比例
varepsilon_values_1 = np.random.randn(100)
# 随机生成100个服从标准正太分布的点
plt.plot(varepsilon_values_1)
plt.show()
# 绘制图像
输出结果如下:
方式二
方式二采用for循环构造白噪声序列,代码如下:
t = 100
varepsilon_values_2 = []
# 创建一个空列表
for i in range(t):
e = np.random.randn()
varepsilon_values_2.append(e)
# 循环获得随机数,并合并入列表
plt.plot(varepsilon_values_2)
plt.show()
# 绘制图像
输出结果如下:
利用白噪声序列模拟线性模型
掌握了绘制白噪声序列的方法后,我们尝试将其运用于线性模型的模拟。假设我们需要模拟以下自相关时间序列模型:
x t + 1 = α x t + ε t + 1 x_{t+1} = \alpha x_t + \varepsilon_{t+1} xt+1=αxt+εt+1
其中, x 0 = 0 x_0=0 x0=0, t = 0 , . . . , T t =0,...,T t=0,...,T,{ ε t \varepsilon_t εt} 满足独立同分布(IID) 且服从正态分布。设定 T = 200 T=200 T=200, α = 0.9 \alpha=0.9 α=0.9。
代码如下:
alpha = 0.9
T = 200
# 设定参数
x = np.empty(T+1)
# 生成长度为T+1的空序列,用来储存x
x[0] = 0
for t in range(T):
x[t+1] = alpha * x[t] + np.random.randn()
# 用生成的随机数模拟模型
plt.plot(x)
plt.show()
# 绘制图像