procrustes_switching {factor.switching} | R Documentation |
Orthogonal Procrustes rotations
Description
Orthogonal Procrustes (OP) post-processing (Assmann et al. 2016) augmented with a final varimax rotation as implemented in Papastamoulis and Ntzoufras (2020). The algorithm uses the procrustes
function of the MCMCpack package.
Usage
procrustes_switching(lambda_mcmc, maxIter, threshold, verbose, rotate, printIter)
Arguments
lambda_mcmc |
Input matrix containing a MCMC sample of factor loadings. The column names should read as 'LambdaV1_1',..., 'LambdaV1_q', ..., 'LambdaVp_1',..., 'LambdaVp_q', where |
maxIter |
Maximum number of iterations of the RSP algorithm. Default: 100. |
threshold |
Positive threshold for declaring convergence. The actual convergence criterion is |
verbose |
Logical value indicating whether to print intermediate output or not. |
rotate |
This is argument is always set to FALSE. |
printIter |
Print the progress of the algorithm when processing |
Value
lambda_reordered_mcmc |
Post-processed MCMC sample of factor loadings. |
lambda_hat |
The resulting average of the post-processed MCMC sample of factor loadings. |
objective_function |
A two-column matrix containing the time-to-reach and the value of the objective function for each iteration. |
Author(s)
Panagiotis Papastamoulis
References
Assmann, C., Boysen-Hogrefem J. and Pape M. (2016). Bayesian analysis of static and dynamic factor models: An ex-post approach towards the rotation problem. Journal of Econometrics: 192(1): Pages 190-206.
Martin AD, Quinn KM, Park JH (2011). MCMCpack: Markov Chain Monte Carlo in R. Journal of Statistical Software: 42(9), 22.
Papastamoulis, P. and Ntzoufras, I. (2020). On the identifiability of Bayesian Factor Analytic models. arXiv:2004.05105 [stat.ME].
Examples
# load small mcmc sample of 100 iterations
# with p=6 variables and q=2 factors.
data(small_posterior_2chains)
# post-process it
reorderedPosterior <- procrustes_switching(
lambda_mcmc = small_posterior_2chains[[1]])
# summarize the post-processed MCMC sample with coda
summary(reorderedPosterior$lambda_reordered_mcmc)