I want to do a Bayesian analysis in python with a custom defined likelihood function. Below is my code.
I get the <class 'int'> error when I run the code. Does anyone know what the problem is? Thanks!
import pandas as pd
import numpy as np
import pymc3 as pm
from gurobipy import quicksum
df = pd.DataFrame(np.random.uniform(1, 125, 100), columns= ['Surface'])
def logp(Surface):
return (-c*quicksum(j**b for i in range(0,len(df)) for j in
range(1,Surface[i].astype(int))))
with pm.Model() as model_g:
c = pm.Uniform('c', lower=0, upper=1)
b = pm.Uniform('b', lower=0, upper=1)
y = pm.DensityDist('y', logp, observed={'Surface':df['Surface']})
trace_g = pm.sample(100, tune=100)
az.plot_trace(trace_g, var_names=['c']);