поиск помощи для ошибки ARIMA "неверное значение для ошибки" запаздывания "или" различий "" с использованием пакета fable в r
У меня проблемы с функцией Arima в пакете fable, и я получаю сообщение об ошибке в теме письма, когда пытаюсь запустить модель. Возможно, в моем наборе данных слишком мало наблюдений для работы arima, хотя auto.arima отлично работает с тем же набором. Кроме того, это не сезонно - на самом деле, мои наблюдения произошли с разницей в четыре года (данные президентских выборов). Может, все?
Любая помощь или совет приветствуются.
Вот набор данных:https://www.dropbox.com/s/xmr4m3d4ksngurs/PVI%20Data%20arranged%20cols-dates.csv?dl=1
а вот сценарий:
library(tsibble)
library(lubridate)
library(fable)
pvidata<-readr::read_csv("PVI Data arranged cols-dates.csv",col_names = TRUE)
pvidata$Date<-as.Date(mdy(pvidata$Date))
pvidata<-as_tsibble(pvidata,index=Date)
pvidata<- tidyr::pivot_longer(pvidata,-Date, names_to = "State",values_to="PVI")
pvidata<-as_tsibble(pvidata,key=State,index=Date)
fit <- pvidata %>%model(ets = ETS(PVI),arima = ARIMA(PVI))
Я получаю следующее: "Предупреждение: обнаружено 50 ошибок (1 уникальная) для arima [50], неверное значение для 'лага' или 'различий'"
Спасибо!
Пит Альтман
1 ответ
Это сообщение об ошибке неинформативно и вводит в заблуждение. Теперь это исправлено в https://github.com/tidyverts/fable/commit/4b9ae292f940c6e99b05a62cf3e76519fcac67b0 (причина в восходящем потоке исправлена в https://github.com/tidyverts/fabletools/commit/4f7738bcb9b1c2b482937abd50c7e63fb80d4c55)
Проблема связана с вашим построением циббла. Представляя индекс вашего tsibble классом Date, детализация ваших данных по времени составляет 1 день. Однако выборы проводятся каждые несколько лет, поэтому индекс следует хранить как целое или числовое. Хороший способ проверить это - взглянуть на интервал tsibble (вверху таблицы):
library(tsibble)
library(lubridate)
pvidata<-readr::read_csv("https://www.dropbox.com/s/xmr4m3d4ksngurs/PVI%20Data%20arranged%20cols-dates.csv?dl=1",col_names = TRUE)
pvidata$Date<-as.Date(mdy(pvidata$Date))
pvidata<-as_tsibble(pvidata,index=Date)
pvidata<- tidyr::pivot_longer(pvidata,-Date, names_to = "State",values_to="PVI")
pvidata
#> # A tsibble: 750 x 3 [1461D]
#> # Key: State [50]
#> Date State PVI
#> <date> <chr> <dbl>
#> 1 1962-01-01 Alabama 0.12
#> 2 1962-01-01 Alaska 0.03
#> 3 1962-01-01 Arizona -0.04
#> 4 1962-01-01 Arkansas 0.07
#> 5 1962-01-01 California 0.01
#> 6 1962-01-01 Colorado -0.04
#> 7 1962-01-01 Connecticut -0.01
#> 8 1962-01-01 Delaware 0.02
#> 9 1962-01-01 Florida 0.16
#> 10 1962-01-01 Georgia 0.17
#> # … with 740 more rows
Создано 12.06.2020 пакетом REPEX (v0.3.0)
В [1461D]
это автоматически определяемый интервал данных, который должен быть [4Y]
. Установка даты в виде целого числа устраняет эту проблему:
library(tsibble)
library(lubridate)
pvidata<-readr::read_csv("https://www.dropbox.com/s/xmr4m3d4ksngurs/PVI%20Data%20arranged%20cols-dates.csv?dl=1",col_names = TRUE)
pvidata$Date<-year(mdy(pvidata$Date))
pvidata<-as_tsibble(pvidata,index=Date)
pvidata<- tidyr::pivot_longer(pvidata,-Date, names_to = "State",values_to="PVI")
pvidata
#> # A tsibble: 750 x 3 [4Y]
#> # Key: State [50]
#> Date State PVI
#> <dbl> <chr> <dbl>
#> 1 1962 Alabama 0.12
#> 2 1962 Alaska 0.03
#> 3 1962 Arizona -0.04
#> 4 1962 Arkansas 0.07
#> 5 1962 California 0.01
#> 6 1962 Colorado -0.04
#> 7 1962 Connecticut -0.01
#> 8 1962 Delaware 0.02
#> 9 1962 Florida 0.16
#> 10 1962 Georgia 0.17
#> # … with 740 more rows
Создано 12.06.2020 пакетом REPEX (v0.3.0)
С исправленными данными модели работают без проблем:
library(fable)
#> Loading required package: fabletools
pvidata %>% model(ets = ETS(PVI),arima = ARIMA(PVI))
#> # A mable: 50 x 3
#> # Key: State [50]
#> State ets arima
#> <chr> <model> <model>
#> 1 Alabama <ETS(A,N,N)> <ARIMA(0,1,0)>
#> 2 Alaska <ETS(A,N,N)> <ARIMA(1,0,0)>
#> 3 Arizona <ETS(A,N,N)> <ARIMA(0,0,2) w/ mean>
#> 4 Arkansas <ETS(A,N,N)> <ARIMA(1,0,1)>
#> 5 California <ETS(A,N,N)> <ARIMA(0,1,0) w/ drift>
#> 6 Colorado <ETS(A,N,N)> <ARIMA(0,0,2)>
#> 7 Connecticut <ETS(A,N,N)> <ARIMA(1,1,0)>
#> 8 Delaware <ETS(A,N,N)> <ARIMA(0,1,1)>
#> 9 Florida <ETS(A,N,N)> <ARIMA(1,0,0)>
#> 10 Georgia <ETS(A,N,N)> <ARIMA(0,0,1)>
#> # … with 40 more rows
Создано 12.06.2020 пакетом REPEX (v0.3.0)
Для получения дополнительной информации вы можете обратиться к https://otexts.com/fpp3/tsibble-objects.html и https://pkg.earo.me/tsibble/articles/faq.html.