robjhyndman / forecast

Forecasting Functions for Time Series and Linear Models
http://pkg.robjhyndman.com/forecast
1.12k stars 342 forks source link

auto.arima error #159

Closed ajaydhamija closed 9 years ago

ajaydhamija commented 9 years ago

I'm getting this error (lagstobetaken=3,multfactor is varied from 1/1000 to 1000 as per Rob's advice to keep the error at bay, but of no avail. All the series used here are log differenced series (like return Rt = log Pt- Log Pt-1, where Pt is price) with values of the order of 0.01-0.001 ). There is no multicollinearity, in fact intercorrelation table shows all the correlations <0.1, because I've already extracted the independent factors by doing principal component analysis.

minfit1 <- auto.arima(eua[lagstobetaken:(EUA42-EUA41)]_multfactor,order=c(2,0,2),xreg=cbind(RC1T[lagstobetaken:(EUA42-EUA41),1:lagstobetaken]_multfactor,RC2T[lagstobetaken:(EUA42-EUA41),1:lagstobetaken]_multfactor,brentT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken]_multfactor,coalT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken]_multfactor,daxT[lagstobetaken:(EUA42-EUA41)]_multfactor))

Error in solve.default(res$hessian * n.used, A) : system is computationally singular: reciprocal condition number = 6.53033e-36

ajaydhamija commented 9 years ago

data file: https://drive.google.com/file/d/0B7Mc5pF-80gYVFQtaTlKTms2aW8/view?usp=sharing

ajaydhamija commented 9 years ago

minfit1 <- auto.arima(eua[lagstobetaken:(EUA42-EUA41)],xreg=cbind(napI[lagstobetaken:(EUA42-EUA41)],napII[lagstobetaken:(EUA42-EUA41)],napIII[lagstobetaken:(EUA42-EUA41)],tempcold[lagstobetaken:(EUA42-EUA41)],temphot[lagstobetaken:(EUA42-EUA41)],RC1T[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],RC2T[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],brentT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],daxT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken]),d=0)

_( So far so good _*)

minfit1 <- auto.arima(eua[lagstobetaken:(EUA42-EUA41)],xreg=cbind(napI[lagstobetaken:(EUA42-EUA41)],napII[lagstobetaken:(EUA42-EUA41)],napIII[lagstobetaken:(EUA42-EUA41)],tempcold[lagstobetaken:(EUA42-EUA41)],temphot[lagstobetaken:(EUA42-EUA41)],RC1T[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],RC2T[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],brentT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],coalT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],daxT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken]),d=0)

Error in solve.default(res$hessian * n.used, A) : system is computationally singular: reciprocal condition number = 5.13456e-33

