Granger Causality Tests
Validate Predictive Relationships in Your Model
What is Granger Causality?
Granger Causality tests whether one time series can predict another. It doesn't prove true causation, but shows if past values of X help forecast Y.
Key question: Does knowing X's history improve predictions of Y beyond Y's own history?
Marketing application: Does marketing activity predict sales changes, or do they just happen to move together?
Why Test Granger Causality?
Validate Marketing Effectiveness
Without test:
Correlation might be coincidence
Can't confirm marketing drives sales
Stakeholder skepticism
With test:
Statistical evidence of predictive relationship
Confidence marketing influences outcomes
Stronger business case
Detect Reverse Causality
Possible scenarios:
Marketing causes sales ✓
Sales cause marketing (budget follows performance)
Both influence each other
Neither causes the other (coincidence)
Granger test reveals: Direction of predictive relationship
Improve Variable Selection
Use to:
Validate variable relevance before adding
Confirm marketing variables predict KPI
Identify spurious correlations
Build more credible models
How Granger Causality Works
The Test Logic
Question: Does X Granger-cause Y?
Process:
Predict Y using only Y's past values
Predict Y using Y's past + X's past values
Compare prediction accuracy
If adding X improves predictions significantly → X Granger-causes Y
Statistical test: F-test comparing models
Result: P-value indicating significance
Using Granger Causality in MixModeler
Location
Variable Testing page → Granger Causality tab
Configuration Options
Test Target:
KPI Testing: Test if variables predict KPI (recommended for MMM)
Between Variables: Test causality between variables
Max Lags:
Number of past periods to include
4 lags (default): Good for weekly MMM
1-52 lags: Adjustable based on data frequency
Significance Level:
95% (0.05): Standard (recommended)
90%, 99%, 99.9% also available
Stationarity Test:
Include: Run ADF test first (recommended)
Ensures data suitable for Granger test
Step-by-Step Process
Step 1: Select Model
Choose existing model with KPI defined
Step 2: Select Variables
Check variables to test:
Marketing channels
Control variables
External factors
Step 3: Configure Settings
Target: KPI Testing
Max Lags: 4 (weekly data)
Significance: 95%
Include stationarity: Yes
Step 4: Run Test
Click "Test Granger Causality"
Step 5: Review Results
Results table shows:
Variable name
Optimal lags
F-statistic
P-value
Significance status
Interpreting Results
Results Table
Columns:
Variable: Tested variable name
Cause → Effect: Shows relationship direction (Variable → KPI)
Optimal Lags: Best number of past periods (automatically selected)
F-Statistic: Test statistic value (higher = stronger)
P-Value: Significance level
< 0.05: Significant Granger causality
< 0.01: Strong Granger causality
0.05: No significant causality
Is Significant: Yes/No indicator
What Results Mean
Significant (p < 0.05):
✅ Past values of marketing variable help predict KPI ✅ Evidence of predictive relationship ✅ Good candidate for model inclusion ✅ Can defend variable choice statistically
Not Significant (p > 0.05):
❌ Marketing doesn't predict KPI changes ❌ Relationship may be coincidental ❌ Weaker case for inclusion ❌ Consider alternative variables
Example Results
TV_Spend
2
8.45
0.001
Yes
Digital_Spend
1
5.21
0.008
Yes
Radio_Spend
3
2.10
0.087
No
Weather
4
1.45
0.234
No
Interpretation:
TV and Digital show strong Granger causality
Radio borderline (may still include if theoretically important)
Weather doesn't predict sales in this case
Stationarity Testing
What is Stationarity?
Stationary series:
Constant mean over time
Constant variance
No trends
Non-stationary series:
Trending up or down
Changing variance
Violates Granger test assumptions
ADF (Augmented Dickey-Fuller) Test
Tests for stationarity
Results:
P-value < 0.05: Stationary ✓
P-value > 0.05: Non-stationary (trend present)
If non-stationary:
Consider differencing (week-over-week change)
Add trend variable
Detrend before testing
Why It Matters
Non-stationary data:
Can show spurious Granger causality
Trends create false relationships
Must address before relying on results
Stationary data:
More reliable Granger tests
True relationships detected
Safer interpretation
Common Testing Scenarios
Scenario 1: Validate Marketing Variables
Question: Do our marketing channels predict sales?
Test:
All marketing variables vs KPI
Look for p < 0.05
Decision:
Include variables with significant causality
Question variables without causality
Scenario 2: New Channel Evaluation
Question: Should we model new Radio campaign?
Test:
Radio_Spend → Sales
If significant: Strong case for inclusion If not: May need more data or channel doesn't drive sales
Scenario 3: Resolve Multicollinearity
Question: TV_Spend and TV_GRPs both predict sales, which to keep?
Test:
Both separately
Compare F-statistics
Decision: Keep variable with stronger Granger causality
Scenario 4: Detect Reverse Causality
Question: Does marketing drive sales or vice versa?
Test:
Marketing → Sales
Sales → Marketing
If only Marketing → Sales: Marketing drives sales ✓ If only Sales → Marketing: Budget follows performance If both: Complex bidirectional relationship
Best Practices
When to Use
✅ Before adding variables: Validate predictive power ✅ Stakeholder skepticism: Provide statistical evidence ✅ Variable selection: Choose among alternatives ✅ Model validation: Confirm model makes sense
When NOT to Use
❌ Small sample: Need 30+ observations minimum ❌ Obvious relationships: Don't need test for core channels ❌ Real-time decisions: Test takes time, use judgment ❌ Non-time-series: Data must be time-ordered
Configuration Guidelines
Max Lags:
Weekly data: 4-8 lags
Monthly data: 2-4 lags
Too many lags: Reduces power
Too few: Misses relationships
Significance Level:
Use 95% (p < 0.05) as standard
99% for stronger evidence
90% if exploratory
Limitations
What Granger Causality IS NOT
❌ Not true causation: Only predictive relationship ❌ Not immediate effect: Tests lagged relationships ❌ Not comprehensive: Just one piece of evidence ❌ Not sufficient alone: Combine with other tests
Considerations
Can miss:
Contemporaneous effects (same period)
Non-linear relationships
Complex interactions
Sensitive to:
Lag selection
Non-stationarity
Missing data
Use as: Supporting evidence, not sole justification
Troubleshooting
All variables show no causality
Possible causes:
Too few lags tested
Non-stationary data
Contemporaneous effects (no lag)
Solutions:
Increase max lags
Check stationarity
Still include theoretically important variables
Stationarity test fails
All variables non-stationary
Solutions:
Add trend variable to model
Use first differences
Acknowledge limitation in interpretation
Test takes very long
Many variables, many lags
Solutions:
Test fewer variables
Reduce max lags
Test in batches
Key Takeaways
Granger Causality tests if past marketing predicts future sales
P-value < 0.05 indicates significant predictive relationship
Use to validate variable selection and support business case
Include stationarity test (ADF) for reliable results
Not proof of true causation, but strong supporting evidence
Configure 4 lags for weekly MMM data
Test marketing variables against KPI (recommended)
Combine with other validation methods for robust models
Last updated