平穩VAR模型一

2021-08-10 23:00:24 字數 3824 閱讀 6031

knitr::opts_chunk$set(echo = true, message = f, warning = f)
tsay書的第一章通過上兩篇得到總結,主要目的是清楚多元模型的資料結構和模型目標。第二章用以了解 stationary var 時間序列的基本知識,主要包括:

總體的,乙個var(p)表達與ar(p)類似: zt

=ϕ0+

∑i=1

pϕiz

t−i+

at參見上篇詳細表達。 值得注意的是,var(p) 的 p 取值於最大lag, 如乙個觀測物件數量為2的var(2)模型, 可以由乙個ar(1)和乙個ar(2)模型組成, 如下, 例子中z2

,t−1

如果不能為z_ 的**提供有效資訊, 依照granger

causality ϕ1

,12=0

, 原因是它不能提高**的準確性。 z1

t=ϕ10

+ϕ1,

11z1,

t−1+

ϕ1,12

z2,t

−1+a

1tz2

t=ϕ20

+ϕ1,

21z1,

t−1+

ϕ1,22

z2,t

−1+a

2t另外,現實中p的值都很小,以下在盡量不失總體性的情況下以如下三元var(2)模型為例子。 對 var(2) 模型結構和成分分析主要考慮moment分析,平穩性, ma變形以及單元序列變形三方面。 ⎛⎝

⎜z1t

z2tz

3t⎞⎠

⎟=⎛⎝

⎜530

⎞⎠⎟+

⎡⎣⎢0.47

−0.35

0.47

0.21

0.34

0.23

00.47

0.23⎤⎦

⎥⎛⎝⎜

z1,t

−1z2

,t−1

z3,t

−1⎞⎠

⎟+⎡⎣

⎢0−0.19

0.30

0.1800

00⎤⎦

⎥⎛⎝⎜

z1,t

−1z2

,t−1

z3,t

−1⎞⎠

⎟+⎛⎝

⎜a1t

a2ta

3t⎞⎠

⎟,wi

thσa

=⎡⎣⎢

0.285

0.026

0.069

0.026

0.287

0.137

0.069

0.137

0.357⎤⎦

⎥.本篇僅考慮前兩個monment,即均值和協方差,公式和計算過程如下。 μ

=(ik

−ϕ1−

ϕ2)−

1ϕ0

vec(γ∗0

)=[i

(kp)

2−φ⊗

φ]−1

vec(

γb)w

ith:

φ=⎡⎣

⎢⎢⎢⎢

⎢⎢⎢⎢

ϕ1i0

⋮0ϕ2

0i⋮⋯

⋯⋯⋱⋯

ϕp−1

00⋮i

ϕp00

⋮0⎤⎦

⎥⎥⎥⎥

⎥⎥⎥⎥

,and

γb=[

γa0k

0k0k

]gen

eral

ly,γ

ℓ=∑i

=1pϕ

iγℓ−

i∀ℓ>0

使用上述var(2)數值進行如下計算

library(mts)

p0 = matrix(c(5, 3, 0), 3, 1)

p1 = matrix(c(.47, -.35, .47, .21, .34, .23, 0, .47, .23), 3, 3)

p2 = matrix(c(0,-.19, .3, 0, .18, 0, 0,0,0),3,3)

sig = matrix(c(.285, .026, .069,.026,.287,.137,.069,.137,.357),3,3)

k = nrow(sig)

ik= diag(k)

mu = solve(ik - p1 - p2) %*% p0

rownames(mu) = c("z1","z2","z3")

colnames(mu) = c(mean)

muzt = varmasim(30000, arlags = c(1,2), phi = cbind(p1,p2), cnst = c(p0),

sigma = sig, set.seed(100))

"mean throung simulation"

meansm

p1 = diag(ncol(p1))

p2 = p1 * 0

pr1 = cbind(p1, p2)

pr2 = cbind(p1, p2)

p = rbind(pr1, pr2)

pg1 = matrix(0, nrow(sig),ncol(sig))

g2 = g1

g3 = g1

gr1 = cbind(sig, g1)

gr2 = cbind(g2, g3)

g = rbind(gr1, gr2)

gk = 3

p = 2

nvi = (k*p)^2

vi = diag(nvi)

vkp = kronecker(p, p)

g0 = solve(vi - vkp) %*% matrix(as.numeric(g), ncol = 1)

ng = length(g)^0.5

gm = matrix(g0, nrow = ng)

g0 = gm[1:nrow(sig), 1:ncol(sig)]

g1 = gm[1:nrow(sig), (ncol(g0)+1):ncol(gm)]

g2 = p1 %*% g1 + p2 %*% g0

gamam = cbind(g0, g1, g2)

rownames(gamam) = c("z1","z2","z3")

colnames(gamam) = paste("l", rep(c(1,2,3), 3), rep(c(0,1,2), each =3), sep = "")

gamam

sm = diag(diag(g0))

se = sm^0.5

s = solve(se)

rho0 = s %*% g0 %*% s

rho1 = s %*% g1 %*% s

rho2 = s %*% g2 %*% s

rohm = cbind(rho0, rho1, rho2)

dimnames(rohm) = dimnames(gamam)

rohm

zt = zt$series

nr = nrow(zt)

zt1 = zt[1: (nr - 2),]

zt2 = zt[2:(nr -1),]

zt3 = zt[3:nr,]

rohsim = cbind(cor(zt), cor(zt2,zt1), cor(zt3, zt1))

"check throung simulation, outcomes differ somehow from the parameters's one if t is small"

rohsim

rmarkdwon版本

平穩時間序列模型的統計性質

1 ar模型的統計性質 2 ma模型的統計性質 3 arma模型的統計性質 統計性質包括5個 1 均值 2 方差 3 協方差 4 自相關係數 5 偏自相關係數。arma模型的相關性特徵 1 均值 如果ar 模型滿足平穩,均值為常數。2 方差 求解思路 首先把序列轉化為傳遞形式,再求解方差 不能直接求...

單一var模式

只使用乙個var在函式頂部進行變數宣告是一種非常有用的模式。它的好處在於 1.提供乙個單一的位址以查詢到函式需要的所有區域性變數。2.防止出現變數在定義前就被使用的邏輯錯誤。3.幫助牢記要宣告的變數,以盡可能少地使用全域性變數。4.更少的編碼 無論是輸入 還是傳輸 都更少了 單一var模式如下所示 ...

關於平穩退化的乙個實踐

還是圍繞著那個下拉框的動畫效果 對於這樣的乙個效果,很明顯我們要把下拉框隱藏,然後給a標籤加事件,js點選的時候,慢慢的出現下拉框。如果是以前的話我肯定是直接在css中直接把下拉框給隱藏了,但是這次寫著寫著突然發現這個隱藏應該是由js來實現的,因為只有這樣,當使用者沒有禁用js的時候,我們的js可以...