Take a recruitment size a panel already has, or has been budgeted, and
report the responding sample and the precision it leaves at each wave of
a unit's life. This is the inverse of n_panel(): the same rates and the
same embedded estimand, read from a size instead of solved for one.
Usage
prec_panel(n_recruit, ...)
# Default S3 method
prec_panel(
n_recruit,
target,
retention,
...,
resp_rate = 1,
design = c("fixed", "rotating"),
target_wave = NULL,
assurance = NULL,
start = NULL
)
# S3 method for class 'svyplan_panel'
prec_panel(n_recruit, ...)Arguments
- n_recruit
For the default method: units recruited, meaning the whole issue to one cohort for a fixed panel and the entrants per occasion for a rotating one. For
svyplan_panelobjects: a result fromn_panel()or from this function.- ...
Additional arguments passed to methods. Unused arguments are rejected. In the
svyplan_panelmethod, named arguments override the stored ones, so a stored plan can be re-read under worse retention.- target
A
svyplan_norsvyplan_precresult for a mean or a proportion. Required in the default method, and the same objectn_panel()takes: it supplies the estimand each wave's precision is computed for, and the responding sample the design is compared against.- retention
Conditional retention, one value per wave transition, each in (0, 1]. See
n_panel().- resp_rate
Response rate at recruitment, wave 1, in (0, 1]. Default 1.
- design
"fixed"or"rotating". Seen_panel().- target_wave
The wave the headline precision is reported at, defaulting to the last. It must be absent for a rotating design, whose precision belongs to the pooled occasion.
- assurance
Probability in (0, 1), or
NULL(default). Reports the recruitment the target would need at that level, which is what the suppliedn_recruitcan then be read against.- start
"gradual","immediate"orNULL. Seen_panel(). On a stored plan this may be overridden, unlikedesign: it selects which launch is described and moves no stored quantity, the recruitment being fixed before any of it is computed.
Value
A svyplan_panel object, the class n_panel() returns, with
$solved absent because nothing was solved for. $n_resp and the
headline se, moe and cv describe the supplied recruitment, and
$n_target the requirement it is being compared against, so a
recruitment below the requirement reports a moe above the target's.
Details
The precision at a wave is the embedded estimand evaluated at that wave's
expected respondents with resp_rate = 1, the panel's own losses having
already been applied. The design effect, population size, interval method
and degrees of freedom all come from the target, which is what makes the
round trip exact:
prec_panel(n_panel(target, retention, target_wave = w)) reproduces the
target's own precision at wave w.
A rotating panel has one precision rather than one per wave, its estimate
pooling every cohort alive at the occasion. The per-wave rows of $waves
still report what an estimate from a single cohort would carry, which is
the wave-1-only estimate a rotating design sometimes publishes, and they
are not the occasion's precision.
See also
n_panel() for the inverse (solve the recruitment from a
target), prec_mean() and prec_prop() for the single-occasion
precision the waves are evaluated with.
Other precision functions:
prec_alloc(),
prec_change(),
prec_cluster(),
prec_mean(),
prec_multi(),
prec_multi_cluster(),
prec_pooled(),
prec_prop(),
prec_twophase()
Examples
target <- n_prop(p = 0.5, moe = 0.031)
ret <- c(0.878, 0.963, 0.936, 0.956)
# A budget of 1500 addresses rather than the 1816 the target asks for
short <- prec_panel(1500, target, retention = ret, resp_rate = 0.728)
short
#> Panel recruitment (fixed, 5-wave life)
#> issued: 1500 -> 826 responding at wave 5, short of the 1000 the target needs
#> proportion (wald): se = 0.0174, moe = 0.03409, cv = 0.0348
#>
#> wave retention n_resp se moe
#> 1 1092 0.01513 0.02966
#> 2 0.878 959 0.01615 0.03165
#> 3 0.963 923 0.01646 0.03225
#> 4 0.936 864 0.01701 0.03334
#> 5 0.956 826 0.0174 0.03409
#>
#> # summary() for the launch, the loss and per-wave cv
# The round trip: precision at the wave the panel was sized for
plan <- n_panel(target, retention = ret, resp_rate = 0.728)
prec_panel(plan)$moe
#> [1] 0.031
target$moe
#> [1] 0.031
# Re-read a stored plan under retention that turned out worse
prec_panel(plan, retention = c(0.80, 0.90, 0.90, 0.92))$waves
#> wave retention q loss_share n_resp se moe
#> 1 1 NA 0.7280000 0.48056917 1320.8645 0.01375754 0.02696429
#> 2 2 0.80 0.5824000 0.25724585 1056.6916 0.01538140 0.03014699
#> 3 3 0.90 0.5241600 0.10289834 951.0224 0.01621342 0.03177772
#> 4 4 0.90 0.4717440 0.09260851 855.9202 0.01709045 0.03349666
#> 5 5 0.92 0.4340045 0.06667812 787.4466 0.01781802 0.03492268
#> cv expected_cases
#> 1 0.02751509 660.4322
#> 2 0.03076280 528.3458
#> 3 0.03242684 475.5112
#> 4 0.03418089 427.9601
#> 5 0.03563604 393.7233