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_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 test_marginals(self): """Test marginals.""" eta, lam = [10, 15, 10], [.5, 1.5, 2] skst = SkStJR(eta=eta, lam=lam, ndim=len(lam)) size = (10, len(eta)) data = np.random.normal(size=size) marginals = skst.marginals(data) self.assertEqual(marginals.ndim, 2) self.assertEqual(marginals.shape, size) self.assertGreater(marginals.all(), 0)