BookmarkSubscribeRSS Feed
DamarC
Calcite | Level 5

The data I am working with consists of airline revenue, passenger, and airfare by week and split by four travel regions, dating back to year 2011. The goal for me is to produce a weekly forecast of the three metrics mentioned before. I need to be able to account for when a holiday is occurring for a particular week and what I learned from SAS' support team is that both ARIMA and UCM can be used to account for such events so I decided to try out ARIMA. To account for the holiday effect I set up some variables for each holiday of interest (Christmas, Thanksgiving, Independence Day, etc.) that have 1's to indicate if the holiday occurred or will occur on that week. Then in PROC ARIMA I use the crosscorr option in the identify statement and the input option in the estimate statement to list the holiday variables. The results are not working as well as I expected as some of the predictions for some of the holidays don't make as much of an adjustment as I would expect. Am I going about this the correct way? Are there other ways of tackling this problem?

proc arima data=fare_data
		   plots=all
		   out=fare_fcast;

	identify 
		var=log_fare(1,52)
		crosscorr=(christmas independence_day thanksgiving memorial_day labor_day new_year)
		stationarity=(adf=(1,2));

	estimate 
		q=(1)(52) 
		input=(christmas independence_day thanksgiving memorial_day labor_day new_year) 
		method=ml
		outest=estimates;

	outlier id=wk_end_dt;

	forecast lead=57 id=wk_end_dt interval=week align=middle printall;
run;
3 REPLIES 3
rselukar
SAS Employee

Try applying the same differencing that you are using for your response variable (log_fare(1,52)) to all the predictors also, e.g., Christmas(1,52) ...

rselukar
SAS Employee

One more thing: suppress the intercept by using the NOINT option in the ESTIMATE statement.

OskarE
SAS Employee

Hi!

 

1. Use UCM instead :). Maybe you are like me, and learned ARIMA modeling a long time ago and think it'll be easier. But that's not the case in the long run (a run longer than about 30 minutes, steal the examples from the documentation and start experimenting!). I have been working on similar projects and UCM does not require differencing and often provides better forecasts. Less work, better results. Also, you can use multiple CYCLE statements to take care of seasonality on yearly, quarterly, and monthly level (since you have weekly data). Another perk is that it calculates MAPE for you.

 

2. In one project in particular, Christmas wasn't highly significant in the analysis, but the day after the days off was (the 27th). Maybe your crosscorrelation plot shows something similar?

 

Also, are you sure you shouldn't add an autoregressive component? Estimate p=1 as well?

Best regards,

Oskar

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

Multiple Linear Regression in SAS

Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 1689 views
  • 1 like
  • 3 in conversation