# Calculating odds for a cricket match

I'm writing a program to help me gamble on cricket, but have run into a wee problem.

I've got loads of data from previous games already and have compiled various stats from it. I have calculated that after 1 over of a 20 over match, the average score is 4.5 runs, and the average final score will be 145. Assume standard deviation is 2 and 20 respectively.

So from there I can get a fairly decent idea of the odds for number of runs after 1 over, and at the end of the innings. (Assuming normal distributions N(4.5, 2) and N(145, 20))

My problem is, suppose after the first ball, they score 1 runs. How do I calculate the new odds?

At first I thought I'd take 4.5/6 (number of balls in an over) = 0.75 as an "expected per ball" value and then say, 1 run scored is 1.33 times more than expected, therefore scale expected final score to 145*1.33 ~= 200 , and over score to 4.5*1.33 = 6.

However this is going to lead to all sorts of problems: Firstly if they score 0 off the first ball, they would be expected to score 0 overall, which can't be right. Secondly, scaling 145 by 1.33 makes almost 200 runs, this jump is in no way justifiable after seeing just one ball.

So I'm a bit stuck, not sure where to go from here.

Sorry if this is a bit complicated, this one may be for cricket enthusiasts only!

-
"I'm writing a program to help me gamble on cricket" - if you make money on it, do the best answers get a cut? –  Glen_b Feb 20 '13 at 22:50

It sounds like you have a lot of data, but no model yet.

What do you learn from the $1$ run scored from a ball? There are a lot of possibilities. You might learn just what happened on that ball. You might learn something about the batter. You might learn something about the bowler. You might learn something about the overall skill levels of the teams. These are all possibilities according to particular choices of models. Since you have a lot of data, you may be able to test these possibilities against the data. Filter the past games to ones in which there was $1$ run scored on the first ball. How does this affect the average scores of the games? Some models will be inconsistent with the data. My guess is that teams are not so consistent that a good first ball determines much about the match, and that you primarily can learn a little about the batter, and a little about the bowler.

So, make some models for how teams might differ, and test them against the data.

-
Bowler, not pitcher. –  mark999 Feb 21 '13 at 10:07
Thanks, mark999, I'll correct that. –  Douglas Zare Feb 21 '13 at 15:56
Indeed, this is why the Duckworth Lewis system is only used if a certain number of overs have been completed, so that there is some meaningful evidence from which to make an inference. –  Dikran Marsupial Feb 21 '13 at 17:14

This is a good problem to view through a time series lense. Effectively you are trying to forecast X deliveries ahead. In the beginning you have no information other than past games, although there must be ways to determine which games are most relevant.

Each extra delivery you get is an actual observation in a time series which can use to refine your model.

-

It might be a good idea to look up the details of the Duckworth Lewis scheme used to decide the winner of a match affected by rain. IIRC this is a non-parametric method that attempts to work out a fair target for a curtailed innings. Comparison with the Duckworth Lewis target would give a good indication of progress, but it is possible that their methods can be used to predict the final innings total instead.

-
Duckworth is a bit crap IMO. Also I think that is what everyone else who's gambling on cricket is using. With the amount of stats I have, I should be able to get something far more accurate. –  Duane Allman Feb 21 '13 at 16:58
Sometimes something a bit crap is the best that can be done (because of paucity of data and inherent uncertainty). Duckworth and Lewis are both pretty competent statisticians as far as I can see, so I wouldn't be too hopeful of doing substantially better, but in any case I'd be interested to hear how you get on (cricket and statistics are two of my favourite subjects, but not usually at the same time). –  Dikran Marsupial Feb 21 '13 at 17:05
I would take a simulation based approach, where the batsman is modelled as having a constant chance of dismissal every ball and a constant strike rate. Begin by assigning these using the averages for batsman in the same place in the order. Use these as priors and update using the observed scores so far, then repeatedly simulate the rest of the innings to get the distribution of the final score. Then improve the model by including factors such as the bowlers skill, and adapting parameters according to the over number. –  Dikran Marsupial Feb 21 '13 at 17:11
However, I suspect that as more parameters are added, the are less and less well specified by the data, which may be why Duckworth and Lewis opted for such a relatively simple system. –  Dikran Marsupial Feb 21 '13 at 17:12
I'm primarily working on T20 games, duckworth lewis was invented long before this format was even a twinkle in the ECB's eye. It works for tests and 1 days maybe, but t20 is way too volatile. I think the best we can do is try and follow player, partnership and ground trends, but I'd like this overall average model as a base. –  Duane Allman Feb 21 '13 at 17:21

Why don't you treat every delivery as independent of the others, and use runs per ball instead of runs per over? If you said that the number of runs scored per ball in the first over has an expected value of $0.75$, for example, then after scoring $1$ off the first ball, there are $5$ balls left in the over, so their expected score off the over is $1+ 0.75*5 = 4.75$. Then their expected total has gone up by $0.25$ runs as well.

(Note: if you use the normal distribution, the number of runs scored (off a ball or an over) could be negative, and assuming that deliveries or overs are independent of one another is probably wrong. Modelling cricket is interesting, but I wouldn't bet real money on the outcome if you are using assumptions like these!)

-

## protected by whuber♦Sep 5 '13 at 14:33

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.