Saturday, October 23, 2010


Page Rank kind of ranking for test cricket teams

The official ranking for test teams in ICC is quite complicated . It seems a bit confusing with all the arbitrary point calculations. (40 points, 90 points etc).  And although it tries to give more points to a weaker team that beats a stronger team, the effect is not uniform.  The scoring scheme can be made more elegant by a simple page rank kind of algorithm. 

The idea is, if India beats Australia in a series 2-1, Indias score would be (score-of-australia)*2/3 and australias score would be (score-of-india)*1/3.  At the end of a given time period, lets say india beat aus 2-0, SA 3-1 and lost to bangladesh 1-0. Indias score would be:
india-score = k(india-score +  2/2*aus_score + 3/4*sa_score +0*bangladesh_score)
similarly for bangladesh, bang-score = k(bang-score + 1*india-score + other series)

where k is a constant.

This leads to a linear set of equations which can be solved by using the eigen-value decomposition.  Each eigen vector is a solution, which in this case becomes a possible team score.  We can take the vector that corresponds to the maximum eigen value.

The data for all the test series  played until now is available from cricinfo at I used a slightly modified version of the above scoring scheme, The score I used was (number of wins)/(total-matches + 1) . Just to score more for a comprehensive 3-0 win (3/(3+1) = 0.75) v/s a 1-0 win (0.5)  The scores for the last 3 years, that is 2007 and beyond are

"India" 0.5994906420666286
"Australia" 0.48114889162515917

"South Africa" 0.46906326930865216
"England" 0.27645475105538375,
"Sri Lanka" 0.29340243047144315
"West Indies" 0.11112461214397185
"Pakistan" 0.09815656282323282
"New Zealand" 0.05997455303303149
"Bangladesh" 0.03152476327152151,

If scored this way, Australia still seem to have a higher ranking as compared to the ICC ranking where they are number currently number 5.  I also tried plotting the scores for the last 130 years of test cricket.  Here are the results.

As expected, India is rising now whereas Australia is falling, WI dominated a decade after 75. Surprising thing is England started both the world wars winning against Australia and immediately after the wars,  Australia was on top.

Here is the clojure code for doing all this, jblas is needed for eigen decomposition and jfreechart for plotting.

Hey, you still alive? Your blog is great. Also gave a nice example of jblas in Clojure, which is something I needed.
Post a Comment

Subscribe to Post Comments [Atom]

<< Home


April 2005   May 2005   August 2005   September 2005   January 2006   February 2006   November 2006   September 2008   March 2010   April 2010   October 2010  

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]