📄 gofg_sp.m
字号:
function [r, Qqr, Rqr]= ...gofg_sp(gamma,indice,X,Ytilde,QqrP,RqrP,elem,k,delta,w,v1);%gofg_sp: Selection prior - Function that% computes the log-relative posterior probability%*******************************************************************%INPUTS:% gamma, binary vector% indice, 1 -- QR decomp% 2 -- QRinsert% 3 -- QRdelete% X, independent variables, n by p% Ytilde, augmented response matrix, (n+p) by q% QqrP,RqrP, QR-matrices of the previous vector% elem, position to add/delete% k,delta, hyperparameters Inverse Wishart% w, hyperparameter Bernoulli priors% v1, hyperparameter - normal selection prior% (column vector (p by 1) of standard deviations)%%OUTPUTS:% r, log-relative posterior probability of gamma% Qqr, Rqr, QR matrices of gamma%%USAGE:% [r, Qqr, Rqr]= ...% gofg_sp(gamma,indice,X,Ytilde,QqrP,RqrP,elem,k,delta,w,v1);%%NOTES:% Called by bvsgs_sp and itergs_sp%%REFERENCE:% Brown, P.J., Vannucci, M. and Fearn, T.% Multivariate Bayesian variable selection and prediction% Journal of the Royal Statistical Society B, 60(3), 1998, pp. 627-641.%%Copyright (c) 1997 Marina Vannucci.%**********************************************************************[nOss p]=size(X);[q]=size(Ytilde,2);Qk=k*eye(q);I=find(gamma);nonnulle=length(I);switch indice case 1 % ------------------ Indice = 1 -- QR Decomposition sotto=zeros(p,nonnulle); sotto(I,:)=eye(nonnulle); % Augmented X, (nOss+p) by nonnulle, % H0=Diag*R*Diag,R=Id Xtilde=cat(1,X(:,I)*diag(v1(I)), sotto); [Qqr Rqr]=qr(Xtilde); case 2 % ------------------ Indice = 2 -- QRinsert prima=find(I<elem); jj=length(prima)+1; sotto=zeros(p,1); sotto(elem)=1; ins=cat(1, X(:,elem)*v1(elem), sotto); [Qqr Rqr]=qrinsert(QqrP,RqrP,jj,ins); case 3 % ------------------ Indice = 3 -- QRdelete prima=find(I<elem); jj=length(prima)+1; [Qqr Rqr]=qrdelete(QqrP,RqrP,jj); endsub=Qqr(:,nonnulle+1:nOss+p)'*Ytilde; % Seber, page 498RSP=sub'*sub; % residual sum of productsQstar=Qk+RSP; % q by qswitch nonnulle case 1 detH0K=Rqr(1,1)^2; otherwise detH0K=prod(diag(Rqr).^2);endprog=sum(log((w.^gamma).*(1-w).^(1-gamma)));r= -(q/2)*log(detH0K) - ((delta+nOss+q-1)/2)*log(det(Qstar)) + prog;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -