package strucchange中函数的输入格式?

时间:2015-04-24 13:34:27

标签: r regression trend

我正在尝试使用strucchange包中的'monitor'进行更改点检测,但是我无法获得有用的输出。

我的输入是带时间戳的数据框,我希望将休息作为日期返回,但它们将作为观察编号返回:

cDF1 <- myDF[1:80,]

> cDF1[1:3,]
        Year Month Value
2000-10 2000   Oct     1
2001-01 2001   Jan     1
2001-04 2001   Apr     1

me.mefp <- mefp(Value~1, type="ME", rescale=TRUE,
+                       data=cDF1, alpha=0.05)

cDF1 <- myDF[1:104,]

> me.mefp <- monitor(me.mefp)
Break detected at observation # 98 

在结构手册中,有一些例子可以保留时间戳,但我无法弄清楚它们的格式有什么不同。

如果我将数据帧设置为时间序列,则没有区别。

有人可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

mefp / monitor函数只能处理ts个时间序列。因此,您可以提供data参数,该参数是(多变量)tsdata.frame,其中响应变量是ts,或者是独立的ts没有data参数。在您的情况下,数据似乎是季度的,因为没有回归量(除常数外),独立的时间序列可能是最方便的。

作为一个人为的例子,我模拟了季度时间序列中的100个观察结果:

set.seed(1)
Value <- ts(rnorm(100, mean = rep(0:1, c(70, 30)), sd = 0.5),
  start = c(1990, 1), freq = 4)
plot(Value)

time series

然后我选择截至1999年底的数据作为历史时期并初始化监控过程:

val <- window(Value, end = c(1999, 4))
m <- mefp(val ~ 1, type = "ME", rescale = TRUE, alpha = 0.05)

然后数据可以到达,比如直到2009年底:

val <- window(Value, end = c(2009, 4))
m <- monitor(m)

最后到2014年底:

val <- window(Value, end = c(2014, 4))
m <- monitor(m)
## Break detected at observation # 81 
plot(m)

这里,最终检测到中断,并以图形方式显示。

monitoring process

P.S。:在您的示例中,似乎数据是正数。如果是这样,采取日志可能(或可能不)有用。