'''Example for estimating distribution parameters when some are fixed.

This uses currently a patched version of the distributions, two methods are
added to the continuous distributions. This has no side effects.
It also adds bounds to vonmises, which changes the behavior of it for some
methods.

'''

import numpy as np
from scipy import stats
#Note the following import attaches methods to scipy.stats.distributions
#     and adds bounds to stats.vonmises
from statsmodels.sandbox.distributions import sppatch


np.random.seed(12345)
x = stats.gamma.rvs(2.5, loc=0, scale=1.2, size=200)

#estimate all parameters
print stats.gamma.fit(x)
print stats.gamma.fit_fr(x, frozen=[np.nan, np.nan, np.nan])
#estimate shape parameter only
print stats.gamma.fit_fr(x, frozen=[np.nan, 0., 1.2])

np.random.seed(12345)
x = stats.lognorm.rvs(2, loc=0, scale=2, size=200)
print stats.lognorm.fit_fr(x, frozen=[np.nan, 0., np.nan])
