download copulastat.m
Language: Matlab
LOC: 35
Project Info
copula - Bayesian Copula Selection(copula)
Server: Google
Type: svn
Google\c\copula\trunk\
   alphaboundaries.m
   analytic.mws
   bcs.m
   check_alpha.m
   check_tau.m
   conditionalcdf.m
   constrain_tau.m
   copulacdf.m
   copulaparam.m
   copulapdf.m
   copularnd.m
   copulastat.m
   dilog.m
   isnear.m
   kendall.m
   lambdaarch.m
   posterior.m
   quadg.m
   tauboundaries.m
   taujacobian.m

function tau = copulastat(family,alpha)
%
%   TAU = COPULASTAT(FAMILY,ALPHA)
%
%   Returns Kendall's rank correlation TAU
%
%   INPUT
%       FAMILY: One of 'Clayton', 'Frank', 'Gumbel', 'Gaussian', 't',
%               'AMH', 'FGM', 'Arch12', 'Arch14'.
%       ALPHA: Copula parameter.
%
%   OUTPUT
%       TAU: Kendall's rank correlation.
%
%   Example:
%       Determine the theoretical rank correlation coefficient for a
%       bivariate Gaussian copula with linear correlation parameter -0.7071
%       rho = -.7071
%       tau = copulastat('gaussian',rho)

%   Original version by Peter Perkins, The MathWorks, Inc.
%   Revision: 1.0  Date: 2003/09/05
%
%   Extended and modified by G.Evin, 2005.
%   Modified by D. Huard, Nov. 2006.
%   Requires MATLAB R13.

if nargin ~= 2
    error('Requires two input arguments.');
end

pass = check_alpha(family, alpha, 0);

if any(~pass)
    error('Invalid parameters.')
end

tau = zeros(size(alpha));

switch lower(family)
    case 'gaussian' 
        tau = 2.*asin(alpha)./pi;
        
    case 't'
        tau = 2.*asin(alpha)./pi;
        
    case 'clayton'
        tau = alpha ./ (2 + alpha);
        
    case 'frank'    
        tau = real(1 - (4*(1 - (-3*alpha.^2 - pi^2 + 6*alpha.*log(1 - exp(alpha)) + 6*dilog(exp(alpha)))./(6*alpha)))./alpha);
        
    case 'gumbel'
        tau = 1 - 1./alpha;
        
    case 'amh'
        t0 = alpha.^2;
        t1 = log(1-alpha);
        t2 =  t0 .* t1;
        t3 = 2*alpha .* t1;
        tau = 1- 2/3 * (t2 - t3 + alpha + t1) ./ t0;
        
    case 'fgm'
        tau = (2/9).*alpha;
        
    case 'arch12'
        tau = 1-(2/3)./alpha;
        
    case 'arch14'
        tau = 1-2./(1+2.*alpha);
        
    otherwise
        error('Unrecognized copula family: ''%s''',family);
end

About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us