R包`bfast`错误:缺少需要TRUE / FALSE的值

时间:2018-03-01 06:36:13

标签: r package

我正在使用R包bfast来检测时间序列中的任何更改点,并遇到以下错误。有什么建议吗?非常感谢。

library(bfast)
Mydata = Nile
bf1 <- bfast01(data = Mydata)

if(is.nan(p0)|| p0&lt; a2 || p0&gt;(1 - a2)){:   缺少需要TRUE / FALSE的值

1 个答案:

答案 0 :(得分:3)

似乎bfast01试图从其他函数参数中猜测模型。我对bfast不太熟悉,但这似乎会导致Nile数据出错。

如果我们明确指定模型,

fit <- bfast01(Nile, formula = response ~ trend);

不会出现错误,而bfast01会在索引28处获得更改点。

fit$breakpoints;
#[1] 28

此结果与使用changepoint的类似变更点分析的结果一致:

changepoint::cpt.mean(Nile, class = FALSE);
#    cpt conf.value
#     28          1

请注意,对于bfast变更点分析,仅涉及trend分量的模型似乎就足够了,因为季节性/自回归效应会以较小的比例发生。您需要根据实际数据检查模型的有效性。