1
$\begingroup$

I am trying to implement the following research paper in pymc3 - https://people.ok.ubc.ca/pgill/research/cricketsim.pdf. In short, this research paper tries to model cricket matches and simulate the outcome of new cricket matches (for those who don't know, cricket is a sport somewhat similar to baseball). Here, we try to train the model on ball-by-ball data of numerous cricket matches. However, I feel that it might be a good idea to use some sort of sequential updating while training the model. What I mean is, let's say I have data of all matches from 2015 to 2019. I want to make batches for matches in say, each year, and then use the posterior of the trained model from the previous year as a prior for the current year, in a way similar to this https://docs.pymc.io/notebooks/updating_priors.html.

My hope is that the model learns how the game has changed over the years, in particular, how certain players may have improved or gotten worse over time since the skill level of player is one attribute implicitly learnt by the model. I think this may be better than just learning from all the data at the same time, because I am interested in simulating future matches, so I would like to give some sort of priority to the latest data. Is this a good way to achieve this? Should there be any trade-off between accuracy and time taken to train the model as I increase or decrease the batch size? From this answer, Sequential Update of Bayesian, it says I can generally do this when I assume "exchangeability", but I am not sure if it applies here.

Thank you for your help in advance!

$\endgroup$

1 Answer 1

1
$\begingroup$

I think this [Bayesian updating] may be better than just learning from all the data at the same time, because I am interested in simulating future matches, so I would like to give some sort of priority to the latest data.

Bayesian updating done sequentially gives you the same result as done all-at-once, so this would not solve the problem. Of course, this is true for the math, while if you use some kind of approximation, like MCMC, to obtain the posterior, and plug-in this as a new prior, than the result would not be exactly the same because of approximation errors, but it would be less precise, rather than be giving more weight to more recent samples. If you want to give higher priority to latest data, you need a model that explicitly does that by weighting the most recent data more.

Moreover, as you noticed, vanilla Bayes theorem assumes exchangability, while you are dealing with time-series data, so there is a time-dependence between the observations. This means that you need a time-series model, that tracks the changes over time.

$\endgroup$
2
  • $\begingroup$ Thank you! I understand now. Do you have any suggestions on how to improve this particular model to make it track changes over time? $\endgroup$
    – SinByCos
    Oct 6, 2020 at 10:01
  • $\begingroup$ @SinByCos I'm not familiar with your data, so hard to comment. You can check other threads tagged as time-series for some examples of time-series models. $\endgroup$
    – Tim
    Oct 6, 2020 at 10:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.