Error in auto.arima(eua[lagstobetaken:(EUA42 - EUA41)], xreg = cbind(napI[lagstobetaken:(EUA42 - : No suitable ARIMA model found In addition: Warning message: In auto.arima(eua[lagstobetaken:(EUA42 - EUA41)], xreg = cbind(napI[lagstobetaken:(EUA42 - : Unable to calculate AIC offset

(***** After adding another variable, CoalT it starts giving error. Even if we exclude any other single variable, it computes fine but with all variables it gives error ****)

ajaydhamija commented 9 years ago

Also RC1_Z=RC1-mean(RC1) RC2_Z=RC1-mean(RC2) transferParams=ts.union(RC1_Z,RC2_Z) fit <- arimax(eua,order=c(17,0,17), include.mean=TRUE, fixed=c(NA,NA,0,0,0,NA,0,0,0,0, 0,0,0,0,0,0,NA, 0,0,0,NA,0,0,0,0,0,0, 0,NA,NA,0,0,0,NA, 0, NA,NA,NA,NA,NA,NA,NA,NA,NA,NA), xtransf=transferParams, transfer=list(c(1,3),c(1,3)), method="ML")

fit

Call: arimax(x = eua, order = c(17, 0, 17), include.mean = TRUE, fixed = c(NA, NA, 0, 0, 0, NA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, 0, 0, NA, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), method = "ML", xtransf = transferParams, transfer = list(c(1, 3), c(1, 3)))

Coefficients: ar1 ar2 ar3 ar4 ar5 ar6 ar7 ar8 ar9 ar10 ar11 ar12 ar13 ar14 ar15 ar16 ar17 ma1 ma2 0.0629 -0.0723 0 0 0 -0.0561 0 0 0 0 0 0 0 0 0 0 -0.5100 0 0 s.e. 0.0169 0.0170 0 0 0 0.0170 0 0 0 0 0 0 0 0 0 0 0.0744 0 0 ma3 ma4 ma5 ma6 ma7 ma8 ma9 ma10 ma11 ma12 ma13 ma14 ma15 ma16 ma17 intercept RC1_Z-AR1 0 0.0590 0 0 0 0 0 0 0 -0.0572 -0.0715 0 0 0 0.4752 0 0 s.e. 0 0.0174 0 0 0 0 0 0 0 0.0166 0.0171 0 0 0 0.0759 0 NaN RC1_Z-MA0 RC1_Z-MA1 RC1_Z-MA2 RC1_Z-MA3 RC2_Z-AR1 RC2_Z-MA0 RC2_Z-MA1 RC2_Z-MA2 RC2_Z-MA3 0 3e-04 -1e-04 2e-04 0 0 3e-04 -1e-04 2e-04 s.e. NaN NaN NaN NaN NaN NaN NaN NaN NaN

sigma^2 estimated as 0.0009011: log likelihood = 5469.91, aic = -10903.83 produces lot of NaN's as standard errors. I'm not sure about the result? Can anyone suggest ?

robjhyndman commented 9 years ago

Please provide a minimal reproducible example. That is, a short block of code that will reproduce the problem.

ajaydhamija commented 9 years ago

CODE

path<-"C:\Users\vicky\Desktop\PHD IIT Delhi 2016\PHD Data" setwd(path) data_orig=read.csv("data.csv",sep=",",header = TRUE) attach(data_orig)

EUA41<-1 EUA42<-2625 d=data_orig[EUA41:EUA42-1,] colnames(d) <- c("SNO","EUA","NAPI","NAPII","NAPIII","OIL","GAS","COAL","CDS","CSS","SP","DAX","COLD","HOT","RC1","RC2") eua=ts(d[,"EUA"]) RC1=ts(d[,"RC1"]) RC2=ts(d[,"RC2"]) napI=ts(d[,"NAPI"]) napII=ts(d[,"NAPII"]) napIII=ts(d[,"NAPIII"]) brent=ts(d[,"OIL"]) gas=ts(d[,"GAS"]) coal=ts(d[,"COAL"]) dax=ts(d[,"DAX"]) tempcold=ts(d[,"COLD"]) temphot=ts(d[,"HOT"])

lagstobetaken=1 multfactor=10

RC1T <- cbind(RC1, c(NA,RC1[1:(EUA42-EUA41-1)]), c(NA,NA,RC1[1:(EUA42-EUA41-2)]), c(NA,NA,NA,RC1[1:(EUA42-EUA41-3)])) colnames(RC1T) <- paste("RC1Lag",0:3,sep="")

RC2T <- cbind(RC2, c(NA,RC2[1:(EUA42-EUA41-1)]), c(NA,NA,RC2[1:(EUA42-EUA41-2)]), c(NA,NA,NA,RC2[1:(EUA42-EUA41-3)])) colnames(RC2T) <- paste("RC2Lag",0:3,sep="")

brentT <- cbind(brent, c(NA,brent[1:(EUA42-EUA41-1)]), c(NA,NA,brent[1:(EUA42-EUA41-2)]), c(NA,NA,NA,brent[1:(EUA42-EUA41-3)])) colnames(brentT) <- paste("brentLag",0:3,sep="")

coalT <- cbind(coal, c(NA,coal[1:(EUA42-EUA41-1)]), c(NA,NA,coal[1:(EUA42-EUA41-2)]), c(NA,NA,NA,coal[1:(EUA42-EUA41-3)])) colnames(coalT) <- paste("coalLag",0:3,sep="")

daxT <- cbind(coal, c(NA,dax[1:(EUA42-EUA41-1)]), c(NA,NA,dax[1:(EUA42-EUA41-2)]), c(NA,NA,NA,dax[1:(EUA42-EUA41-3)])) colnames(daxT) <- paste("daxLag",0:3,sep="")

minfit1 <- auto.arima(eua[lagstobetaken:(EUA42-EUA41)],xreg=cbind(napI[lagstobetaken:(EUA42-EUA41)],napII[lagstobetaken:(EUA42-EUA41)],napIII[lagstobetaken:(EUA42-EUA41)],tempcold[lagstobetaken:(EUA42-EUA41)],temphot[lagstobetaken:(EUA42-EUA41)],RC1T[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],RC2T[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],brentT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],coalT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken],daxT[lagstobetaken:(EUA42-EUA41),1:lagstobetaken]),d=0)

RC1_Z=RC1-mean(RC1) RC2_Z=RC1-mean(RC2) transferParams=ts.union(RC1_Z,RC2_Z) fit <- arimax(eua,order=c(17,0,17), include.mean=TRUE, fixed=c(NA,NA,0,0,0,NA,0,0,0,0, 0,0,0,0,0,0,NA, 0,0,0,NA,0,0,0,0,0,0, 0,NA,NA,0,0,0,NA, 0, NA,NA,NA,NA,NA,NA,NA,NA,NA,NA), xtransf=transferParams, transfer=list(c(1,3),c(1,3)), method="ML")

ajaydhamija commented 9 years ago

auto.arima gives error

Error in solve.default(res$hessian * n.used, A) : system is computationally singular: reciprocal condition number = 1.60963e-35

Error in auto.arima(eua[lagstobetaken:(EUA42 - EUA41)], xreg = cbind(napI[lagstobetaken:(EUA42 - : No suitable ARIMA model found In addition: Warning message: In auto.arima(eua[lagstobetaken:(EUA42 - EUA41)], xreg = cbind(napI[lagstobetaken:(EUA42 - : Unable to calculate AIC offset

ajaydhamija commented 9 years ago

and arimax gives warning message with lot of NANs produced

Warning message: In arimax(eua, order = c(17, 0, 17), include.mean = TRUE, fixed = c(NA, : some AR parameters were fixed: setting transform.pars = FALSE

fit

Call: arimax(x = eua, order = c(17, 0, 17), include.mean = TRUE, fixed = c(NA, NA, 0, 0, 0, NA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, 0, 0, NA, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), method = "ML", xtransf = transferParams, transfer = list(c(1, 3), c(1, 3)))

Coefficients: ar1 ar2 ar3 ar4 ar5 ar6 ar7 ar8 ar9 ar10 ar11 ar12 ar13 ar14 ar15 ar16 ar17 ma1 ma2 0.0629 -0.0723 0 0 0 -0.0561 0 0 0 0 0 0 0 0 0 0 -0.5100 0 0 s.e. 0.0169 0.0170 0 0 0 0.0170 0 0 0 0 0 0 0 0 0 0 0.0744 0 0 ma3 ma4 ma5 ma6 ma7 ma8 ma9 ma10 ma11 ma12 ma13 ma14 ma15 ma16 ma17 intercept RC1_Z-AR1 0 0.0590 0 0 0 0 0 0 0 -0.0572 -0.0715 0 0 0 0.4752 0 0 s.e. 0 0.0174 0 0 0 0 0 0 0 0.0166 0.0171 0 0 0 0.0759 0 NaN RC1_Z-MA0 RC1_Z-MA1 RC1_Z-MA2 RC1_Z-MA3 RC2_Z-AR1 RC2_Z-MA0 RC2_Z-MA1 RC2_Z-MA2 RC2_Z-MA3 0 3e-04 -0.0001 0.0002 0 0 3e-04 -0.0001 0.0002 s.e. NaN NaN 124.2314 0.2839 NaN NaN NaN 124.2314 0.2839

sigma^2 estimated as 0.0009011: log likelihood = 5469.91, aic = -10903.83 Warning message: In sqrt(diag(x$var.coef)) : NaNs produced

robjhyndman commented 9 years ago

This is not a reproducible example, and arimax is not part of the forecast package. Please provide a minimal reproducible example and please stop clogging up my github site with reams of pointless R output.