原文链接:http://tecdat.cn/?p=5231
原文出处:拓端数据部落公众号
为了不便起见,这些模型通常简称为TAR模型。这些模型捕捉了线性工夫序列模型无奈捕捉的行为,例如周期,幅度相干的频率和跳跃景象。Tong和Lim(1980)应用阈值模型表明,该模型可能发现黑子数据呈现的不对称周期性行为。
一阶TAR模型的示例:
是噪声标准偏差,Yt-1是阈值变量,r是阈值参数, {et}是具备零均值和单位方差的iid随机变量序列。
每个线性子模型都称为一个机制。下面是两个机制的模型。
思考以下简略的一阶TAR模型:
#低机制参数i1 = 0.3p1 = 0.5s1 = 1#高机制参数i2 = -0.2p2 = -1.8s2 = 1thresh = -1delay = 1#模仿数据y=sim(n=100,Phi1=c(i1,p1),Phi2=c(i2,p2),p=1,d=delay,sigma1=s1,thd=thresh,sigma2=s2)$y#绘制数据plot(y=y,x=1:length(y),type='o',xlab='t',ylab=expression(Y\[t\])abline(thresh,0,col="red")
TAR模型_框架_是原始TAR模型的批改版本。它是通过克制噪声项和截距并将阈值设置为0来取得的:
_框架_的稳定性以及某些规律性条件意味着TAR的平稳性。稳定性能够了解为,对于任何初始值Y1,_框架_都是有界过程。
在[164]中:
#应用不同的终点查看稳定性startvals = c(-2, -1.1,-0.5, 0.8, 1.2, 3.4)count = 1for (s in startvals) { ysk\[1 } else { ysk\[i\] = -1.8*ysk\[i-1\] } count = count + 1}#绘制不同实现matplot(t(x),type="l"abline(0,0)
Chan和Tong(1985)证实,如果满足以下条件,则一阶TAR模型是安稳的
个别的两机制模型写为:
在这种状况下,稳定性更加简单。然而,Chan and Tong(1985)证实,如果
模型预计
一种办法以及此处探讨的办法是条件最小二乘(CLS)办法。
为简略起见,除了假如p1 = p2 = p,1≤d≤p,还假如1=2=。而后能够将TAR模型不便地写为
如果Yt-d> r,则I(Yt-d> r)= 1,否则为0。CLS最小化条件残差平方和:
在这种状况下,能够依据是否Yt-d≤r将数据分为两局部,而后执行OLS预计每个线性子模型的参数。
如果r未知。
在r值范畴内进行搜寻,该值必须在工夫序列的最小值和最大值之间,以确保该序列实际上超过阈值。而后从搜寻中排除最高和最低10%的值
- 在此受限频带内,针对不同的r = yt值估算TAR模型。
- 抉择r的值,使对应的回归模型的残差平方和最小。
#找到分位数lq = quantile(y,0.10)uq = quantile(y,0.90)#绘制数据plot(y=y,x=1:length(y),type='o',xlab='t'abline(lq,0,col="blue")abline(uq,0,col="blue")
#模型估计数sum( (lq <= y ) & (y <= uq) )
80
如果d未知。
令d取值为1,2,3,...,p。为每个d的潜在值估算TAR模型,而后抉择残差平方和最小的模型。
Chan(1993)已证实,CLS办法是统一的。
最小AIC(MAIC)办法
因为在实践中这两种状况的AR阶数是未知的,因而须要一种容许对它们进行预计的办法。对于TAR模型,对于固定的r和d,AIC变为
而后,通过最小化AIC对象来预计参数,以便在某个工夫距离内搜寻阈值参数,以使任何计划都有足够的数据进行预计。
#估算模型#如果晓得阈值#如果阈值尚不分明#MAIC 办法for (d in 1:3) { if (model.tar.s$AIC < AIC.best) { AIC.best = model.tar.s$AIC model.best$d = d model.best$p1 = model.tar.sar.s$AIC, signif(model.tar.s$thd,4)AICM
非线性测试
1.应用滞后回归图进行目测。
绘制Yt与其滞后。拟合的回归曲线不是很直,可能表明存在非线性关系。
在[168]中:
lagplot(y)
2.Keenan测验:
思考以下由二阶Volterra开展引起的模型:
其中{t} 的iid正态分布为零均值和无限方差。如果=0,则该模型成为AR(mm)模型。
能够证实,_Keenan_测验等同于回归模型中测验=0:
其中Yt ^ 是从Yt-1,...,Yt-m上的Yt回归失去的拟合值。
3. Tsay测验:
_Keenan_测试的一种更通用的代替办法。用更简单的表达式替换为Keenan测验给出的上述模型中的项(∑mj = 1jYt-j)2。最初对所有非线性项是否均为零的二次回归模型执行F测验。
在[169]中:
#查看非线性: Keenan, Tsay#Null is an AR model of order 1Keenan.test(y,1)
$test.stat90.2589565661567$p.value1.76111433596097e-15$order1
在[170]中:
Tsay.test(y,1)
$test.stat71.34$p.value3.201e-13$order1
4.测验阈值非线性
这是基于似然比的测试。
零假如是AR(pp)模型;另一种假如是具备恒定噪声方差的p阶的两区域TAR模型,即1=2=。应用这些假如,能够将通用模型重写为
零假如表明2,0 = 2,1 = ... = 2,p = 0。
似然比测验统计量能够证实等于
其中n-p是无效样本大小,^ 2(H0)是线性AR(p)拟合的噪声方差的MLE,而^ 2(H1)来自TAR的噪声方差与在某个无限距离内搜寻到的阈值的MLE。
H0下似然比测验的采样散布具备非标准采样散布;参见Chan(1991)和Tong(1990)。
在[171]中:
res = tlrt(y, p=1, d=1, a=0.15, b=0.85)res
$percentiles14.185.9$test.statistic: 142.291963130459$p.value: 0
模型诊断
应用残差剖析实现模型诊断。TAR模型的残差定义为
标准化残差是通过适当的标准偏差标准化的原始残差:
如果TAR模型是真正的数据机制,则标准化残差图应看起来是随机的。能够通过查看标准化残差的样本ACF来查看标准化误差的独立性假如。
#模型诊断diag(model.tar.best, gof.lag=20)
预测
预测散布通常是非正态的。通常,采纳模仿办法进行预测。思考模型
而后给定Yt = yt,Yt-1 = yt-1,...
因而,能够通过从误差散布中绘制et + 1并计算h(yt,et + 1),来取得单步预测散布的Yt + 1的实现。 。
通过独立反复此过程 B 次,您能够 从向前一步预测散布中随机取得B值样本 。
能够通过这些B 值的样本平均值来预计提前一步的预测平均值 。
通过迭代,能够轻松地将仿真办法扩大为找到任何l步提前预测散布:
其中Yt = yt和et + 1,et + 2,...,et + l是从误差散布得出的ll值的随机样本。
在[173]中:
#预测model.tar.pred r.best, n.ahead = 10, n.sim=1000)y.pred = ts(clines(ts(model.tar.pred$pred.interval\[2,\], start=end(y) + c(0,1), freq=1), lty=2)lines(ts(model
样例
这里模仿的工夫序列是1700年至1988年太阳黑子的年数量。
在[174]中:
#数据集#太阳黑子序列,每年plot.ts(sunsp
#通过滞后回归图查看非线性lagplot(sunspo)
#应用假设检验查看线性Keenan.test(sunspot.year)Tsay.test(sunspot.year)
$test.stat18.2840758932705$p.value2.64565849317573e-05$order9$test.stat3.904$p.value6.689e-12$order9
在[177]中:
#应用MAIC办法AIC{ sunspot.tar.s = tar(sunspot.year, p1 = 9, p2 = 9, d = d, a=0.15, b=0.85) AICM
在[178]中:
#测试阈值非线性tl(sunspot.year, p=9, d=9, a=0.15, b=0.85)
$percentiles1585$test.statistic: 52.2571950943405$p.value: 6.8337179274236e-06
#模型诊断tsdiag(sunspot.tar.best)
#预测sunspot.tar.pred <- predict(sunspot.tar.best, n.ahead = 10, n.sim=1000)lines(ts(sunspot.tar.pred$pretart=e
#拟合线性AR模型#pacf(sunspot.year)#尝试AR阶数9ord = 9ar.mod <- arima(sunspot.year, order=c(ord,0,0), method="CSS-ML")plot.ts(sunspot.year\[10:289\]
模仿TAR模型上的AR性能
_示例1._ 将AR(4)拟合到TAR模型
set.seed(12349)#低机制参数i1 = 0.3p1 = 0.5s1 = 1#高机制参数i2 = -0.2p2 = -1.8s2 = 1thresh = -1delay = 1nobs = 200#模仿200个样本y=sim(n=nobs,Phi1=c(i1,p1),Phi$y#应用Tsay的测验确定最佳AR阶数ord <- Tsay.test(y)$order#线性AR模型#pacf(sunspot.year)#try AR order 4
_例子2._ 将AR(4)拟合到TAR模型
_例子3._ 将AR(3)拟合到TAR模型
_例子3._ 将AR(7)拟合到TAR模型
参考文献
恩惠斯(W. Enders),2010年。利用计量经济学工夫序列
最受欢迎的见解
1.在python中应用lstm和pytorch进行工夫序列预测
2.python中利用长短期记忆模型lstm进行工夫序列预测剖析
3.应用r语言进行工夫序列(arima,指数平滑)剖析
4.r语言多元copula-garch-模型工夫序列预测
5.r语言copulas和金融工夫序列案例
6.应用r语言随机稳定模型sv解决工夫序列中的随机稳定
7.r语言工夫序列tar阈值自回归模型
8.r语言k-shape工夫序列聚类办法对股票价格工夫序列聚类
9.python3用arima模型进行工夫序列预测