Title: | Small Area Estimation: Time-Series Models |
---|---|
Description: | Time series area-level models for small area estimation. The package supplements the functionality of the sae package. Specifically, it includes EBLUP fitting of the original Rao-Yu model, which in the original form did not have a spatial component. The package also offers a modified ('dynamic') version of the Rao-Yu model, replacing the assumption of stationarity. Both univariate and multivariate applications are supported. Of particular note is the allowance for covariance of the area-level sample estimates over time, as encountered in rotating panel designs such as the U.S. National Crime Victimization Survey or present in a time-series of 5-year estimates from the American Community Survey. Key references to the methods include J.N.K. Rao and I. Molina (2015, ISBN:9781118735787), J.N.K. Rao and M. Yu (1994) <doi:10.2307/3315407>, and R.E. Fay and R.A. Herriot (1979) <doi:10.1080/01621459.1979.10482505>. |
Authors: | Robert Fay [aut, cre], Mamadou Diallo [aut] |
Maintainer: | Robert Fay <[email protected]> |
License: | GPL-2 |
Version: | 1.2-1 |
Built: | 2024-11-15 06:43:56 UTC |
Source: | CRAN |
Time series are-level models for small area estimation.
The package supplements the functionality of the package sae
.
Specifically, it includes EBLUP fitting of the original
Rao-Yu model, which did not have a spatial component. It also offers
a modified ("dynamic") version of the Rao-Yu model, replacing the
assumption of stationarity. Both univariate and multivariate applications
are supported. Of particular note is the allowance for covariance of
the area-level sample estimates over time, as encountered in
rotating panel designs such as the U.S. National Crime Victimization
Survey or present in a time-series of 5-year estimates from the
American Community Survey.
Package: | sae2 |
Type: | Package |
Version: | 1.2-1 |
Date: | 2023-08-22 |
License: | GPL-2 |
The package provides two primary functions, eblupRY
and eblupDyn
,
to fit non-spatial time-series small area models to area-level data. The
function mvrnormSeries
provides simulated data under either model.
Functions geo_ratios
and vcovgen
can assist in preparing the
input.
Robert E. Fay, Mamadou S. Diallo
Maintainer: Robert E. Fay <[email protected]>
- Fay, R.E. and Herriot, R.A. (1979). Estimation of income from small places: An application of James-Stein procedures to census data. Journal of the American Statistical Association 74, 269-277.
- Fay, R.E., Planty, M. and Diallo, M.S. (2013). Small area estimates from the National Crime Victimization Survey. Proceedings of the Joint Statistical Meetings. American Statistical Association, pp. 1544-1557.
- Rao, J.N.K. and Molina, I. (2015). Small Area Estimation, 2nd ed. Wiley, Hoboken, NJ.
- Rao, J.N.K. and Yu, M. (1994). Small area estimation by combining time series and cross-sectional data. Canadian Journal of Statistics 22, 511-528.
Function designed to be called by either eblupDyn
or eblupRY
to produce EBLUP small area estimates of the dynamic or Rao-Yu time
series models through either ML or REML estimation of the variance
components. For completeness, the function is documented here, but
users are encouraged to base applications on calls to the more
convenient eblupDyn
or eblupRY
.
dynRYfit(y, X, M, TI, NV=1, vcov_e, maxiter=100, iter.tol=.1e-5, ncolx=NULL, sig2_u=1, sig2_v=1, rho=.8, rho_u =.4, delta=NULL, rho.fixed=NULL, y.include=NULL, ids=NULL, contrast.matrix=NULL, baby.steps=TRUE, dampening=NULL, iter.history=NULL, sig2.min.factor=.0001, max.rho_u=.98, max.rho=NULL, tol=.Machine$double.eps, y.rescale=NULL, llike.only=FALSE, method=c("REML", "ML"), model=c("dyn", "RY"))
dynRYfit(y, X, M, TI, NV=1, vcov_e, maxiter=100, iter.tol=.1e-5, ncolx=NULL, sig2_u=1, sig2_v=1, rho=.8, rho_u =.4, delta=NULL, rho.fixed=NULL, y.include=NULL, ids=NULL, contrast.matrix=NULL, baby.steps=TRUE, dampening=NULL, iter.history=NULL, sig2.min.factor=.0001, max.rho_u=.98, max.rho=NULL, tol=.Machine$double.eps, y.rescale=NULL, llike.only=FALSE, method=c("REML", "ML"), model=c("dyn", "RY"))
y |
For a univariate model, the dependent variable sorted in ascending order by time within domain. For a multivariate model, the dependent variables sorted in ascending order by time within variable within domain. |
X |
A matrix of independent variables with the same number of
rows as the length of |
M |
The total number of domains, equivalent to |
TI |
The number of time instances (constant for all domains). |
NV |
The number of dependent variables. |
vcov_e |
For the univariate model, the sampling covariance matrix
for the direct estimates of the For the multivariate model, the square covariance matrix for the
|
maxiter |
The maximum number of iterations allowed for the Fisher-scoring algorithm, with a default value of 100. |
iter.tol |
The convergence tolerance limit for the Fisher-scoring algorithm, with a default value of .000001. |
ncolx |
For a univariate model, the number of columns of X. For a multivariate model, a vector of length NV must be specified giving the number of columns of X used for each dependent variable. |
sig2_u |
An initial starting value or values for the variance of the random increments. |
sig2_v |
An initial starting value or values for a domain level random effect. In the Rao-Yu model, the random effect is constant over time, whereas in the dynamic model it is an initial effect subject to dampening over time. |
rho |
The correlation across time. This correlation is assumed to be the same for the dependent variables in the multivariate model. |
rho_u |
For |
delta |
The random effect components in the preferred internal order.
Specification of |
rho.fixed |
If TRUE, the value of |
y.include |
If specified, vector of length |
ids |
A data frame with |
contrast.matrix |
A matrix of coefficients of contrasts. The matrix
must have |
baby.steps |
Unless specified as FALSE, the first five iterations of the
Fisher scoring algorithm are dampened by factors of
|
dampening |
A factor used to dampen the changes in the random
effect parameters. Unlike |
iter.history |
If TRUE, key values are saved during each
iteration and included as additional items, described below,
in the returned list: If |
sig2.min.factor |
A factor to multiply the minimum direct variance to use as a minimum value for any of the variance components. The iterations will be constrained not to go below the resulting bounds. |
max.rho_u |
A maximum allowed value for the estimated |
max.rho |
A maximum allowed value for |
tol |
A tolerance value used by matrix routines to prevent numerical instability. The value may be set to a lower value to encourage covergence, but appropriate caution should be applied. |
y.rescale |
In the univariate case, a scaler multiplier for all of
the In the multivariate case, |
llike.only |
Compute the log-likelihood (ML) or restricted
log-likelihood (REML) without further iteration, typically from
values specified by |
method |
Use restricted maximum likelihood ( |
model |
Dynamic ( |
Many of arguments can be used to control the iterations if the defaults lead to convergence difficulties.
llike.only
in combination with delta
permits a
point-by-point investigation of the likelihood surface.
The primary functions eblupDyn
and eblupRY
determine X
,
NV
, colx
, and model
, but the remaining parameters can
be passed to dynRYfit
through eblupDyn
or eblupRY
.
eblup |
In the univariate case, a vector of length |
fit |
A list summarizing the fit of the model with the following:
|
parm |
A labelled vector with the estimated variance components, correlations, and number of iterations. |
coef |
A labelled vector of coefficients for the fixed effects of the model or models. |
ids |
A data frame with |
delta |
An ordered vector of the variance components (see above). It may be used as starting values for additional iterations. |
eblup.mse |
MSE estimates for eblup. |
eblup.g1 |
The g1 term of the MSE estimate. |
eblup.g2 |
The g2 term of the MSE estimate. |
eblup.g3 |
The g3 term of the MSE estimate. |
est.fixed |
Estimates based on fixed effects only. |
est.fixed.var |
The variance-covariance matrix for the estimates in
|
eblup.wt1 |
Weights given to the direct estimate in forming |
eblup.wt2 |
Weights given to the direct estimate, including effects through estimating the fixed effect coefficients. |
contrast.est |
Estimates requested by the specified contrasts. |
contrast.mse |
MSE estimates for |
contrast.g1 |
The g1 term in the estimation of |
contrast.g2 |
The g2 term in the estimation of |
contrast.g3 |
The g3 term in the estimation of |
contrast.fixed.est |
Contrast estimates based on the fixed effect model. |
contrast.fixed.var |
Variance estimates for the fixed effect model. |
contrast.wt1 |
Weight wt1 given to the direct estimate in estimating the contrasts. |
contrast.wt2 |
Weight wt2 in estimating the contrasts. |
inf.mat |
Information matrix for the components of |
var.coef |
Variance covariance matrix for |
delta.hist |
Values of |
llikelihood.hist |
Values of the log-likelihood (ML) or restricted log-likelihood (REML) at each iteration. |
adj.hist |
Number of cycles in the internal loop to determine
|
inf.mat.hist |
Values of |
s.hist |
Vector to be multiplied by the inverse information matrix to determine the change in the parameters. |
ix.hist |
List of parameters eligible for change at each iteration. Parameters with estimated changes out of bounds will not be eligible. |
adj.factor.hist |
Adjustment to the vector change in the parameters at each iteration. |
warning.hist |
A 4-row matrix of warnings at each iteration, where warning 1 is set to 1 for the iteration if the algorithm has not found an increase in the restricted log likelihood or log likelihood, warning 2 is set to 1 if the maximum number of iterations is reached, warning 3 is set to 1 if the estimated variance-covariance matrix becomes singular, and warning 4 is set to 1 if the coefficients of the fixed effects cannot be estimated. |
Robert E. Fay, Mamadou Diallo
Functions for producing EBLUP small area estimates of the dynamic or Rao-Yu time series models through either ML or REML estimation of the variance components. The functions can fit univariate or multivariate models.
eblupDyn(formula, D, TI, vardir, method = c("REML", "ML"), MAXITER = 1000, PRECISION = .1e-05, data, max.rho = NULL, dampening = 1, ...) eblupRY(formula, D, TI, vardir, method = c("REML", "ML"), MAXITER = 1000, PRECISION = .1e-05, data, max.rho = .98, dampening = 0.9, ...)
eblupDyn(formula, D, TI, vardir, method = c("REML", "ML"), MAXITER = 1000, PRECISION = .1e-05, data, max.rho = NULL, dampening = 1, ...) eblupRY(formula, D, TI, vardir, method = c("REML", "ML"), MAXITER = 1000, PRECISION = .1e-05, data, max.rho = .98, dampening = 0.9, ...)
formula |
For a univariate model, a For a multivariate model, a list of formulas, one for each
dependent variable. The number of dependent variables, |
D |
The total number of domains. |
TI |
The number of time instances, typically years (constant for all domains). |
vardir |
For the univariate model, the sampling covariance matrix
for the direct estimates of the Alternatively, For the multivariate model, the square covariance matrix for the
Alternatively, |
method |
Whether restricted maximum likelihood |
MAXITER |
The maximum number of iterations allowed for the Fisher-scoring algorithm. |
PRECISION |
The convergence tolerance limit for the Fisher-scoring algorithm. |
data |
An optional data frame containing the variables named in
|
max.rho |
If not |
dampening |
A multiplier of the computed update to parameters after iteration 5. A value less than 1 may slow the iterations but lessens the chance of overshooting the optimum choice. The default values were determined experimentally, but may be modified. |
... |
Other parameters passed to |
A typical model has the form response ~ terms
where response
is the (numeric) response vector and terms
is a series of terms that
specifies a linear predictor for response.
A formula has an implied intercept term. To remove this use either
y ~ x - 1 or y ~ 0 + x. See formula
for more details of
allowed formulae.
eblupDyn
and eblupRY
parse formula
by calling core
R functions to determine X
, then calling dynRYfit
.
As a last step, eblupDyn
or eblupRY
finalize the list that
they return.
The additional parameters passed to dynRYfit
may
include contrast.matrix
, which specifies linear combinations
of estimates within domains, such as the sum over dependent variables
or moving averages across time. Corresponding MSE estimates are provided
for the contrasts.
The argument ids
accepts a data frame with D
rows of domain identifiers. These ids are returned in the list from
eblupDyn
or eblupRY
.
If iter.history
is set to TRUE
, the returned object will
include additional items with values of statistics at each step of the
iteration; see dynRYfit
for details on delta.hist
,
llikelihood.hist
, adj.hist
, inf.mat.hist
,
s.hist
, ix.hist
, adj.factor.hist
, and
warning.hist
. The default action
is to include the history only if the iterations fail, in which case
the history might suggest what went wrong. In the case of convergence,
the history is usually not of interest, in which case omitting it
reduces the size of the returned object.
MSE estimation for REML for both the Rao-Yu and dynamic models follows the results summarized in Rao and Molina (2015, pp. 98-111). The MSE estimates incorporate g1, g2, and g3 terms. Our simulations show that the REML estimates have somewhat smaller MSEs than the ML estimates, but this is not reflected in the comparison of the estimated MSEs returned by the functions. The MSE estimates under REML perform quite well on average. The MSE estimates for ML use the same estimator as for REML, but they are modest underestimates of the true MSE in the same simulations.
eblup |
In the univariate case, a vector of length |
fit |
A list summarizing the fit of the model with the following:
|
parm |
A labelled vector with the estimated variance components, correlations, and number of iterations. |
coef |
A labelled vector of coefficients of the model or models. |
ids |
A data frame with |
delta |
An ordered vector of the variance components, which may be
used as starting values for additional iterations, see
|
eblup.mse |
MSE estimates for eblup. |
eblup.g1 |
The g1 term of the MSE estimate. |
eblup.g2 |
The g2 term of the MSE estimate. |
eblup.g3 |
The g3 term of the MSE estimate. |
est.fixed |
Estimates based on fixed effects only. |
est.fixed.var |
The variance-covariance matrix for the estimates in
|
eblup.wt1 |
Weights given to the direct estimate in forming |
eblup.wt2 |
Weights given to the direct estimate, including effects through estimating the fixed effect coefficients. |
contrast.est |
Estimates requested by the specified contrasts. |
contrast.mse |
MSE estimates for |
contrast.g1 |
The g1 term in the estimation of |
contrast.g2 |
The g2 term in the estimation of |
contrast.g3 |
The g3 term in the estimation of |
contrast.fixed.est |
Contrast estimates based on the fixed effect model. |
contrast.fixed.var |
Variance estimates for the fixed effect model. |
contrast.wt1 |
Weight wt1 given to the direct estimate in estimating the contrasts. |
contrast.wt2 |
Weight wt2 in estimating the contrasts. |
inf.mat |
Information matrix for the components of |
var.coef |
Variance covariance matrix for |
model |
The formula or list of formulas implemented. |
Robert E. Fay, Mamadou Diallo
- Fay, R.E. and Herriot, R.A. (1979). Estimation of income from small places: An application of James-Stein procedures to census data. Journal of the American Statistical Association 74, 269-277.
- Fay, R.E., Planty, M. and Diallo, M.S. (2013). Small area estimates from the National Crime Victimization Survey. Proceedings of the Joint Statistical Meetings. American Statistical Association, pp. 1544-1557.
- Rao, J.N.K. and Molina, I. (2015). Small Area Estimation, 2nd ed. Wiley, Hoboken, NJ.
- Rao, J.N.K. and Yu, M. (1994). Small area estimation by combining time series and cross-sectional data. Canadian Journal of Statistics 22, 511-528.
D <- 20 # number of domains TI <- 5 # number of years set.seed(1) data <- data.frame(Y= mvrnormSeries(D=D, TI=TI, rho.dyn=.9, sigma.v.dyn=1, sigma.u.dyn=.19, sigma.e=diag(5)), X=rep(1:TI, times=D)) result.dyn <- eblupDyn(Y ~ X, D, TI, vardir = diag(100), data=data) result.dyn$fit require(sae) data(spacetime) # Load data set from sae package data(spacetimeprox) # Load proximity matrix D <- nrow(spacetimeprox) # number of domains TI <- length(unique(spacetime$Time)) # number of time instants # Fit model ST with AR(1) time effects for each domain resultST <- eblupSTFH(Y ~ X1 + X2, D, TI, Var, spacetimeprox, data=spacetime) resultT <- eblupDyn(Y ~ X1 + X2, D, TI, vardir = diag(spacetime$Var), data=spacetime, ids=spacetime$Area) resultT.RY <- eblupRY(Y ~ X1 + X2, D, TI, vardir = diag(spacetime$Var), data=spacetime, ids=spacetime$Area) resultST$fit resultT$fit resultT.RY$fit rowsT <- seq(TI, TI*D, by=TI) data.frame(Domain=spacetime$Area[rowsT], Y=spacetime$Y[rowsT], EBLUP_ST=resultST$eblup[rowsT], EBLUB_Dyn=resultT$eblup[rowsT], EBLUP_RY=resultT.RY$eblup[rowsT])
D <- 20 # number of domains TI <- 5 # number of years set.seed(1) data <- data.frame(Y= mvrnormSeries(D=D, TI=TI, rho.dyn=.9, sigma.v.dyn=1, sigma.u.dyn=.19, sigma.e=diag(5)), X=rep(1:TI, times=D)) result.dyn <- eblupDyn(Y ~ X, D, TI, vardir = diag(100), data=data) result.dyn$fit require(sae) data(spacetime) # Load data set from sae package data(spacetimeprox) # Load proximity matrix D <- nrow(spacetimeprox) # number of domains TI <- length(unique(spacetime$Time)) # number of time instants # Fit model ST with AR(1) time effects for each domain resultST <- eblupSTFH(Y ~ X1 + X2, D, TI, Var, spacetimeprox, data=spacetime) resultT <- eblupDyn(Y ~ X1 + X2, D, TI, vardir = diag(spacetime$Var), data=spacetime, ids=spacetime$Area) resultT.RY <- eblupRY(Y ~ X1 + X2, D, TI, vardir = diag(spacetime$Var), data=spacetime, ids=spacetime$Area) resultST$fit resultT$fit resultT.RY$fit rowsT <- seq(TI, TI*D, by=TI) data.frame(Domain=spacetime$Area[rowsT], Y=spacetime$Y[rowsT], EBLUP_ST=resultST$eblup[rowsT], EBLUB_Dyn=resultT$eblup[rowsT], EBLUP_RY=resultT.RY$eblup[rowsT])
The function computes rates or ratios by a geographic code and
the variable Year
. If designvars
is specified, the function
also returns a data frame with linear substitutes to compute Taylor
series variances.
geo_ratios(data, geocode, numerators, denominators, geonames, new.names, designvars)
geo_ratios(data, geocode, numerators, denominators, geonames, new.names, designvars)
data |
A data frame with the required variables, including a variable
named |
geocode |
A character variable with the name of the geographic variable for which separate estimates are of interest. |
numerators |
A character vector listing the names in |
denominators |
A character vector listing the names in |
geonames |
An optional data frame containing |
new.names |
An optional character vector of the same length as
|
designvars |
Optional. If given, a character vector naming one or more
survey design variables in |
For programming simplicity, the function enforces the requirement that names
should not be repeated in either numerators
or new.names
. Names
may be repeated in denominators
.
Rather than a typical survey file, the function expects the data frame
data
to contain weighted estimates for each analytic variable. As a
simple example, to find the variance of the weighted mean of y
with
weights w
, data
should contain w
and
y * w
. For convenience, the weighted estimates can still be
assigned their original names in data
, such as y
. In this
case,
numerators = y, denominators=w
would create the appropriate linear substitutes for the variance of the weighted mean.
This design of the function allows complex possibilities, such as estimating the variance of a rate where the numerator is based on one weight and the denominator is based on another. For example, estimation for the National Crime Victimization Survey requires this capability.
If designvars
is not specified, a named list with one element,
a data frame containing the ratios sorted by geocode
and Year
.
If designvars
is specified, a second element is added
to the list, a data frame giving the totals of the linear
substitutes by Year
, geocode
, and
designvars
. The elements of the list are named
estimates
and linear.subs
.
Robert E. Fay
- Woodruff, R.S. (1971). A simple method for approximating the variance of a complex estimate. Journal of the American Statistical Association 66, 411-414.
vcovgen
require(survey) require(MASS) D <- 20 # number of domains T <- 5 # number of years samp <- 16 # number of sample cases per domain set.seed(1) # use conditional.mean=TRUE to generate true small area values # without sampling error Y.list <- mvrnormSeries(D=D, T=T, rho.dyn=.9, sigma.v.dyn=1, sigma.u.dyn=.19, sigma.e=diag(5), conditional.mean=TRUE) # generate sampling errors e <- rnorm(samp * T * D, mean=0, sd=4) Y <- Y.list[[2]] + tapply(e, rep(1:100, each=16), mean) data <- data.frame(Y=Y, X=rep(1:T, times=D)) # model fit with the true sampling variances result.dyn <- eblupDyn(Y ~ X, D, T, vardir = diag(100), data=data) # individual level observations consistent with Y Y2 <- rep(Y.list[[2]], each=16) + e data2 <- data.frame(Y=Y2, X=rep(rep(1:T, each=samp), times=D), Year=rep(rep(1:T, each=samp), times=D), weight=rep(1, times=samp*T*D), d=rep(1:D, each=samp*T), strata=rep(1:(D*T), each=samp), ids=1:(D*T*samp)) # geo_ratios with designvars specified geo.results <- geo_ratios(data2, geocode="d", numerators="Y", denominators="weight", designvars=c("strata", "ids")) # illustrative check max(abs(geo.results[[1]]$Y - Y)) vcov.list <- vcovgen(geo.results[[2]], year.list=1:5, geocode="d", designvars=c("strata", "ids")) vcov.list[[1]] # model fitted with directly estimated variance-covariances result2.dyn <- eblupDyn(Y ~ X, D, T, vardir=vcov.list, data=data) cor(result.dyn$eblup, result2.dyn$eblup)
require(survey) require(MASS) D <- 20 # number of domains T <- 5 # number of years samp <- 16 # number of sample cases per domain set.seed(1) # use conditional.mean=TRUE to generate true small area values # without sampling error Y.list <- mvrnormSeries(D=D, T=T, rho.dyn=.9, sigma.v.dyn=1, sigma.u.dyn=.19, sigma.e=diag(5), conditional.mean=TRUE) # generate sampling errors e <- rnorm(samp * T * D, mean=0, sd=4) Y <- Y.list[[2]] + tapply(e, rep(1:100, each=16), mean) data <- data.frame(Y=Y, X=rep(1:T, times=D)) # model fit with the true sampling variances result.dyn <- eblupDyn(Y ~ X, D, T, vardir = diag(100), data=data) # individual level observations consistent with Y Y2 <- rep(Y.list[[2]], each=16) + e data2 <- data.frame(Y=Y2, X=rep(rep(1:T, each=samp), times=D), Year=rep(rep(1:T, each=samp), times=D), weight=rep(1, times=samp*T*D), d=rep(1:D, each=samp*T), strata=rep(1:(D*T), each=samp), ids=1:(D*T*samp)) # geo_ratios with designvars specified geo.results <- geo_ratios(data2, geocode="d", numerators="Y", denominators="weight", designvars=c("strata", "ids")) # illustrative check max(abs(geo.results[[1]]$Y - Y)) vcov.list <- vcovgen(geo.results[[2]], year.list=1:5, geocode="d", designvars=c("strata", "ids")) vcov.list[[1]] # model fitted with directly estimated variance-covariances result2.dyn <- eblupDyn(Y ~ X, D, T, vardir=vcov.list, data=data) cor(result.dyn$eblup, result2.dyn$eblup)
Function to generate data under a Rao-Yu time series model, a
dynamic model, or a mixture of both. The function can produce either
univariate or multivariate observations. All components of the returned
random variable have unconditional mean zero. The function calls
mvrnorm
in MASS.
mvrnormSeries(NV=1, D, TI, sigma.e, rho.dyn, sigma.v.dyn, sigma.u.dyn, rho.u.dyn, rho.RY, sigma.v.RY, sigma.u.RY, rho.u.RY, tol=1e-6, conditional.mean=FALSE)
mvrnormSeries(NV=1, D, TI, sigma.e, rho.dyn, sigma.v.dyn, sigma.u.dyn, rho.u.dyn, rho.RY, sigma.v.RY, sigma.u.RY, rho.u.RY, tol=1e-6, conditional.mean=FALSE)
NV |
The number of variables. |
D |
The number of domains. |
TI |
The number of time instances (constant for all domains). |
sigma.e |
The covariance matrix for the variation due to sampling,
specified either as a single square matrix with |
rho.dyn |
The temporal correlation parameter in the dynamic model. This parameter is not a true correlation, however, and it may exceed 1. |
sigma.v.dyn |
A vector of length |
sigma.u.dyn |
A vector of length |
rho.u.dyn |
For |
rho.RY |
The temporal correlation parameter in the Rao-Yu model. This is a true correlation, unlike the parameter in the dynamic model. |
sigma.v.RY |
A vector of length |
sigma.u.RY |
A vector of length |
rho.u.RY |
For |
tol |
A tolerance parameter used by |
conditional.mean |
If true, the function will also return the generated values of the random effects. |
The function assembles the covariance matrix from the covariance matrix under the dynamic model (if specified), the Rao-Yu model (if specified) and a required sampling covariance matrix.
If conditional.mean=FALSE
, then for NV=1
, a multivariate
normal random vector with mean zero and length D*TI
.
For NV>1
, a matrix with D*TI
rows and NV
columns.
If conditional.mean=TRUE
, a list with the first element as above
and a second element that is the sum of the random effects without
the sampling error. Simulation studies can evaluate the small area
estimates using the first element of the list as input against
the second element of the list, which is the target of the small area
estimation.
Robert E. Fay
set.seed(7) mvrnormSeries(D=2, TI=5, sigma.e=diag(5), rho.dyn=.8, sigma.v.dyn=2, sigma.u.dyn=.72, conditional.mean=TRUE) mvrnormSeries(NV=2, D=2, TI=5, sigma.e=diag(10), rho.dyn=.8, sigma.v.dyn=2, sigma.u.dyn=.72, rho.u.dyn=.8)
set.seed(7) mvrnormSeries(D=2, TI=5, sigma.e=diag(5), rho.dyn=.8, sigma.v.dyn=2, sigma.u.dyn=.72, conditional.mean=TRUE) mvrnormSeries(NV=2, D=2, TI=5, sigma.e=diag(10), rho.dyn=.8, sigma.v.dyn=2, sigma.u.dyn=.72, rho.u.dyn=.8)
The function computes estimates of variance/covariance
matrices for sampling with replacement at the first stage
from a stratified sample, using the linear substitutes
produced by geo_ratios
. The function produces a
list of estimated covariance matrices corresponding the
geographic areas identified by geocode
.
vcovgen(linear.subs, year.list, geocode, designvars)
vcovgen(linear.subs, year.list, geocode, designvars)
linear.subs |
A data frame with linear substitutes for each
Y variable, |
year.list |
A character or numeric vector of the years to include. |
geocode |
A character variable with the name of the geographic variable for which separate estimates are of interest. |
designvars |
A character vector of length 2, naming the strata and first-stage units. |
The function reformats the second element of the list output from
geo_ratios
in order to estimate covariances across time for
each separate geographic area identified by the variable with the
name indicated by geocode
. It then calls functions from the
survey package to estimate covariances.
See the example in geo_ratios
.
A list of estimated covariance matrices, sorted by the geographic
names. The list may be used by eblupDyn
or eblupRY
, although
many applications require the estimated variance/covariance matrices to
be smoothed.
Robert E. Fay