是否有特定的方法来检测时间序列中的变化点(结构中断)?(股票价格)。
如何检测时间序列中的结构变化
变化点可能由许多可能的原因引起。可以评估每个可能的原因。在增加复杂性方面: 1. 检测期望值的变化本质上是干预检测。继续 Ruey Tsay 的工作,了解您需要做什么。他的工作不涉及检测新时间趋势的开始,您可能会考虑的第二项是检测模型的参数何时以及是否发生了变化。如果您继续 Gregory Chow 的工作,即测试已知分组的参数之间的差异,并简单地将其概括为搜索参数发生变化的可能时间点,您可能会成功。接下来在复杂性方面是对残差方差的显着变化进行测试。只需评估不同可能的 breal 点的方差变化并进行一系列 F 检验以找到方差发生变化的点(如果有)。我在开发这三个测试中的每一个和可能的解决方法方面都有过个人经验,以使最终的错误过程呈现高斯状态。
感谢您的荣誉Whuber!
@Dail如果您更倾向于应用而不是检测结构中断的理论,您可能想尝试http://cran.r-project.org/web/packages/cpm/index.html这是CPMpackage of的链接R,您可以在其中processStream找到时间序列中的多个断点。
这是一些演示 R 代码,展示了如何检测(内生的)时间序列/纵向数据中的结构中断。
# assuming you have a 'ts' object in R
# 1. install package 'strucchange'
# 2. Then write down this code:
library(strucchange)
# store the breakdates
bp_ts <- breakpoints(ts)
# this will give you the break dates and their confidence intervals
summary(bp_ts)
# store the confidence intervals
ci_ts <- confint(bp_ts)
## to plot the breakpoints with confidence intervals
plot(ts)
lines(bp_ts)
lines(ci_ts)
查看我在博客中提到的这个示例案例。
在 Google 学者上搜索“贝叶斯变化点检测”会产生一些有用的参考资料,例如Adams 和 MacKay,它们看起来很有趣,听起来正是您正在寻找的东西。还有一本O'Ruanaidh 和 Fitzgerald写的关于“Numerical Bayesian Methods Applied to Signal Processing”的好书,我记得在这类事情上做得很好,但是我没有副本了,所以我无法检查对于相关页面(但索引表明有一个关于回顾性变更点检测的章节)。