Often when watching chess video lectures, I hear the advice of not capturing the opponent's piece in favor of putting more pressure, for example, to get a more decisive attack. Also, often we hear the phrase:
When you see a good move, look for a better one
and sometimes this good move can be a capture, but the better move is not a capture. The simplest example is probably going for a checkmate attack and ignore the opponent's hanging Queen.
Having these ideas, I thought that we can try to form a hypothesis:
The better the player is the fewer captures per move on average they make
Let's see if we can prove it using real data.
Data source
Our data source is Lichess game database, specifically games played in October 2020 on Lichess. In order to have a more representative sample, we discard bullet games, and we take a sample of 2M remaining games. Next, we remove Elo outliers - in this case, the remaining players have Elo ranging from 1000 up to 2650.
Source code
The complete source code for this experiment in the notebook form is available here: https://github.com/chessvision-ai/average-number-of-captures-by-elo
Results
The plot generated by the provided source code:
Observations
We can observe that the average number of captures per move is negatively correlated with Elo of the players. This is a great result as the common wisdom is now backed up by real data
Also, what is probably even more important, is the fact that the average number of captures per move in a game, when averaged over many games, can be potentially used as an accurate and very simplistic estimator of a player's Elo. There are researches about estimating players' Elo from games they play and most methods use significantly more computationally intensive methods, e.g. average centipawn loss, which is Average is the difference of player's move to the best computer move averaged over all moves. In the case of this new average-captures-per-move metric, computing it is as simple as going through all the moves made in a game and counting how many were captures, so it's as optimal it could be.