拓端tecdat|R語言ARMA GARCH COPULA模型擬合股票收益率時間序列和模擬可視化
原文鏈接:http://tecdat.cn/?p=25770
原文出處:拓端數(shù)據(jù)部落公眾號
在本文中,我們展示了 copula GARCH 方法擬合模擬數(shù)據(jù)和股票數(shù)據(jù)并進(jìn)行可視化。?r
還提供了一個特殊情況(具有正態(tài)或?qū)W生 t殘差)。
?一、如何在R中對股票x和y的收益率擬合copula模型
數(shù)據(jù)集
為了這個例子的目的,我使用了一個簡單的股票x和y的收益率數(shù)據(jù)集(x.txt和y.txt)。
首先,我們需要加載數(shù)據(jù)并將其轉(zhuǎn)換成矩陣格式。也可以選擇繪制數(shù)據(jù)。
x <- read.table
y <- read.table
# 實(shí)際觀察結(jié)果
plot
數(shù)據(jù)的圖表

現(xiàn)在我們已經(jīng)加載了我們的數(shù)據(jù),可以清楚地看到,存在正相關(guān)。
下一步是擬合。為了擬合數(shù)據(jù),我們需要選擇一個copula模型。該模型應(yīng)根據(jù)數(shù)據(jù)的結(jié)構(gòu)和其他因素來選擇。作為第一種近似值,我們可以說我們的數(shù)據(jù)顯示了正相關(guān),因此一個可以復(fù)制這種相關(guān)的copula模型應(yīng)該是不錯的。我選擇使用正態(tài)copula。對于其他類型的copula模型來說,擬合過程是相同的。
讓我們來擬合數(shù)據(jù)
# 正態(tài)Copula
normalCopula
fiop<- fit
# 系數(shù)
rho <- coef
print

請注意,數(shù)據(jù)必須通過函數(shù)pobs()輸入,該函數(shù)將真實(shí)觀測值轉(zhuǎn)換為單位平方[0,1]的偽觀測值。
還要注意的是,我們使用的是 "ml "方法(最大似然法),但是也有其他方法,如 "itau"。
在我們的例子中,擬合的協(xié)整參數(shù)rho等于0.73。讓我們模擬一些偽觀察結(jié)果。
通過繪制偽觀測值和模擬觀測值,我們可以看到使用copula的模擬與偽觀測值的匹配情況。
# 偽觀察
pobs
plot
# 模擬數(shù)據(jù)
u1 = rCopula

這個特定的copula可能不是最好的,因?yàn)樗@示了嚴(yán)重的尾部相關(guān)性,而這在我們的數(shù)據(jù)中并不強(qiáng)烈,不過這只是一個開始。
在開始的時候,我們可以選擇將數(shù)據(jù)與每個隨機(jī)變量的分布畫在一起,如下所示
# 用柱狀圖繪制數(shù)據(jù)
hst <- hist
top <- max
layout
par
plot
barplot
?
并得到我們的原始數(shù)據(jù)集的這種表現(xiàn)形式

?將 t?copula 擬合到標(biāo)準(zhǔn)化殘差?Z
。對于邊緣分布,我們還假設(shè) t分布,但具有不同的自由度;為簡單起見,此處省略了估計。

n <- rep # 邊際自由度;為了簡單起見,這里使用已知的自由度
es <- cbind # 擬合與真實(shí)
rownames
從擬合的時間序列模型中模擬
從擬合的 copula 模型進(jìn)行模擬。
并為每個邊緣繪制結(jié)果序列 (Xt)
X <- sapply # 模擬序列X_t
matplot
二、模擬數(shù)據(jù)
首先,我們模擬了分布。為了演示的目的,我們選擇了一個小的樣本量。
##模擬
Copula # 定義copula對象
set.seed(21) # 可重復(fù)性
# 對copula進(jìn)行采樣
sqrt * qt # 對于ugarchpath()來說,邊際必須具有均值0和方差1!
現(xiàn)在我們使用依賴于 copula 來模擬兩個 ARMA(1,1)-GARCH(1,1) 過程。?ARMA(p1,q1)-GARCH(p2,q2) 模型由下式給出

## 固定邊緣模型的參數(shù)
fixedp <- list
var <- list(model = "sGARCH") # 標(biāo)準(zhǔn)GARCH
garch # 條件創(chuàng)新密度(或者使用,例如,"std")。
## 使用從屬創(chuàng)新模擬ARMA-GARCH模型
garch n.sim = n, # 模擬的路徑長度
m.sim = d, # 要模擬的路徑數(shù)量
##提取結(jié)果系列
fit# X_t = mu_t + eps_t (模擬過程)
sig # sigma_t (條件性標(biāo)準(zhǔn)偏差)
resid # epsilon_t = sigma_t * Z_t (殘差)
## 繪制
matplot


基于模擬數(shù)據(jù)的擬合
我們現(xiàn)在展示如何將 ARMA(1,1)-GARCH(1,1) 過程擬合到?X
?
garchspec
fit <- apply
檢查(標(biāo)準(zhǔn)化的)Z,即殘差Z的偽觀測值。
Z <- sapply
U <- pobs
plot

將 t?copula 擬合到標(biāo)準(zhǔn)化殘差?Z
。對于邊緣分布,我們還假設(shè) t分布,但具有不同的自由度;為簡單起見,此處省略了估計。
fitCopula

n <- rep # 邊際自由度;為了簡單起見,這里使用已知的自由度
es <- cbind # 擬合與真實(shí)
rownames

從擬合的時間序列模型中模擬
從擬合的 copula 模型進(jìn)行模擬。
set.seed(21) # 可重復(fù)性
U <- rCopula
Z. <- sapply
## => 標(biāo)準(zhǔn)化的garchsim()
sim <- lapply
并為每個邊緣繪制結(jié)果序列 (Xt)
X <- sapply # 模擬序列X_t
matplot


最受歡迎的見解
1.R語言基于ARMA-GARCH-VaR模型擬合和預(yù)測實(shí)證研究
2.r語言實(shí)現(xiàn)copula算法建模依賴性案例
3.R語言COPULAS和金融時間序列數(shù)據(jù)VaR分析
4.R語言多元COPULA GARCH 模型時間序列預(yù)測
5.GARCH(1,1),MA以及歷史模擬法的VaR比較
6.matlab使用Copula仿真優(yōu)化市場風(fēng)險數(shù)據(jù)分析
7.R語言實(shí)現(xiàn)向量自動回歸VAR模型
8.R語言隨機(jī)搜索變量選擇SSVS估計貝葉斯向量自回歸(BVAR)模型
9.R語言VAR模型的不同類型的脈沖響應(yīng)分析