File Exchange

image thumbnail

randcorr

version 1.1.0 (1.93 KB) by Statovic

Statovic (view profile)

This function implements the algorithm by Pourahmadi and Wang for generating a random p x p correlation matrix.

10 Downloads

Updated 17 Sep 2018

View License

This function implements the algorithm by Pourahmadi and Wang [1] for generating a random p x p correlation matrix. Briefly, the idea is to represent the correlation matrix using Cholesky factorization and p(p-1)/2 hyperspherical coordinates (i.e., angles), sample the angles form a particular distribution and then convert to the standard correlation matrix form. The angles are sampled from a distribution with probability density function sin^k(theta) (0 < theta < pi, k >= 1) using the efficient sampling algorithm described in [2].

References:
[1] Mohsen Pourahmadi and Xiao Wang, Distribution of random correlation matrices: Hyperspherical parameterization of the Cholesky factor, Statistics & Probability Letters, Volume 106, November 2015, Pages 5-12

[2] Enes Makalic and Daniel F. Schmidt, An efficient algorithm for sampling from $\sin^k(x)$ for generating random correlation matrices, arxiv, 2018

Comments and Ratings (0)

Updates

1.1.0

-Code is now vectorised and is approximately 10x faster than the previous (non-vectorised) version.

MATLAB Release Compatibility
Created with R2018b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

MATLAB Online Live Editor Challenge

View the winning live scripts from faculty and students who participated in the recent challenge.

Learn more

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video