0

この t 値 1 12 2 12 3 0 4 0 5 0 6 0 7 0 のような時系列があります。acf1 は 0.443 に等しいと予想されますが、代わりに精度関数が null を生成します。コードは次のとおりです。

df = data.frame("t" = 1:7, "value" = c(12, 12, 0, 0, 0, 0, 0))
tsb = df %>%
as_tsibble(index = t)
md = tsb %>% model(arima = ARIMA(value ~ PDQ(period = 4), stepwise = F))

fc = md %>% forecast(h = 4)

accuracy(fc, tsb)

なぜこうなった?

4

1 に答える 1

0

からのACF1accuracy()は、残差の最初の自己相関です。予想される 0.443 の ACF1 は、データの最初の自己相関であり、次の方法で取得できます。

library(feasts)
#> Loading required package: fabletools
df = data.frame("t" = 1:7, "value" = c(12, 12, 0, 0, 0, 0, 0))
tsb = df %>%
  as_tsibble(index = t)
tsb %>% ACF(lag_max = 1)
#> Response variable not specified, automatically selected `var = value`
#> # A tsibble: 1 x 2 [1]
#>     lag   acf
#>   <lag> <dbl>
#> 1     1 0.443

reprex パッケージ(v0.3.0)により 2020-08-13 に作成

使用法に関する 2 番目の問題はaccuracy()、予測エラーを計算するために将来のデータが必要になることです。の予測は でfc提供される時間と一致しないtsbため、予測エラーは計算できません。

library(tsibble)
library(dplyr)
library(fable)

md = tsb %>% model(arima = ARIMA(value ~ PDQ(period = 4), stepwise = F))
fc = md %>% forecast(h = 4)

# Make up some future data for evaluating forecast accuracy
tsb_future <- new_data(tsb, 4) %>% mutate(value = rnorm(4))
# Compute the accuracy of the forecasts against the tsb_future scenario
accuracy(fc, tsb_future)
#> # A tibble: 1 x 9
#>   .model .type     ME  RMSE   MAE   MPE  MAPE  MASE    ACF1
#>   <chr>  <chr>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>   <dbl>
#> 1 arima  Test  -0.779  1.09 0.975   100   100   NaN -0.0478

reprex パッケージ(v0.3.0)により 2020-08-13 に作成

于 2020-08-13T12:24:32.927 に答える