Skip to main content

What Are Holiday Variables and Special Dates?

Special dates, such as holidays, promotions, or significant events, often cause notable deviations from normal patterns in your time series. By incorporating these special dates into your forecasting model, you can better capture these expected variations and improve prediction accuracy.

How to Add Holiday Variables and Special Dates

Open In Colab

Step 1: Import Packages

Import the required libraries and initialize the Nixtla client.

Step 2: Load Data

We use a Google Trends dataset on “chocolate” with monthly frequency:

Step 3: Create a Future Dataframe

When adding exogenous variables (like holidays) to time series forecasting, we need a future DataFrame because:
  • Historical data already exists: Our training data contains past values of both the target variable and exogenous features
  • Future exogenous features are known: Unlike the target variable, we can determine future values of exogenous features (like holidays) in advance
For example, we know that Christmas will occur on December 25th next year, so we can include this information in our future DataFrame to help the model understand seasonal patterns during the forecast period. Start with creating a future DataFrame with 14 months of dates starting from May 2024.

Step 4: Forecast with Holidays and Special Dates

TimeGPT automatically generates standard date-based features (like month, day of week, etc.) during forecasting. For more specialized temporal patterns, you can manually add holiday indicators to both your historical and future datasets.

Create a Function to Add Date Features

To make it easier to add date features to a DataFrame, we’ll create the add_date_features_to_DataFrame function that takes:
  • A pandas DataFrame
  • A date extractor function, which can be CountryHolidays or SpecialDates
  • A time column name

Add Holiday Features

To add holiday features, we’ll use the CountryHolidays class to compute US holidays and merge them into the future DataFrame.
This DataFrame now includes columns for each identified US holiday as binary indicators. Next, add holiday indicators to the historical DataFrame.
Now, your historical DataFrame also contains holiday flags for each month. Finally, forecast with the holiday features.
Plot the forecast with holiday effects.
Forecast plot including holiday effects We can then plot the weights of each holiday to see which are more important in forecasting the interest in chocolate. We will use the SHAP library to plot the weights.
For more details on how to use the shap library, see our tutorial on model interpretability.
Holiday-related feature weights The SHAP values reveal that Christmas, Independence Day, and Labor Day have the strongest influence on chocolate interest forecasting. These holidays show the highest feature importance weights, indicating they significantly impact consumer behavior patterns. This aligns with expectations since these are major US holidays associated with gift-giving, celebrations, and seasonal consumption patterns that drive chocolate sales.

Add Special Dates

Beyond country holidays, you can create custom special dates with SpecialDates. These can represent unique one-time events or recurring patterns on specific dates of your choice. Assume we already have a future DataFrame with monthly dates. We’ll create Valentine’s Day and Halloween as custom special dates and add them to the future DataFrame.
We will also add custom special dates to the historical DataFrame.
Now, forecast with the special date features.
Plot the forecast with special date effects.
Forecast plot including special date effects Examine the feature importance of the special dates.
Special date feature weights The SHAP values reveal that Valentine’s Day has the strongest positive impact on chocolate sales forecasts. This aligns with consumer behavior patterns, as chocolate is a popular gift choice during Valentine’s Day celebrations.
Congratulations! You have successfully integrated holiday and special date features into your time series forecasts. Use these steps as a starting point for further experimentation with advanced date features.