Объединение графиков dcc.fit

Я пытаюсь объединить несколько графиков в один PDF-файл в R. До сих пор я использовал функцию par(). Но это не работает с построением графика dcc.fit. При построении графика DCC мне нужно сделать выбор графика, и когда я пытаюсь объединить графики, они просто показывают каждый из них отдельно. Я делаю это уже второй день, и я безнадежен.

Код для пар():

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")

Я получаю данные от Yahoo, используя getsymbols:

    # 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

И код модели DCC GARCH из http://faculty.washington.edu/ezivot/econ589/econ589multivariateGarch.r

    #
    # 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.

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?

Я ценю вашу помощь. Спасибо!


person Andrés    schedule 20.04.2016    source источник


Ответы (1)


вы можете попробовать получить временные ряды из оценок и поместить их на график по своему желанию. есть способ получить корреляцию как объект зоопарка.

#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])) 
person Martin    schedule 22.08.2017