Random sample of matrices in SO(p).
The sample size, the number of matrices you want to generate.
The dimensionality of the matrices.
The idea is very simple. Start with a unit vector pointing at the north pole (1,0,...,0). Then generate random numbers from a standard normal and scale them so that they have a unit length. To put it differently, a sample of n values from the uniform distribution on the sphere is generated. Then calculate the rotation matrix required to go from the north pole to each of a generated vector.
If n = 1 one matrix is returned. If n is greater than 1, an array with n matrices inside.
Michail Tsagris R implementation and documentation: Michail Tsagris <firstname.lastname@example.org> and Giorgos Athineou <email@example.com>
G. J. A. Amaral, I. L. Dryden & Andrew T. A. Wood (2007). Pivotal Bootstrap Methods for k-Sample Problems in Directional Statistics and Shape Analysis. Journal of the American Statistical Association, 102(478): 695-707.
1 2 3