#to save time the other examples are not run
## Not run:
# #########################################################################
# #### ####
# #### Monte-Carlo Portmanteau Tests ####
# #### ####
# #########################################################################
# ## Monte-Carlo test for randomness series ##
# #########################################################################
# data("DEXCAUS")
# returns <- log(DEXCAUS[-1]/DEXCAUS[-length(DEXCAUS)])
# portest(returns) ## MC using one CPU takes about 25.16 seconds
# portest(returns, nslaves=4) ## MC using 4 CPUs takes about 9.51 seconds
# portest(returns, MonteCarlo=FALSE) ## asymptotic PenaRodriguez
# portest(returns,test="LjungBox", MonteCarlo=FALSE) ## asymptotic LjungBox
# #########################################################################
# ## Monte-Carlo goodness-of-fit arima test using 4 CPUs ##
# #########################################################################
# ## arima() or Arima() function takes about 14.32 seconds
# ans1 <- arima(WWWusage,order=c(3,1,0))
# portest(ans1, nworkers = 4)
# #
# ## arima0() function takes about 15.26 seconds
# ans2 <- arima0(WWWusage,order=c(3,1,0))
# portest(ans2, nworkers = 4)
# #
# ## auto.arima() function from package forecast takes about 13.59 seconds
# library("forecast")
# ans3 <- auto.arima(WWWusage)
# portest(ans3, nworkers = 4)
# #
# ## ar() function takes about 9.39 seconds
# ans4 <- ar(Nile,order.max=2)
# portest(ans4, nworkers = 4)
# #
# ## FitAR() function takes about 10.78 seconds
# library("FitAR")
# ans5 <- FitAR(Nile, p=2)
# portest(ans5, nworkers = 4)
# #########################################################################
# ## Monte-Carlo goodness-of-fit VAR test - Multivariate series ##
# #########################################################################
# data("IbmSp500")
# ibm <- log(IbmSp500[,2]+1)*100
# sp500 <- log(IbmSp500[,3]+1)*100
# IBMSP500 <- data.frame(cbind(ibm,sp500))
# ## ar.ols() function takes about 9.11 seconds
# ans6 <- ar.ols(IBMSP500, aic=FALSE, intercept=TRUE, order.max=5)
# portest(ans6, NREP=100, test="PenaRodriguez", nworkers=4)
# ## VAR() function takes about 11.55 seconds
# library("vars")
# ans7 <- VAR(IBMSP500, p=5)
# portest(ans7, NREP=100, test="PenaRodriguez", nworkers=4)
# portest(ans7,test="Hosking", MonteCarlo=FALSE) ## asymptotic Hosking test
# #########################################################################
# ## Monte-Carlo test for GARCH effects using 4 CPUs ##
# #########################################################################
# ## Example 1
# ## Test for ARCH effects on returns series takes about 14.65 seconds
# data("monthintel")
# returns <- as.ts(monthintel)
# lags <- c(5, 10, 20, 40)
# portest(returns, lags = lags, nworkers = 4, SquaredQ = TRUE)
# #
# ## Example 2
# library("fGarch")
# library("tseries")
# data("GNPDEF")
# z<-ts(GNPDEF[,2], start=1947, freq=4)
# r <- 100*diff(log(z))
# ## use garch() function takes about 6.75 seconds
# FitGarch1 <- garch(r, order = c(1,1))
# portest(FitGarch1,NREP=100,nworkers = 4)
# portest(FitGarch1,NREP=100,nworkers = 4,SquaredQ=TRUE)
# #
# ## use garchFit() function takes about 13.56 seconds
# GarchFit2 <- garchFit(formula = ~arma(4,0)+garch(1,1), data=r, trace=FALSE)
# portest(GarchFit2, NREP=100, nworkers = 4, SquaredQ = FALSE)
# portest(GarchFit2, NREP=100, nworkers = 4, SquaredQ = TRUE)
# #########################################################################
# ## Monte-Carlo test on residuals with infinite variances ##
# #########################################################################
# ## It takes about 32.7 seconds on personal PC with 4 CPUs
# data("CRSP")
# CRSP.AR5<- arima(CRSP, c(5, 0, 0))
# lags <- c(10, 20, 30)
# portest(CRSP.AR5,lags=lags,nworkers=4,NREP=1000,InfiniteVarianceQ=TRUE)
# #########################################################################
# ## Monte-Carlo test for Fractional Gaussian Noise, FGN. ##
# #########################################################################
# ## It takes about 55.06 seconds on personal PC with 4 CPUs
# library("FGN")
# data("NileMin")
# NILE.FGN <- FitFGN(NileMin)
# lags <- c(5, 10, 20)
# portest(NILE.FGN, lags = lags, nworkers = 4)
# portest(NILE.FGN, MonteCarlo=FALSE) ## asymptotic distribution method
# ##############################################################
# ## Write two functions to fit a model and simulate results
# ## Apply Monte-Carlo test on fitted obj with class "list"
# ##############################################################
# ## Example 1
# ## Threshold Autoregressive (TAR) Model example from TSA package
# ## It takes about 64.27 seconds on personal PC with 4 CPUs
# library("TSA")
# FitModel <- function(data){
# fit <- TSA::tar(y=log(data),p1=4,p2=4,d=3,a=0.1,b=0.9,print=FALSE)
# res <- ts(fit$std.res)
# parSpec <- list(res=res,fit=fit)
# parSpec
# }
# SimModel <- function(parSpec){
# fit <- parSpec$fit
# exp(tar.sim(fit)$y)
# }
# data(prey.eq)
# portest(FitModel(prey.eq),nworkers=4,func=list(SimModel,FitModel),pkg="TSA")
# #
# ## Example 2
# ## It takes about 10.75 seconds on personal PC with 4 CPUs
# FitModel <- function(data){
# fit <- ar(data,aic = FALSE, order.max=2)
# order <- 2
# res <- ts(fit$resid[-(1:order)])
# phi <- fit$ar
# theta <- NULL
# sigma <- fit$var.pred
# demean <- fit$x.mean
# list(res=res,phi=phi,theta=theta,sigma=sigma,demean=demean)
# }
# SimModel <- function(parSpec){
# res <- parSpec$res
# n <- length(res)
# innov <- sample(x=res,size=n,replace = TRUE)
# phi <- parSpec$phi
# theta <- parSpec$theta
# sigma <- parSpec$sigma
# demean <- parSpec$demean
# arima.sim(n = n, list(ar = phi, ma = theta), innov = innov,
# sd = sqrt(sigma), mean = demean)
# }
# Fit <- FitModel(Nile)
# portest(Fit,nworkers=4,func=list(SimModel=SimModel,FitModel=FitModel),pkg="stats")
# ## End(Not run)
Run the code above in your browser using DataLab