Fisher information for a logistic fit from early data

Link
Statistics
John D. Cook on why a logistic fit from early data can’t predict its limit — and the Fisher information that says how bad it is before fitting anything.
Author

Kolen Cheung

Published

September 25th, 2026

Modified

September 26th, 2026

Suppose you’re collecting data on the left side of the curve. If there’s even a small amount of error in your data, you won’t be able to predict the asymptotic value with any accuracy. But if you have data on both sides of the inflection point, you can make a good prediction of the limiting value.

I’ve written about this before, explaining that the problem is hard, but I didn’t say why it’s hard. Here I’d like to give an idea why it’s hard.

Cook has now posted twice to explain this, and it annoys me a bit. His second post has the mechanism, but neither frames it as an estimation problem. The question is how big the error on the limiting value is, so why wouldn’t we take an MCMC approach and see that the error is huge when we only have data on the tail? It came up in COVID forecasting too: the turning point and end of an expanding epidemic cannot be precisely forecast (Castro et al. 2020). Before any simulation, the Fisher information already tells you how bad it is.

Using Cook’s notation,

\[ y(t) = \frac{L}{1 + e^{-k(t - t_0)}}. \]

On the left tail \(y \approx L e^{k(t - t_0)}\), so what early data pin down is the rate \(k\) and the amplitude \(A = L e^{-k t_0}\), not \(L\). In terms of \(A\),

\[ y(t) = \frac{L A e^{kt}}{L + A e^{kt}}. \]

Take multiplicative measurement noise, so errors in \(\log y\) have constant variance: we observe \(\log y(t_i) + \epsilon_i\) with \(\epsilon_i \sim N(0, \sigma^2)\). The sensitivity to the limiting value is then exactly

\[ \frac{\partial \log y}{\partial \log L} = \frac{A e^{kt}}{L + A e^{kt}} = \frac{y(t)}{L}, \]

and the Fisher information is

\[ I_{\log L} = \frac{1}{\sigma^2} \sum_i \left( \frac{y(t_i)}{L} \right)^2. \]

That is already a very intuitive result: information about \(L\) is second order in how far up to \(L\) the data have reached.

For observations at a constant rate \(\rho\) up to a cutoff \(T\), the integral can be done exactly,

\[ I_{\log L} \approx \frac{\rho}{\sigma^2} \int_{-\infty}^{T} \left( \frac{y(t)}{L} \right)^2 dt = \frac{\rho}{k \sigma^2} \left[ -\log\left( 1 - \frac{y(T)}{L} \right) - \frac{y(T)}{L} \right] \approx \frac{\rho}{2 k \sigma^2} \left( \frac{y(T)}{L} \right)^2, \]

where the last step is the tail, \(y(T) \ll L\). The Cramér–Rao bound then gives1

\[ \operatorname{sd}(\log \hat{L}) \gtrsim \sigma \sqrt{\frac{2k}{\rho}} \, \frac{L}{y(T)}. \]

So the uncertainty in \(\log L\) goes as \(L / y(T)\).2 Observe only 1% of the limiting value, and the uncertainty in \(\log L\) is about 10 times larger than if you had reached 10%, or you need about 100 times the data for the same precision, all else equal. This assumes \(k\) and \(A\) are known. Estimating them jointly makes \(L\) less identifiable, but the same divergence as \(y(T)/L \to 0\) remains. With \(k\) and \(A\) fitted too, a straight line in \(\log y\) is absorbed by them, and only the curvature of \(\log y\) tells you about \(L\). Cook’s denominator \(y_1^2 - y_0 y_2\) is zero exactly when \(\log y\) has no curvature, so his post is the three-point, noiseless version of this.

In a follow-up post we run the MCMC and see what this implies in action.

References

Castro, Mario, Saúl Ares, José A. Cuesta, and Susanna Manrubia. 2020. “The Turning Point and End of an Expanding Epidemic Cannot Be Precisely Forecast.” Proceedings of the National Academy of Sciences 117 (42): 26190–96. https://doi.org/10.1073/pnas.2007868117.

Footnotes

  1. The bound is local, so it is only the whole story when the uncertainty is reasonably small. When it isn’t, that is where the MCMC comes in.↩︎

  2. Corrected on 2026-09-26. An earlier version wrote the left-hand side as \(\operatorname{sd}(\hat{L})/L\), the relative uncertainty in \(L\). That is the same as \(\operatorname{sd}(\log \hat{L})\) only when the uncertainty is small, and in the tail it isn’t.↩︎