Probability of Winning a Tennis Game

In this post, we will look at a simple probability model for winning a tennis game. This model is far too simple to be accurate in predicting real tennis matches, but it will be the starting point for building more useful models. It is also a good introduction to some of the more advanced counting techniques used to analyze probability.
Continue reading “Probability of Winning a Tennis Game”

Web Scraping NBA Team Matchups and Box Scores

We are going to use machine learning and statistics to predict NBA matchups. To do this, we are going to need data on NBA games, and lots of it. So let’s get all the team matchups and box scores from stats.nba.com, and make them ready for use.

This post has two purposes. The first is to show you how to do the actual web scraping. The second purpose is to show you how to examine data before you us it. Data are almost always a bit messy and need to be handled with care. It’s important to take some time to look at data and to make sure it’s clean before use.
Continue reading “Web Scraping NBA Team Matchups and Box Scores”

Analyzing the Board Game Risk

I enjoy playing the game Risk with my family. The game provides a nice balance of strategy and chance. The pace of play is good and the rules are easy to remember.

In Risk, you win the game by attacking and conquering your opponents’ territories with your armies. Since the game uses up to 5 dice to determine the outcome of each attack, chance is an unavoidable part of the game. The main tool players have to control chance is to position their armies wisely, and attack when the odds are in their favor.

This post shows you how to use the probability tools from this site to analyze the odds in Risk, so you can make better decisions and hopefully improve your chances of winning.
Continue reading “Analyzing the Board Game Risk”

Coin Flips and Multiplying Probabilities

In this post, we will look at coin flips to see how to analyze outcomes which depend on more than one source of randomness. These are called joint events and have joint probability distributions. We will see how you combine the probabilities of simpler events to create joint probabilities by multiplication.
Continue reading “Coin Flips and Multiplying Probabilities”

Probability Modeling: Getting Started

This post introduces a framework to represent the mathematical concept of probability in Python. We’ll develop tools over a series of posts that we can use to analyze games of chance and some popular board games. We will also show how to apply these ideas to uncertainty in sports.
Continue reading “Probability Modeling: Getting Started”

Introduction to Web Scraping

Any analysis needs to start with data. To do serious sports analytics, we need to figure out how to capture information, assess its quality and put it into a useful format. Fortunately, there is a massive amount of quality sports data available on the internet, which can be your starting point for great analytics.
Continue reading “Introduction to Web Scraping”

Setting up Python

In this guide, I will show you how to set up a powerful Python environment to do sports analytics on your computer. If you follow these steps, you will have all the libraries you need to do web scraping, data analysis and visualization. Future posts on this site will assume that you have installed the necessary libraries.
Continue reading “Setting up Python”