全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1207 1
2021-03-02
input:

x=read.csv("r2800.csv")

p=(x[[3]]-x[[4]])/x[[3]]

p1=p[length(p):1]

adf.test(p1)

pt=as.ts(p1)

plot.ts(pt)

ArchTest(pt)

addPriorConditions <-function(psi){psi[2] + psi[3] < 1}

mc1 <- bayesGARCH(p1, lambda = 100,delta = 500,control = list(n.chain = 2,l.chain = 200,

                               addPriorConditions = addPriorConditions))

summary(mc1)


output:

Iterations = 1:200

Thinning interval = 1

Number of chains = 2

Sample size per chain = 200


1. Empirical mean and standard deviation for each variable,

   plus standard error of the mean:


         Mean    SD Naive SE Time-series SE

alpha0   0.01  0.00    0.000          0.000

alpha1   0.10  0.00    0.000          0.000

beta     0.70  0.00    0.000          0.000

nu     498.01 28.25    1.412          1.414


2. Quantiles for each variable:


        2.5%   25%   50%   75% 97.5%

alpha0 1e-02 1e-02 1e-02 1e-02 1e-02

alpha1 1e-01 1e-01 1e-01 1e-01 1e-01

beta   7e-01 7e-01 7e-01 7e-01 7e-01

nu     5e+02 5e+02 5e+02 5e+02 5e+02

问题求助:

bayesgarch()估计参数以后,如何提取波动率(rugarch这类基于极大似然求波动率的函数并不适用),以及如何利用波动率算VaR。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-3-26 20:16:25
David Ardia似乎就没有给bayesGARCH这个包写提取条件波动率的计算函数,bayesGARCH这个函数只能进行参数估计,套用rugarch的波动率提取函数肯定是不行的。不过你参数估计之后应该会得到GARCH对应的Bayesian posterior means,就是对应极大似然估计法ML求得的参数估计值,你可以试着自己把这个条件波动率提取函数写出来。思路是把GARCH的ω,α,β的Bayesian posterior means代进去一条自己写的garch过程,用残差样本数据的方差来作为第一个σ^2_{t-1}的初始值进行迭代,然后就是用for循环,从1到样本数据结尾,不断地去迭代得到每一个时刻的σ^2_{t},把这些每个时刻的σ^2_{t}放进一条序列,然后输出即可,这样就能求到这条贝叶斯法估计的GARCH的条件波动率了,思路其实和rugarch包的ML法估计下的波动率提取函数是一样的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群