matlab 误差修正模型,求问大神用R做VEC(误差修正)模型的程序包或者代码是什么啊?...
#向量誤差修正模型案例分析
> ############################
> #1.生成數據
> set.seed(12345)
> u1
> u2
> u3
> y1
> y2
> y3
> #調用urca包中的ca.jo()對時間序列y1 y2 y3進行Jonhansen協整檢驗
> #2.Jonhansen協整檢驗
> library(urca)
> data
## ca.jo(x, type = c("eigen", "trace"), ecdet = c("none", "const", "trend"), K = 2,spec=c("longrun", "transitory"), season = NULL, dumvar = NULL) 注意這里只是用默認設置。 ##
> model.vecm
> head(model.vecm@x) #ca.jo使用S4方法,故用@提取變量
y1? ?? ?? ? y2? ?? ?? ?y3
[1,]??0.5855288 -0.31135095 -1.0377854
[2,]??1.2949948??0.59430322 -0.5116634
[3,]??1.1856915??1.28751444 -0.1316301
[4,]??0.7321943??1.64792194??0.7132483
[5,]??1.3380818??0.09367809??1.3288343
[6,] -0.4798742 -0.61468043??0.1199645
> #使用slotNames()顯示模型包含的全部對象類型
> slotNames(model.vecm)
[1] "x"? ?? ?? ?"Z0"? ?? ???"Z1"? ?? ???"ZK"? ?? ???"type"? ?? ?"model"? ???"ecdet"
[8] "lag"? ?? ? "P"? ?? ?? ?"season"? ? "dumvar"? ? "cval"? ?? ?"teststat"??"lambda"
[15] "Vorg"? ?? ?"V"? ?? ?? ?"W"? ?? ?? ?"PI"? ?? ???"DELTA"? ???"GAMMA"? ???"R0"
[22] "RK"? ?? ???"bp"? ?? ???"spec"? ?? ?"call"? ?? ?"test.name"
> summary(model.vecm)
######################
# Johansen-Procedure #
######################
Test type: maximal eigenvalue statistic (lambda max) , wi
th linear trend
Eigenvalues (lambda):
[1] 0.222707791 0.167079305 0.007684667
Values of teststatistic and critical values of test:
test 10pct??5pct??1pct
r <= 2 |? ?3.84??6.50??8.18 11.65
r <= 1 |??91.04 12.91 14.90 19.19
r = 0??| 125.47 18.90 21.07 25.75
Eigenvectors, normalised to first column:
(These are the cointegration relations)
y1.l2? ???y2.l2? ?? ?y3.l2
y1.l2??1.0000000??1.000000??1.0000000
y2.l2 -0.2355148 -5.064504 -0.1799248
y3.l2 -1.1315152??1.143660 -0.1993207
Weights W:
(This is the loading matrix)
y1.l2? ?? ???y2.l2? ?? ???y3.l2
y1.d 0.05151358??0.002693258 -0.008416933
y2.d 0.11164178??0.075923301 -0.002918384
y3.d 0.51768302 -0.015197036 -0.006078055
從統計檢驗值可以看出,在r為2時接收原假設,即認為協整向量的秩為2
> #使用cajorls()估計VECM模型的系數矩陣
#####################################################
> cajorls(model.vecm,r=2)? ?? ?? ?#估計VECM模型 ,cajorls(z, r = 1, r? ?? ?#? ?eg.number = NULL),其中r為協整向量的秩。
$rlm
Call:
lm(formula = substitute(form1), data = data.mat)
Coefficients:
y1.d? ?? ?y2.d? ?? ?y3.d
ect1? ?? ? 0.05421? ?0.18757? ?0.50249
ect2? ?? ?-0.02577??-0.41081??-0.04496
constant? ?0.08575? ?0.28405??-0.02490
y1.dl1? ???0.01915? ?0.22922? ?0.47143
y2.dl1? ???0.01735??-0.38180? ?0.04342
y3.dl1? ? -0.03389??-0.05120??-0.58422
$beta
ect1? ?? ? ect2
y1.l2??1.000000e+00??0.0000000
y2.l2??2.775558e-17??1.0000000
y3.l2 -1.242478e+00 -0.4711494
計算結果中,第一部分(rlm)給出誤差校正矩陣、常數項及差分解釋變量的估
計值;第二部分為標準化后的協整向量矩陣。
估計的誤差修正模型為:
向量誤差修正(VECM)模型案例分析(R語言編程)
> #VECM模型轉化為水平VAR模型
> ###########################
> library(vars)
> model.var
> model.var
Coefficient matrix of lagged endogenous variables:
A1:
y1.l1? ?? ?y2.l1? ?? ? y3.l1
y1 1.0191535 0.01734796 -0.03389437
y2 0.2292213 0.61819733 -0.05119624
y3 0.4714272 0.04342308??0.41578278
A2:
y1.l2? ?? ? y2.l2? ?? ? y3.l2
y1??0.03505334 -0.04312019 -0.02131386
y2 -0.04165626 -0.02900446??0.01170232
y3??0.03105876 -0.08837964 -0.01892923
Coefficient matrix of deterministic regressor(s).
constant
y1??0.08574980
y2??0.28405415
y3 -0.02490038
計算結果表明,與VECM模型等價的VAR模型估計為:
向量誤差修正(VECM)模型案例分析(R語言編程)
總結
以上是生活随笔為你收集整理的matlab 误差修正模型,求问大神用R做VEC(误差修正)模型的程序包或者代码是什么啊?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GB28181 密解播放器
- 下一篇: ChIP-seq 数据分析1 ChIP-