Outier detection using tsoutlier in R

I am trying to predict the weekly stock price of Nifty using ARIMA model. Data can be downloaded here. I tried the following three cases:

First Case: I used tso function from tsoutliers package to identify outliers (if any) and to fit ARIMA model. I got the results as ARIMA(1,1,1) with no outliers detected. Minimal code:

outliers1 <- tso(close, tsmethod = c("auto.arima"), args.tsmethod = list(allowdrift=TRUE))

Results Obtained:

ARIMA(1,1,1)                    

Coefficients:
         ar1      ma1
      0.6112  -0.5684
s.e.  0.3496   0.3632

sigma^2 estimated as 25268:  log likelihood=-2523.68
AIC=5053.35   AICc=5053.41   BIC=5065.24

No outliers were detected.

Second Case: Since there were no outliers detected, I used auto.arima() from forecast package to see what model I get. As suggested in previous posts, I made stepwise and approximation to FALSE. I obtained ARIMA (3,1,2) model. Minimal code:

close <- read.ts("close.csv", header = FALSE")
fit <- auto.arima(close, stepwise = FALSE, trace = TRUE, approximation = FALSE)

Results Obtained:

Series: close 
ARIMA(3,1,2) with drift         

Coefficients:
          ar1      ar2     ar3     ma1     ma2    drift
      -1.7302  -0.7838  0.0624  1.7730  0.9097  10.4769
s.e.   0.0695   0.1125  0.0578  0.0483  0.0475   8.4509

sigma^2 estimated as 24413:  log likelihood=-2510.18
AIC=5034.37   AICc=5034.66   BIC=5062.11

Third Case: In my third case, I tried using ARIMA(3,1,2) obtained in second case in tso to check for any outliers. But the model detected no outliers. Minimal code:

outlier2 <- tso(close, maxit = 10, tsmethod = c("arima"), args.tsmethod = list(order =c(3,1,2)))

Results obtained:

    Coefficients:
          ar1     ar2      ar3     ma1      ma2
      -0.2224  0.3573  -0.0186  0.2451  -0.2548
s.e.   0.7914  0.4344   0.1107  0.7884   0.4603
sigma^2 estimated as 24986:  log likelihood = -2521.51,  aic = 5055.02
No outliers were detected.

My question is if there aren't any outliers in the data then why are the results different in cases 1 and 2. Is there something I am missing out in the model building? In addition, the forecasts obtained using both ARIMA (3,1,2) and (1,1,1) are poor.

Answers


In the first case tso is using the default argument stepwise=TRUE. In the second case you are setting stepwise=FALSE. This can lead to a different choice of the ARIMA model. Passing stepwise=FALSE through argument args.tsmethod in tso should yield the same result (unless outliers are found for this model).


Need Your Help

How to get String to time in PreferenceActivity??

android time alarmmanager preferenceactivity

I have a time picker in preference activity. I want to get the time selected using the Time Picker to be used with an Alarm. I used onPreferenceChanged to get the time but now I'm unable to pass th...

Install express.js on Win8 failed

node.js express

I had downloaded the latest node.js Win installer. And found node -v works! Now I am trying to install express.