R语言时间序列TAR阈值自回归模型(上)

简介: R语言时间序列TAR阈值自回归模型

原文链接:http://tecdat.cn/?p=5231


为了方便起见,这些模型通常简称为TAR模型。这些模型捕获了线性时间序列模型无法捕获的行为,例如周期,幅度相关的频率和跳跃现象。Tong和Lim(1980)使用阈值模型表明,该模型能够发现黑子数据出现的不对称周期性行为。


一阶TAR模型的示例:

σ是噪声标准偏差,Yt-1是阈值变量,r是阈值参数, {et}是具有零均值和单位方差的iid随机变量序列。

每个线性子模型都称为一个机制。上面是两个机制的模型。

考虑以下简单的一阶TAR模型:

#低机制参数
i1 = 0.3
p1 = 0.5
s1 = 1
#高机制参数
i2 = -0.2
p2 = -1.8
s2 = 1
thresh = -1
delay = 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")


点击标题查阅往期内容


R语言时间序列TAR阈值模型分析


01

02

03

04


TAR模型_框架_是原始TAR模型的修改版本。它是通过抑制噪声项和截距并将阈值设置为0来获得的:

_框架_的稳定性以及某些规律性条件意味着TAR的平稳性。稳定性可以理解为,对于任何初始值Y1,_框架_都是有界过程。

在[164]中:

#使用不同的起点检查稳定性
startvals = c(-2, -1.1,-0.5, 0.8, 1.2, 3.4)
count = 1
for (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%的值

  1. 在此受限频带内,针对不同的r = yt值估算TAR模型。
  2. 选择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.s
ar.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 = 1ϕjYt-j)2。最后对所有非线性项是否均为零的二次回归模型执行F检验

在[169]中:

#检查非线性: Keenan, Tsay
#Null is an AR model of order 1
Keenan.test(y,1)
$test.stat
90.2589565661567
$p.value
1.76111433596097e-15
$order
1

在[170]中:

Tsay.test(y,1)
$test.stat
71.34
$p.value
3.201e-13
$order
1

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
$percentiles
14.1
85.9
$test.statistic
: 142.291963130459
$p.value
: 0

模型诊断


使用残差分析完成模型诊断。TAR模型的残差定义为

标准化残差是通过适当的标准偏差标准化的原始残差:

如果TAR模型是真正的数据机制,则标准化残差图应看起来是随机的。可以通过检查标准化残差的样本ACF来检查标准化误差的独立性假设。

#模型诊断
diag(model.tar.best, gof.lag=20)


R语言时间序列TAR阈值自回归模型(下):https://developer.aliyun.com/article/1489878?spm=a2c6h.13148508.setting.21.658d4f0eueN6WO

相关文章
|
20天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
40 3
|
6月前
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
|
6月前
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
|
2月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
3月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
3月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
6月前
【R语言实战】——Logistic回归模型
【R语言实战】——Logistic回归模型
|
6月前
|
数据可视化
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码2
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码
|
6月前
|
数据可视化 数据挖掘
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码1
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码
|
6月前
|
机器学习/深度学习 数据可视化
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码