1

我正在尝试使用 strucchange 包中的“监视器”进行更改点检测,但我无法获得有用的输出。

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

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 

在结构手册中,有一些示例保留了时间戳,但我无法弄清楚它们在格式上的区别是什么。

如果我将数据框制作成时间序列,这没有什么区别。

有人可以帮忙吗?

谢谢!

4

1 回答 1

1

/函数只能处理时间序列mefp。因此,您可以提供一个参数是 (multivariate) ,其中响应变量是 a或没有参数的独立参数。在您的情况下,数据似乎是季度的,并且由于没有回归变量(常数除外),因此独立的时间序列可能是最方便的。monitortsdatatsdata.frametstsdata

作为一个人工示例,我模拟了来自季度时间序列的 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)

时间序列

然后我选择到 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)

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

监控过程

PS:在您的示例中,数据似乎是正数。如果是这样,记录日志可能(或可能不会)有用。

于 2015-04-25T12:29:54.817 回答