


Evaluates the logged INVERSE-GAMMA-2 PDF at x.
X ~ IG2(s,nu) if X = inv(Z) where Z ~ G(nu/2,2/s) (Gamma distribution)
See L. Bauwens, M. Lubrano and J-F. Richard [1999, appendix A] for more details.
INPUTS
x [double] m*n matrix of locations,
s [double] m*n matrix or scalar, First INVERSE-GAMMA-2 distribution parameters,
nu [double] m*n matrix or scalar, Second INVERSE-GAMMA-2 distribution parameters.
OUTPUTS
ldens [double] m*n matrix of logged INVERSE-GAMMA-2 densities evaluated at x.
SPECIAL REQUIREMENTS
none

0001 function [ldens,Dldens,D2ldens] = lpdfig2(x,s,nu) 0002 % Evaluates the logged INVERSE-GAMMA-2 PDF at x. 0003 % 0004 % X ~ IG2(s,nu) if X = inv(Z) where Z ~ G(nu/2,2/s) (Gamma distribution) 0005 % 0006 % See L. Bauwens, M. Lubrano and J-F. Richard [1999, appendix A] for more details. 0007 % 0008 % 0009 % INPUTS 0010 % x [double] m*n matrix of locations, 0011 % s [double] m*n matrix or scalar, First INVERSE-GAMMA-2 distribution parameters, 0012 % nu [double] m*n matrix or scalar, Second INVERSE-GAMMA-2 distribution parameters. 0013 % 0014 % OUTPUTS 0015 % ldens [double] m*n matrix of logged INVERSE-GAMMA-2 densities evaluated at x. 0016 % 0017 % SPECIAL REQUIREMENTS 0018 % none 0019 0020 % Copyright (C) 2004-2009 Dynare Team 0021 % 0022 % This file is part of Dynare. 0023 % 0024 % Dynare is free software: you can redistribute it and/or modify 0025 % it under the terms of the GNU General Public License as published by 0026 % the Free Software Foundation, either version 3 of the License, or 0027 % (at your option) any later version. 0028 % 0029 % Dynare is distributed in the hope that it will be useful, 0030 % but WITHOUT ANY WARRANTY; without even the implied warranty of 0031 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0032 % GNU General Public License for more details. 0033 % 0034 % You should have received a copy of the GNU General Public License 0035 % along with Dynare. If not, see <http://www.gnu.org/licenses/>. 0036 0037 ldens = -Inf( size(x) ) ; 0038 idx = find( x>0 ) ; 0039 0040 if length(s)==1 0041 ldens(idx) = -gammaln(.5*nu) - (.5*nu)*(log(2)-log(s)) - .5*(nu+2)*log(x(idx)) -.5*s./x(idx); 0042 else 0043 ldens(idx) = -gammaln(.5*nu(idx)) - (.5*nu(idx)).*(log(2)-log(s(idx))) - .5*(nu(idx)+2).*log(x(idx)) -.5*s(idx)./x(idx); 0044 end 0045 0046 if nargout >1 0047 if length(s)==1 0048 Dldens(idx) = - .5*(nu+2)./(x(idx)) + .5*s./x(idx).^2; 0049 else 0050 Dldens(idx) = - .5*(nu(idx)+2)./(x(idx)) + .5*s(idx)./x(idx).^2; 0051 end 0052 end 0053 0054 if nargout == 3 0055 if length(s)==1 0056 D2ldens(idx) = .5*(nu+2)./(x(idx)).^2 - s./x(idx).^3; 0057 else 0058 D2ldens(idx) = .5*(nu(idx)+2)./(x(idx)).^2 - s(idx)./x(idx).^3; 0059 end 0060 end