Within the social sciences there is a popular technique called Factor Analysis and I am interested in generating random correlation matrices that uniformly sample all the space parameterized by one specific type of factor-analytic model called the one factor model. Under the one-factor model, data is assumed to follow this structure.
For the responses of person $j$ to item $i$ $X_{ij}$:
$X_{ij} = \lambda_iF + \epsilon_{ij}$
Where $F$ is a standard normal and unboserved (i.e. latent) continuous random variable, $\lambda_i$ is a regression coefficient relating the latent variable $F$ to the observed variable $X_{ij}$ and the covariances between the errors $\epsilon_{ij}$ and the errors with the latent variable $F$ are all 0. Similar to standard linear regression assumptions.
The correlation matrix for the item responses $X_{ij}$ under the one factor model looks like:
$R = \Lambda\Lambda' + \Theta$
Where $\Theta$ is a diagonal matrix containing only the error variances, where error variance is usually defined as $1-\lambda^{2}$.
I would ideally like to find a way to generate random correlation matrices (in the R programming language) in a manner similar to Joe (2006)'s 'Generating random correlation matrices based on partial correlations' because this technique uniformly samples from the space of all possible $d \times d$ correlation matrices.
This is what I've come up with but I'm not sure if I'm right because it seems too simple. Which is basically just following the one-factor model as my data-generating method:
d <- 5 ##matrix of dimensions 5 x 5
l <- runif(d, min=0, max=1) ##I'm only interested in positive correlations for now
## generates the error correlation matrix
dd <- diag(d)
diag(dd) <- diag(l%*%t(l))
psi <- diag(d)-dd
## final correlation matrix
R <- l%*%t(l) + psi
So my questions would be (a) Does this method sample uniformly from the space of all possible correlation matrices parameterized by the one-factor model? And, if it doesn't, does anyone have any insight/references of where to go to do it?