模拟ARCH过程可以更加深入了解导致波动聚团现象的原因是什么。
以ARCH(1)模型为例
代码如下:
"""
Created on Thu Oct 18 23:41:00 2022
@author: pingtouge
"""
import math
from matplotlib import pyplot as plt
import random
#解决pyplot中无法显示中文的情况
plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False
Vt = []
Et = []
E_t = 0
n = 100 #共生成100个服从高斯分布的随机数
Yt1 = []
Yt2 = []
Yt_1 = Yt_2 = 0
for i in range(n):
V = random.gauss(0, 1.0) #添加高斯白噪声,这里设置方差为1
Vt.append(V)
E_t = V * math.sqrt(1 + 0.8*(E_t)**2)
Et.append(E_t)
Yt_1 = 0.2 * Yt_1 + E_t
Yt_2 = 0.9 * Yt_2 + E_t
Yt1.append(Yt_1)
Yt2.append(Yt_2)
# print(Vt)
# print(Et)
# plt.ylim(-8,8)
# plt.plot(Et)
#plot 1:
plt.subplot(2,2,1)
plt.title('白噪声过程'+r"$v_{t}$")
plt.ylim(-8,8)
plt.plot(Vt)
#plot 2:
plt.subplot(2,2,2)
plt.title(r"$\varepsilon _{t} = v_{t}\sqrt{1+0.8\varepsilon_{ t-1}^{2}}$")
plt.ylim(-8,8)
plt.plot(Et)
#plot 3:
plt.subplot(2,2,3)
plt.title(r"$y_{t}= 0.2y_{t-1}+\varepsilon _{t}$")
plt.ylim(-20,20)
plt.plot(Yt1)
#plot 4:
plt.subplot(2,2,4)
plt.title(r"$y_{t}= 0.9y_{t-1}+\varepsilon _{t}$")
plt.ylim(-20,20)
plt.plot(Yt2)
# 解决title重叠情况
plt.tight_layout()
plt.show()
结果如下:

左上图1展示的是服从高斯分布(0,1)的100个数,右上图1展现的是ARCH(1)的实现过程,vtv_{t}vt是与εt\varepsilon_{t}εt相独立的白噪声。之所以εt\varepsilon_{t}εt呈现如此图像是因为存在条件异方差,与白噪声无关。左下图2与右下图2展示的是均值模型由于系数的不同导致的条件异方差的不同,在40-80之间图像有较大差别。
该博客通过Python代码模拟了ARCH(1)过程,展示了如何生成具有条件异方差的序列。左上图展示高斯白噪声,右上图呈现ARCH(1)模型的波动聚团效果,而左下图和右下图则说明了不同均值模型下的条件异方差差异。
3819

被折叠的 条评论
为什么被折叠?



