Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Functions for this study
- # ==================================================================================
- # Load libraries
- library(pear)
- # ==================================================================================
- plot_order <- function(aa, cases, anoI, arquivo){
- maxY <- max(aa)
- validSample <- NULL
- for (j in 1:length(cases)) {
- if (aa[j,1] != 0) {
- validSample = c(validSample, (anoIni + cases[j] - 1))
- }
- }
- png(file=paste(arquivo, " - Model order",".png", sep=""));
- par(mar = par()$mar + c(0,0,0,4))
- if (aa[1,1] != 0){
- plot(1:12, y = aa[1,], type = "o", pch=1,
- xlab = "Month", ylab = "Model order",
- ylim = c(0, maxY), main = arquivo, xaxt='n')
- axis(side = 1, at = 1:12, labels=month.abb)
- }
- for (i in 2:length(cases)) {
- if (aa[i,1] != 0) {
- lines(aa[i,], type = "o", pch=i, col=rainbow(14)[i])
- }
- }
- # ll <- seq(1:14)
- # legend("topleft", inset=.05, legend = anoI, title="Sample", pch = ll, bty = "n", fill=rainbow(14))#, horiz=F)
- legend("right", inset = c(-0.21,0), legend = validSample, xpd = TRUE,
- horiz = FALSE, col = rainbow(14), lty = 1, bty = "n")
- par(mar=c(5, 4, 4, 2) + 0.1)
- dev.off()
- }
- # ==================================================================================
- plot_EAFh <- function(EAF, maxEAF, anoIni, anoFim, arquivo, anoini){
- tmp <- as.vector(t(EAF))
- EAF_ts <- ts(tmp, end = anoFim, frequency = 12)
- png(file=paste(arquivo, "-TS-inic-", anoini, ".png", sep=""));
- plot(EAF_ts, xlim = c(anoIni,anoFim), ylim = c(0, maxEAF))
- title(main = arquivo)
- mtext(paste0("Ano inicial = ", anoini), side = 3, line = 0.5)
- #summary(EAF_ts)
- #hist(EAF_ts,prob=TRUE)
- dev.off()
- png(file=paste(arquivo, "-BP-inic-", anoini, ".png", sep=""));
- boxplot(EAF_ts ~ cycle(EAF_ts), names=month.abb, ylim = c(0, maxEAF))#, main = arquivo)
- title(main = arquivo)
- mtext(paste0("Ano inicial = ", anoini), side = 3, line = 0.5)
- dev.off()
- png(file=paste(arquivo, "-PePACF-inic-", anoini, ".png", sep=""));
- outpepacf <- pepacf(EAF_ts, 15, plot=TRUE)
- title(main = arquivo)
- mtext(paste0("Ano inicial = ", anoini), side = 3, line = 0.5)
- dev.off()
- }
- # ==================================================================================
- ajusta_parp <- function(EAF, anoFim, criterion, saida, saida_Full){
- tmp <- as.vector(t(EAF))
- EAF_ts <- ts(tmp, end = anoFim, frequency = 12)
- parpIC <- list()
- # for (criterion in c("aic", "bic")){
- # for (criterion in c("aic")){
- parp<-pear(EAF_ts,ic=criterion)
- # parp <- pear(EAF_ts,ic="aic")
- parpIC <- c(parpIC , parp)
- #parp$model.orders
- # IC <- toupper(criterion)
- cat(paste(formatC(parp$model.orders,digits=NULL,format="d",width=6), sep=""), file=saida, append=TRUE)
- title <- paste("\n", toupper(criterion)," phi coefficients\n", sep = "" )
- prt.phi(title, parp$phi, parp$model.orders, saida_Full)
- title <- paste(toupper(criterion)," phi standard deviation \n", sep = "" )
- prt.phi(title, parp$se.phi, parp$model.orders, saida_Full)
- # }
- return(parpIC)
- }
- # ==================================================================================
- # print PAR(p) phi or sd.phi coefficients as formatted table
- prt.phi <- function(title, phi, model.orders, saida){
- cat(title,file=saida,append=T);
- ordMax <- max(model.orders)
- cat(" month", paste(formatC("lag_",format="s",width=11), formatC(1:ordMax,format="d",flag="0",width=2),sep=""),
- file=saida, fill=13*22+6, append=T);
- for (i in 1:12){
- cat(formatC(phi[i,1:model.orders[[i]]],digits=9,format="f",width=13), labels=paste(formatC(month.abb[i],format="s",width=6)),
- file=saida, fill=13*22+6, append=T);
- }
- }
- # ==================================================================================
- #
Advertisement