我有一个包含超过10万行的单列浮点时间序列数据。我希望根据时间(在我的情况下是索引)找出数据中的结构变化。为此,我使用了R语言的strucchange包。但是我遇到了错误。我希望能够用我的数据集生成如下类型的图表
这是我使用的代码:
data = read.csv("tst1.csv", header = FALSE)library(strucchange)## 拟合、可视化和测试基于OLS的CUSUM测试## 使用Cramer-von Mises函数ocus <- efp(data ~ 1, type = "OLS-CUSUM")sctest(ocus, functional = "meanL2")## 估计断点bp <- breakpoints(data ~1)summary(bp)plot.ts(data)lines(bp)lines(fitted(bp, type = "mean"), col = 2)
我收到了以下错误消息:
Loading required package: zooAttaching package: ‘zoo’The following objects are masked from ‘package:base’:as.Date, as.Date.numericLoading required package: sandwichError in model.frame.default(formula, data = data) : invalid type (list) for variable 'data'Calls: efp -> model.frame -> model.frame.defaultExecution halted
我的数据文件tst1.csv看起来像这样:
0.60.780.540.960.431.431.030.830.683.233.092.87...
任何帮助都将不胜感激。
谢谢
回答:
这是因为data是一个数据框。为了正确地将其放入公式中,请尝试这样做:
ocus <- efp(V1 ~ 1, data=data,type = "OLS-CUSUM")