如何解决阈值时间序列模型;找到 T0
我正在尝试为以下阈值时间序列模型找到 T0:
yt = u1 + p1yt-1 + ut (1
yt = u2 + p2t + vt (T0+1
我有以下代码,尽管我的理解是下面代码中 p2 的现有回归量是时间序列 y (yt-1) 的滞后。我正在努力确定如何编辑 p2 的现有代码,以便将时间 (t) 作为回归量(而不是 yt-1 的滞后)。我最初认为将 x2 = (1-Itb)*lagyb 更改为 x2 = (1-Itb)*i 是解决方案,但似乎并非如此。我需要在 ts.intersect 代码中添加另一个变量吗?
提前致谢。
# estimation of T_0
Tset = seq(20,230,by = 1)
i = 0
sigma_hat = numeric(211)
Tr = seq(1,252,by = 1)
for (T in Tset){
i = i + 1
It.values = as.numeric(Tr>=T)
It = ts(It.values,start =c(1947,1),frequency = 4)
lagy = lag(y,-1)
data = ts.intersect(y,It,lagy)
yb = data[,1]
Itb = data[,2]
lagyb = data[,3]
# note that we can rewrite the model as y_t = mu_1 + (mu_2 - mu_1)I(t>T_0) + rho_1 y_{t-1} I(t<=T_0)
# + rho_2 y_{t-1} I(t > T_0) + u_t
mu1 = Itb*1
x1 = Itb*lagyb
x2 = (1-Itb)*lagyb
model1 = lm(yb~mu1+x1+x2)
residual = model1$residuals
sigma_hat[i] = mean(residual^2)
}
which.min(sigma_hat)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。