View source: R/query-functions.R
finiteY | R Documentation |
Estimate or predict finite-population quantities for the toal population, from estimated rates, probabilities, or means for the sampled population, plus information on the sizes of the sampled and total population.
finiteY(filename, total, sampled = NULL, iterations = NULL)
filename |
The filename used by the estimate function. |
total |
An object of class |
sampled |
An object of class |
iterations |
A vector of positive integers giving the iterations to be extracted if an item has multiple iterations. |
Consider a model in which
y_i \sim G(\gamma_i, n_i)
for some distribution G
, such as a Poisson, binomial, or
normal distribution. y_i
is a count or other value
for cell i
within a classification defined by
dimensions such as age and sex. \gamma_i
is an
unobserved cell-level parameter such as a rate, probability,
or mean. n_i
is a cell-level exposure or sample size, which
is included in some models, such as Poisson or binomial models,
but not all.
We assume that y_i
is observed for only part of
the population (the sampled population), and would like to
know Y_i
, the corresponding value for the total population.
This requires estimating values for the unobserved' part
of the population (the nonsampled population). We assume that
the unobserved part of the population is subject to the same
\gamma_i
as the observed part.
Quantities y_i
and Y_i
are finite-population
quantities, that is, they are values that are, or
could theoretically be, observed in real populations.
Value \gamma_i
, in contrast, is a super-population
quantity. It describes the hypothetical super-population
from which values such as y_i
and Y_i
are
drawn.
Gelman, A., Carlin, J.B., Stern, H.S. and Rubin, D.B., 2014. Bayesian Ddata Analysis. Third Edition. Boca Raton, FL, USA: Chapman & Hall/CRC. Section 8.3.
finiteY
can be used with the results from
a call to estimate
or predict
functions such
as estimateModel
and predictModel
.
## generate sampled, non-sampled, and total population
popn.sampled <- Counts(array(rpois(n = 20, lambda = 100),
dim = c(10, 2),
dimnames = list(region = LETTERS[1:10],
sex = c("Female", "Male"))))
popn.nonsampled <- Counts(array(rpois(n = 20, lambda = 900),
dim = c(10, 2),
dimnames = list(region = LETTERS[1:10],
sex = c("Female", "Male"))))
popn.total <- popn.sampled + popn.nonsampled
## binomial model
y.sampled.binom <- Counts(array(rbinom(n = 20, size = popn.sampled, prob = 0.5),
dim = c(10, 2),
dimnames = list(region = LETTERS[1:10],
sex = c("Female", "Male"))))
filename.binom <- tempfile()
estimateModel(Model(y ~ Binomial(mean ~ region + sex)),
y = y.sampled.binom,
exposure = popn.sampled,
filename = filename.binom,
nBurnin = 10,
nSim = 10,
nChain = 2)
fy.binom <- finiteY(filename = filename.binom, # sample population assumed
total = popn.total) # to equal exposure
## normal model
y.sampled.norm <- Counts(array(rnorm(n = 20),
dim = c(10, 2),
dimnames = list(region = LETTERS[1:10],
sex = c("Female", "Male"))))
filename.norm <- tempfile()
estimateModel(Model(y ~ Normal(mean ~ region + sex)),
y = y.sampled.norm,
filename = filename.norm,
nBurnin = 10,
nSim = 10,
nChain = 2)
fy.norm <- finiteY(filename = filename.norm,
sampled = popn.sampled, # specify sample population
total = popn.total)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.