How to create Von mises and uniform mixture model with Pymc3


#1

I am new to Pymc3 and currently doing a parameter estimation with it. I have a data set which is assumed to be a mixture of a uniform distribution and a Von-mises distribution. I want to know the model weights and I set my model like this:

with model:
   #uniform
   uni = pm.Uniform.dist('uni', lower = -180, upper = 180)    
   #Von-mises
   kappa = pm.Uniform('kappa', lower = 0, upper = 50)    
   von = pm.VonMises.dist("von", mu = 0, kappa = kappa)        
   #mixture model 
   w = pm.Dirichlet('w', a=np.array([1, 1]), shape = 2)
   like = pm.Mixture('like', w=w, comp_dists = [von, uni], observed=target)

but it gives the error:
TypeError: init() got multiple values for keyword argument ‘lower’

I was wondering if the problem is from the script, or I can not use py.Mixture fuction to do the analysis of two different distribution type. And is there any other method that I could do that since basically all the resources are about Gaussian mixture model.


#2

If you are initializing a distribution, the name arg is not needed:

    ...
    uni = pm.Uniform.dist(lower = -180, upper = 180)