| 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
- Kis the orthogonal complement of the marginal matrix, i.e. the matrix- Arequired to obtain the marginal frequencies- m;
- D1and- D2are two diagonal matrices whose components depends on the estimation process used to generate- object.
If the estimation process has been done using
- ipfpthen- diag(D1) = \hat{p}and- diag(D2) = p_*;
- mlthen- diag(D1) = \frac{\hat{p}^2}{p_*}and- diag(D2) = diag(D1);
- chi2then- diag(D1) = \frac{\hat{p}^4}{p_*^3}and- diag(D2) = diag(D1);
- lsqthen- diag(D1) = p_*and- diag(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
- Dis a diagonal matrix of the estimated probabilities- \hat{p};
- Hdenotes the Jacobian evaluated in- \hat{p}of the function- h(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))