使用对数和差值 (R) 从 ARIMA 中提取预测

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

我计算了 AR 的模型来预测 BTC 的价值。为了使数据稳定,我对其进行了转换:

  1. yt=log(BTS_t)
  2. dyt = yt-yt-1 我取对数之差(可以解释为连续两天之间的增长率)。但是,我想提取 BTC 原始价值的预测。

我的代码如下:

构建数据

df_byday <- read_excel("C:/Users/33610/Downloads/dfday.xlsx")
df_byday$log <- log(df_byday$Price)
df_byday$LOGdiff1 <- c(0, diff(df_byday$log, lag = 1))
tsBTC2 <- ts(df_byday$LOGdiff1, start=c(2017,01,01), frequency=365)

估计:

summary(mod_ar1)
mod_ma1 <- Arima(tsBTC2, order = c(0, 0, 1))
summary(mod_ma1)
mod_ar8 <- Arima(tsBTC2, order = c(8, 0, 0))
summary(mod_ar8)
mod_arma11 <- Arima(tsBTC2, order = c(1, 0, 1))
summary(mod_arma11)

对于非显着系数正确:

mod_ar8fix <- Arima(tsBTC2, order = c(8, 0, 0), fixed=c(NA,0,0,0,0,0,0,NA,NA))
summary(mod_ar8fix)

预测(针对转换后的数据):

forecast_ar8 <- forecast(mod_ar8fix, h = 5) 
forecast_ar1 <- forecast(mod_ar1, h = 5)
forecast_ma1 <- forecast(mod_ma1, h = 5)

我想用这个预测来预测BTC的未来价值,避免日志和差异的问题

感谢您的帮助!

r time-series bitcoin arima forecast
1个回答
0
投票

将日志和差异构建到拟合模型中,

forecast()
函数将为您处理它。

例如,

library(forecast)

price <- ts(df_byday$Price, start = 2027, frequency = 365)
mod_arima011 <- Arima(price, order = c(0, 1, 1), lambda = 0)
forecast_arima011 <- forecast(mod_arima011, h = 5)

lambda=0
参数指定一个对数。请参阅 https://otexts.com/fpp2/arima.html 了解教科书介绍。

但是由于您正在对日常数据进行建模,因此最好不要使用

ts
对象或
forecast
包。相反,请考虑使用
tsibble
包的
fable
对象。请参阅https://otexts.com/fpp3/arima.html

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