我计算了 AR 的模型来预测 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的未来价值,避免日志和差异的问题
感谢您的帮助!
将日志和差异构建到拟合模型中,
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。