From 8a3e80fa6beea97e7c73c5c0d2402ba5eb2db423 Mon Sep 17 00:00:00 2001 From: Sean Dodd Date: Tue, 15 Mar 2016 13:26:58 -0500 Subject: [PATCH 1/3] Move code into matlab directory --- BNP_covreg.m => matlab/BNP_covreg.m | 0 BNP_covreg_varinds.m => matlab/BNP_covreg_varinds.m | 0 flu_US.mat => matlab/flu_US.mat | Bin runstuff_BNPcovreg.m => matlab/runstuff_BNPcovreg.m | 0 .../runstuff_varinds_flu.m | 0 simData.mat => matlab/simData.mat | Bin {utilities => matlab/utilities}/SIMplots.m | 0 {utilities => matlab/utilities}/calculate_hpd.m | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename BNP_covreg.m => matlab/BNP_covreg.m (100%) rename BNP_covreg_varinds.m => matlab/BNP_covreg_varinds.m (100%) rename flu_US.mat => matlab/flu_US.mat (100%) rename runstuff_BNPcovreg.m => matlab/runstuff_BNPcovreg.m (100%) rename runstuff_varinds_flu.m => matlab/runstuff_varinds_flu.m (100%) rename simData.mat => matlab/simData.mat (100%) rename {utilities => matlab/utilities}/SIMplots.m (100%) rename {utilities => matlab/utilities}/calculate_hpd.m (100%) diff --git a/BNP_covreg.m b/matlab/BNP_covreg.m similarity index 100% rename from BNP_covreg.m rename to matlab/BNP_covreg.m diff --git a/BNP_covreg_varinds.m b/matlab/BNP_covreg_varinds.m similarity index 100% rename from BNP_covreg_varinds.m rename to matlab/BNP_covreg_varinds.m diff --git a/flu_US.mat b/matlab/flu_US.mat similarity index 100% rename from flu_US.mat rename to matlab/flu_US.mat diff --git a/runstuff_BNPcovreg.m b/matlab/runstuff_BNPcovreg.m similarity index 100% rename from runstuff_BNPcovreg.m rename to matlab/runstuff_BNPcovreg.m diff --git a/runstuff_varinds_flu.m b/matlab/runstuff_varinds_flu.m similarity index 100% rename from runstuff_varinds_flu.m rename to matlab/runstuff_varinds_flu.m diff --git a/simData.mat b/matlab/simData.mat similarity index 100% rename from simData.mat rename to matlab/simData.mat diff --git a/utilities/SIMplots.m b/matlab/utilities/SIMplots.m similarity index 100% rename from utilities/SIMplots.m rename to matlab/utilities/SIMplots.m diff --git a/utilities/calculate_hpd.m b/matlab/utilities/calculate_hpd.m similarity index 100% rename from utilities/calculate_hpd.m rename to matlab/utilities/calculate_hpd.m From af6100780c7120f614e7749f51242b265c9ae77a Mon Sep 17 00:00:00 2001 From: Sean Dodd Date: Fri, 18 Mar 2016 15:15:45 -0500 Subject: [PATCH 2/3] Initial python commit -- non-working --- matlab/runstuff_BNPcovreg.m | 2 +- python/.BNP_covreg_varinds.py.swp | Bin 0 -> 16384 bytes python/.runstuff_varinds_flu.py.swp | Bin 0 -> 12288 bytes python/BNP_covreg.py | 438 ++++++++++++++++++++++++++++ python/BNP_covreg_varinds.py | 324 ++++++++++++++++++++ python/__init__.py | 0 python/flu_US.mat | Bin 0 -> 166037 bytes python/runstuff_BNPcovreg.py | 74 +++++ python/runstuff_varinds_flu.py | 92 ++++++ python/simData.mat | Bin 0 -> 93355 bytes python/utilities/SIMplots.py | 143 +++++++++ python/utilities/clculate_hpd.py | 30 ++ 12 files changed, 1102 insertions(+), 1 deletion(-) create mode 100644 python/.BNP_covreg_varinds.py.swp create mode 100644 python/.runstuff_varinds_flu.py.swp create mode 100644 python/BNP_covreg.py create mode 100644 python/BNP_covreg_varinds.py create mode 100644 python/__init__.py create mode 100644 python/flu_US.mat create mode 100644 python/runstuff_BNPcovreg.py create mode 100644 python/runstuff_varinds_flu.py create mode 100644 python/simData.mat create mode 100644 python/utilities/SIMplots.py create mode 100644 python/utilities/clculate_hpd.py diff --git a/matlab/runstuff_BNPcovreg.m b/matlab/runstuff_BNPcovreg.m index b1cb711..4642c7a 100644 --- a/matlab/runstuff_BNPcovreg.m +++ b/matlab/runstuff_BNPcovreg.m @@ -1,7 +1,7 @@ %% SCRIPT FOR RUNNING BASIC SAMPLER ON SIMULATED DATA EXAMPLE %% % Load simulated data: -load simData.mat +load simData % y is a p x N matrix specifying the N observations of the p-dimensional data [p N] = size(y); diff --git a/python/.BNP_covreg_varinds.py.swp b/python/.BNP_covreg_varinds.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..7534903c5470bc34484936b1a516d653b295ba00 GIT binary patch literal 16384 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 HO38l#zYAd* literal 0 HcmV?d00001 diff --git a/python/BNP_covreg.py b/python/BNP_covreg.py new file mode 100644 index 0000000..fb19a1c --- /dev/null +++ b/python/BNP_covreg.py @@ -0,0 +1,438 @@ +# Autogenerated with SMOP version +# /usr/local/bin/smop BNP_covreg.m + +from __future__ import division +try: + from runtime import * +except ImportError: + from smop.runtime import * + +def BNP_covreg_(y=None,prior_params=None,settings=None,restart=None,true_params=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 5-[y,prior_params,settings,restart,true_params].count(None)+len(args) + + T0=1 + Tf=1 + n_adapt=1000 + temp=copy_(T0) + empBayes=1 + p,N=size_(y,nargout=2) + if exist_(char('true_params'),char('var')): + cov_true_diag=zeros_(p,N) + for tt in arange_(1,N).reshape(-1): + cov_true_diag[:,tt]=diag_(true_params.cov_true(arange_(),arange_(),tt)) + if not exist_(char('restart'),char('var')): + restart=0 + y=init_y_(y,settings,true_params) + sample_K_flag=settings.sample_K_flag + latent_mean=settings.latent_mean + k=settings.k + L=settings.L + Niter=settings.Niter + trial=settings.trial + if not restart: + Stats[1:settings.saveEvery / settings.storeEvery]=struct_(char('zeta'),zeros_(L,k,N),char('psi'),zeros_(k,N),char('invSig_vec'),zeros_(1,p),char('theta'),zeros_(p,L),char('eta'),zeros_(k,N),char('phi'),zeros_(p,L),char('tau'),zeros_(1,L),char('K_ind'),0,char('y_heldout'),zeros_(1,sum_(inds2impute_(arange_())))) + store_counter=1 + delta=zeros_(1,L) + delta[1]=gamrnd_(prior_params.hypers.a1,1) + delta[2:L]=gamrnd_(prior_params.hypers.a2 * ones_(1,L - 1),1) + tau=exp_(cumsum_(log_(delta))) + phi=gamrnd_(prior_params.hypers.a_phi * ones_(p,L),1) / prior_params.hypers.b_phi + theta=zeros_(p,L) + for pp in arange_(1,p).reshape(-1): + theta[pp,:]=chol_(diag_(1.0 / (phi[pp,:].dot(tau)))).T * randn_(L,1) + invSig_vec=gamrnd_(prior_params.sig.a_sig * ones_(1,p),1) / prior_params.sig.b_sig + psi=zeros_(k,N) + if empBayes: + xi=sample_xi_init_(y,invSig_vec,psi,temp) + else: + xi=randn_(k,N) + eta=psi + xi + if sample_K_flag == 1 or sample_K_flag == 2: + Pk=cumsum_(prior_params.K.c_prior) + K_ind=1 + sum_(Pk[end()] * rand_(1) > Pk) + else: + K_ind=1 + if empBayes: + zeta=zeros_(L,k,N) + for ii in arange_(1,10).reshape(-1): + zeta,Sig_est=initialize_zeta_(zeta,y,theta,invSig_vec,nargout=2) + zeta=sample_zeta_(y,theta,eta,invSig_vec,zeta,prior_params.K.invK(arange_(),arange_(),K_ind),temp) + theta=sample_theta_(y,eta,invSig_vec,zeta,phi,tau,temp) + invSig_vec=sample_sig_(y,theta,eta,zeta,prior_params.sig,temp) + else: + zeta=zeros_(L,k,N) + cholK=chol_(prior_params.K.K) + for ll in arange_(1,L).reshape(-1): + for kk in arange_(1,k).reshape(-1): + zeta[ll,kk,:]=cholK.T * randn_(N,1) + zeta=sample_zeta_(y,theta,eta,invSig_vec,zeta,prior_params.K.invK(arange_(),arange_(),K_ind),temp) + if latent_mean: + psi=sample_psi_margxi_(y,theta,invSig_vec,zeta,psi,prior_params.K.invK(arange_(),arange_(),K_ind),temp) + else: + psi=zeros_(size_(xi)) + xi=sample_xi_(y,theta,invSig_vec,zeta,psi,temp) + eta=psi + xi + if not isempty_(inds2impute): + y=sample_y_(y,theta,invSig_vec,zeta,psi,inds2impute) + if not exist_(settings.saveDir,char('file')): + mkdir_(settings.saveDir) + if isfield_(settings,char('filename')): + settings_filename=strcat_(settings.saveDir,char('/'),settings.filename,char('_info4trial'),num2str_(trial)) + init_stats_filename=strcat_(settings.saveDir,char('/'),settings.filename,char('initialStats_trial'),num2str_(trial)) + else: + settings_filename=strcat_(settings.saveDir,char('/info4trial'),num2str_(trial)) + init_stats_filename=strcat_(settings.saveDir,char('/initialStats_trial'),num2str_(trial)) + if nargin > 3: + save_(settings_filename,char('y'),char('settings'),char('prior_params'),char('true_params')) + else: + save_(settings_filename,char('y'),char('settings'),char('prior_params')) + save_(init_stats_filename,char('zeta'),char('psi'),char('eta'),char('theta'),char('invSig_vec'),char('phi'),char('tau'),char('K_ind')) + num_iters=1 + nstart=1 + else: + load_([settings.saveDir,char('/BNP_covreg_stats'),char('iter'),num2str_(settings.lastIter),char('trial'),num2str_(settings.trial)]) + theta=Stats_(end()).theta + eta=Stats_(end()).eta + zeta=Stats_(end()).zeta + phi=Stats_(end()).phi + tau=Stats_(end()).tau + psi=Stats_(end()).psi + nstart=settings.lastIter + 1 + num_iters=1 + store_counter=1 + for nn in arange_(nstart,Niter).reshape(-1): + invSig_vec=sample_sig_(y,theta,eta,zeta,prior_params.sig,temp) + phi,tau=sample_hypers_(theta,phi,tau,prior_params.hypers,nargout=2) + theta=sample_theta_(y,eta,invSig_vec,zeta,phi,tau,temp) + if sample_K_flag == 1: + K_ind=sample_K_marg_zeta_(y,theta,eta,invSig_vec,prior_params.K,K_ind) + else: + if sample_K_flag == 2: + K_ind=sample_K_cond_zeta_(zeta,prior_params.K) + else: + K_ind=1 + if latent_mean: + psi=sample_psi_margxi_(y,theta,invSig_vec,zeta,psi,prior_params.K.invK(arange_(),arange_(),K_ind),temp) + else: + psi=zeros_(size_(xi)) + xi=sample_xi_(y,theta,invSig_vec,zeta,psi,temp) + eta=psi + xi + for ii in arange_(1,num_iters).reshape(-1): + zeta=sample_zeta_(y,theta,eta,invSig_vec,zeta,prior_params.K.invK(arange_(),arange_(),K_ind),temp) + if not isempty_(inds2impute): + y=sample_y_(y,theta,invSig_vec,zeta,psi,inds2impute) + num_iters=1 + if nn <= n_adapt: + temp=T0 * ((Tf / T0) ** (nn / n_adapt)) + if rem_(nn,settings.storeEvery) == 0 and nn >= settings.saveMin: + Stats[store_counter].zeta=zeta + Stats[store_counter].eta=eta + Stats[store_counter].theta=theta + Stats[store_counter].invSig_vec=invSig_vec + Stats[store_counter].psi=psi + Stats[store_counter].phi=phi + Stats[store_counter].tau=tau + Stats[store_counter].K_ind=K_ind + y_tmp=y[inds2impute] + Stats[store_counter].y_heldout=y_tmp[:] + store_counter=store_counter + 1 + if rem_(nn,settings.saveEvery) == 0: + if isfield_(settings,char('filename')): + filename=strcat_(settings.saveDir,char('/'),settings.filename,char('iter'),num2str_(nn),char('trial'),num2str_(settings.trial)) + else: + filename=strcat_(settings.saveDir,char('/BNP_covreg_stats'),char('iter'),num2str_(nn),char('trial'),num2str_(settings.trial)) + save_(filename,char('Stats')) + store_counter=1 + if not rem_(nn,100): + display_([char('Iter: '),num2str_(nn),char(', K_ind: '),num2str_(K_ind)]) + if exist_(char('true_params'),char('var')): + cov_est=zeros_(p,N) + for tt in arange_(1,N).reshape(-1): + cov_est[:,tt]=diag_(theta * zeta[:,:,tt] * zeta[:,:,tt].T * theta.T + diag_(1.0 / invSig_vec)) + plot_(cov_true_diag.T,char('LineWidth'),2) + hold_(char('on')) + plot_(cov_est.T,char('--'),char('LineWidth'),2) + hold_(char('off')) + drawnow + return +def sample_zeta_(y=None,theta=None,eta=None,invSig_vec=None,zeta=None,invK=None,temp=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 7-[y,theta,eta,invSig_vec,zeta,invK,temp].count(None)+len(args) + + p,L=size_(theta,nargout=2) + k,N=size_(eta,nargout=2) + mu_tot=zeros_(p,N) + for nn in arange_(1,N).reshape(-1): + mu_tot[:,nn]=theta * zeta[:,:,nn] * eta[:,nn] + for ll in arange_(1,L).reshape(-1): + theta_ll=theta[:,ll] + for kk in randperm_(k).reshape(-1): + eta_kk=eta[kk,:] + zeta_ll_kk=squeeze_(zeta[ll,kk,:]).T + mu_tot=mu_tot - theta_ll[:,ones_(1,N)].dot(eta_kk[ones_(p,1),:]).dot(zeta_ll_kk[ones_(p,1),:]) + A_lk_invSig_A_lk=diag_((eta[kk,:] ** 2) * ((theta[:,ll] ** 2).T * invSig_vec.T)) + theta_tmp=theta[:,ll].T.dot(invSig_vec) + ytilde=y - mu_tot + theta_lk=eta[kk,:].T.dot((theta_tmp * ytilde).T) + cholSig_lk_trans=numpy.linalg.solve(chol_(invK + A_lk_invSig_A_lk),eye_(N)) + m_lk=cholSig_lk_trans * (cholSig_lk_trans.T * theta_lk) + zeta[ll,kk,:]=m_lk + temp * cholSig_lk_trans * randn_(N,1) + zeta_ll_kk=squeeze_(zeta[ll,kk,:]).T + mu_tot=mu_tot + theta_ll[:,ones_(1,N)].dot(eta_kk[ones_(p,1),:]).dot(zeta_ll_kk[ones_(p,1),:]) + return zeta +def sample_psi_margxi_(y=None,theta=None,invSig_vec=None,zeta=None,psi=None,invK=None,temp=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 7-[y,theta,invSig_vec,zeta,psi,invK,temp].count(None)+len(args) + + p,L=size_(theta,nargout=2) + k,N=size_(psi,nargout=2) + Sigma_0=diag_(1.0 / invSig_vec) + mu_tot=zeros_(p,N) + Omega=zeros_(p,k,N) + invOmegaOmegaSigma0=zeros_(p,p,N) + for nn in arange_(1,N).reshape(-1): + Omega[:,:,nn]=theta * zeta[:,:,nn] + temp=numpy.linalg.solve((Omega[:,:,nn] * Omega[:,:,nn].T + Sigma_0),eye_(N)) + OmegaInvOmegaOmegaSigma0[:,:,nn]=Omega[:,:,nn].T * temp + mu_tot[:,nn]=Omega[:,:,nn] * psi[:,nn] + if sum_(sum_(mu_tot)) == 0: + numTotIters=100 + else: + numTotIters=5 + for numIter in arange_(1,numTotIters).reshape(-1): + for kk in randperm_(k).reshape(-1): + Omega_kk=squeeze_(Omega[:,kk,:]) + psi_kk=psi[kk,:] + mu_tot=mu_tot - Omega_kk.dot(psi_kk[ones_(p,1),:]) + theta_k=diag_(squeeze_(OmegaInvOmegaOmegaSigma0[kk,:,:]).T * (y - mu_tot)) + Ak_invSig_Ak=diag_(squeeze_(OmegaInvOmegaOmegaSigma0[kk,:,:]).T * Omega_kk) + cholSig_k_trans=numpy.linalg.solve(chol_(invK + diag_(Ak_invSig_Ak)),eye_(N)) + m_k=cholSig_k_trans * (cholSig_k_trans.T * theta_k) + psi[kk,:]=m_k + temp * cholSig_k_trans * randn_(N,1) + psi_kk=psi[kk,:] + mu_tot=mu_tot + Omega_kk.dot(psi_kk[ones_(p,1),:]) + return psi +def sample_xi_(y=None,theta=None,invSig_vec=None,zeta=None,psi=None,temp=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 6-[y,theta,invSig_vec,zeta,psi,temp].count(None)+len(args) + + p,N=size_(y,nargout=2) + L,k=size_(zeta[:,:,1],nargout=2) + invSigMat=invSig_vec[ones_(k,1),:] + xi=zeros_(k,N) + for nn in arange_(1,N).reshape(-1): + theta_zeta_n=theta * zeta[:,:,nn] + y_tilde_n=y[:,nn] - theta_zeta_n * psi[:,nn] + zeta_theta_invSig=theta_zeta_n.T.dot(invSigMat) + cholSig_xi_n_trans=numpy.linalg.solve(chol_(eye_(k) + zeta_theta_invSig * theta_zeta_n),eye_(k)) + m_xi_n=cholSig_xi_n_trans * (cholSig_xi_n_trans.T * (zeta_theta_invSig * y_tilde_n)) + xi[:,nn]=m_xi_n + temp * cholSig_xi_n_trans * randn_(k,1) + return xi +def sample_theta_(y=None,eta=None,invSig_vec=None,zeta=None,phi=None,tau=None,temp=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 7-[y,eta,invSig_vec,zeta,phi,tau,temp].count(None)+len(args) + + p,N=size_(y,nargout=2) + L=size_(zeta,1) + theta=zeros_(p,L) + eta_tilde=zeros_(L,N) + for nn in arange_(1,N).reshape(-1): + eta_tilde[:,nn]=zeta[:,:,nn] * eta[:,nn] + eta_tilde=eta_tilde.T + for pp in arange_(1,p).reshape(-1): + chol_Sig_theta_p_trans=numpy.linalg.solve(chol_(diag_(phi[pp,:].dot(tau)) + invSig_vec[pp] * (eta_tilde.T * eta_tilde)),eye_(L)) + m_theta_p=invSig_vec[pp] * (chol_Sig_theta_p_trans * chol_Sig_theta_p_trans.T) * (eta_tilde.T * y[pp,:].T) + theta[pp,:]=m_theta_p + temp * chol_Sig_theta_p_trans * randn_(L,1) + return theta +def sample_sig_(y=None,theta=None,eta=None,zeta=None,prior_params=None,temp=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 6-[y,theta,eta,zeta,prior_params,temp].count(None)+len(args) + + p,N=size_(y,nargout=2) + a_sig=prior_params.a_sig + b_sig=prior_params.b_sig + invSig_vec=zeros_(1,p) + for pp in arange_(1,p).reshape(-1): + sq_err=0 + for nn in arange_(1,N).reshape(-1): + sq_err=sq_err + (y[pp,nn] - theta[pp,:] * zeta[:,:,nn] * eta[:,nn]) ** 2 + a_temp=1 + (a_sig + 0.5 * N - 1) / temp + b_temp=(b_sig + 0.5 * sq_err) / temp + invSig_vec[pp]=gamrnd_(a_temp,1) / b_temp + return invSig_vec +def sample_hypers_(theta=None,phi=None,tau=None,prior_params=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 4-[theta,phi,tau,prior_params].count(None)+len(args) + + p,L=size_(theta,nargout=2) + a1=prior_params.a1 + a2=prior_params.a2 + a_phi=prior_params.a_phi + b_phi=prior_params.b_phi + a=matlabarray([a1,a2 * ones_(1,L - 1)]) + delta=exp_([log_(tau[1]),diff_(log_(tau))]) + for numIter in arange_(1,50).reshape(-1): + phi=gamrnd_((a_phi + 0.5) * ones_(p,L),1) / (b_phi + 0.5 * tau[ones_(1,p),:].dot((theta ** 2))) + sum_phi_theta=sum_(phi.dot((theta ** 2)),1) + for hh in arange_(1,L).reshape(-1): + tau_hh=exp_(cumsum_(log_(delta))).dot([zeros_(1,hh - 1),ones_(1,L - hh + 1) / delta[hh]]) + delta[hh]=gamrnd_(a[hh] + 0.5 * p * (L - hh + 1),1) / (1 + 0.5 * sum_(tau_hh.dot(sum_phi_theta))) + tau=exp_(cumsum_(log_(delta))) + return phi,tau +def sample_K_marg_zeta_(y=None,theta=None,eta=None,invSig_vec=None,prior_params=None,K_ind=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 6-[y,theta,eta,invSig_vec,prior_params,K_ind].count(None)+len(args) + + k,N=size_(eta,nargout=2) + p,L=size_(theta,nargout=2) + c_prior=prior_params.c_prior + K=prior_params.K + grid_size=length_(c_prior) + Pk=- Inf * ones_(1,grid_size) + Pk_tmp=- Inf * ones_(1,grid_size) + nbhd=copy_(Inf) + nbhd_vec=matlabarray([arange_(max_(K_ind - nbhd,1),min_(K_ind + nbhd,grid_size))]) + tmp_mat_init=diag_(repmat_(1.0 / invSig_vec,1,N)) + if p < sqrt_(N): + for cc in nbhd_vec.reshape(-1): + Kc=K[:,:,cc] + tmp_mat=copy_(tmp_mat_init) + for ll in arange_(1,L).reshape(-1): + theta_ll=theta[:,ll] + for kk in arange_(1,k).reshape(-1): + eta_kk=eta[kk,:] + tmp_mat=tmp_mat + kron_((eta_kk * eta_kk.T).dot(Kc),theta_ll * theta_ll.T) + Pk[cc]=normpdfln_(y[:],zeros_(p * N,1),tmp_mat) + else: + for cc in nbhd_vec.reshape(-1): + Kc=K[:,:,cc] + Kc=sparse_(Kc) + tmp_mat=copy_(tmp_mat_init) + for ll in arange_(1,L).reshape(-1): + theta_ll=theta[:,ll] + for kk in arange_(1,k).reshape(-1): + eta_kk=eta[kk,:] + eta_mat_kk=diag_(eta_kk) + eta_theta_ll_kk=kron_(eta_mat_kk,theta_ll) + tmp_mat=tmp_mat + eta_theta_ll_kk * Kc * eta_theta_ll_kk.T + Pk[cc]=normpdfln_(y[:],zeros_(p * N,1),tmp_mat) + nbhd_mask=zeros_(1,length_(prior_params.c_prior)) + nbhd_mask[nbhd_vec]=1 + Pk=Pk + log_(prior_params.c_prior).dot(nbhd_mask) + Pk=cumsum_(exp_(Pk - max_(Pk))) + K_ind=1 + sum_(Pk[end()] * rand_(1) > Pk) + return K_ind +def sample_K_cond_zeta_(zeta=None,prior_params=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 2-[zeta,prior_params].count(None)+len(args) + + L,k,N=size_(zeta,nargout=3) + c_prior=prior_params.c_prior + invK=prior_params.invK + zeta_tmp=reshape_(zeta,[L * k,N]).T + Pk=zeros_(1,length_(c_prior)) + for ii in arange_(1,length_(c_prior)).reshape(-1): + Pk[ii]=- sum_(diag_(zeta_tmp.T * (invK[:,:,ii] * zeta_tmp))) + Pk=Pk - 0.5 * (L * k) * prior_params.logdetK + log_(prior_params.c_prior) + Pk=cumsum_(exp_(Pk - max_(Pk))) + K_ind=1 + sum_(Pk[end()] * rand_(1) > Pk) + return K_ind +def sample_y_(y=None,theta=None,invSig_vec=None,zeta=None,psi=None,inds2impute=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 6-[y,theta,invSig_vec,zeta,psi,inds2impute].count(None)+len(args) + + p,N=size_(y,nargout=2) + inds_vec=matlabarray([arange_(1,p)]) + for nn in arange_(1,N).reshape(-1): + Sigma_nn=theta * zeta[:,:,nn] * zeta[:,:,nn].T * theta.T + diag_(1.0 / invSig_vec) + mu_nn=theta * zeta[:,:,nn] * psi[:,nn] + inds2impute_nn=inds_vec[inds2impute[:,nn]] + J=length_(inds2impute_nn) + reg_inds_nn=setdiff_(inds_vec,inds2impute_nn) + ordered_inds=matlabarray([inds2impute_nn,reg_inds_nn]) + ordered_cov_rows=zeros_(p) + ordered_mean=zeros_(p,1) + for jj in arange_(1,p).reshape(-1): + ordered_cov_rows[jj,:]=Sigma_nn[ordered_inds[jj],:] + ordered_mean[jj]=mu_nn[ordered_inds[jj]] + ordered_cov=zeros_(size_(ordered_cov_rows)) + for jj in arange_(1,p).reshape(-1): + ordered_cov[:,jj]=ordered_cov_rows[:,ordered_inds[jj]] + Sig11=ordered_cov[1:J,1:J] + Sig12=ordered_cov[1:J,J + 1:p] + Sig12invSig22=Sig12 / ordered_cov[J + 1:p,J + 1:p] + mu1=ordered_mean[1:J] + mu2=ordered_mean[J + 1:p] + reg_mean=mu1 + Sig12invSig22 * (y[reg_inds_nn,nn] - mu2) + reg_cov=Sig11 - Sig12invSig22 * Sig12.T + y[inds2impute_nn,nn]=reg_mean + chol_(reg_cov).T * randn_(J,1) + return y +def init_y_(y=None,settings=None,true_params=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 3-[y,settings,true_params].count(None)+len(args) + + inds2impute=settings.inds2impute + p,N=size_(y,nargout=2) + y[inds2impute]=0 + x=linspace_(- 1,1,5) + mu=0 + sig=1 + tmp=normpdf_(x,mu,sig) + y_conved=copy_(y) + for pp in arange_(1,p).reshape(-1): + y_conved[pp,:]=conv_(y[pp,:],tmp,char('same')) + y[inds2impute]=y_conved[inds2impute] + return y +def initialize_zeta_(zeta=None,y=None,theta=None,invSig_vec=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 4-[zeta,y,theta,invSig_vec].count(None)+len(args) + + p,N=size_(y,nargout=2) + L,k,tmp=size_(zeta,nargout=3) + Sig_mat=diag_(1.0 / invSig_vec) + Sig_est=zeros_(p,N) + x=floor_(linspace_(1,N,20)) + zeta_knots=zeros_(L,k,length_(x)) + for ii in arange_(1,length_(x)).reshape(-1): + inds_ii=matlabarray([arange_(max_(1,x[ii] - N / 10),min_(N,x[ii] + N / 10))]) + cov_est_ii=cov_(y[:,inds_ii].T) + 0 * ones_(p) + C=chol_(cov_est_ii).T + C_ii=C[:,1:k] + zeta_knots[:,:,ii]=numpy.linalg.solve(theta,C_ii) + Sig_est[:,ii]=diag_(C_ii * C_ii.T) + zeta_spline=spline_(x,zeta_knots) + zeta=ppval_([arange_(1,N)],zeta_spline) + return zeta,Sig_est +def sample_xi_init_(y=None,invSig_vec=None,psi=None,temp=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 4-[y,invSig_vec,psi,temp].count(None)+len(args) + + p,N=size_(y,nargout=2) + k,N=size_(psi,nargout=2) + invSigMat=invSig_vec[ones_(k,1),:] + xi=zeros_(k,N) + for nn in arange_(1,N).reshape(-1): + inds_nn=matlabarray([arange_(max_(1,nn - N / 10),min_(N,nn + N / 10))]) + cov_est_nn=cov_(y[:,inds_nn].T) + 0 * ones_(p) + C=chol_(cov_est_nn).T + C_nn=C[:,1:k] + theta_zeta_n=copy_(C_nn) + y_tilde_n=y[:,nn] - theta_zeta_n * psi[:,nn] + zeta_theta_invSig=theta_zeta_n.T.dot(invSigMat) + cholSig_xi_n_trans=numpy.linalg.solve(chol_(eye_(k) + zeta_theta_invSig * theta_zeta_n),eye_(k)) + m_xi_n=cholSig_xi_n_trans * (cholSig_xi_n_trans.T * (zeta_theta_invSig * y_tilde_n)) + xi[:,nn]=m_xi_n + temp * cholSig_xi_n_trans * randn_(k,1) + return xi +def normpdfln_(x=None,mu=None,Sigma=None,iSigma=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 4-[x,mu,Sigma,iSigma].count(None)+len(args) + + if nargin < 4: + q=size_(Sigma,1) + iSigma=numpy.linalg.solve(Sigma,eye_(q)) + logdet_iSigma=- 2 * sum_(log_(diag_(chol_(Sigma)))) + else: + logdet_iSigma=2 * sum_(log_(diag_(chol_(iSigma)))) + logp=0.5 * logdet_iSigma - 0.5 * (x - mu).T * (iSigma * (x - mu)) + return logp diff --git a/python/BNP_covreg_varinds.py b/python/BNP_covreg_varinds.py new file mode 100644 index 0000000..e90b37c --- /dev/null +++ b/python/BNP_covreg_varinds.py @@ -0,0 +1,324 @@ +# Autogenerated with SMOP version +# /usr/local/bin/smop BNP_covreg_varinds.m -o ../python/BNP_covreg_varinds.py + +from __future__ import division +try: + from runtime import * +except ImportError: + from smop.runtime import * + +def BNP_covreg_varinds_(y=None,prior_params=None,settings=None,restart=None,true_params=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 5-[y,prior_params,settings,restart,true_params].count(None)+len(args) + + p,N=size_(y,nargout=2) + if exist_(char('true_params'),char('var')): + cov_true_diag=zeros_(p,N) + for tt in arange_(1,N).reshape(-1): + cov_true_diag[:,tt]=diag_(true_params.cov_true(arange_(),arange_(),tt)) + if not exist_(char('restart'),char('var')): + restart=0 + sample_K_flag=settings.sample_K_flag + latent_mean=settings.latent_mean + inds_y=settings.inds_y + y[not inds_y]=0 + k=settings.k + L=settings.L + Niter=settings.Niter + trial=settings.trial + if not restart: + Stats[1:settings.saveEvery / settings.storeEvery]=struct_(char('zeta'),zeros_(L,k,N),char('psi'),zeros_(k,N),char('invSig_vec'),zeros_(1,p),char('theta'),zeros_(p,L),char('eta'),zeros_(k,N),char('phi'),zeros_(p,L),char('tau'),zeros_(1,L),char('K_ind'),0) + store_counter=1 + delta=zeros_(1,L) + delta[1]=gamrnd_(prior_params.hypers.a1,1) + delta[2:L]=gamrnd_(prior_params.hypers.a2 * ones_(1,L - 1),1) + tau=exp_(cumsum_(log_(delta))) + phi=gamrnd_(prior_params.hypers.a_phi * ones_(p,L),1) / prior_params.hypers.b_phi + theta=zeros_(p,L) + for pp in arange_(1,p).reshape(-1): + theta[pp,:]=chol_(diag_(1.0 / (phi[pp,:].dot(tau)))).T * randn_(L,1) + xi=randn_(k,N) + psi=zeros_(k,N) + eta=psi + xi + invSig_vec=gamrnd_(prior_params.sig.a_sig * ones_(1,p),1) / prior_params.sig.b_sig + if sample_K_flag == 1 or sample_K_flag == 2: + Pk=cumsum_(prior_params.K.c_prior) + K_ind=1 + sum_(Pk[end()] * rand_(1) > Pk) + else: + K_ind=1 + zeta=zeros_(L,k,N) + zeta=sample_zeta_(y,theta,eta,invSig_vec,zeta,prior_params.K.invK(arange_(),arange_(),K_ind),inds_y) + if not exist_(settings.saveDir,char('file')): + mkdir_(settings.saveDir) + if isfield_(settings,char('filename')): + settings_filename=strcat_(settings.saveDir,char('/'),settings.filename,char('_info4trial'),num2str_(trial)) + init_stats_filename=strcat_(settings.saveDir,char('/'),settings.filename,char('initialStats_trial'),num2str_(trial)) + else: + settings_filename=strcat_(settings.saveDir,char('/info4trial'),num2str_(trial)) + init_stats_filename=strcat_(settings.saveDir,char('/initialStats_trial'),num2str_(trial)) + if nargin > 4: + save_(settings_filename,char('y'),char('settings'),char('prior_params'),char('true_params')) + else: + save_(settings_filename,char('y'),char('settings'),char('prior_params')) + save_(init_stats_filename,char('zeta'),char('psi'),char('eta'),char('theta'),char('invSig_vec'),char('phi'),char('tau'),char('K_ind')) + num_iters=1 + nstart=1 + else: + load_([settings.saveDir,char('/BNP_covreg_stats'),char('iter'),num2str_(settings.lastIter),char('trial'),num2str_(settings.trial)]) + theta=Stats_(end()).theta + eta=Stats_(end()).eta + zeta=Stats_(end()).zeta + phi=Stats_(end()).phi + tau=Stats_(end()).tau + psi=Stats_(end()).psi + nstart=settings.lastIter + 1 + num_iters=1 + store_counter=1 + for nn in arange_(nstart,Niter).reshape(-1): + invSig_vec=sample_sig_(y,theta,eta,zeta,prior_params.sig,inds_y) + phi,tau=sample_hypers_(theta,phi,tau,prior_params.hypers,nargout=2) + theta=sample_theta_(y,eta,invSig_vec,zeta,phi,tau,inds_y) + if sample_K_flag == 1: + error_(char('need to code up K sampling for inds_y')) + else: + if sample_K_flag == 2: + error_(char('need to code up K sampling for inds_y')) + else: + K_ind=1 + if latent_mean: + psi=sample_psi_margxi_(y,theta,invSig_vec,zeta,psi,prior_params.K.invK(arange_(),arange_(),K_ind),inds_y) + else: + psi=zeros_(size_(xi)) + xi=sample_xi_(y,theta,invSig_vec,zeta,psi,inds_y) + eta=psi + xi + for ii in arange_(1,num_iters).reshape(-1): + zeta=sample_zeta_(y,theta,eta,invSig_vec,zeta,prior_params.K.invK(arange_(),arange_(),K_ind),inds_y) + num_iters=1 + if rem_(nn,settings.storeEvery) == 0 and nn >= settings.saveMin: + Stats[store_counter].zeta=zeta + Stats[store_counter].eta=eta + Stats[store_counter].theta=theta + Stats[store_counter].invSig_vec=invSig_vec + Stats[store_counter].psi=psi + Stats[store_counter].phi=phi + Stats[store_counter].tau=tau + Stats[store_counter].K_ind=K_ind + store_counter=store_counter + 1 + if rem_(nn,settings.saveEvery) == 0: + if isfield_(settings,char('filename')): + filename=strcat_(settings.saveDir,char('/'),settings.filename,char('iter'),num2str_(nn),char('trial'),num2str_(settings.trial)) + else: + filename=strcat_(settings.saveDir,char('/BNP_covreg_stats'),char('iter'),num2str_(nn),char('trial'),num2str_(settings.trial)) + save_(filename,char('Stats')) + store_counter=1 + if not rem_(nn,100): + display_([char('Iter: '),num2str_(nn),char(', K_ind: '),num2str_(K_ind)]) + if exist_(char('true_params'),char('var')): + cov_est=zeros_(p,N) + for tt in arange_(1,N).reshape(-1): + cov_est[:,tt]=diag_(theta * zeta[:,:,tt] * zeta[:,:,tt].T * theta.T + diag_(1.0 / invSig_vec)) + plot_(cov_true_diag.T,char('LineWidth'),2) + hold_(char('on')) + plot_(cov_est.T,char('--'),char('LineWidth'),2) + hold_(char('off')) + drawnow + return +def sample_zeta_(y=None,theta=None,eta=None,invSig_vec=None,zeta=None,invK=None,inds_y=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 7-[y,theta,eta,invSig_vec,zeta,invK,inds_y].count(None)+len(args) + + p,L=size_(theta,nargout=2) + k,N=size_(eta,nargout=2) + mu_tot=zeros_(p,N) + error_nn=zeros_(L,N) + for nn in arange_(1,N).reshape(-1): + mu_tot[:,nn]=theta * zeta[:,:,nn] * eta[:,nn] + error_nn[:,nn]=(theta ** 2).T * (invSig_vec.T.dot((1 - inds_y[:,nn]))) + numiter=1 + for nn in arange_(1,numiter).reshape(-1): + for ll in arange_(1,L).reshape(-1): + theta_ll=theta[:,ll] + for kk in randperm_(k).reshape(-1): + eta_kk=eta[kk,:] + zeta_ll_kk=squeeze_(zeta[ll,kk,:]).T + mu_tot=mu_tot - theta_ll[:,ones_(1,N)].dot(eta_kk[ones_(p,1),:]).dot(zeta_ll_kk[ones_(p,1),:]) + A_lk_invSig_A_lk=(eta[kk,:] ** 2).dot(((theta[:,ll] ** 2).T * invSig_vec.T - error_nn[ll,:])) + theta_tmp=theta[:,ll].T.dot(invSig_vec) + ytilde=(y - mu_tot).dot(inds_y) + theta_lk=eta[kk,:].T.dot((theta_tmp * ytilde).T) + cholSig_lk_trans=numpy.linalg.solve(chol_(invK + diag_(A_lk_invSig_A_lk)),eye_(N)) + m_lk=cholSig_lk_trans * (cholSig_lk_trans.T * theta_lk) + zeta[ll,kk,:]=m_lk + cholSig_lk_trans * randn_(N,1) + zeta_ll_kk=squeeze_(zeta[ll,kk,:]).T + mu_tot=mu_tot + theta_ll[:,ones_(1,N)].dot(eta_kk[ones_(p,1),:]).dot(zeta_ll_kk[ones_(p,1),:]) + return zeta +def sample_psi_margxi_(y=None,theta=None,invSig_vec=None,zeta=None,psi=None,invK=None,inds_y=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 7-[y,theta,invSig_vec,zeta,psi,invK,inds_y].count(None)+len(args) + + p,L=size_(theta,nargout=2) + k,N=size_(psi,nargout=2) + Sigma_0=diag_(1.0 / invSig_vec) + mu_tot=zeros_(p,N) + Omega=zeros_(p,k,N) + OmegaInvOmegaOmegaSigma0=zeros_(k,p,N) + for nn in arange_(1,N).reshape(-1): + Omega[inds_y[:,nn],:,nn]=theta[inds_y[:,nn],:] * zeta[:,:,nn] + temp=numpy.linalg.solve((Omega[inds_y[:,nn],:,nn] * Omega[inds_y[:,nn],:,nn].T + Sigma_0[inds_y[:,nn],inds_y[:,nn]]),eye_(sum_(inds_y[:,nn]))) + OmegaInvOmegaOmegaSigma0[:,inds_y[:,nn],nn]=Omega[inds_y[:,nn],:,nn].T * temp + mu_tot[:,nn]=Omega[:,:,nn] * psi[:,nn] + if sum_(sum_(mu_tot)) == 0: + numTotIters=50 + else: + numTotIters=5 + for numIter in arange_(1,numTotIters).reshape(-1): + for kk in randperm_(k).reshape(-1): + Omega_kk=squeeze_(Omega[:,kk,:]) + psi_kk=psi[kk,:] + mu_tot=mu_tot - Omega_kk.dot(psi_kk[ones_(p,1),:]) + theta_k=diag_(squeeze_(OmegaInvOmegaOmegaSigma0[kk,:,:]).T * (y - mu_tot)) + Ak_invSig_Ak=diag_(squeeze_(OmegaInvOmegaOmegaSigma0[kk,:,:]).T * Omega_kk) + cholSig_k_trans=numpy.linalg.solve(chol_(invK + diag_(Ak_invSig_Ak)),eye_(N)) + m_k=cholSig_k_trans * (cholSig_k_trans.T * theta_k) + psi[kk,:]=m_k + cholSig_k_trans * randn_(N,1) + psi_kk=psi[kk,:] + mu_tot=mu_tot + Omega_kk.dot(psi_kk[ones_(p,1),:]) + return psi +def sample_xi_(y=None,theta=None,invSig_vec=None,zeta=None,psi=None,inds_y=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 6-[y,theta,invSig_vec,zeta,psi,inds_y].count(None)+len(args) + + p,N=size_(y,nargout=2) + L,k=size_(zeta[:,:,1],nargout=2) + xi=zeros_(k,N) + for nn in arange_(1,N).reshape(-1): + theta_zeta_n=theta * zeta[:,:,nn] + y_tilde_n=y[:,nn] - theta_zeta_n * psi[:,nn] + invSigMat=invSig_vec.dot(inds_y[:,nn].T) + invSigMat=invSigMat[ones_(k,1),:] + zeta_theta_invSig=theta_zeta_n.T.dot(invSigMat) + cholSig_xi_n_trans=numpy.linalg.solve(chol_(eye_(k) + zeta_theta_invSig * theta_zeta_n),eye_(k)) + m_xi_n=cholSig_xi_n_trans * (cholSig_xi_n_trans.T * (zeta_theta_invSig * y_tilde_n)) + xi[:,nn]=m_xi_n + cholSig_xi_n_trans * randn_(k,1) + return xi +def sample_theta_(y=None,eta=None,invSig_vec=None,zeta=None,phi=None,tau=None,inds_y=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 7-[y,eta,invSig_vec,zeta,phi,tau,inds_y].count(None)+len(args) + + p,N=size_(y,nargout=2) + L=size_(zeta,1) + theta=zeros_(p,L) + eta_tilde=zeros_(L,N) + for nn in arange_(1,N).reshape(-1): + eta_tilde[:,nn]=zeta[:,:,nn] * eta[:,nn] + eta_tilde=eta_tilde.T + for pp in arange_(1,p).reshape(-1): + inds_y_p=inds_y[pp,:].T + eta_tilde_p=eta_tilde.dot(inds_y_p[:,ones_(1,L)]) + chol_Sig_theta_p_trans=numpy.linalg.solve(chol_(diag_(phi[pp,:].dot(tau)) + invSig_vec[pp] * (eta_tilde_p.T * eta_tilde_p)),eye_(L)) + m_theta_p=invSig_vec[pp] * (chol_Sig_theta_p_trans * chol_Sig_theta_p_trans.T) * (eta_tilde_p.T * y[pp,:].T) + theta[pp,:]=m_theta_p + chol_Sig_theta_p_trans * randn_(L,1) + return theta +def sample_sig_(y=None,theta=None,eta=None,zeta=None,prior_params=None,inds_y=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 6-[y,theta,eta,zeta,prior_params,inds_y].count(None)+len(args) + + p,N=size_(y,nargout=2) + a_sig=prior_params.a_sig + b_sig=prior_params.b_sig + inds_vec=matlabarray([arange_(1,N)]) + invSig_vec=zeros_(1,p) + for pp in arange_(1,p).reshape(-1): + sq_err=0 + for nn in inds_vec[inds_y[pp,:]].reshape(-1): + sq_err=sq_err + (y[pp,nn] - theta[pp,:] * zeta[:,:,nn] * eta[:,nn]) ** 2 + invSig_vec[pp]=gamrnd_(a_sig + 0.5 * sum_(inds_y[pp,:]),1) / (b_sig + 0.5 * sq_err) + return invSig_vec +def sample_hypers_(theta=None,phi=None,tau=None,prior_params=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 4-[theta,phi,tau,prior_params].count(None)+len(args) + + p,L=size_(theta,nargout=2) + a1=prior_params.a1 + a2=prior_params.a2 + a_phi=prior_params.a_phi + b_phi=prior_params.b_phi + a=matlabarray([a1,a2 * ones_(1,L - 1)]) + delta=exp_([log_(tau[1]),diff_(log_(tau))]) + for numIter in arange_(1,50).reshape(-1): + phi=gamrnd_((a_phi + 0.5) * ones_(p,L),1) / (b_phi + 0.5 * tau[ones_(1,p),:].dot((theta ** 2))) + sum_phi_theta=sum_(phi.dot((theta ** 2)),1) + for hh in arange_(1,L).reshape(-1): + tau_hh=exp_(cumsum_(log_(delta))).dot([zeros_(1,hh - 1),ones_(1,L - hh + 1) / delta[hh]]) + delta[hh]=gamrnd_(a[hh] + 0.5 * p * (L - hh + 1),1) / (1 + 0.5 * sum_(tau_hh.dot(sum_phi_theta))) + tau=exp_(cumsum_(log_(delta))) + return phi,tau +def sample_K_marg_zeta_(y=None,theta=None,eta=None,invSig_vec=None,prior_params=None,K_ind=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 6-[y,theta,eta,invSig_vec,prior_params,K_ind].count(None)+len(args) + + k,N=size_(eta,nargout=2) + p,L=size_(theta,nargout=2) + c_prior=prior_params.c_prior + K=prior_params.K + grid_size=length_(c_prior) + Pk=- Inf * ones_(1,grid_size) + nbhd=copy_(Inf) + nbhd_vec=matlabarray([arange_(max_(K_ind - nbhd,1),min_(K_ind + nbhd,grid_size))]) + tmp_mat_init=diag_(repmat_(1.0 / invSig_vec,1,N)) + if p < sqrt_(N): + for cc in nbhd_vec.reshape(-1): + Kc=K[:,:,cc] + tmp_mat=copy_(tmp_mat_init) + for ll in arange_(1,L).reshape(-1): + theta_ll=theta[:,ll] + for kk in arange_(1,k).reshape(-1): + eta_kk=eta[kk,:] + tmp_mat=tmp_mat + kron_((eta_kk * eta_kk.T).dot(Kc),theta_ll * theta_ll.T) + Pk[cc]=normpdfln_(y[:],zeros_(p * N,1),tmp_mat) + else: + for cc in nbhd_vec.reshape(-1): + Kc=K[:,:,cc] + Kc=sparse_(Kc) + tmp_mat=copy_(tmp_mat_init) + for ll in arange_(1,L).reshape(-1): + theta_ll=theta[:,ll] + for kk in arange_(1,k).reshape(-1): + eta_kk=eta[kk,:] + eta_mat_kk=diag_(eta_kk) + eta_theta_ll_kk=kron_(eta_mat_kk,theta_ll) + tmp_mat=tmp_mat + eta_theta_ll_kk * Kc * eta_theta_ll_kk.T + Pk[cc]=normpdfln_(y[:],zeros_(p * N,1),tmp_mat) + nbhd_mask=zeros_(1,length_(prior_params.c_prior)) + nbhd_mask[nbhd_vec]=1 + Pk=Pk + log_(prior_params.c_prior).dot(nbhd_mask) + Pk=cumsum_(exp_(Pk - max_(Pk))) + K_ind=1 + sum_(Pk[end()] * rand_(1) > Pk) + return K_ind +def sample_K_cond_zeta_(zeta=None,prior_params=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 2-[zeta,prior_params].count(None)+len(args) + + L,k,N=size_(zeta,nargout=3) + c_prior=prior_params.c_prior + invK=prior_params.invK + zeta_tmp=reshape_(zeta,[L * k,N]).T + Pk=zeros_(1,length_(c_prior)) + for ii in arange_(1,length_(c_prior)).reshape(-1): + Pk[ii]=- sum_(diag_(zeta_tmp.T * (invK[:,:,ii] * zeta_tmp))) + Pk=Pk - 0.5 * (L * k) * prior_params.logdetK + log_(prior_params.c_prior) + Pk=cumsum_(exp_(Pk - max_(Pk))) + K_ind=1 + sum_(Pk[end()] * rand_(1) > Pk) + return K_ind +def normpdfln_(x=None,mu=None,Sigma=None,iSigma=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 4-[x,mu,Sigma,iSigma].count(None)+len(args) + + if nargin < 4: + q=size_(Sigma,1) + iSigma=numpy.linalg.solve(Sigma,eye_(q)) + logdet_iSigma=- 2 * sum_(log_(diag_(chol_(Sigma)))) + else: + logdet_iSigma=2 * sum_(log_(diag_(chol_(iSigma)))) + logp=0.5 * logdet_iSigma - 0.5 * (x - mu).T * (iSigma * (x - mu)) + return logp diff --git a/python/__init__.py b/python/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/python/flu_US.mat b/python/flu_US.mat new file mode 100644 index 0000000000000000000000000000000000000000..3ade0147119eb6320f5d243c4e358e34d35e8829 GIT binary patch literal 166037 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 Vj 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 z zh=$#QBu9gT=XOP%mKrdG*UqKM!rWgu7^KkGx^RK+mj>n`o>iRv_`!&wAg zYHK#Tu4`Kyn@tH-Z&E}xZ4%qHmuR}9+VOKOCF{;V;G=m}6D)8=^dM)cBJU*Gw+1gt zM!g>q&6TV~VEjgk6Ta77s6E5IX{w zE^x1r)6h(XuM5KT8IjUyAas+Vl$jVc)G9|>SY>bEx;Z;X*1Yk9iBJ9jGA}&V7+9+2 zAt#gd(?l*ZQh%d;^Qx;1;R$iEsZ#?8So|ScxE#|2Z5D0lpzK%gsGo_X=2j{DXO^)h zmOfKhHf;QiB0sno^Jchirf-XyMdoy*sW3v{A#O4jJxsK)uNU>a*Nmd`+OywM;=~D^ zhT9VORuPxh?qIP%NtM7oX|sP_!mo6GQZ%Fr#>qLKncaCGy}IAK zlbv~nrp0lmo6FKLZ3$%2Wg%RpKvc&hj8Sfyqnp^L0I_saUE*~O_LF%d!0hj0gdEUF zqE#k@4-`AZziRY9i>yCM0 zXvddoVZ=cNmtd2x=Ejnn#dNWsc74sMSLGD3h{>_&BOp!qC=gpkU{;8Ex`Te?O#qUB z_~!i`bClq?&_Ft4jnNJ}tm+i>*3}3rWL7a`9UBB0aY?^^?Q6Lq%GF-~CQxVV;;p-;hHm zFWYt@b7CW@c|!@KW-*zpy>XiAuii$hdt3#~S6)SJHeR9_4y1|(>KqO1;B5OrcSTcy zMHhLHnaiYa?#huQug%cxsQElJ%Wl?RQf$;1dQIRtGNw-d5@G~Tcco~2Y3RmSl$CTN z?8aQb3kdN(>(<>0MKJ4Zb|%YUeksj*W1sqn$rF_z=A*o-#32n7w%y+Ac=@jaf$rwf z?#yLG8gs~?fi&j1Go+EmhG`=7tTVkr7OPOa0dl#bjQTeOhxxMI#;b;DK@m8L6&6vx z4d0)OHU=@pR;X~{WVSSv$`W$O^5Paz?`?qB?$WOL%O;qB{O-)qBBgtmiB)w2P&<5d z3$Qy6MRm)2(_#z>{_O5VbQzBO zZ$%7`Kam~a**K()z0gtzY%Ijh8QRgIWF`w>Jo}p-u>CqBHVddvL^_d#*I%fxJW5*{ z+{>sldY&K|e>0_40`rZg=#Xsly{^HJZL;D`ILjdmbizir`DWGJjPy{yk~&vuo!5tM zv0n%7Wm#EmM0e`#Dg;ZZZmaEK5t9|SL*EeX#p4Sr4!d?r4aycx#*s;9x*#{-di(tx zSCyh|Z$jBF-&V7$2Ryj6YN=|kM$mcUvDwn*&N`GV1eQZDZ&8VGdt%B2ts8m?8<)Sg zV~66+duWygxN}>V2G!b`{W-e)Z3-LNUGCcJa-82C1BNC$lBCS*E-fbl zGvcnybY1)XKKvOqmXzU{=c^%3zb$3>Swn&n{c~Gki~qJ1{u1gD+Ysymp&c1WY?FtT z1H;ZNvkibHwO2SnrlL zCk47B%5+(1Ix*{dCr_PxB3WH|8EwH*+Oe1try0jLsV$>goi)4akhiVLS(N_uTt0?( zT&P?t=2{k!ewu=40hP=pRgE)*!a(tIsm*s!|1#KWu4ti=J5eJPsYc8|gxVNYfxY5E zk8GZ3<3vxHz>M~^RU}P9w@r)=6>b<7KuaDbf0N!?okmJ?4oqdb&X}|Oca1qBo#$RV z{wi!X@Vr2lyqQ>a1PEH%5O9+P3jFf95oxe%-wjNQLZ_66EUh1&!9Ew8+m%1U9pFAo z+V+-%a+?F=@e7A%RVlw{rN-evTw@?4&N~&qg@hV7Qu|CMc-+1Vwo=tb$~RclV^K9%Bw%T6ckvTXe~HC3>RK3`et~e=@M#Kr zAv3dm9OJI&=KoDJ>JXtqX2x*H>zWifKm z+q(S5q$%$1sE<_}W~gHW85I|~YMs_=&{3I3%g=B7i${-CL`=(P4|+`E`Z|;5+620@ zW!66|nL9B0GHW~M+&7koWM>T<+DD~X?NhBSTS`E2i_TuHaEmg~Ey%{cmROASTL%lq zIpRXu_{Zk#;)txc_2}~hKDu8v;-P7j0tcRZBviyB(@|=6KZZYeE<<)%b)fCaGDT1$ zc>5ahHRFp`ADU2DwnN-QU4OJra46Q`v__sNq6zNU6u=R5-eq5z#dv%kR&MUuqXkry z{v|x=ipr$w35_Kev&Ikib#JE;Wzk;;N1oLnsK%rgeondRB4#ho9FA{x0f^MnsYF}W zg6Gy=s`US>q0~Z*jGV2PfZ~M8S&eR z=O}LJ)cKU3w-Mq@{TT!@^ zS~mtQScQ9yOSPzvZps>%JEkGHh16B+*+Vzu4c*P?n1bNEO_ae^`rSx2lE!|up1!2L z+^Y$m&y{_&A|}M1U31}_NJqVFMgv<%WI_s!Zv22@IeBhV4d69cryhp~2Kr8!5n#A( z?xI8kd**@3`a8Z`ff!5QNqLzOIo^{46@FrCWc5JwLW7tc`#xy6$s=X^vv9c7 zTzcSAOvz`|PlW6o1Ct1Bf|pwrzX`5{4MzyoV+dok=72 ze#>+8<79c(XEmw97u*Hl_!Ck{D4MdKt2YpzzwY*$9x4}NN7ow{erz{~QDS_ElVg4c zwk`(b-lshNf`PN>J@#T`>1-X#Oj&B7-gWjzM$>Z}#cF4gokiD?f!AV4M|ZUMjh!;I z1-&D5-PJN|w(B^?aNCsSg`l=>xSNJEoSCwn7&M5@%VO@K-w+sDeeeI2{h5W{MG#nr z3h=j8uliQt(q((ewvmytPV9+^EK&ITs2v}i`9 z3~oWFcJxVI66^x`5-}!_Z4@UX^vi4;Dl&P!I@H9v5OSw;%f#rhRvfY@;oF$+KPEay;AimPxsfJT zuFdB$W{sdYgydcNzk}-#e4X!#ceRNtihayUI|TsDqf)(E<$lw9DE zEOc+keVUna*?$1)i2OXMy2_J7iJyoA|b?8V z*eoi)xudVtwJ<`LnN-E&#EHOT3f63$6A-UwXVIw+`ccP3Ii&OL#S6Rl~yN@}T zlq_}0Ca~$YcxU&2mSem}szdnxdW zOYZjgT6fI!5Bs)dWSkd5oa3akEZCK;$yV6OJlvHyaT;dOM$g#xXQ`QGZ ztDKrQwZm`lyG`z9V%I^~nHa(c9Y1zJPNYG*RW>7fTsc)%e}h!%rjx(7YP{+h)OZ>3 zQhl88%!GRL+V2*d{1xFeA3S;3J)UBatoz)3^R{>c$|L+I{E$ssn{8-|URcIXUa=%z zx!kW{WN09=+3)^)=aemlRYKjpZHE*(NyY59PU3*i1}zbepwteb;$gkv^j8*xz=dl_ zNxt*ZNytXvkV>qK_7iqyE1tTWrT~BD!FR5XLWLx7q97{I)YUp`pQ<~u{WHF{LC#Gp z(MsFmLXJ^1ywVPo$48d$!`1r>xi?hM)MxJELfcA6^DW51m2*+90&_!Va}BW@c5{sQ z4Oyn_ohGX_$jKK1-dV^tw(ekMaxP@4eP7gZA9{W;Y^|Q3q9H^d(Bcrf<+OEc7jKos zVYs)qY4in7n|0fC-1J)%U-&fUB&nJMd}zZ@Jjc|!dm?thTg?^(-3Vi0TN zR2;r8E_cW^x5?!lSMNlvL6_ok#zfflZQIovpS4$WB{9p%t~Jd{67E*B$^t$JyDqmY zS%-hP%5K_cFjaR=sPIy}c|zZ=vNX;JWa+hRit#=AHEA?UjCxKC))T0Rwr*RZ-}}l;E{(gQ zeF>_-Z!vlU^lJQO;)G78`^7YM+Vk12Ypbeq{(-KWBS*Hx6)9?}%~PWEl2Wqr#=&6Y zBew`Q;@j&n7jx=KEIos=5%;&OYs?yPi$uC^7O-sk8rdv{q15AR64l`$FzG~^7pY5i zRdnLkua1P-%iX4&u8tv!Ejet)uy;F=3ejgSxusTN=dp*e7Mq(kGiKzgnGwBSIB6ID z97_KTfjmCcmTDFNq7I@YQ}Zp}MN}0F7|nPm6V;f`UQJbl9}A(oX92Ub#-O>1LJl6w zgYD{{k*e+XM?TxUnXKV_@>@NHxG?Xqcq`VY%q$843x?FTN4&!Lk_rsY9&(+zYq=Fy z&UR%9ecJH^qG9%?xq$kkGRC3=!i5D6kpffLZ;DnUUq#&mm1gjgf56**_`>sjd3L^T zm!l#untGtz!k^p7vK^tVq2}tRCR)oU3~PDFZ$TRv%9@yv!fM-E}I^qXZVUb|glx04@zel_}b1Xll>A`k`75)Zn7-ktLc~3_A zuFExc&=E{y`!+1OSTGu}r&H>+#=cX$b_ z4-SZvEd_Q|NCV~|UjDtMt-P@5iS)ZkOxY-*-P{onKaO!E712f`rgGk=q-y;-w{i}) z{Jv!7W|;MR?+XS6h%LKe?Y+Uj!l}(mAj20bHL^>Mw}>}>`IB5qp7Dz;zdf8oNx6;C z|3t$c+mdO?b1t>;Dc7Ak9$0y4CoB_EmsXciA|~jdB}84{;)Zf2fGxzhE|lL;@Ct{XL7; zbp!?8?IGPoJ=8CBHB~>h<+i4qyda+#U;jl-7tP-}Pi_OBIOi{#o0{+GAYcX;l`49E zD`&tTQx~!n1rO}o-7>X7YtDCYYap&hHiPnrTChB-85uVKefvA3vmDabcagt#jvXiM zoEdh>pk&yJCfDh3hwsqInfxjxa?Ak%Tbk@-Z{lS?1j3(~-ex(%3+V^;R8Nl-|>E|6TZMdZJJ@L)I)i z(sayfoBpQpQV%OHc#vBM(yZ^6?dJubs^lM&6?MOJ z8>XF+jrx*5qZ`4_lbr4N;J~p4+4cB1O7Kx9Q4@8H3zz* zm6J^R<@F>)N6d2kBP;_mfo zU(^OMHIQ9jD1Dn^&tE~8eYgz_uP zO})Fe+-BuzMESgo6TA^No`CUdIUjsM%Ku~dFgWp_91MenT;KjAe{gU^!~R|#SDJOr zhDVFzOR{1oX>ezXz~~7F@iXniXu^Gxhc@2F2@vV=^#i7ace- zLD!xqAq?{X(GZhE28g}612I@)e_@BU@0cNJ@Af+3Xp%X zN^r-nt;L1&=q#w@3oy^R&v}!>-N;>x4J=%uP3t1gSbBKx9DdFycvDl_EJT@ic)p!o z*)xZq5u~Z;UtYE5e;J)*){j^Yyj*U@|C0QiXYm3M5Z100IjVX9AsWBtvuW3kG`UGY zzK8w7Df7P|x92qz4{MuI?ZvAahe1Hj8~}y>+%kT9%0>( zzK!s+fm5C`ec+S?o;kO`$G;o&yCKa9&{O;sK%(Kj%Okd^i;(}aTsJ+sV^g8+u0}iwcwutLy~(!JD!9n)R!|)PLIq8nv}sT zx2ykLFCn1_Jn+YL=C6929KUiF@1F^GrCC-Fc(epB%3QwC-8y${cPKqVX(fnj_Ys6X zKd8OmOGEZm+~;!H73f!W>n=qQ7=(eD>_8ZiD2$vOi=K_3?8qPxI}Lij&|1=qg1o~Y z#ags1OmjK{=I-e|HwyQSGoqJ-Uc`;=84A^T7NTVW)qg&na6YFeV8cAXFYRJNED4=` z9(}Y&jwsL2mPhdayTQGWH2BYvtzhEH=@w6wN8hx&oOy(yI9d35dVe~oMPa>5-*PT( z{|GrImUN^Dr_Z|>iZzYOJuz!Xls5_GpBb6TVTE+a@@}B#{%R@*nnpgZ>^D%eE&u*P zUH?4Fx!&Oz-D_}1JOmUsDKHrAunN5Bq%0)x4tLQ)=3!AL;V*eM@H06Bxxg)S_0LmW z>w&lI=b3k$7f5Bg?)^_I`@6v%X{rUP=#>rpel-E_ZEH7qiHmPsfT^1WA$C%B5mjOTF1yY7cMk`N`Oi8oOUOjalrHYM2O-NtH zMgDzth@YDGL5~RJhuGv7oJv#C+c%kJ`X>|P7zz>a)Ld@atIC6Inu2Ch_b)8kG8K8l zGdqb78C=x!UlA)?F=xm11kPR_Sz+SW?Q8^extDP}Rwi@iux>gPCQI~T)6;}^1p*E@ zW$NL=fxxgh;gspQ-hi7bde)wLPv#!Hu`NFxV`mFKwB%!Ito8{xDcz&Y|FXpSeEpH1 za)B>)e%eRI313zZ%y+r6JRoMiJOCDqAD27X#mVXOL^S;&$<=?6q|cJa^yo#y{A21d zpy9!R#k|};_N8yR; zsRe%uz~sR{Fd6v=CM!TCsR3YO55QyvNj6y-0|O>|yJiOdA;&j2Z|U18@)%IhpN*4~ z0kB{l5ui!t$sqWtkbfPL=|CRVe*jOE2RCf?ZvGC$My-nTjz_2PEH`0I7igE}iUS`T zh4Oz$>iHj(%#D~XHvu;)@I4ZZ0-lA_?`Ho@q$_pq!e{6KF04^yaSQ-Rp|mIG{vWFR z;o`q8E;`)XGMHxX{>SHB1AGqOMZ5b}ixwnvzBi4Ik2q0WJ9|mup3y^&mh05pzmv~; zA#|Ho8SDkx+W`j?3X43^MW#8M5Kx#+W+Ze=U#{(8grKw>?Y7=ML87M~=YB9&ON}6i zL|IA4hSZzosI>GD6be+~poH?d^Jun`-oHWOZAuKDyJjYR5vRpBJfAdO%E4d3di8Vg zLS4*g3u%jm;Gh=_$iG}RkpG_mLe9z~_RWnv{^Old>`W~HAFe#zP1&*i2=8*)IIq7S zk&^{F_x86lkas2Co~9ntApgJwMustePbhHh8Yu62xxD0$FOC8l_TPT_`Sy>lCDz#= zU=|u6Nv_`c@`)S{`@p8%MX@08mp?^=dj=HR{}50fpqo6J-xKkiXL;oNA|=-rv;r{j z@o!cB7ty)^0s-9o3xSWJl1r}>{u_eFf>3(rS0@4Hzlb*5IXbkdw0fm|*Z-Us{^*ub zp!DpTUS@$h6c)gMA(>kBf4rs=&K__{PSOAh!3PjG|6K1>Q%0h86ffSb<}_Qe*Uzrn@@=jz+GI@kOqBlM~9T4iu0d z9$fTZXC^95SSe~xoz5HveoOWHJ~tmuWh z^121uLbXlk7##4xX~D0$<%EiGdx2Je6&1`sOwNhjFu2wUG)w@y>2pwgT2~`DERA z?B?gXN>#uBbgnYeVnc$9dg`o3|Ty68zPk_ZY0bs(GQ{@aF1>GfU!Z#u%6|qS za17|T0C1Fdy_)xLqYVK2Jt@Gmgj|#UgPnmZMk-qTYdP(J_nXr1sQ|?7e=t~$IPwn< ztAXZrunOmcY7E)=zplyubxr=SYw~|xlmG9oN$Ymr!#@}~dEoCsuD3%$lDbFZdah;^ zS-&f?9&x!;RsTu5?dr>Ok473i6WSz2jUHR)WN+QMcI&WHV!G(W#sTJKXrpY4XP4x6 z`RaS6mF7Xs#>~(Ss~FxIrxgOO=9df`DmGE}iy7Lm%ynq?{sn#5WwuLy6fSZ@Y=LY1 zZR<;z2=|!?yaeLk22E%ZJ^G`4r(StA+c%KRsl2^6_l3t3K35a&cTsGnXxE06w8;g2 zH)?q4wjnvfIQHOx!?N5-b{-t}9MkX|@nkR`8p8hdTzBVqz}A&hEw^`I_hqenKE@<& z^vvdo!2Lxu_E;Z!qyF47vid}Pux$zYfqx>m1xPPC^32o6bWSD4%V|yy*ZUMp+11;6 z97ZEQhg*Dn_hpUwuuw9YF%O>r(njolTdFCiMZ9{s$gE2)=|F4{ba_dm(kR|`(xAj% z#AKCUq~lnw8g#79;b!Av_X=+tPx zN*XU<5dFicGsAn7hjfiMoBRV;-GiJoRjo|gK`e=k_XZo@(z>ZebJ24+RYNgqmy|o9 zraARc_k|tG)6ddsni08qnnpK09zA7th!57cS8M8^hy10w=3{~RiRsp7@}zN))VDSt z2TQN2Y&Yt=^-6cuJcnbHIV!67jl!_#%lkrlKggrH-GXnZ^f*6EF<7i2-x0+1^pGNN z(DV_Y%5Csz&cGd1c*5_Imkv4v_indC!H;yb2sd-3J+La{ohr&)iW*x?l>4j$ZoMTr zX`ugYi@!eC4uTb=brBC&rbOwUO?B^aOCCsw?zU(WW=~qIbXBTw-*&+7QQ>WYd`lmE z7tWf7@dm@w9@5UR3)R?2QEqVuSB9p`%s+QU4nf_D3yF-~OlaKW`z4-c*dCS)Pt)DB z)1iQDGX+A2+ka1dil($@Se;g{tV6jS6E{!Qnl?EI@-s?eNXe6Dd2$6q$40Na#Kdg+1avR%xmwR! znl%tJXWjUI0@-(D&dwt3G`3KOn0%^P=}~7r{*JvVlE=K}MP~kOn^NrBzGmUBVmq z8d^I4yVKG=&q}}ktKU~DtU97d?vY8>@wWQbo!+BRLRE7Px!!!Qr1h0zTcm^7{@@ut z0*LTdV0%LXEvsYE*GsPd9>A|KQ2|+J;%Bm8A^R8kbR`Wdr*f<)k`-$>OKanr);b;fnbqVFyd*3dfYrqz=8vn{7943vPs0%z8e7AUxVqAP(xklZz zg~9j11ers5nHDS~K>K(kv+baqgY&^2F^C72ZNF6}I;xa@Pi@we;7baqd9i3Q1q{ym$i3ZFPchR;2vCOj&gZuofelZlaLQ%(a|JHwHSrdK}ntXAFx257_ z(25n#Z8&Jc$Di+!dQUQH$jZW1mAB1%@8~-dV6Wywo+*@mss8K2d(oZq*SO&8kwF0g zYsq7ZPW}yu1zOPrQi5Yy^jtB4d7@tY<0L`A2U@UM&Ej@VQYbXH&4_!5R6SJ9QH!1r zcNqb0TYC2pvVE+qH^J+F5xvrAmGdV~s$%yX&rA-!RcOv^-z@6VR?Y1@{8{Gx>F#(M zx(o0VdtIthZtSD!ZyF$I98uez!%Et=ua$qM2~b?qytfv0_ZD0Z8vhcrM@!#&Clb4T z{ObOvWpn*gU+zP{>*Ur@!d7?WAw433e5;0uMa5DjRBzA-54Py{@QF zIx#*#I9l*2^Lo!4ksPA5-j~pNffHH5E$x;;Xw-6&2GKmtYilutM|t_AP-qs@%-QLS zHpO6hqborp8*%uQ)1GWTYP_9=*d4r;3y*|S!^TLu9ZvtCk5FJ_0quzBMKJTbYd_N>W&3Ug&^q2w>Iv-^3S$56QHo~>hzT&|HX~DD+y4Siy z&GEtI6L0gL(y3ZqGC@mk)sC}Wyn3>~e<@ZwUZCFk$WXWDCRYtyBc-89NPko)syupVhg|DkvXd6;^4y9T3$f(+u?tg=bVyw!+wCdlb zc`cov;5J0UR&m^1w2|0)c)a5s7&>HZ<$&Mi-8COCZY#y2*>cq6=P@<3*%^x;(SARE zyqom!T#{;<=e)m9^Qw zRG2l>!=gcjGbbpiBGl&H>B)QUzMCxU$Vn41)Lh+eUV~b|NP#Bfb$U%d@>|QVIl0vN zTRhL;cQSX4f`O;E9=TrMq@2)VUQ#|NG0^h?o!%(f8pu@Ya^fCV`OVdLel6w046{18 zAgwq$o*VhYg%R|d;46RsJ3VVZ_U29b8GT{W5@*!shTJ<%&Y^b)hhB32a+rLd_eU_v z{7W#o2LBOEi&vX}eOR=3w{Yg&ck^6{doQbfvhgBj(qk1ZL=!v{bg_OKb+3-PIHrKdN~zXcGDMAHo7`Jz&qajxy(I0i39J5{;}$1C~MhW zS8Uu#;Fh~~Ojgd2xbWx{I&=v1<`_}a<)eG1me;C(--f!PMg=(n=?`T13K6eDJ@ksqw<61uDQwyN)1EWuFn6hPb;EYk z?ubV>%=Xu^DNfWM0xB;)9i#~r6~C|)Cs5;qj^*Ey16Gw2>V@D)(a*taqh(c2_MF+( zfVUbmKZoxcLmqY5VM;_>OD{FU7+Ci`7lOLBzXV>)&pg?khyq*O=4eRjct8jvvazMgW1gAohK(S3Blbp(|y0@A=^R6U<#h09n_J{oZM5!!9BB; zBH*38;mFo^`6A4s!sb7Gw6ZyL&%B4V?F|y@b%^Jj?nqIjm7|&$?38!9;O!sJ_HFRZ zjdE7nB$OVsI^OT*an-*|Gq{oD{1&G}Txj&0eFcc53^_?`5* z-#^3c-HM9uHdc$Ur|qPy)M(;v3ez5q{uEk(#5{srU*rC4h2N#RJF;sZqK3+t{qgLU^?e}t8QbXPtWeHJP7#W0Iy zac3lH+roK!K#dce#8p`U0~+ZXppiIlLL%b z9>u)xjL~n90fCnLLQ={arg-Mr>)qRXKK*vxJZUJlm*p}L(VMxq`(tX}tsE6!tORcH zWsUi}ch)yWLJS6fUk*L6zVMXE=Rai_Xc@Y++wg|ZK||7wX8bFU!}{husNx&%`I(x9 zRe|#cdPg7^RM5V&K$*Jx3;LE`eTyPuCsg9)9j&I6@8rG+cRfNpADg`R_^Y$)o2845 zW_Ke-4bI!}m%fdOb0z1ypq{Gd0_{6IA-{c!-Guf>vFQ<>+hzgz78nZ_$|!qq$!>c20#9z zk-Qj@yEHM*gC*(6xuYR}Yow1}WyvSc;~9Lf^oc%bE0d4ph%B|5M(H=)x?h%`L(
RaRiWoI(yPvijVS3h ztXV=oZeO@xe%-XfZ8VsZ)qE=-&`7T2;t(!*Jt-wO+(z|x$xV0m(egxjf6!0f{=F#s zL+Hg&|7D7s5%acGQ%3CBb7`Fn(7)u;BmaqWf?eAAQgMD(a!;B?HqdgOsjL@gD<5{d zeQ7ju7E2PeMk~#qBQ#rF!|r}^|3uL4{jvVAIztXO`~%!jU!RdXRwWF?$fm&GZ#r;& zF_}9ih=B5xqm-(jO30m)Wf-5GWE%0Y7oG7IlDw!#1P9;`>ro6+Uw)asdOPg9Uc8#Y zoy#s7yhaV{AAi3$5bS+&K~G~}j+m>xCgu`RRt;qWO{*LGJr0 zn~%Ne4DY=Ky_Vxumcnbt1c;Hd*;)#MTQ9YfRAsy9HzpgIPLjPf^A-hW_g zMzXRwV3an+ifLO2|i^g(OrPT!YD%n)$_Ul8klVIn1zlj=NcSuT07WL@Jrn6%4q`H^UCr9bPuW z(@xD7U3z4zZwqm6bg1yrNloY?vraOSFA0lpnPeln2B;^yc!J)&l{s#LDxO>Mn|u&| zg_IOPn9Me?%yK9EZJ-o?O_O8Y0euV~uFwHj^2S%Zi%Q5AxJgH;O=!{5W(v*_yxas$6CLdm}0V2tIkNrF2f{$}upLuSD zv#Sn5Et+Kl@aVrqQVY!1z@^b&1rSLF=B~UP@HD-wyqHCQbrf27kJ(d&~}@X6B= z(CY=~xX*+s+?S7*a;t+I6wQONFQS%POdj}M(C2V<1e2#NuI~2MkP=+Xk=TH87moSx Ue;4QOdlXB$4Ek$qEBE661H7P(&;S4c literal 0 HcmV?d00001 diff --git a/python/runstuff_BNPcovreg.py b/python/runstuff_BNPcovreg.py new file mode 100644 index 0000000..f512e9d --- /dev/null +++ b/python/runstuff_BNPcovreg.py @@ -0,0 +1,74 @@ +# Autogenerated with SMOP version +# /usr/local/bin/smop runstuff_BNPcovreg.m -o ../python/runstuff_BNPcovreg.py + +from __future__ import division +try: + from runtime import * +except ImportError: + from smop.runtime import * + +load(char('simData')) +p,N=size(y,nargout=2) +inds_y=ones(size(y)) +inds_y=inds_y > 0 +x=[arange_(1,N)] / N +c=10 +d=1 +r=1e-05 +K=zeros(N) +for ii in arange_(1,N).reshape(-1): + for jj in arange_(1,N).reshape(-1): + dist_ii_jj=_abs(x(ii) - x(jj)) + K[ii,jj]=d * exp(- c * (dist_ii_jj ** 2)) +K=K + diag(r * ones(1,N)) +invK=inv(K) +logdetK=2 * _sum(log(diag(chol(K)))) +prior_params.K.c_prior=1 +prior_params.K.invK=invK +prior_params.K.K=K +prior_params.K.logdetK=logdetK +prior_params.sig.a_sig=1 +prior_params.sig.b_sig=0.1 +prior_params.hypers.a_phi=1.5 +prior_params.hypers.b_phi=1.5 +prior_params.hypers.a1=2 +prior_params.hypers.a2=2 +settings.L=5 +settings.k=4 +settings.Niter=10000 +settings.saveEvery=100 +settings.storeEvery=10 +settings.saveMin=1 +settings.saveDir=char('test') +settings.trial=1 +settings.sample_K_flag=3 +settings.latent_mean=1 +settings.inds_y=inds_y +restart=0 +if restart: + settings.lastIter=10000 +BNP_covreg_varinds(y,prior_params,settings,restart,true_params) +c=10 +d=1 +r=1e-05 +c_vec=copy_(c) +Nc=length(c_vec) +invK=zeros(N,N,Nc) +K=zeros(N,N,Nc) +logdetK=zeros(1,Nc) +for kk in arange_(1,Nc).reshape(-1): + K_tmp=zeros(N,N) + for ii in arange_(1,N).reshape(-1): + for jj in arange_(1,N).reshape(-1): + dist_ii_jj=_abs(x(ii) - x(jj)) + K_tmp[ii,jj]=d * exp(- c_vec(kk) * (dist_ii_jj ** 2)) + K_tmp=K_tmp + diag(r * ones(1,N)) + K[arange_(),arange_(),kk]=K_tmp + invK[arange_(),arange_(),kk]=inv(K_tmp) + logdetK[kk]=2 * _sum(log(diag(chol(K_tmp)))) +prior_params.K.c_prior=ones(1,Nc) / Nc +prior_params.K.invK=invK +prior_params.K.K=K +prior_params.K.logdetK=logdetK +settings.sample_K_flag=1 +settings.sample_K_flag=2 diff --git a/python/runstuff_varinds_flu.py b/python/runstuff_varinds_flu.py new file mode 100644 index 0000000..f3771de --- /dev/null +++ b/python/runstuff_varinds_flu.py @@ -0,0 +1,92 @@ +# Autogenerated with SMOP version +# /usr/local/bin/smop runstuff_varinds_flu.m -o ../python/runstuff_varinds_flu.py + +from __future__ import division +try: + from runtime import * +except ImportError: + from smop.runtime import * + +import os +import numpy as np +from numpy import diagonal +from numpy.linalg import inv, cholesky as chol +from .BNP_covreg_varinds import BNP_covreg_varinds_ + +FILE_DIR = os.path.dirname( os.path.abspath(__file__) ) +data = load_(open(os.path.join( FILE_DIR, 'flu_US.mat' ))) + +month_names=[ 'January','February','March', + 'April','May','June','July','August','September','October','November','December' ] + +flu = data['data'].T + +for ii in xrange(size_(flu,1)): + start_date_ii = 0 + for tt in xrange(size_(flu,2)): + if np.isnan(flu[ii,tt]): + start_date_ii += 1 + flu[ii,0:start_date_ii] = 0 + +q,T=size_(flu,nargout=2) + +# normalize the flu data +flu_norms = np.sqrt( np.max(flu, axis=1) ) +flu /= flu_norms[:, np.newaxis] +y = flu * 1.75 # why? + +# Start only after date where there is data for all y vecs +tmp = np.cumsum(np.sum(y,axis=-1), axis=-1) +tmp = np.where(tmp == 0)[0] +if np.any(tmp): + start_time = tmp[-1] + 1 + y = y[:][ start_time:-1 ] + +# Boolean vector containing True for all +# y vectors that have a value greater than zero +inds_y = np.ones(y.shape) +inds_y[np.where(y == 0)[0]] = 0 +inds_y = inds_y > 0 + +p,N = y.shape +x = np.arange(1, N+1) / N +c=100 +d=1 +r=1e-05 +K=np.zeros((N,N)) + +for ii in xrange(N): + for jj in xrange(N): + dist_ii_jj = np.abs(x[ii] - x[jj]) + K[ii,jj] = d * np.exp(- c * (dist_ii_jj ** 2)) + +K = K + diagonal(r * np.ones((1,N))) +print diagonal(K) +invK = inv(K) +logdetK=2 * np.sum(np.log(diagonal( chol(K)))) + +prior_params.K.c_prior=1 +prior_params.K.invK=invK +prior_params.K.K=K +prior_params.K.logdetK=logdetK +prior_params.sig.a_sig=1 +prior_params.sig.b_sig=0.1 +prior_params.hypers.a_phi=1.5 +prior_params.hypers.b_phi=1.5 +prior_params.hypers.a1=10 +prior_params.hypers.a2=10 + +settings.L=10 +settings.k=20 +settings.Niter=10000 +settings.saveEvery=100 +settings.storeEvery=10 +settings.saveMin=1 +settings.saveDir=char('flu') +settings.trial=1 +settings.init2truth=0 +settings.sample_K_flag=3 +settings.latent_mean=1 +settings.inds_y=inds_y + +BNP_covreg_varinds_(y,prior_params,settings,0) diff --git a/python/simData.mat b/python/simData.mat new file mode 100644 index 0000000000000000000000000000000000000000..6871d46962105ae5a579d4d9dd9ff7391d20c320 GIT binary patch literal 93355 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%0D3v>^6QZ?w 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

or1N)X%Kjbz@GA%^^Q2SM?^v+?;u) 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 literal 0 HcmV?d00001 diff --git a/python/utilities/SIMplots.py b/python/utilities/SIMplots.py new file mode 100644 index 0000000..8c8537f --- /dev/null +++ b/python/utilities/SIMplots.py @@ -0,0 +1,143 @@ +# Autogenerated with SMOP version +# /usr/local/bin/smop SIMplots.m -o ../../python/utilities/SIMplots.py + +from __future__ import division +try: + from runtime import * +except ImportError: + from smop.runtime import * + +latent_mean=settings.latent_mean +inds2impute=settings.inds2impute +sampleEvery=copy_(storeEvery) +var_mean=zeros(p,p,N) +var_var=zeros(p,p,N) +var_u=zeros(p,p,N) +var_l=zeros(p,p,N) +mu_mean=zeros(p,N) +mu_var=zeros(p,N) +mu_u=zeros(p,N) +mu_l=zeros(p,N) +cov_true=true_params.cov_true +mu_true=true_params.mu +for tt in arange_(1,N).reshape(-1): + theta_zeta_tt=zeros(p,k,(Niter - Nburn) / sampleEvery) + var_tt=zeros(p,p,(Niter - Nburn) / sampleEvery) + mu_tt=zeros(p,(Niter - Nburn) / sampleEvery) + m=1 + for nn in arange_(Nburn + 1,Niter,sampleEvery).reshape(-1): + n=nn + saveEvery - 1 + if rem(n,saveEvery) == 0 and n <= Niter: + filename=[saveDir,char('/BNP_covreg_statsiter'),num2str(n),char('trial'),num2str(trial),char('.mat')] + load(filename) + store_count=1 + theta_zeta_tt[arange_(),arange_(),m]=Stats(store_count).theta * Stats(store_count).zeta(arange_(),arange_(),tt) + var_tt[arange_(),arange_(),m]=Stats(store_count).theta * Stats(store_count).zeta(arange_(),arange_(),tt) * Stats(store_count).zeta(arange_(),arange_(),tt).T * Stats(store_count).theta.T + diag(1.0 / Stats(store_count).invSig_vec) + mu_tt[arange_(),m]=Stats(store_count).theta * Stats(store_count).zeta(arange_(),arange_(),tt) * Stats(store_count).psi(arange_(),tt) + m=m + 1 + store_count=store_count + 1 + var_mean[arange_(),arange_(),tt]=mean(var_tt,3) + var_var[arange_(),arange_(),tt]=var(var_tt,0,3) + mu_mean[arange_(),tt]=mean(mu_tt,2) + mu_var[arange_(),tt]=var(mu_tt,0,2) + for pp in arange_(1,p).reshape(-1): + for jj in arange_(pp,p).reshape(-1): + var_u(pp,jj,tt),var_l(pp,jj,tt)=calculate_hpd(var_tt(pp,jj,arange_()),0.95,nargout=2) + if latent_mean: + mu_u(pp,tt),mu_l(pp,tt)=calculate_hpd(mu_tt(pp,arange_()),0.95,nargout=2) + if not rem(tt,100): + display(num2str(tt)) +LineWidth=1.5 +fs=20 +figure +for pp in arange_(1,p).reshape(-1): + for jj in arange_(pp,p).reshape(-1): + plot(squeeze(var_mean(pp,jj,arange_())),char('LineWidth'),LineWidth) + hold(char('all')) +xlim([0,N]) +ylabel(char('Variance/Covariance'),char('FontSize'),fs) +xlabel(char('Time'),char('FontSize'),fs) +_set(gca,char('FontSize'),16) +ylim([- 2,2]) +title(char('BNP Covariance Regression'),char('Fontsize'),20) +figure +for pp in arange_(1,p).reshape(-1): + for jj in arange_(pp,p).reshape(-1): + plot(squeeze(true_params.cov_true(pp,jj,arange_())),char('LineWidth'),LineWidth) + hold(char('all')) +xlim([0,N]) +ylabel(char('Variance/Covariance'),char('FontSize'),fs) +xlabel(char('Time'),char('FontSize'),fs) +_set(gca,char('FontSize'),16) +ylim([- 2,2]) +title(char('Truth'),char('FontSize'),20) +LineWidth=1.5 +figure +for pp in arange_(1,p).reshape(-1): + plot(mu_mean(pp,arange_()),char('LineWidth'),LineWidth) + hold(char('all')) +xlim([0,N]) +ylabel(char('Mean'),char('FontSize'),fs) +xlabel(char('Time'),char('FontSize'),fs) +_set(gca,char('FontSize'),16) +title(char('BNP Covariance Regression'),char('Fontsize'),20) +figure +for pp in arange_(1,p).reshape(-1): + plot(true_params.mu(pp,arange_()),char('LineWidth'),LineWidth) + hold(char('all')) +xlim([0,N]) +ylabel(char('Mean'),char('FontSize'),fs) +xlabel(char('Time'),char('FontSize'),fs) +_set(gca,char('FontSize'),16) +title(char('Truth'),char('FontSize'),20) +ylim([- 3,3]) +fs=20 +Sig_vec=true_params.Sig_vec +theta=true_params.theta +ind_start=1 +ind_end=copy_(nmc) +inds=[arange_(1,N)] +if strcmp(reg_flag,char('full')): + figure + hl=boxplot(1.0 / invSig_hist(arange_(),[arange_(ind_start,ind_end)]).T,char('notch'),char('on'),char('widths'),0.75,char('outliersize'),2) + for ih in arange_(1,size(hl,1)).reshape(-1): + _set(hl(ih,arange_()),char('LineWidth'),2) + hold(char('on')) + scatter([arange_(1,p)],Sig_vec,75,char('go'),char('filled')) + hold(char('off')) + ylabel(char('\\Sigma_{0,p}'),char('FontSize'),20) + xlabel(char('p'),char('FontSize'),20) + _set(gca(),char('FontSize'),16) +cov_true=true_params.cov_true +figure +for pp in arange_(1,p).reshape(-1): + for jj in arange_(1,pp).reshape(-1): + plot(squeeze(var_l(pp,jj,arange_())),char('--'),char('LineWidth'),2) + hold(char('on')) + plot(squeeze(var_u(pp,jj,arange_())),char('--'),char('LineWidth'),2) + plot(squeeze(var_mean(pp,jj,arange_())),char('LineWidth'),2) + plot(squeeze(cov_true(pp,jj,arange_())),char('r'),char('LineWidth'),2) + hold(char('off')) + xlim([0,N]) + axis(char('tight')) + axis(char('square')) + box(char('on')) + _set(gca(),char('XTickLabel'),char(''),char('XTick'),zeros(1,0),char('YTickLabel'),char(''),char('YTick'),zeros(1,0),char('DataAspectRatio'),[10,_max(_abs(cov_true(pp,jj,arange_()))),1]) + title([char('p: '),num2str(pp),char(','),num2str(jj)]) + waitforbuttonpress +mu_true=true_params.mu +figure +for pp in arange_(1,p).reshape(-1): + plot(mu_l(pp,arange_()),char('--'),char('LineWidth'),2) + hold(char('on')) + plot(mu_u(pp,arange_()),char('--'),char('LineWidth'),2) + plot(mu_mean(pp,arange_()),char('LineWidth'),2) + plot(mu_true(pp,arange_()),char('r'),char('LineWidth'),2) + hold(char('off')) + xlim([0,N]) + axis(char('tight')) + axis(char('square')) + box(char('on')) + _set(gca(),char('XTickLabel'),char(''),char('XTick'),zeros(1,0),char('YTickLabel'),char(''),char('YTick'),zeros(1,0),char('DataAspectRatio'),[10,_max(_abs(cov_true(pp,jj,arange_()))),1]) + title([char('p: '),num2str(pp),char(','),num2str(jj)]) + waitforbuttonpress diff --git a/python/utilities/clculate_hpd.py b/python/utilities/clculate_hpd.py new file mode 100644 index 0000000..a32c36e --- /dev/null +++ b/python/utilities/clculate_hpd.py @@ -0,0 +1,30 @@ +# Autogenerated with SMOP version +# /usr/local/bin/smop calculate_hpd.m -o ../../python/utilities/clculate_hpd.py + +from __future__ import division +try: + from runtime import * +except ImportError: + from smop.runtime import * + +def calculate_hpd_(samples=None,conf=None,*args,**kwargs): + varargin = cellarray(args) + nargin = 2-[samples,conf].count(None)+len(args) + + num_hpd_samples=floor_(length_(samples) * conf) + samples=sort_(samples,char('descend')) + u_hpd=samples[1] + l_hpd=samples[num_hpd_samples] + sample_ind=1 + for u in samples.reshape(-1): + samples_below_u=samples < u + if sum_(samples_below_u) < num_hpd_samples: + break + else: + u_hpd_tmp=copy_(u) + l_hpd_tmp=samples[sample_ind + num_hpd_samples - 1] + if u_hpd_tmp - l_hpd_tmp < u_hpd - l_hpd: + u_hpd=copy_(u_hpd_tmp) + l_hpd=copy_(l_hpd_tmp) + sample_ind=sample_ind + 1 + return u_hpd,l_hpd From 0e9fa0950cf51e139a151ed2fdd924fbf348495f Mon Sep 17 00:00:00 2001 From: Sean Dodd Date: Fri, 18 Mar 2016 15:29:53 -0500 Subject: [PATCH 3/3] Remove swap files --- python/.BNP_covreg_varinds.py.swp | Bin 16384 -> 0 bytes python/.runstuff_varinds_flu.py.swp | Bin 12288 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 python/.BNP_covreg_varinds.py.swp delete mode 100644 python/.runstuff_varinds_flu.py.swp diff --git a/python/.BNP_covreg_varinds.py.swp b/python/.BNP_covreg_varinds.py.swp deleted file mode 100644 index 7534903c5470bc34484936b1a516d653b295ba00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 HO38l#zYAd*