Exemplo n.º 1
0
	
	# 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()