# LKJ: Hyperprior n_lkj = pm.Uniform("n_lkj",lower = 1., upper = 10.) # 5d Normal Priors mu_norm = pm.Normal('mu_norm', mu = 0., sd = 5., shape=(N_dp,n_var)) sigma_norm = pm.HalfCauchy("sigma_norm",beta= 1.,shape = (N_dp,n_var)) lkj_norm = LKJCorr_mult_3_structure("lkj_norm",n = n_lkj,p = n_var,s = N_dp, structure = structure_5d) cov_norm = pm.Deterministic("cov_norm",cov_funct_special(lkj_norm,sigma_norm,tri_index_5d)) tau_norm = pm.Deterministic("tau_norm",tau_funct(cov_norm)) # 1d EMG Priors mu_emg = pm.Normal('mu_emg',mu = 0.,sd = 5., shape=N_dp) sigma_emg = pm.HalfCauchy('sigma_emg',beta = 1.,shape = N_dp) tau_emg = pm.Uniform("tau_emg",lower = .1,upper = 10, shape=N_dp) lamb_emg = pm.Deterministic("lamb_emg",1./tau_emg) # Observations points = pm.DensityDist("obs",lambda value: logp_emg(value[:,0],mu_emg[category],sigma_emg[category], lamb_emg[category])+\
lkj = pm.Deterministic("lkj", tt.dot(lkj_structure[0],corr_triangle0.reshape((1,-1)))+\ tt.dot(lkj_structure[1],corr_triangle1.reshape((1,-1))) ) # corr_matrix = corr_triangle[tri_index] # corr_matrix = tt.fill_diagonal(corr_matrix, 1) # cov_matrix = tt.diag(sigma).dot(corr_matrix.dot(tt.diag(sigma))) cov = pm.Deterministic("cov",cov_funct_special(lkj,sigma,tri_index)) tau = pm.Deterministic("tau",tau_funct(cov)) points = pm.DensityDist("obs",lambda value: mvNormal_logp(mu[category],tau[category],value), observed = dataset) n = 25000 start = time.time() with model_pre_multiD: step = pm.Metropolis(vars=[alpha,n_lkj,mu,sigma,corr_triangle0,corr_triangle1]) step1 = pm.Metropolis(vars=[v]) step2 = pm.ElemwiseCategorical(vars=[category], values = list(np.arange(N_dp))) tr = pm.sample(n, step=[step,step1,step2]) end = time.time()