Answer
Consistent vs unbiased estimators: how do they differ?
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.
- Unbiased is about the centre of the distribution at a fixed sample size. If you could repeat the study endlessly with n = 20 each time, the guesses would average out to exactly the true value. Formally, the expected value of the estimator equals the parameter, for every n.
- Consistent is about what happens as n grows. However small a tolerance you pick, the chance that the estimate misses the truth by more than that tolerance shrinks towards zero as the sample gets larger. Formally, the estimator converges in probability to the parameter.
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
- Unbiased but not consistent: estimate the population mean using only the first observation and throw the rest away. Its expected value is the mean, so it is unbiased. But it ignores all extra data, so its spread never shrinks and it never settles down.
- Biased but consistent: estimate the variance by dividing the sum of squared deviations by n instead of n - 1. On average it comes out too small by a factor of (n - 1)/n, so it is biased. That factor tends to 1 and the spread shrinks as n grows, so it converges to the true variance.
- Both: the sample mean, and the sample variance with the n - 1 divisor.
- Neither: the sample mean plus 1. It is always off by 1 on average, and more data only makes it converge to the wrong value.
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 estimatorsPython
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
- APA 7 formatter for descriptive statistics
- Which statistical test should I use?
- Why does standard deviation square the differences?
- What are degrees of freedom in statistics?
- Consistent estimator (Wikipedia)
- Bias of an estimator (Wikipedia)
More answered questions
- Standard error vs standard deviation: what is the difference?
- Can you run a chi-square test on weighted survey estimates?
- RMSE vs standard deviation: what does comparing them tell you?
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 questionWritten 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.