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可以...