Static vs Non-Static Covariates

Understanding External Variables in Time Series Forecasting

📖 Basic Definitions

🏛️ Static Covariates

Definition: Variables that remain constant over time for each entity or series.

Characteristics:

  • Fixed values throughout the entire time series
  • Entity-specific attributes
  • Descriptive metadata
  • No temporal variation
📈 Non-Static Covariates

Definition: Variables that change over time and can influence the target series.

Characteristics:

  • Time-varying values
  • Can be observed (past) or known (future)
  • External influencing factors
  • Temporal patterns and trends

📊 Visual Timeline Comparison

Target Series:
Jan: 100
Feb: 110
Mar: 120
Apr: 105
May: 115
Jun: 125
Static Covariate:
Region: North
Region: North
Region: North
Region: North
Region: North
Region: North
Non-Static (Past):
Temp: 5°C
Temp: 8°C
Temp: 12°C
Temp: 15°C
Temp: 20°C
Temp: 25°C
Non-Static (Future):
Holiday: No
Holiday: No
Holiday: Yes
Holiday: No
Holiday: Yes
Holiday: No

Key Observation: Static covariates remain constant (Region: North), while non-static covariates change over time (Temperature, Holiday status).

🏢 Real-World Examples by Domain

🏭 Energy Forecasting

Static Covariates:

  • Building type (residential/commercial)
  • Geographic region
  • Building size (square footage)
  • Construction year
  • Insulation rating

Non-Static Covariates:

  • Temperature, humidity
  • Day of week, hour of day
  • Holiday indicators
  • Electricity prices
  • Economic indicators
🛒 Retail Sales

Static Covariates:

  • Store location category
  • Store size
  • Product category
  • Brand tier
  • Store format type

Non-Static Covariates:

  • Promotional activities
  • Seasonal factors
  • Weather conditions
  • Competitor pricing
  • Marketing spend
📈 Financial Markets

Static Covariates:

  • Company sector
  • Market capitalization tier
  • Exchange listing
  • Country of incorporation
  • Asset class

Non-Static Covariates:

  • Interest rates
  • Market volatility index
  • Economic indicators
  • News sentiment scores
  • Trading volumes
🚗 Transportation

Static Covariates:

  • Route category
  • Number of lanes
  • Road type
  • Speed limit
  • Geographic zone

Non-Static Covariates:

  • Weather conditions
  • Time of day patterns
  • Special events
  • Construction activities
  • Fuel prices

💻 Implementation in Darts

Static Covariates Configuration
# Create static covariates DataFrame
static_covariates = pd.DataFrame({
    'region': ['North', 'South', 'East', 'West'],
    'building_type': ['Commercial', 'Residential', 'Industrial', 'Mixed'],
    'size_category': ['Large', 'Medium', 'Small', 'Medium']
})

# Create TimeSeries with static covariates
series_with_static = TimeSeries.from_dataframe(
    df=your_data,
    time_col='timestamp',
    value_cols=['energy_consumption'],
    static_covariates=static_covariates
)

# Model configuration
model = RNNModel(
    input_chunk_length=24*30,
    model='LSTM',
    hidden_dim=64,
    use_static_covariates=True # Enable static covariates
)
Non-Static Covariates Configuration
# Create future covariates (known in advance)
future_covariates = TimeSeries.from_dataframe(
    df=calendar_data,
    time_col='timestamp',
    value_cols=['is_holiday', 'day_of_week', 'month']
)

# Create past covariates (observed variables)
past_covariates = TimeSeries.from_dataframe(
    df=weather_data,
    time_col='timestamp',
    value_cols=['temperature', 'humidity', 'wind_speed']
)

# Training with both types
model.fit(
    series=train_series,
    future_covariates=future_covariates,
    past_covariates=past_covariates
)

# Prediction
predictions = model.predict(
    n=forecast_horizon,
    future_covariates=future_covariates
)

⚖️ Advantages & Limitations

✅ Static Covariates Advantages
  • Computational Efficiency: No need to process at every time step
  • Stable Information: Provides consistent context
  • Entity Differentiation: Helps distinguish between different series
  • Model Personalization: Customizes predictions per entity
  • Reduced Overfitting: Less parameters to learn
❌ Static Covariates Limitations
  • No Temporal Dynamics: Can't capture changing relationships
  • Limited Adaptability: Cannot respond to evolving conditions
  • Assumption of Stability: May not hold for long-term forecasts
  • Reduced Flexibility: Cannot model time-varying effects
  • Information Loss: May miss important temporal patterns
✅ Non-Static Covariates Advantages
  • Dynamic Information: Captures changing external factors
  • Rich Context: Provides detailed temporal information
  • Adaptive Modeling: Responds to changing conditions
  • Pattern Recognition: Can learn complex temporal relationships
  • Improved Accuracy: Often leads to better forecasts
❌ Non-Static Covariates Limitations
  • Data Requirements: Need historical and future values
  • Computational Cost: More complex processing
  • Forecast Dependency: Future values may need to be predicted
  • Overfitting Risk: More parameters to learn
  • Data Quality Issues: Sensitive to missing/erroneous data

🎯 When to Use Each Type

Does the variable change over time?
NO → Static Covariate
Examples:
• Building characteristics
• Geographic location
• Product category
• Entity type
YES → Non-Static Covariate
Examples:
• Weather data
• Calendar features
• Economic indicators
• Marketing activities

🚀 Best Practices

📋 Implementation Guidelines
1. Static Covariates Best Practices:
• Use categorical encoding (one-hot, label encoding)
• Normalize numerical static features
• Consider interaction effects between static variables
• Validate that variables are truly static over forecast horizon
2. Non-Static Covariates Best Practices:
• Ensure future covariates are actually available at prediction time
• Handle missing values appropriately
• Consider lagged versions of variables
• Use proper scaling/normalization techniques
3. Combined Usage:
• Use static covariates for entity-specific customization
• Use non-static covariates for capturing temporal dynamics
• Test different combinations to find optimal performance
• Monitor for data leakage in future covariates

⚠️ Common Pitfalls

🔴 Static Covariate Mistakes
  • Time-varying as Static: Using variables that actually change over time
  • High Cardinality: Too many unique categories causing sparsity
  • Missing Values: Not handling missing static information
  • Assumption Violations: Assuming stability beyond training period
🔴 Non-Static Covariate Mistakes
  • Future Leakage: Using information not available at prediction time
  • Poor Quality Forecasts: Using unreliable future covariate predictions
  • Temporal Misalignment: Incorrect time indexing of covariates
  • Over-reliance: Model becomes too dependent on covariate quality