## Example 1: Generate random 4 x 4 Correlation matrices.
Rmiss <- matrix(NA, nrow = 4, ncol = 4)
diag(Rmiss) <- 1
out <- CompleteRdev(Rna = Rmiss,
NMatrices = 4,
PRINT = TRUE,
Seed = 1)
print( round( out$R[[1]] , 3) )
if (FALSE) {
# Example 2: Complete a partially specified R matrix.
# Example from Georgescu, D. I., Higham, N. J., and
# Peters, G. W. (2018).
Rmiss <- matrix(
c( 1, .25, .6, .55, .65, 0, .4, .6, .2, .3,
.25, 1, 0, 0, 0, 0, NA, NA, NA, NA,
.6, 0, 1, .75, .75, 0, NA, NA, NA, NA,
.55, 0, .75, 1, .5, 0, NA, NA, NA, NA,
.65, 0, .75, .5, 1, 0, NA, NA, NA, NA,
0, 0, 0, 0, 0, 1, NA, NA, NA, NA,
.4, NA, NA, NA, NA, NA, 1, .25, .25, .5,
.6, NA, NA, NA, NA, NA, .25, 1, .25, 0,
.2, NA, NA, NA, NA, NA, .25, .25, 1, 0,
.3, NA, NA, NA, NA, NA, .5, 0, 0, 1), 10,10)
# Complete Rmiss with values that maximize
# the matrix determinant (this is the MLE solution)
set.seed(123)
out <- CompleteRdev(Rna = Rmiss,
MaxDet = TRUE,
MaxIter = 1000,
delta = 1E-8,
PRINT = FALSE)
cat("\nConverged = ", out$converged,"\n")
print( round(out$R, 3))
print( det(out$R))
print( eigen(out$R)$values, digits = 5)
}
Run the code above in your browser using DataLab