Risk Management Interactive
Correlation Analysis
Measure how picks move together. Critical for pricing correlated parlays and managing exposure on same-game combinations.
๐ Understanding Correlation
Positive Correlation (+)
Outcomes move together. If QB throws well, his WR likely gets more receiving yards.
๐ โ ๐
No Correlation (0)
Outcomes are independent. Players on different teams, different games.
๐ โฅ ๐
Negative Correlation (-)
Outcomes move opposite. If RB dominates, WR might get fewer targets.
๐ โ ๐
Correlation Settings
0 0.9
0 0.6
-0.3 0.4
Parlay Settings
2 6
โ ๏ธ Exposure Risk
Effective Exposure 1.38x
Correlated 3-leg parlay has exposure equivalent to 1.4 independent bets.
Correlation Matrix
| Mahomes | Kelce | Rice | Allen | Diggs | |
|---|---|---|---|---|---|
| Mahomes | 1.00 | 0.65 | 0.65 | 0.20 | 0.20 |
| Kelce | 0.65 | 1.00 | 0.30 | 0.20 | 0.20 |
| Rice | 0.65 | 0.30 | 1.00 | 0.20 | 0.20 |
| Allen | 0.20 | 0.20 | 0.20 | 1.00 | 0.65 |
| Diggs | 0.20 | 0.20 | 0.20 | 0.65 | 1.00 |
Correlation Scale:
Negative
~0
Positive
Perfect
Parlay Win Rate Impact
12.50%
Independent Legs
0.5^3 = 0.1250
14.28%
Correlated Legs
+14.3% boost
Key Insight: Correlated picks have higher joint probability of all hitting together. This means same-game parlays need different pricing than independent parlays.
๐ฐ Pricing Implications
For Same-Game Parlays
- โ ๏ธ Can't multiply individual leg odds naively
- โ ๏ธ QB + his WR overs are positively correlated
- โ Apply correlation adjustments to payout
- โ Limit exposure on highly correlated combos
Exposure Management
- โ Track correlation-adjusted exposure, not just $ amount
- โ Set limits on single-game concentrations
- โ Model worst-case scenarios (all correlated bets win)
- โ Diversify across games/sports for risk reduction
R Code Equivalent
# Calculate player correlations from historical data
library(dplyr)
library(corrplot)
# Get player game logs
player_stats <- game_logs %>%
select(game_id, player_id, fantasy_points) %>%
pivot_wider(names_from = player_id, values_from = fantasy_points)
# Correlation matrix
cor_matrix <- cor(player_stats[,-1], use = "pairwise.complete.obs")
# Visualize
corrplot(cor_matrix, method = "color", type = "upper",
col = colorRampPalette(c("#dc2626", "#1a1b1e", "#10b981"))(100))
# Calculate correlated parlay probability
correlated_parlay_prob <- function(probs, cor_matrix) {
# Use copula or simulation for accurate calculation
n_sims <- 10000
# ... simulation code ...
}โ Key Takeaways
- โข QB-WR correlations are typically 0.5-0.7
- โข Same-team correlations require parlay price adjustments
- โข Ignoring correlation underprices risk
- โข Track correlation-weighted exposure
- โข Diversification reduces effective correlation
- โข Use copulas for accurate joint probability modeling