dual_frame_allocation: Dual-frame allocation (area frame plus list frame with...

View source: R/dualframe.R

dual_frame_allocationR Documentation

Dual-frame allocation (area frame plus list frame with overlap)

Description

Hartley's (1962, 1974) design for two frames whose union covers the population: frame A (typically the area frame, complete but expensive) and frame B (the list, cheap but incomplete). The population splits into the domains a (A only), ab (both) and b (B only), and the total is estimated by Y_a + theta * Y_ab(A) + (1 - theta) * Y_ab(B) + Y_b: the overlap is estimated from both samples and mixed with weight theta. With simple random sampling in each frame (other designs enter through design effects) the variance is a sum of two frame terms, so for each theta the cost-optimal n_A, n_B follow the cost-weighted Neyman rule; theta is then optimised. theta = 0 is the screening design, in which overlap units found in the area sample are not used (the list covers them), the usual practice when the list holds the large producers.

Usage

dual_frame_allocation(
  domains,
  cost_a,
  cost_b,
  deff_a = 1,
  deff_b = 1,
  theta = NULL,
  target_variance = NULL,
  target_cv = NULL,
  budget = NULL
)

Arguments

domains

Data frame with one row per domain a, ab, b (column domain) and columns size (units), mean and sd (standard deviation with divisor size - 1) of the study variable.

cost_a, cost_b

Cost per sampled unit in frame A and frame B.

deff_a, deff_b

Design effects of the two samples relative to simple random sampling (an area sample of segments or points usually has deff_a > 1).

theta

NULL to optimise, a number in ⁠[0, 1]⁠, or "screening" (zero).

target_variance, target_cv, budget

Exactly one: target variance of the estimated total, target coefficient of variation (relative to the population total implied by domains), or budget.

Details

The cost per area unit should include the field work: take it from the routing, for example cost_mean / n of a cost_variance_frontier() at the sample size under consideration, and iterate once or twice.

Value

A list of class fieldopt_dual_frame: n_a, n_b, theta, cost, variance, se, cv, total (implied population total), variance_a, variance_b, overlap_a, overlap_b (expected overlap units in each sample), bounded, and the inputs.

References

Hartley, H. O. (1962). Multiple frame surveys. Proceedings of the Social Statistics Section, ASA, 203–206. Hartley, H. O. (1974). Multiple frame methodology and selected applications. Sankhya C, 36, 99–118. Lohr, S. L. and Rao, J. N. K. (2006). Estimation in multiple-frame surveys. JASA, 101(475), 1019–1030.

Examples

domains <- data.frame(
  domain = c("a", "ab", "b"), size = c(8000, 1500, 500),
  mean = c(5, 40, 60), sd = c(6, 30, 50)
)
dual_frame_allocation(domains, cost_a = 200, cost_b = 40, budget = 1e5)
dual_frame_allocation(domains, cost_a = 200, cost_b = 40, theta = "screening", target_cv = 0.05)

fieldopt documentation built on Oct. 22, 2026, 1:07 a.m.