##############################################################
## Quarterly, west German investment, income, and consumption
## from first quarter of 1960 to fourth quarter of 1982:
##############################################################
data(WestGerman)
DiffData <- matrix(numeric(3 * 91), ncol = 3)
for (i in 1:3)
DiffData[, i] <- diff(log(WestGerman[, i]), lag = 1)
fit <- ar.ols(DiffData, intercept = TRUE, order.max = 2)
lags <- c(5,10)
## Apply the test statistic on the fitted model
Hosking(fit,lags,order = 2) ## Correct
Hosking(fit,lags) ## Correct
## Apply the test statistic on the residuals
res <- ts((fit$resid)[-(1:2), ])
Hosking(res,lags,order = 2) ## Correct
Hosking(res,lags) ## Wrong
##############################################################
## Write a function to fit a model
## Apply portmanteau test on fitted obj with class "list"
##############################################################
## Example 1
FitModel <- function(data){
fit <- ar.ols(data, intercept = TRUE, order.max = 2)
order <- 2
res <- res <- ts((fit$resid)[-(1:2), ])
list(res=res,order=order)
}
Fit <- FitModel(DiffData)
Hosking(Fit)
##
## Example 2
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)
p1 <- fit$p1
p2 <- fit$p2
order <- max(p1, p2)
parSpec <- list(res=res,order=order)
parSpec
}
data(prey.eq)
Fit <- FitModel(prey.eq)
Hosking(Fit)Run the code above in your browser using DataLab