Choosing an estimand

An estimand states which population quantity the estimate targets. Counts can produce means, totals, or ratios. The input type does not determine the target.

Mean

sample.mean("n_people") estimates the average value per population unit. A mean of a binary indicator is a population proportion.

Population total

sample.total("n_people", population_size=N) estimates N times the sample mean. N must count the same row-level population units represented by the sample. The method requires N because observed counts alone do not identify a population total.

The current variance estimator uses a with-replacement approximation. It does not apply a finite population correction, even when the sample is a large part of the population.

Ratio of totals

sample.ratio("n_women", "n_people") estimates:

sum(n_women) / sum(n_people)

Rows with larger denominators contribute more to the result. This is the usual aggregate proportion when each row records a category count and a total count.

Mean of row-level ratios

sample.mean_of_ratios("n_women", "n_people") estimates:

mean(n_women / n_people)

Every row contributes equally. The method requires a positive denominator in every row. It does not silently remove rows because doing so changes the target population. Filter the DataFrame first when the intended population excludes zero-denominator rows.

The ratio of totals and the mean of ratios answer different questions. They are equal only in special cases, such as a constant denominator.