Applying López de Prado's Causal Factor Investing Framework to identify the genuine causal determinants of Bitcoin price behavior across investment horizons.
Bitcoin has attracted significant institutional interest, yet a fundamental question remains unresolved.
Traditional correlation-based analysis is unreliable: correlations between Bitcoin and other assets are unstable over time and highly sensitive to the investment horizon and macro-financial context. Should Bitcoin be in a core portfolio for diversification, or confined to a satellite allocation?
We shift from associational analysis toward causal inference, applying Marcos López de Prado's 3-step framework — the same methodology used at ADIA Lab (Abu Dhabi's sovereign wealth fund). This lets us separate genuine causes from spurious correlations.
Most finance papers stop at Step 1 (correlation). We go all the way to Step 3 (falsification).
Observe statistical associations across 34 features and 4 pillars. ADF + KPSS stationarity tests. Correlation heatmap reveals unstable associations.
Propose causal structures using 4 complementary algorithms. Consensus rule: feature detected by ≥ 2/4 methods qualifies as causal candidate.
Test causal claims via DoWhy: placebo treatment, random common cause, data subset refutation. Only robust features retained → sparse, validated DAG.
34 features from Bloomberg and CoinMetrics (2015–2025), organized into four thematic families.
Four independent algorithms with different assumptions, applied to the same weekly-resampled dataset.
Tests conditional independence via Fisher-Z on partial correlations. Removes edges that are conditionally independent. Contemporaneous structure only.
Continuous optimization: learns a weighted adjacency matrix W. Produces sparse DAG directly. Most aggressive filter — fewest edges retained.
Partial correlations at each lag, conditioning on all other lagged variables. Separates contemporaneous from lagged effects — captures time structure.
F-test on nested VAR models — does X's past improve Y's forecast? Bidirectional testing. Sensitive to lag selection.
10 features survived ≥ 2/4 discovery methods + DoWhy refutation tests. Zero Macro variables survived.
| Feature | Category | PC | NOTEARS | PCMCI | Granger | Count | DoWhy |
|---|---|---|---|---|---|---|---|
| CapMVRV | On-Chain | ✓ | ✓ | ✓ | — | 3 | ✓ |
| Miner Revenue | On-Chain | ✓ | — | ✓ | ✓ | 3 | ✓ |
| Mining Difficulty | On-Chain | — | ✓ | ✓ | — | 2 | ✓ |
| Est. TX Volume | On-Chain | — | — | ✓ | ✓ | 2 | ✓ |
| ETH | Crypto | ✓ | ✓ | ✓ | — | 3 | ✓ |
| BNB | Crypto | ✓ | — | ✓ | ✓ | 3 | ✓ |
| XRP | Crypto | — | — | ✓ | ✓ | 2 | ✓ |
| Stablecoin MCap | Sentiment | — | — | ✓ | ✓ | 2 | ✓ |
| Google "Coinbase" | Sentiment | — | — | ✓ | ✓ | 2 | ✓ |
| Google "Bitcoin" | Sentiment | — | ✓ | ✓ | — | 2 | ✓ |
Interactive Plotly graph — hover over nodes and edges to explore the complete causal structure discovered by the PC method.
Dominant factor families rotate across investment horizons — single-specification models are misleading.
Normalized positive Mean Decrease Accuracy (%) from Random Forest per pillar. Source: horizon_analysis.py
A Random Forest classifier (Bear / Neutral / Bull) demonstrates that causal features act as natural regularization.
| Horizon | All Variables (138) | Best Causal (4–8) | Dummy Baseline |
|---|---|---|---|
| 1d | 33.6% | 33.8% | 33.0% |
| 7d | 33.1% | 41.7% | 30.3% |
| 14d | 34.7% | 42.2% | 28.8% |
| 30d | 31.9% | 35.4% | 22.7% |
| 60d | 18.1% | 50.2% | 12.9% |
With ~400 weekly observations, the all-features model suffers from the curse of dimensionality: it overfits noise rather than learning signal. At 60d, it degrades to 18.1% — worse than the 12.9% dummy baseline.
López de Prado's pipeline acts as domain-knowledge-driven feature selection. The 4-feature causal model avoids overfitting, reaching 50.2% balanced accuracy at 60d. At 7d: 66% Bear recall, 54% Bull recall.
Although no Macro variable survived the causal pipeline, macro conditions still condition BTC returns — they're context, not cause.
A committee-ready decision process separating regime context from causal drivers.
The current causal structure reflects a retail-dominated market. As institutional players enter (ETFs, sovereign funds), new causal links to macro-financial variables — particularly liquidity proxies (Fed balance sheet, M2) — are likely to emerge, reshaping the DAG.
All 4 discovery algorithms assume linearity (Fisher-Z, linear SEM). Threshold effects and regime switches may require non-linear extensions such as kernel-based PCMCI.
Weekly resampling was necessary for Google Trends compatibility but loses intra-week dynamics. Daily-frequency causal discovery could reveal short-lived trading signals.
Validate the regime-aware framework on post-sample data and across other crypto-assets (ETH, SOL). Explore alternative regime definitions (growth × inflation à la Dalio's All Weather).