Fisher Information
Fisher information measures how sharply data pin down a parameter. Sharp likelihood peaks mean tight estimates; flat ones mean the data barely speak.
Why Does This Exist?
Two experiments can share an estimate and differ tenfold in trustworthiness: 6 of 10 heads versus 600 of 1000 both say , but the second pins down while the first barely constrains it. The estimate alone cannot tell them apart.
Fisher information I(\\theta) = \\mathrm{Var}(\\nabla_\\theta \\log p(X;\\theta)) = -\\mathbb{E}[\\nabla^2_\\theta \\log p] does. It is expected curvature: sharp peaks carry information, flat ones do not. It sets the Cramer-Rao floor, drives Wald intervals, and parameterizes Jeffreys priors. It assumes maximum likelihood estimation and feeds the Cramer-Rao bound.
The one idea you need first
The score s(\\theta) = \\nabla_\\theta \\log p(x;\\theta) points uphill on log-likelihood with mean zero. Its variance measures how strongly data tug the parameter. Curvature averages that tug.
Think of It Like This
A valley in fog
You stand in a valley in fog and feel the slope underfoot. A sharp V tells your position within a step; a wide flat bowl leaves you guessing across meters. Fisher information is the valley's curvature at your feet.
Observed information is the ground you actually feel today; expected information averages over all weather. Where it stops: curvature is local. A sharp local valley inside a multimodal landscape still misleads globally.
How It Actually Works
Under regularity (support free of , differentiation under the integral), adds per observation. For Bernoulli(): , so . Wald intervals use . The information matrix generalizes to vectors; natural gradients precondition steps by it.
Worked example
Hundred flips at : . Standard-error floor . At : , floor . Ten flips at give , floor : same estimate scale, triple the wobble. Information turns "more data" into a number.
Code
import numpy as np
n, p = 100, 0.5info = n / (p * (1 - p)) # Bernoulli Fisher informationprint(round(float(info), 1)) # -> 400.0print(round(float(1 / np.sqrt(info)), 3)) # -> 0.05Information 400 gives a 0.05 precision floor. The code is the definition, evaluated where it matters.
Watch Out For
Quoting expected information under misspecification
averages under the assumed model. Under misspecification the true sampling wobble follows the sandwich , not . Model-based intervals then run narrow and overconfident.
Use observed information or sandwich errors when the model is a working approximation. If residuals look structured, distrust .
Ignoring the boundary
Near or , Bernoulli information explodes and regularity frays: the MLE piles at the boundary and asymptotics break. Wald intervals can spill outside .
Reparameterize (logit), use exact or profile intervals, or penalize. If estimates sit on the edge, the curvature number is fiction.
The Quick Version
- Fisher information is expected log-likelihood curvature: sharp peaks, tight estimates.
- Bernoulli: ; 100 flips at 0.5 give 400 and a 0.05 floor.
- Information adds per observation under regularity.
- It drives Cramer-Rao floors, Wald intervals, and natural gradients.
- Misspecification needs sandwich errors, not .
- Boundary parameters break the asymptotics; reparameterize or go exact.