- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在倾斜、肥尾和异方差的时间序列的均值中找到结构性断裂。我通过 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最后一行中断点数量的选择。复制图形的代码位于此答案的末尾。
两个 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/
我找到了以下 answer在 Stackoverflow 上。 据我了解,这不是正确的做法。数学是线性的,但是,坐标映射到球面。那么正确的做法是什么? 我有一个计算中点的函数,如何修改它以接受百分比作
我是一名优秀的程序员,十分优秀!