Learn R Programming

hbsae (version 1.2)

bench: Benchmark small area estimates.

Description

Benchmark small area estimates to conform to given totals at aggregate levels.

Usage

bench(x, R, rhs, mseMethod = "no", Omega, Lambda)

Arguments

x

sae object to be benchmarked. As an alternative, a list can be supplied with at least components Narea with area population sizes and est with small area estimates. In the latter case argument Omega cannot be left unspecified.

R

restriction matrix, M x r matrix where r is the number of restrictions and M the number of areas; default is a single constraint on the population total. Note that R acts on the vector of area totals, not the vector of means.

rhs

r-vector of benchmark totals corresponding to the restrictions represented by (the columns of) R.

mseMethod

if "no", MSEs are not updated, if "exact", constraints are treated as independent information (exact identities by default), and if "model", the squared differences between original and benchmarked estimates are added to the MSEs.

Omega

M x M matrix \(\Omega\) in objective function, see details. By default this is the covariance matrix of the small area estimates.

Lambda

r x r matrix \(\Lambda\) in objective function, see details. By specifying Lambda it is possible to impose 'soft' constraints, i.e. constraints that need to hold only approximately.

Value

An object of class sae with adjusted estimates.

Details

This function adjusts the small area estimates EST(x), denoted by \(x_0\), to $$x_1 = x_0 + \Omega R_N (R_N' \Omega R_N + \Lambda)^{-1} (t - R_N' x_0)\,,$$ where

  • \(\Omega\) is a symmetric M x M matrix. By default, \(\Omega\) is taken to be the covariance matrix \(V_0\) of the input sae-object x.

  • \(R_N = {\rm diag}(N_1,\dots, N_M)\,R\) where \(R\) is the matrix passed to bench and \(N_i\) denotes the population size of the \(i\)th area, is a M x r matrix describing the aggregate level relative to the area level. Note that the matrix \(R\) acts on the vector of area totals whereas \(R_N\) acts on the area means to produce the aggregate totals. The default for \(R\) is a column vector of 1s representing an additivity constraint to the overall population total.

  • \(t\) is an r-vector of aggregate-level totals, specified as rhs, that the small area estimates should add up to.

  • \(\Lambda\) is a symmetric r x r matrix controlling the penalty associated with deviations from the constraints \(R_N' x_1 = t\). The default is \(\Lambda=0\), implying that the constraints must hold exactly.

The adjusted or benchmarked small area estimates minimize the expectation of the loss function $$L(x_1, \theta) = (x_1 - \theta)' \Omega^{-1} (x_1 - \theta) + (R_N' x_1 - t)' \Lambda^{-1} (R_N' x_1 - t)$$ with respect to the posterior for the unknown small area means \(\theta\).

Optionally, MSE(x) is updated as well. If mseMethod="exact" the covariance matrix is adjusted from \(V_0\) to $$V_1 = V_0 - V_0 R_N (R_N' \Omega R_N + \Lambda)^{-1} R_N' V_0\,,$$ and if mseMethod is "model" the adjusted covariance matrix is $$V_1 = V_0 + (x_1 - x_0) (x_1 - x_0)'\,.$$ The latter method treats the benchmark adjustments as incurring a bias relative to the best predictor under the model.

References

G.S. Datta, M. Ghosh, R. Steorts and J. Maples (2011). Bayesian benchmarking with applications to small area estimation. TEST 20(3), 574-588.

Y. You, J.N.K. Rao and P. Dick (2004). Benchmarking Hierarchical Bayes Small Area Estimators in the Canadian Census Undercoverage Estimation. Statistics in Transition 6(5), 631-640.

See Also

sae-class

Examples

Run this code
# NOT RUN {
d <- generateFakeData()

# compute small area estimates
sae <- fSAE(y0 ~ x + area2, data=d$sam, area="area", popdata=d$Xpop)

# calibrate to overall population total
sae.c <- bench(sae, rhs=sum(d$mY0*sae$Narea))
plot(sae, sae.c)
# }

Run the code above in your browser using DataLab