vcov.mipfp {mipfp} | R Documentation |
Calculate variance-covariance matrix for mipfp objects
Description
This function determines the (asymptotic) covariance matrix of the estimates
in an mipfp
object using either the Delta formula designed by Little
and Wu (1991) or Lang's formula (2004).
Usage
## S3 method for class 'mipfp'
vcov(object, method.cov = "delta", seed = NULL,
target.data = NULL, target.list = NULL, replace.zeros = 1e-10, ...)
Arguments
object |
An object of class mipfp. |
method.cov |
Select the method to use for the computation of the covariance.
The available methods are |
seed |
The initial multi-dimensional array used to create |
target.data |
A list containing the data of the target margins used to create
|
target.list |
A list of the target margins used to create |
replace.zeros |
If 0-cells are to be found, then their values are replaced with this value. |
... |
Not used. |
Details
The asymptotic covariance matrix of the estimates probabilities using Delta's formula has the form (Little and Wu, 1991)
K(K^T D1^{-1} K)^{-1} K^T D2^{-1} K (K^T D1^{-1} K)^{-1} K^T
where
K
is the orthogonal complement of the marginal matrix, i.e. the matrixA
required to obtain the marginal frequenciesm
;D1
andD2
are two diagonal matrices whose components depends on the estimation process used to generateobject
.
If the estimation process has been done using
ipfp
thendiag(D1) = \hat{p}
anddiag(D2) = p_*
;ml
thendiag(D1) = \frac{\hat{p}^2}{p_*}
anddiag(D2) = diag(D1)
;chi2
thendiag(D1) = \frac{\hat{p}^4}{p_*^3}
anddiag(D2) = diag(D1)
;lsq
thendiag(D1) = p_*
anddiag(D2) = \frac{p_*3}{\hat{p}^2}
;
where \hat{p}
is the vector of estimated probabilities and
p_*
is the vector of the seed probabilities.
Using Lang's formula (2004), the covariance matrix becomes
\frac{1}{N}
\left( D - \hat{p}\hat{p}^T - D H(H^T D H)^{-1} H^T D \right)
where
D
is a diagonal matrix of the estimated probabilities\hat{p}
;H
denotes the Jacobian evaluated in\hat{p}
of the functionh(p) = A^T p - m
.
Value
A list with the following components:
x.hat.cov |
A covariance matrix of the estimated counts (last index move fastest)
computed using the method specified in |
p.hat.cov |
A covariance matrix of the estimated probabilities (last index
move fastest) computed using the method specified in |
x.hat.se |
The standard deviation of the estimated counts (last index move fastest)
computed using the method specified in |
p.hat.se |
The standard deviation of the estimated probabilities (last index move
fastest) computed using the method specified in |
df |
Degrees of freedom of the estimates. |
method.cov |
The method used to compute the covariance matrix. |
Author(s)
Johan Barthelemy.
Maintainer: Johan Barthelemy johan@uow.edu.au.
References
Lang, J.B. (2004) Multinomial-Poisson homogeneous models for contingency tables. Annals of Statistics 32(1): 340-383.
Little, R. J., Wu, M. M. (1991) Models for contingency tables with known margins when target and seed populations differ. Journal of the American Statistical Association 86 (413): 87-95.
See Also
Estimate
function to create an object of class
mipfp
and to update an initial multidimensional array with respect to
given constraints.
Examples
# true contingency (2-way) table
true.table <- array(c(43, 44, 9, 4), dim = c(2, 2))
# generation of sample, i.e. the seed to be updated
seed <- ceiling(true.table / 10)
# desired targets (margins)
target.row <- apply(true.table, 2, sum)
target.col <- apply(true.table, 1, sum)
# storing the margins in a list
target.data <- list(target.col, target.row)
# list of dimensions of each marginal constrain
target.list <- list(1, 2)
# calling the Estimate function
res <- Estimate(seed, target.list, target.data)
# printing the variance-covariance matrix
print(vcov(res))