Answer

Consistent vs unbiased estimators: how do they differ?

Inspired by a question on Cross Validated ·

samplingstandard deviationestimation

The short answer

An unbiased estimator hits the true value on average over repeated samples of a fixed size. A consistent estimator gets close to the true value with high probability once the sample is large. They are separate: the first observation alone is an unbiased estimate of a mean that never improves, while a variance divided by n instead of n - 1 is biased but still homes in on the truth. Consistency is usually seen as the more essential.

Two different questions about an estimator

An estimator is a rule that turns a sample into a guess about some unknown quantity, such as a population mean or variance. Because samples vary, the guess varies too, so it has a distribution of its own. Bias and consistency describe that distribution in two different ways.

A useful picture is a dartboard. Unbiasedness says the darts are centred on the bullseye, though they may be widely scattered. Consistency says that as you gain more data the darts cluster ever more tightly around the bullseye, even if early throws were systematically a little off to one side.

How one can hold without the other

A handy sufficient condition links the two ideas. If the bias goes to zero and the variance goes to zero as n grows, the mean squared error goes to zero, and the estimator is consistent. That is why most biased estimators you meet in practice, including many maximum likelihood estimators, are still consistent: their bias fades with sample size.

The converse fails in a subtle way too. Consistency is about the probability of being far off, not about averages. Imagine an estimator that equals the sample mean, except that with probability 1/n it adds n. The chance of a wild answer shrinks to zero, so it is consistent, yet that rare huge jump keeps its average bias at exactly 1 for every sample size.

See it in a simulation

The script draws 10,000 samples of size 5, 50 and 500 from a normal distribution with mean 10 and variance 4. For three estimators it records the average estimate and the share of estimates that miss the truth by more than 0.5. It then compares the root mean squared error (RMSE) of the two variance estimators. The figures quoted come from one seeded R run. Python's random numbers differ from R's, so its figures differ slightly but show the same pattern.

R

set.seed(42)
mu <- 10; sigma2 <- 4; reps <- 10000   # true mean and variance; repeated samples

sim <- function(n) {
  x <- matrix(rnorm(reps * n, mu, sqrt(sigma2)), nrow = reps)  # one sample per row
  xbar  <- rowMeans(x)
  ss    <- rowSums((x - xbar)^2)
  var_n <- ss / n          # divide by n: biased, but consistent
  s2    <- ss / (n - 1)    # divide by n - 1: unbiased and consistent
  first <- x[, 1]          # first value only: unbiased, but not consistent
  c(n = n,
    avg_var_n = mean(var_n), off_var_n = mean(abs(var_n - sigma2) > 0.5),
    avg_first = mean(first), off_first = mean(abs(first - mu) > 0.5),
    avg_xbar  = mean(xbar),  off_xbar  = mean(abs(xbar - mu) > 0.5),
    rmse_var_n = sqrt(mean((var_n - sigma2)^2)),
    rmse_s2    = sqrt(mean((s2 - sigma2)^2)))
}

res <- t(sapply(c(5, 50, 500), sim))
round(res[, 1:7], 3)     # averages and share of estimates off by more than 0.5
round(res[, c(1, 8, 9)], 3)  # root mean squared error of the two variance estimators

Python

import numpy as np

rng = np.random.default_rng(42)
mu, sigma2, reps = 10, 4, 10000   # true mean and variance; repeated samples

def sim(n):
    x = rng.normal(mu, np.sqrt(sigma2), size=(reps, n))  # one sample per row
    xbar = x.mean(axis=1)
    ss = ((x - xbar[:, None]) ** 2).sum(axis=1)
    var_n = ss / n          # divide by n: biased, but consistent
    s2 = ss / (n - 1)       # divide by n - 1: unbiased and consistent
    first = x[:, 0]         # first value only: unbiased, but not consistent
    return [n,
            var_n.mean(), np.mean(np.abs(var_n - sigma2) > 0.5),
            first.mean(), np.mean(np.abs(first - mu) > 0.5),
            xbar.mean(), np.mean(np.abs(xbar - mu) > 0.5),
            np.sqrt(np.mean((var_n - sigma2) ** 2)),
            np.sqrt(np.mean((s2 - sigma2) ** 2))]

