Как исправить ошибку efp() "неверный тип (список) для переменной 'data'"?
У меня есть большой (>100 000) данных временных рядов с плавающей запятой одного столбца. Я хочу найти структурные изменения в данных относительно времени (в моем случае индекса). Для этого я использую пакет R Strucchange. Но я получаю ошибку. Я ожидаю сгенерировать следующий вид графика с моим набором данных
Вот код, который я использую:
data = read.csv("tst1.csv", header = FALSE)
library(strucchange)
## fit, visualize and test OLS-based CUSUM test
## with a Cramer-von Mises functional
ocus <- efp(data ~ 1, type = "OLS-CUSUM")
sctest(ocus, functional = "meanL2")
## estimate breakpoints
bp <- breakpoints(data ~1)
summary(bp)
plot.ts(data)
lines(bp)
lines(fitted(bp, type = "mean"), col = 2)
Я получаю следующие сообщения об ошибках:
Loading required package: zoo
Attaching package: ‘zoo’
The following objects are masked from ‘package:base’:
as.Date, as.Date.numeric
Loading required package: sandwich
Error in model.frame.default(formula, data = data) :
invalid type (list) for variable 'data'
Calls: efp -> model.frame -> model.frame.default
Execution halted
Мои данные tst1.csv выглядят так:
0.6
0.78
0.54
0.96
0.43
1.43
1.03
0.83
0.68
3.23
3.09
2.87
...
Любая помощь намного ценится.
Спасибо
1 ответ
Решение
Это потому, что данные - это фрейм данных. Чтобы правильно указать его в формуле, попробуйте следующее:
ocus <- efp(V1 ~ 1, data=data,type = "OLS-CUSUM")