def estimate_bivariate_mle_jr(): ndim = 2 size = (10000, ndim) data = np.random.normal(size=size) eta, lam = 4, -.9 skst = SkewStudent(eta=eta, lam=lam) data = skst.rvs(size=size) model = SkStJR(ndim=ndim, data=data) out = model.fit_mle() print(out) model.from_theta(out.x) fig, axes = plt.subplots(nrows=size[1], ncols=1) for innov, ax in zip(data.T, axes): sns.kdeplot(innov, ax=ax, label='data') lines = [ax.get_lines()[0].get_xdata() for ax in axes] lines = np.vstack(lines).T marginals = model.marginals(lines) for line, margin, ax in zip(lines.T, marginals.T, axes): ax.plot(line, margin, label='fitted') ax.legend() plt.show()
def estimate_bivariate_mle_bl(): ndim = 2 size = (10000, ndim) data = np.random.normal(size=size) eta, lam = 4, -.9 skst = SkewStudent(eta=eta, lam=lam) data = skst.rvs(size=size) model = SkStBL(ndim=ndim, data=data) out = model.fit_mle(method='L-BFGS-B') print(out)
def test_rvs(self): """Test ppf method.""" skewt = SkewStudent() rvs = skewt.rvs() self.assertIsInstance(rvs, float) size = 2 rvs = skewt.rvs(size=size) self.assertIsInstance(rvs, np.ndarray) self.assertEqual(rvs.shape, (size, )) size = (2, 3) rvs = skewt.rvs(size=size) self.assertIsInstance(rvs, np.ndarray) self.assertEqual(rvs.shape, size)
# -*- coding: utf-8 -*- """Examples. """ from __future__ import print_function, division import numpy as np import matplotlib.pylab as plt import seaborn as sns from scipy.optimize import minimize from skewstudent import SkewStudent if __name__ == '__main__': eta, lam = 5, -.5 param = [eta, lam] sns.set_context('paper') skewt = SkewStudent(eta=eta, lam=lam) data = skewt.rvs(2000) sns.kdeplot(data) plt.show() bounds = [(2.01, 300), (-1, 1)] res = minimize(skewt.loglikelihood, [10, 0], args=(data,), method='SLSQP', bounds=bounds) print(res)