res = np.array([sim(n) for n in (5, 50, 500)])
np.set_printoptions(suppress=True)
print("n, avg_var_n, off_var_n, avg_first, off_first, avg_xbar, off_xbar")
print(np.round(res[:, :7], 3))
print("n, rmse_var_n, rmse_s2")
print(np.round(res[:, [0, 7, 8]], 3))
       n avg_var_n off_var_n avg_first off_first avg_xbar off_xbar
[1,]   5     3.247     0.864     9.977     0.805    9.994    0.573
[2,]  50     3.914     0.536     9.993     0.807   10.002    0.078
[3,] 500     3.993     0.052    10.038     0.803   10.001    0.000
       n rmse_var_n rmse_s2
[1,]   5      2.389   2.835
[2,]  50      0.797   0.809
[3,] 500      0.256   0.257

Reading the output

The first-observation estimator averages close to 10 at every sample size, as an unbiased estimator should, but about 80% of its estimates miss by more than 0.5 whether n is 5 or 500 (0.805, 0.807 and 0.803). Extra data does nothing for it. The divide-by-n variance estimator is visibly too low with small samples, averaging 3.247 against a true value of 4 at n = 5, which matches the expected 4 x 4/5 = 3.2 up to simulation noise. By n = 500 it averages 3.993 and only 5.2% of its estimates are off by more than 0.5. The sample mean does well on both counts, and at n = 500 none of the 10,000 estimates missed by that much.

The second table shows why bias alone is a poor way to rank estimators. At n = 5 the biased divide-by-n variance has a smaller RMSE (2.389) than the unbiased version (2.835), because it is less variable, and with normal data this holds at every sample size. As n grows the two converge, which is the practical meaning of consistency: with enough data the choice between them stops mattering.

Which property matters more?

Most statisticians treat consistency as a minimum requirement: an estimator that does not approach the truth as data accumulate is hard to defend. Unbiasedness is nice but not essential, and insisting on it can cost precision, as the variance example shows. It is also fragile under transformation. The n - 1 sample variance is unbiased, yet its square root, the usual sample standard deviation, slightly underestimates the population standard deviation on average, while still being consistent.

Both properties are statements about repeated samples, not about your one dataset. For a single study, what you usually want is an estimate that is close to the truth, which is what mean squared error measures, together with an honest statement of its uncertainty, such as a standard error or confidence interval. If you are new to that distinction, see standard error vs standard deviation.

How to report bias and RMSE of an estimator in APA style (7th edition)

Bias and RMSE are usually reported in simulation studies that compare estimators. Describe the design in the method section (the data-generating model, the true parameter values, the sample sizes and the number of replications), then give the results, ideally in a table with one row per sample size. Using the example above:

"We drew 10,000 samples of each size (n = 5, 50 and 500) from a normal distribution with a mean of 10 and a variance of 4. At n = 5, the variance estimator with divisor n averaged 3.247 and had an RMSE of 2.389, compared with an RMSE of 2.835 for the unbiased estimator with divisor n - 1. At n = 500, the two RMSEs were 0.256 and 0.257."

Report bias as average estimate minus true value, and say so, because some authors use the opposite sign or a relative (percentage) bias. Keep RMSE's leading zero, since it can exceed 1, but drop it for proportions such as the share of estimates outside a tolerance (.052).

Related tools and guides

More answered questions

Working with your own data?

General answers only go so far. Send us your situation and we'll reply by email within two business days.

Ask your question

Written by AskStats with AI assistance. This is general information, not advice for your specific data or study. When the results matter, check your approach with a qualified statistician.