Algorithm

Deutsche Version.

Goalimpact measures the extent that a player contributes to the goal difference per minute of a team. If a player has a high GI value, then his team has a good goal difference when he plays compared to matches where he doesn’t play. An average player in my database has a value of 100. The best player in the world approximately 190.

The system uses an entirely different approach compared to most other player rating systems, as it does not record single player actions and try to value them. Instead, it just rates the player by the outcome and is unaffected by how the result was achieved. For the more mathematical oriented readers; Goalimpact is a kind of Shapley Value for team sports.

The reasoning behind this can be explained by using car race prediction as an example. Imagine you try to predict the result of a race and you are free to choose your prediction method. One way could be to collect data on all the cars. For example, the engine power, weight and body shape. This data may provide a picture of which car should be fastest. Unfortunately, even a race is too complicated for this to work. You are probably going to miss one or more crucial parameters. Did you consider the weather, the tactics of the opponent or the quality of the box crew? What about the driver’s skill? Predicting a car race is incredibly hard. Predicting a football games is orders of magnitude harder.

Given that, I don't think it is be feasible to come up with model that combines aggregated bottom-up football data, such as successful tackles and passing percentage etc., and expect it to provide a meaningful player rating any time soon. Instead, I go the other way round and look from the top-down, from the perspective of the result. Back to the racing example, you could measure the average speed of each car in previous races. The average speed is already an aggregate of many factors that eventually lead to this average. Just sorting the cars by the historical average speed will be a good estimate of the outcome of the next race.

The footballing analogue to the average speed in racing (distance per unit time), is the goal difference per minute playing time. Taking goal difference instead of goals scored ensures that both the offensive and defensive capabilities of the player are reflected. The team success depends on scoring more goals than conceding, in short, having a positive goal difference. It is of secondary importance whether that is 1 - 0 or 4 – 3.

The Goalimpact score averages the goal difference per minute for all games the player plays for any team, season and league. This is his ‘previous race speed'. However, taking this simple average can be easily misleading. A player with many games in lower leagues can achieve a high positive goal difference far easier than if he played in a top league. Therefore, the real world meaning of the Goalimpact score improves dramatically if corrected for the Goalimpact score of team mates and opponents, and consideration is given to home advantage and many other important factors. Unfortunately, this makes the Goalimpact of a player dependent on the Goalimpact of the rest of his team, creating a mathematical problem that is very computational intensive to solve. However, this can be done and you see the results on this page.

When interpreting Goalimpact value, keep the example of average speed in mind. It doesn't tell you the 'maximum speed' ('talent') of the player and it doesn't tell you the current speed ('form'). Instead it tells you the average performance the player actually had. The score may be low for many reasons, the player is just bad is only one of many possible explanations. Maybe he was just very unlucky, or the Manager played him in a position that didn't fit him (imagine Messi as goalkeeper as an extreme example) or maybe he played through a slight injury.

However, high Goalimpact scores provide easier conclusions. If a player has a high score, than we can conclude, with confidence, that he has/had a high contribution to his team. Meaning, under similar playing conditions, he is likely to have a high impact. To conclude that a player with a high value must be good is easier than to conclude that a low value makes a bad player. That said, even a high score can be the result of a very lucky player. It is just statistics, after all!

The database with all games and players is updated monthly and therefore the Goalimpact values of all players change in monthly intervals. For young players with few games considered, the Goalimpact will change faster than for older players that have played many games in the database.

If you have any questions please check the FAQ page and thanks for reading!


Deutsch

Goalimpact gibt an, wie stark die Tordifferenz einer Mannschaft von einem einzelnem Spieler im Durchschnitt abhingt. Hat ein Spieler einen sehr hohen Wert, so hatte seine Mannschaft in der Vergangenheit mit ihm eine sehr gute Tordifferenz im Vergleich zu Spielen ohne ihn. Der Durchschnitt über alle Spieler liegt bei 100. Die besten Spieler der Welt haben einen Goalimpact von etwa 190.

Die Logik dahinter will ich mit einem Beispiel aus dem Rennsport vergleichen. Stell Dir vor, Du versuchst das Ergebnis eines Autorennen vorherzusagen. Du hast verschiedene Möglichkeiten an die Sache heranzugehen. Du könntest zum Beispiel Daten über die Autos sammeln. Motorstärke, Gewicht, Luftwiderstand und abschätzen welches Auto dann wohl das Schnellste ist. Das Problem dabei ist, dass selbst ein Autorennen zu kompliziert ist aus diesen Parametern die erwartete Rundenzeit zu bestimmen. Man müsste noch das Wetter kennen, die Reifenwahl, die Taktik des Gegners, die Boxenzeiten, das Können des Fahrers und vieles mehr. Dabei ist das immer noch einfach als ein Fußballspiel, dass eine weit höhere Komplexität aufweist.

