为何需丢弃ARCH(1)模型模拟生成的前10000条数据?
为什么模拟ARCH(1)模型时要丢弃前10000条数据?
以下代码出自《Statistics and Data Analysis For Financial Engineering》一书,用于生成ARCH(1)模型的模拟数据。
library(TSA) library(tseries) n = 10200 set.seed("7484") e = rnorm(n) a = e y = e sig2 = e^2 omega = 1 alpha = 0.55 phi = 0.8 mu = 0.1 omega/(1-alpha) ; sqrt(omega/(1-alpha)) for (t in 2:n){ a[t] = sqrt(sig2[t])*e[t] y[t] = mu + phi*(y[t-1]-mu) + a[t] sig2[t+1] = omega + alpha * a[t]^2 } plot(e[10001:n],type="l",xlab="t",ylab=expression(epsilon),main="(a) white noise")
核心原因:消除初始值偏差,确保样本进入稳态
- 消除初始值的干扰:代码里将
sig2初始化为e^2,这是一个随机的初始方差值,并非ARCH(1)模型稳态下的方差(稳态方差为omega/(1-alpha))。迭代初期,序列的方差还在向稳态值收敛,前10000条数据属于“预热”阶段,还没达到模型假设的平稳状态。 - 保证样本符合稳态分布:ARCH模型存在稳态条件(这里
alpha=0.55<1满足稳态要求),但模拟的初始阶段序列尚未进入稳态。丢弃足够长的初始段后,剩余数据能近似符合模型的稳态分布,让后续的统计分析(比如参数估计、波动率特征验证)结果更准确。 - 降低初始条件带来的统计偏差:如果保留初始数据,后续对模型参数的估计或序列特征的检验可能会因为初始值的不合理出现偏差。丢弃10000条数据是为了让序列充分“遗忘”初始条件,确保分析用的样本是模型稳态下的真实表现。
内容的提问来源于stack exchange,提问作者郭昱岑
相关产品推荐
相关产品推荐

