gpt4 book ai didi

由于非球形干扰,R strucchange bootstrap 测试统计

转载 作者:行者123 更新时间:2023-11-28 21:02:31 33 4
gpt4 key购买 nike

我试图在倾斜、肥尾和异方差的时间序列的均值中找到结构性断裂。我通过 strucchange 包应用 Andrews(1993) supF-test。我的理解是,即使有我的非球形干扰,这也是有效的。但我想通过引导来确认这一点。我想根据每个可能的断点处的平均测试差异来估计最大 t-stat(就像 Andrews F-stat),然后引导临界值。换句话说,我想在按时间排序的数据中找到我的最大 t-stat。然后打乱数据,在打乱的数据中找到最大的t-stat,10000次。然后将时间排序数据中的最大 t-stat 与无序数据中排名 9,500 max t-stat 给出的临界值进行比较。下面我生成示例数据并应用 Andrews supF-test。有什么方法可以“纠正”安德鲁斯非球面干扰测试吗?有什么方法可以执行我正在尝试执行的 Bootstrap 吗?

library(strucchange)
Thames <- ts(matrix(c(rlnorm(120, 0, 1), rlnorm(120, 2, 2), rlnorm(120, 4, 1)), ncol = 1), frequency = 12, start = c(1985, 1))
fs.thames <- Fstats(Thames ~ 1)
sctest(fs.thames)

最佳答案

我正在添加第二个答案来分析所提供的模拟 Thames 数据。关于我的第一个一般方法论回答中的要点:(1) 在这种情况下,log() 转换显然适合处理观察的极端偏斜。 (2) 由于数据是异方差的,推论应基于HC或HAC协方差。下面我使用了 Newey-West HAC 估计器,尽管数据只是异方差而不是自相关。 HAC 校正的推论会影响 supF 检验和断点估计的置信区间。断点本身和相应的特定于段的截距由 OLS 估计,即将异方差性视为令人讨厌的术语。 (3) 我没有添加任何自举或置换推理,因为渐近推理在这种情况下似乎具有足够的说服力。

首先,我们使用特定种子模拟数据。 (请注意,在水平分析系列时,其他种子可能不会导致这种明确的断点估计。)

library("strucchange")
set.seed(12)
Thames <- ts(c(rlnorm(120, 0, 1), rlnorm(120, 2, 2), rlnorm(120, 4, 1)),
frequency = 12, start = c(1985, 1))

然后我们计算 HAC 校正的 Wald/F 统计序列,并通过 OLS 估计最佳断点(对于 m = 1、2、3 ... 断点)。为了说明这对日志系列而不是级别系列的效果有多好,显示了两个版本。

fs_lev <- Fstats(Thames ~ 1, vcov = NeweyWest)
fs_log <- Fstats(log(Thames) ~ 1, vcov = NeweyWest)
bp_lev <- breakpoints(Thames ~ 1)
bp_log <- breakpoints(log(Thames) ~ 1)

下面的可视化显示了第一行具有拟合截距的时间序列,第二行具有 supF 检验的 5% 临界值的 Wald/F 统计序列,以及残差平方和和 BIC最后一行中断点数量的选择。复制图形的代码位于此答案的末尾。

Structural change analysis of simulated Thames data.

两个 supF 测试显然很重要,但在级别 (sctest(fs_lev)) 中,测试统计“仅”为 82.79,而在日志中 (sctest(fs_log))是 282.46。此外,在分析日志中的数据时,可以更好地看到与两个断点有关的两个峰。

同样,对数转换数据的断点估计更好,置信区间更窄。在关卡中,我们得到:

confint(bp_lev, breaks = 2, vcov = NeweyWest)
##
## Confidence intervals for breakpoints
## of optimal 3-segment partition:
##
## Call:
## confint.breakpointsfull(object = bp_lev, breaks = 2, vcov. = NeweyWest)
##
## Breakpoints at observation number:
## 2.5 % breakpoints 97.5 %
## 1 NA 125 NA
## 2 202 242 263

加上一条错误消息和警告,它们都反射(reflect)出渐近推理在这里不是一个有用的近似值。相比之下,置信区间对于日志分析来说是相当合理的。由于中间段的方差增加,它的开始和结束比第一段和最后一段更不确定:

confint(bp_log, breaks = 2, vcov = NeweyWest)
##
## Confidence intervals for breakpoints
## of optimal 3-segment partition:
##
## Call:
## confint.breakpointsfull(object = bp_log, breaks = 2, vcov. = NeweyWest)
##
## Breakpoints at observation number:
## 2.5 % breakpoints 97.5 %
## 1 107 119 121
## 2 238 240 250
##
## Corresponding to breakdates:
## 2.5 % breakpoints 97.5 %
## 1 1993(11) 1994(11) 1995(1)
## 2 2004(10) 2004(12) 2005(10)

最后,这里包含了上图的复制代码。由于上述错误,无法在图形中添加水平断点的置信区间。因此,只有对数变换序列也有置信区间。

par(mfrow = c(3, 2))
plot(Thames, main = "Thames")
lines(fitted(bp_lev, breaks = 2), col = 4, lwd = 2)
plot(log(Thames), main = "log(Thames)")
lines(fitted(bp_log, breaks = 2), col = 4, lwd = 2)
lines(confint(bp_log, breaks = 2, vcov = NeweyWest))
plot(fs_lev, main = "supF test")
plot(fs_log, main = "supF test")
plot(bp_lev)
plot(bp_log)

关于由于非球形干扰,R strucchange bootstrap 测试统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591693/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com