Adam (@WalrusQuant) header
Adam (@WalrusQuant) profile picture

Quantifying mollusks with statistical significance

Wisconsin, USA
Joined October 2023
Photo by Adam (@WalrusQuant)Photo by Adam (@WalrusQuant)Photo by Adam (@WalrusQuant)Photo by Adam (@WalrusQuant)Photo by Adam (@WalrusQuant)Photo by Adam (@WalrusQuant)Photo by Adam (@WalrusQuant)Photo by Adam (@WalrusQuant)
THE WORLD SERIES CHAMPIONSHIP BELONGS TO MILWAUKEE, WISCONSIN!!!!!!!!!!!!!!!!!!!!!!!
1
1
127
a z-score tells you where a number sits in its distribution. z = (x - mean) / sd 0 is the middle. +1 is one standard deviation above. a .600 record: nba: z = +0.67 mlb: z = +1.30 baseball records bunch tighter, so the same record stands out more. by raw win%, the 2022 dodgers (.685) trail the 2024-25 thunder (.829). by z, the dodgers sit further from their league's middle: dodgers +2.41 thunder +2.19 check the shape before the percentile lookup. mlb run margins past 3 sd: actual: 0.72% normal curve: 0.27%
3
2
30
1,754
z-scores are a metric i like to use when evaluating player performance in a position group. it allows you to put stats on different scales, like completion %, yards per attempt and epa per dropback, on one yardstick, so you can combine them without hand-picking weights. using data from nflverse, give your ai agent this prompt to pull the data, create metric-level z-scores, average them, and build your own composite rating system.
2
39
2,389
the number of bets you need depends on your price and your edge, not a round number like 1,000. a 4% edge at -110 needs about 2,260 bets before expected profit sits 2 standard errors above zero. at +300 it needs about 7,700. a 2% edge at -110 needs about 9,070. price sets the noise on every bet, and the edge is squared in the formula, so halving your edge takes about 4x the bets.
6
12
4
127
12,795
Back in 2025, Pat Murphy discussed the leadership and presence Christian Yelich brings to the @Brewers 🫡 “He leads this club. He's way more important than I am. Way more important.” #WinOurWay
8
37
3
408
42,138
most sports stats aren't bell curves. player points, threes made and mlb runs all have long right tails, so the average sits above the typical game. 56% of nba player games finish under the mean.
4
8
126
11,344
brier score is another way to grade a forecast. for each game you take the chance you gave, subtract what happened (1 if the team won, 0 if not), and square it. then average over every game. lower is better, 0 is perfect, and one game can never cost more than 1. say you give a team 70% and they win: (0.7 − 1)² = 0.09. say you give them 90% and they lose: (0.9 − 0)² = 0.81. calling every game 50/50 always scores 0.25, so that's the number to beat. the useful part is that brier splits into three pieces: - reliability: do your 70% calls actually win about 70% of the time. lower is better. - resolution: do your forecasts move away from the average when they should. a forecaster who says 50% every game can be perfectly calibrated and still tell you nothing. higher is better. - uncertainty: how often the team you're forecasting wins overall. it's 0.25 when wins are a 50/50 split, and it isn't up to you. brier score = reliability − resolution + uncertainty compared with log loss, brier is gentler on confident misses. a 90% miss costs 0.81 in brier and 2.30 in log loss. log loss cares most about the upsets you were sure wouldn't happen, and brier measures overall error. it's worth checking both. cheat sheet below, with the live bayesratings.com scorecard for reference
1
2
25
2,124
log loss scores how good your probabilities were, not just whether your pick won. each game you get scored on the chance you gave the team that actually won. if you said 70% and they won, the cost is small. if you said 90% and they lost, it's big (2.30 for that one game). lower is better. the baseline is 0.693. that's what you score by calling every game 50/50, so a forecast has to beat it to be worth anything. calibration asks whether your percentages come true as often as you said. if you give 100 teams a 60% chance, about 60 of them should win. if only 50 do, you're overconfident. you need both. a forecast can be calibrated but vague, or bold but wrong. log loss rewards being confident and right at the same time. cheat sheet below, with real nfl, nhl and mlb numbers from bayesratings.com
1
2
48
4,770
Dedicating this Pennant to Mr. Baseball 💙
69
1,233
54
12,308
151,741
THE NATIONAL LEAGUE PENNANT IS COMING HOME TO MILWAUKEE #WinOurWay
1,234
9,523
1,541
36,551
1,643,389
i get so scattered when it comes to projects. i start building, get bored, and move one. to help me focus my energy, i turned my bayesian logit ratings model into a site. goal is to refine these models for each league and talk modeling sports in the blog. bayesRatings.com
18
752
nba starts in a couple weeks and everyone loves props. i found an old project and started a rebuild. desktop app for nba props. one model per stat. set the line and compare it to the projection, then check the game log for the trend if you want. will see how much i can get done with this, before the season starts. will need to review the models and hook up a live odds feed and maybe add in a bet tracker. project on github. link in comment. clone, give to your coding agent, make changes to the models, add in your current odds feeds.
3
14
1,844