Data of three chess players: Karpov, Kasparov, and Anand. Includes two likelihood functions for the strengths of the players, and an array of game results

Details

(there are three chess datasets in the package, documented at interzonal.Rd [the 1963 World championship], kka.Rd [Karpov-Kasparov-Anand dataset], and chess.Rd [rock-paper-scissors using Topalov-Anand-Karpov])

The strengths of chess players may be assessed using the generalized Bradley-Terry model. The karpov_kasparov_anand hyper2 likelihood function allows one to estimate the players' strengths, propensity to draw, and also the additional strength conferred by playing white as personified by a draw monster and a white monster draw and white respectively.

Object karpov_kasparov_anand assumes that the draw potential is the same for all three players; likelihood function kka_3draws allows the propensity to draw to differ between the three players.

The reason that the players are different from those in the chess dataset is that the original data does not seem to be available any more.

Dataset kka refers to scorelines of matches between three chess players (Kasparov, Karpov, Anand). It is a named numeric vector with names such as ‘karpov_plays_white_beats_kasparov’ which has value 18: we have a total of 18 games between Karpov and Kasparov in which Karpov played white and beat Kasparov.

Object chess3 is a simple hyper3 object corresponding to pairwise comparison with draws; chess3_maxp is the evaluate, conditional on the estimated white-player advantage and draw proclivity. This object is created and discussed in inst/kka.Rmd. Array kka_array presents the same information in a 3D array.

All data drawn from https://www.chessgames.com (search for “Kasparov vs Karpov”, etc). Note that the database allows one to sort by white wins or black wins (there is a ‘refine search’ tab at the bottom). Some searches have more than one page of results. Numbers here downloaded 17 February 2019. Note that only ‘classical games’ are considered here (rapid and exhibition games being ignored).

These objects can be generated by running script inst/kka.Rmd, which includes some further discussion and technical documentation and creates file kka.rda which resides in the data/ directory.

See also

Examples

karpov_kasparov_anand
#> log(Anand^15 * (Anand + Karpov + draw + white)^-92 * (Anand + Kasparov
#> + draw + white)^-80 * (Anand + white)^24 * Karpov^12 * (Karpov +
#> Kasparov + draw + white)^-193 * (Karpov + white)^25 * Kasparov^20 *
#> (Kasparov + white)^45 * draw^224)
# pie(maxp(karpov_kasparov_anand))  # takes ~10s

M <- kka_array[,,1] + 1i*kka_array[,,3]
home_away(M)
#> log(Anand^15 * (Anand + Karpov + home)^-43 * (Anand + Kasparov +
#> home)^-34 * (Anand + home)^24 * Karpov^12 * (Karpov + Kasparov +
#> home)^-64 * (Karpov + home)^25 * Kasparov^20 * (Kasparov + home)^45)
home_away3(M,lambda=1.2)
#> log( (Anand=1)^15 * (Anand=1, Karpov=1.2)^-20 * (Anand=1,
#> Kasparov=1.2)^-17 * (Anand=1.2)^24 * (Anand=1.2, Karpov=1)^-23 *
#> (Anand=1.2, Kasparov=1)^-17 * (Karpov=1)^12 * (Karpov=1,
#> Kasparov=1.2)^-37 * (Karpov=1.2)^25 * (Karpov=1.2, Kasparov=1)^-27 *
#> (Kasparov=1)^20 * (Kasparov=1.2)^45)