kka.Rd
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
(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.
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)