download posterior.m
Language: Matlab
LOC: 12
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 p = posterior(alpha, family, U, prior_tau)
%
%   P = POSTERIOR(ALPHA, FAMILY, U, [,PRIOR_TAU])
%
%   Return the posterior density computed at ALPHA.
%   \prod c(u,v|ALPHA) * prior(ALPHA|TAU) * prior(TAU) 
%
%   INPUTS
%       FAMILY   : one of { 'arch12', 'arch14' 'ind', 'fgm' 'gaussian', 'gumbel' 'clayton' 'frank' 'amh'}       
%       U        : Nx2 matrix of quantiles (u,v) in [0,1]^2.
%       ALPHA    : 1xM vector of copula parameters.
%       PRIOR_TAU: Function of TAU returning the normalized prior for TAU.
%                  
%
%   OUTPUT
%       L: Likelihood at each parameter (1xM). 
%

%   G. Evin & D. Huard, 2006

%   Compute density
c = copulapdf(family, U, alpha);
if any(isinf(c))
    error('Inf in copulapdf.')
end
% Compute data likelihood
likelihood = sum(log(c), 1);

% Compute prior for the parameter assuming an uniform prior on TAU.
prior_alpha = log(taujacobian(family, alpha));

% Prior for Tau
pr_tau = log(prior_tau(copulastat(family, alpha)));

% Combine likelihood and priors
p = exp(likelihood + prior_alpha + pr_tau);

if any(isnan(p))
    error('Nan')
end

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