pp.ugarchStanRes <- function(ugar) { # placed in public domain 2012 by Burns Statistics # get standard residual vector from a ugarchfit object # testing status: plots of results look right # workaround for possibility of convergence problem if(!length(ugar@fit$residuals)) return(NA) # end workaround ugar@fit$residuals / ugar@fit$sigma } pp.multFitgarchStanRes <- function(retmat, spec) { # placed in public domain 2012 by Burns Statistics # get standard residual matrix after fitting garch model to returns # testing status: untested require(rugarch) stopifnot(is.matrix(retmat)) ans <- retmat ans[] <- NA for(i in 1:ncol(retmat)) { tfit <- ugarchfit(spec=spec, retmat[,i]) ans[,i] <- pp.ugarchStanRes(tfit) } ans } P.kurtbox <- function (filename = "kurtbox.png") { # placed in public domain 2012 by Burns Statistics if(length(filename)) { png(file=filename, width=512) par(mar=c(5,4, 0, 2) + .1) } boxplot(list('t garch'=gart.kurt, 'norm garch'=garnorm.kurt, 'returns'=return.kurt), log='y', col='gold') axis(2, at=3) if(length(filename)) { dev.off() } } P.kurtgargar <- function (filename = "kurtgargar.png") { # placed in public domain 2012 by Burns Statistics if(length(filename)) { png(file=filename, width=512) par(mar=c(5,4, 0, 2) + .1) } plot(garnorm.kurt, gart.kurt, log="xy", xlab="normal garch", ylab="t garch", col="steelblue") axis(1, at=3); axis(2, at=3) abline(0, 1, col="gold", lwd=2) if(length(filename)) { dev.off() } } P.kurtretngar <- function (filename = "kurtretngar.png") { # placed in public domain 2012 by Burns Statistics if(length(filename)) { png(file=filename, width=512) par(mar=c(5,4, 0, 2) + .1) } plot(return.kurt, garnorm.kurt, log="xy", xlab="Returns", ylab="normal garch", col="steelblue") axis(1, at=3); axis(2, at=3) abline(0, 1, col="gold", lwd=2) if(length(filename)) { dev.off() } } P.kurtrettgar <- function (filename = "kurtrettgar.png") { # placed in public domain 2012 by Burns Statistics if(length(filename)) { png(file=filename, width=512) par(mar=c(5,4, 0, 2) + .1) } plot(return.kurt, gart.kurt, log="xy", xlab="Returns", ylab="t garch", col="steelblue") axis(1, at=3); axis(2, at=3) abline(0, 1, col="gold", lwd=2) if(length(filename)) { dev.off() } }