R中的中断时间序列

机器算法验证 时间序列 分段回归
2022-04-04 05:01:05

我有 2003 年至 2013 年的疟疾发病率数据。2008 年实施了干预。如何在 R 中对中断的时间序列进行分段回归分析,以测试干预前的斜率与干预后的斜率是否不同?

1个回答

人们通常区分两种变化模式(仅斜率变化连续,变化突然加上斜率变化)以及断点是否已知。

如果断点(=干预生效的时间)是已知的,那么没有干预的回归公式将类似于:y ~ time + .... 并且斜率的连续变化只会是:y ~ time + pmax(time - breakpoint, 0) + ...可能同时改变斜率和截距的变化(即,除了斜率变化之外,可能还包括突然变化)y ~ factor(time <= breakpoint) * time + ...

如果您认为干预立即生效,那么您可以只拟合没有变化的模型和有变化的模型之一并执行anova().

但是,通常不清楚此类干预何时有效,然后您需要估计断点以及截距/斜率。segmented软件包专为仅斜率变化的strucchange模型和所有参数变化的模型而设计。这两个包都可以从 CRAN 获得,并且已经在几篇论文中进行了描述,分别参见citation("segmented")citation("strucchange")

PS:重新阅读您的问题,我意识到您的斜率可能不仅是时间趋势,而且是相对于其他回归量的斜率。在上面的解释中,您还可time以为您的应用程序替换为(一个)其他回归量。