Entsprechend hielt ich Versuche Spielstärken aus Passquoten und Laufwegen zu bestimmen für auf absehbare Zeit nicht sehr erfolgversprechend und bin den anderen Weg gegangen. Ich messe nicht die Details des Autos, sondern die Rundenzeiten in den vergangenen Rennen. Die Durchschnittsgeschwindigkeit eines Autos in den früheren Rennen beinhaltet schon alle möglichen Faktoren. Wenn ich also die Autos einfach nach diesen Zeiten sortiere, so wird das keine schlechte Schätzung für zukünftige Zieleinkünfte sein.

Das Analogon zur Rundenzeit bei Fußball ist die Tordifferenz. Mir ist eigentlich egal wie viele Tore ich schieße und wie viele der Gegner, solange ich mehr schieße als der Gegner. Ob ich dies durch eine stabile Defensive und einen geglückten Konter erreiche oder wie Werder Bremen die bedingungslose Offensive suche und hinten entsprechend viele kassieren beeinflusst zwar das Spielgeschehen, aber am Ende zählt die Differenz.

Der Goalimpact mittelt nun die Tordifferenz aller Spiele eines Spielers über alle Vereine, Saisonen und Ligen. Seine vergangene "Durchschnittsgeschwindigkeit". Nun hängt die Tordifferenz in einem Spiel nicht nur vom Goalimpact des Spielers selbst ab, sondern auch von denen der Mitspieler und der Gegner. Und auch von vielen anderen Faktoren wie Anzahl der Einsatzminuten, Heimvorteil und Erschöpfungsgrad (bei Einwechselspielern). Daher wird der Wert um diese Faktoren mit aufwendigen mathematischen Verfahren angepasst, so dass eine möglichst reine Spielstärke übrig bleibt.

Am einfachsten lässt sich der Wert interpretieren, wenn man das Beispiel mit der historischen Durchschnittsgeschwindigkeit im Kopf behält. Es ist nicht nicht die Höchstgeschwindigkeit ("Talent"), sondern nur die tatsächlich gefahrene Durchschnittsgeschwindigkeit. Wenn ein Spieler einen schlechten Goalimpact hat, so heißt das nicht zwangsläufig, dass er talentfrei ist. Es heißt nur, dass er dieses Talent im Durchschnitt nicht zeigen konnte. Dies kann an vielen Dingen liegen, insbesondere auch an Dingen, die der Spieler nicht selber beeinflussen kann. Vielleicht hat der Trainer ihn um Beispiel nicht auf seiner besten Position eingesetzt und die Leistung war deswegen nicht so gut wie sie sein könnte. Oder er hatte einfach viel Pech. Oder er war nicht 100% fit.

Anders herum, wenn ein Spieler einen sehr hohen Goalimpact hat, dann hat er bewiesen wie viel Leistung er bringen kann. Es ist zu erwarten, dass er unter ähnlichen Bedingungen wie in der Vergangenheit ähnlich hohe Leistungen erbringen wird. Daher ist der Schluss "hoher Goalimpact = guter Spieler" einfacher zu ziehen als die Schlussfolgerung "niedriger Goalimpact = schwacher Spieler".

Die Datenbank mit allen Spielen wird monatlich aktualisiert und entsprechend ändern sich monatlich die Einschätzungen der Spieler. Bei jungen Spielern mit wenig bislang wenig Spielen ändert sich die Einschätzung von Monat zu Monat naturgemäß stärker als bei älteren Spielern.


Häufige fragen zur Methodik werden in der FAQ beantwortet.

Kommentare:

  1. Does the goal impact take into account fatigue eg.playing 2 games a week vs playing 1 or even 3? Most teams rotate players but some players end up playing a lot of games but are surrounded by fresh players who have been rested.
    Also does the GI factor in the amount of air miles that a player/team has travelled as jet lag can certainly degrade a players performance.

    AntwortenLöschen
    Antworten
    1. It does take this into account within a game. However, I could not find a significant impact between games on player level after 48 hours rest. There are of course players that didn't recover fully in that time, but they seem not to play then often enough to have significant impact. The impact on team level is thus certainly significant as not always the best players will play.

      Löschen
  2. Hi Jorg,
    Very Interesting post. Congratulation on a clear exposition of the problem. I like your comparison with car as it does make me think in a novel way about the problem. I need to reflect on this and learn more about Shapley value, and then, perhaps, come back with some comments.

    AntwortenLöschen