首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dcc.fit的组合图

dcc.fit的组合图
EN

Stack Overflow用户
提问于 2016-04-21 02:15:51
回答 1查看 1.2K关注 0票数 1

我试图在R中将多个图合并为一个pdf。到目前为止,我一直在使用par()函数。但它不适用于绘制dcc.fit。当绘制dcc拟合时,我需要进行绘图选择,而当我尝试组合图形时,它们只是分别显示每个图形。我已经这样做了第二天了,我已经没有希望了。

par()的代码:

代码语言:javascript
复制
par(mfrow=c(2,2))
plot(GSPC.ret, main="USA")
plot(dcc.fit, which=4, ask=F, main="Canada")
plot(MXX.ret, main="Mexico")
plot(BVSP.ret, main="Brazil")

我正在使用getsymbols从Yahoo获取数据:

代码语言:javascript
复制
    # download data
    symbol.vec = c("^GSPC", "^GSPTSE")
    getSymbols(symbol.vec, from = "2003-01-02", to = "2012-12-31")
    colnames(GSPC)
    start(GSPC)
    end(GSPC)

    # extract adjusted closing prices
    GSPC = GSPC[, "GSPC.Adjusted", drop=F]
    GSPTSE = GSPTSE[, "GSPTSE.Adjusted", drop=F]

    # plot prices
    plot(GSPC)
    plot(GSPTSE)

    # calculate log-returns for GARCH analysis
    GSPC.ret = CalculateReturns(GSPC, method="log")*100
    GSPTSE.ret = CalculateReturns(GSPTSE, method="log")*100


    # remove first NA observations
    GSPC.ret = GSPC.ret[-1,]
    GSPTSE.ret = GSPTSE.ret[-1,]
    colnames(GSPC.ret) = "GSPC"
    colnames(GSPTSE.ret) = "GSPTSE"

    # create combined data series
    GSPC.GSPTSE.ret = merge(GSPC.ret,GSPTSE.ret)

    # plot returns
    plot(GSPC.ret)
    plot(GSPTSE.ret)

    # remove NA (newsata <- GSPC.GSPTSE.ret)
    is.na(GSPC.GSPTSE.ret)
    GSPC.GSPTSE.ret[!complete.cases(GSPC.GSPTSE.ret)]
    GSPC.GSPTSE.ret <- na.omit(GSPC.GSPTSE.ret)

    # change for without NA
    GSPC.ret <- GSPC.GSPTSE.ret$GSPC
    GSPTSE.ret <- GSPC.GSPTSE.ret$GSPTSE

和来自http://faculty.washington.edu/ezivot/econ589/econ589multivariateGarch.r的DCC GARCH模型代码

代码语言:javascript
复制
    #
    # DCC estimation
    #

    # univariate normal GARCH(1,1) for each series
    garch11.spec = ugarchspec(mean.model = list(armaOrder = c(0,0)),
                              variance.model = list(garchOrder = c(1,1),
                              model = "sGARCH"),
                              distribution.model = "norm")

    # dcc specification - GARCH(1,1) for conditional correlations
    dcc.garch11.spec = dccspec(uspec = multispec( replicate(2, garch11.spec) ),
                               dccOrder = c(1,1),
                               distribution = "mvnorm")

    dcc.garch11.spec

    dcc.fit = dccfit(dcc.garch11.spec, data = GSPC.GSPTSE.ret)
    class(dcc.fit)
    slotNames(dcc.fit)
    names(dcc.fit@mfit)
    names(dcc.fit@model)

    # many extractor functions - see help on DCCfit object
    # coef, likelihood, rshape, rskew, fitted, sigma, 
    # residuals, plot, infocriteria, rcor, rcov
    # show, nisurface

    # show dcc fit
    dcc.fit

    # plot method
    plot(dcc.fit)

    # conditional sd of each series
    plot(dcc.fit, which=2)

    # conditional correlation
    plot(dcc.fit, which=4)

我想将每个国家的条件相关性依次绘制出来。我只需要选择4。

代码语言:javascript
复制
Make a plot selection (or 0 to exit): 

1:   Conditional Mean (vs Realized Returns)
2:   Conditional Sigma (vs Realized Absolute Returns)
3:   Conditional Covariance
4:   Conditional Correlation
5:   EW Portfolio Plot with conditional density VaR limits

Selection: 4

图表只是保持单独显示。

有没有办法把这些图表合并成一个pdf文件?

我很感谢你的帮助。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-08-22 20:08:18

您可以尝试从估计值中获取时间序列,并根据需要将它们放入图中。这里有一个如何将相关性作为一个zoo对象来获取。

代码语言:javascript
复制
#to get time varying correlation
    rho.est.line <- list()
    rho.est.line = rcor(dcc.fit, type="R") # plot(rho.est.line[1,2,])
    outputcorr <- matrix((rho.est.line[1,2,]), nrow = dim(returns)[1], byrow = TRUE)
    rho.est = data.frame((outputcorr)) 
    rho.est.zoo = zoo(rho.est, order.by=index(returns[,1])) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36751949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档