关于数据挖掘:R语言时间序列TAR阈值自回归模型

37次阅读

共计 4587 个字符,预计需要花费 12 分钟才能阅读完成。

原文链接: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")

 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)

预测

预测散布通常是非正态的。通常,采纳模仿办法进行预测。思考模型

而后给定 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(c
lines(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.stat

18.2840758932705

$p.value

2.64565849317573e-05

$order

9

$test.stat

3.904

$p.value

6.689e-12

$order

9

在 [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)
$percentiles

15

85
$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 阶数 9
ord = 9
ar.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.3
p1 = 0.5
s1 = 1

#高机制参数
i2 = -0.2
p2 = -1.8
s2 = 1

thresh = -1
delay = 1

nobs = 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 模型进行工夫序列预测

正文完
 0