Quantcast

Documentation Center

  • Trial Software
  • Product Updates

copulaparam

Copula parameters as function of rank correlation

Syntax

rho = copulaparam('Gaussian',R)
rho = copulaparam('t',R,NU)
alpha = copulaparam(family,R)
[...] = copulaparam(...,'type',type)

Description

rho = copulaparam('Gaussian',R) returns the linear correlation parameters rho corresponding to a Gaussian copula having Kendall's rank correlation R. If R is a scalar correlation coefficient, rho is a scalar correlation coefficient corresponding to a bivariate copula. If R is a p-by-p correlation matrix, rho is a p-by-p correlation matrix.

rho = copulaparam('t',R,NU) returns the linear correlation parameters rho corresponding to a t copula having Kendall's rank correlation R and degrees of freedom NU. If R is a scalar correlation coefficient, rho is a scalar correlation coefficient corresponding to a bivariate copula. If R is a p-by-p correlation matrix, rho is a p-by-p correlation matrix.

alpha = copulaparam(family,R) returns the copula parameter alpha corresponding to a bivariate Archimedean copula having Kendall's rank correlation R. R is a scalar. family is one of 'Clayton', 'Frank', or 'Gumbel'.

[...] = copulaparam(...,'type',type) assumes R is the specified type of rank correlation. type is 'Kendall' for Kendall's tau or 'Spearman' for Spearman's rho.

copulaparam uses an approximation to Spearman's rank correlation for copula families when no analytic formula exists. The approximation is based on a smooth fit to values computed at discrete values of the copula parameters. For a t copula, the approximation is accurate for degrees of freedom larger than 0.05.

Examples

Get the linear correlation coefficient corresponding to a bivariate Gaussian copula having a rank correlation of -0.5.

tau = -0.5
rho = copulaparam('gaussian',tau)
rho =
   -0.7071

% Generate dependent beta random values using that copula
u = copularnd('gaussian',rho,100);
b = betainv(u,2,2);
 
% Verify that the sample has a rank correlation
% approximately equal to tau
tau_sample = corr(b,'type','k')
tau_sample =
    1.0000   -0.4638
   -0.4638    1.0000

See Also

| | |

Was this topic helpful?