# Recursively updating the MLE as new observations stream in

## General Question

Say we have iid data $$x_1$$, $$x_2$$, ... $$\sim f(x\,|\,\boldsymbol{\theta})$$ streaming in. We want to recursively compute the maximum likelihood estimate of $$\boldsymbol{\theta}$$. That is, having computed $$\hat{\boldsymbol{\theta}}_{n-1}=\underset{\boldsymbol{\theta}\in\mathbb{R}^p}{\arg\max}\prod_{i=1}^{n-1}f(x_i\,|\,\boldsymbol{\theta}),$$ we observe a new $$x_n$$, and wish to somehow incrementally update our estimate $$\hat{\boldsymbol{\theta}}_{n-1},\,x_n \to \hat{\boldsymbol{\theta}}_{n}$$ without having to start from scratch. Are there generic algorithms for this?

## Toy Example

If $$x_1$$, $$x_2$$, ... $$\sim N(x\,|\,\mu, 1)$$, then $$\hat{\mu}_{n-1} = \frac{1}{n-1}\sum\limits_{i=1}^{n-1}x_i\quad\text{and}\quad\hat{\mu}_n = \frac{1}{n}\sum\limits_{i=1}^nx_i,$$ so $$\hat{\mu}_n=\frac{1}{n}\left[(n-1)\hat{\mu}_{n-1} + x_n\right].$$

• Don't forget the inverse of this problem: updating the estimator as old observations are deleted. Mar 19, 2019 at 0:22
• Recursive least squares (RLS) is a (very famous) solution to one particular instance of this problem, isn't it? Generally, I would believe that stochastic filtering literature might be useful to look into. Mar 20, 2019 at 15:01

See the concept of sufficiency and in particular, minimal sufficient statistics. In many cases you need the whole sample to compute the estimate at a given sample size, with no trivial way to update from a sample one size smaller (i.e. there's no convenient general result).

If the distribution is exponential family (and in some other cases besides; the uniform is a neat example) there's a nice sufficient statistic that can in many cases be updated in the manner you seek (i.e. with a number of commonly used distributions there would be a fast update).

One example I'm not aware of any direct way to either calculate or update is the estimate for the location of the Cauchy distribution (e.g. with unit scale, to make the problem a simple one-parameter problem). There may be a faster update, however, that I simply haven't noticed - I can't say I've really done more than glance at it for considering the updating case.

On the other hand, with MLEs that are obtained via numerical optimization methods, the previous estimate would in many cases be a great starting point, since typically the previous estimate would be very close to the updated estimate; in that sense at least, rapid updating should often be possible. Even this isn't the general case, though -- with multimodal likelihood functions (again, see the Cauchy for an example), a new observation might lead to the highest mode being some distance from the previous one (even if the locations of each of the biggest few modes didn't shift much, which one is highest could well change).

• Thanks! The point about the MLE possibly switching modes midstream is particularly helpful for understanding why this would be hard in general.
– jcz
Mar 19, 2019 at 1:54
• You can see this for yourself with the above unit-scale Cauchy model and the data (0.1,0.11,0.12,2.91,2.921,2.933). The log-likelihood for the location of the modes are near 0.5 and 2.5, and the (slightly) higher peak is the one near 0.5. Now make the next observation 10 and the mode of each of the two peaks barely moves but the second peak is now substantially higher. Gradient descent won't help you when that happens, it's almost like starting again. If your population is a mixture of two similar-size subgroups with different locations, such circumstances could occur -- . ... ctd Mar 19, 2019 at 3:31
• ctd... even in a relatively large sample. In the right situation, mode switching may occur fairly often. Mar 19, 2019 at 4:22
• A condition preventing multi-modality is that the likelihood should be log-concave w.r.t. the parameter vector for all $n$. This implies limitations on the model, however.
– Yves
Mar 19, 2019 at 9:45
• Yes, correct; I debated with myself over whether to discuss that in the answer. Mar 19, 2019 at 9:55

In machine learning, this is referred to as online learning.

As @Glen_b pointed out, there are special cases in which the MLE can be updated without needing to access all the previous data. As he also points out, I don't believe there's a generic solution for finding the MLE.

A fairly generic approach for finding the approximate solution is to use something like stochastic gradient descent. In this case, as each observation comes in, we compute the gradient with respect to this individual observation and move the parameter values a very small amount in this direction. Under certain conditions, we can show that this will converge to a neighborhood of the MLE with high probability; the neighborhood is tighter and tighter as we reduce the step size, but more data is required for convergence. However, these stochastic methods in general require much more fiddling to obtain good performance than, say, closed form updates.