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

问题描述 投票:0回答:1

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

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

if(is.nan(p0)|| p0 <a2 || p0>(1 - a2)){:缺失值需要TRUE / FALSE时出错

r package
1个回答
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分量的模型似乎就足够了,因为季节性/自回归效应发生在较小的范围内。您需要根据实际数据检查模型的有效性。

© www.soinside.com 2019 - 2024. All rights reserved.