拓端tecdat|R語言ARIMA、GARCH 和 VAR模型估計、預測ts 和 xts格式時間序列
原文鏈接:http://tecdat.cn/?p=25180?
原文出處:拓端數據部落公眾號
時間序列分析
對于時間序列分析,有兩種數據格式:??ts??(時間序列)和?xts??(可擴展時間序列)。前者不需要時間戳,可以直接從向量轉換。后者非常重視日期和時間,因此只能使用日期和/或時間列來定義。我們涵蓋了基本的時間序列模型,即 ARMA、GARCH 和 VAR。
時間序列數據
函數?ts?將任何向量轉換為時間序列數據。
price
我們首先為估計定義一個時間序列(ts)對象。請注意,??ts?與?xts類似,?但沒有日期和時間。
df <- ts(df)
df
可擴展的時間序列數據xts?
要處理高頻數據(分秒),我們需要包?xts。該包定義可擴展時間序列 (?xts?) 對象。
以下代碼安裝并加載?xts?包。
library(xts)
考慮我們的可擴展時間序列的以下數據
date
time
price
現在我們準備定義?xts?對象。代碼?as.POSIXct()?將字符串轉換為帶有分鐘和秒的日期格式。
df <-data.frame
df$daime <-paste
df$dttime <-as.POSIXct
df <- xts
對于僅使用日期的轉換,我們使用?POSIXlt()?而不是?POSIXct()。
df$date <- as.POSIXct
df$price <-as.numeric
price <-xts
自回歸移動平均模型arima
可以使用?arima()?函數估計自回歸移動平均模型。
以下代碼估計了一個 AR(1) 模型:
AR1
以下代碼估計了一個 AR(2) 模型:
AR2 <- arima
AR2
以下代碼估計一個 MA(1) 模型:
MA1 <- arima
MA1
以下代碼估計一個 MA(2) 模型:
MA2 <- arima
以下代碼估計了一個 ARMA(1,1) 模型:
ARMA11 <- arima
有時,我們只想保留系數。
coef #得到系數
以下代碼顯示了殘差圖。
plot
R 有一個方便的函數來?autofit()? 擬合ARIMA 模型的參數。
現在尋找最好的 ARIMA 模型了。
autoarma
時間序列模型的一項重要功能是預測。以下代碼給出了兩步的預測:
teFoast <-predict
下面顯示了預測圖。
plot.ts#可視化預測
ARCH 和 GARCH模型
要估計 ARCH 和 GARCH 模型,我們需要安裝和加載包?rugarch。
我們將在生成隨機數時使用 ARMA(1,1) 估計 GARCH(1,1)
a <- runif #隨機數
Spec <-ugarchspec
為了獲得 GARCH 模型的具體結果,我們使用以下代碼:
coffnt <-coef
voy <- sigma
logr.vrae <- uncvariance
VAR模型
以下數據將用于估計 VAR 模型。
要估計 VAR 模型,我們需要安裝和加載?vars?。
以下代碼估計 VAR(2) 模型。
abr<-VAR #運行 VAR(2)
coef ? ? ? #VAR的系數公式
summary ? #VAR的摘要
要生成系數圖,我們需要安裝并加載包:
以下代碼為 VAR 模型生成系數圖:
plot
最受歡迎的見解
1.在python中使用lstm和pytorch進行時間序列預測
2.python中利用長短期記憶模型lstm進行時間序列預測分析
3.使用r語言進行時間序列(arima,指數平滑)分析
4.r語言多元copula-garch-模型時間序列預測
5.r語言copulas和金融時間序列案例
6.使用r語言隨機波動模型sv處理時間序列中的隨機波動
7.r語言時間序列tar閾值自回歸模型
8.r語言k-shape時間序列聚類方法對股票價格時間序列聚類
9.python3用arima模型進行時間序列預測