Esempio n. 1
0
    def test_init(self):
        """Test __init__."""

        skst = SkStBL(ndim=3)

        self.assertIsInstance(skst.eta, np.ndarray)
        self.assertIsInstance(skst.lam, np.ndarray)

        eta, lam = 10, [.5, 1.5]
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)

        npt.assert_array_equal(skst.eta, np.array(eta))
        npt.assert_array_equal(skst.lam, np.array(lam))

        eta, lam = 15, [1.5, .5]
        skst.from_theta(np.concatenate((np.atleast_1d(eta), lam)))

        npt.assert_array_equal(skst.eta, np.array(eta))
        npt.assert_array_equal(skst.lam, np.array(lam))

        size = (10, len(lam))
        data = np.random.normal(size=size)
        skst = SkStBL(ndim=len(lam), data=data)

        npt.assert_array_equal(skst.data, data)
Esempio n. 2
0
    def test_rvs(self):
        """Test simulation."""

        eta, lam = 100, [.5, 1.5, 2]
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)
        size = 10
        rvs = skst.rvs(size=size)

        self.assertEqual(rvs.shape, (size, len(lam)))
Esempio n. 3
0
    def test_rvs(self):
        """Test simulation."""

        eta, lam = 100, [.5, 1.5, 2]
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)
        size = 10
        rvs = skst.rvs(size=size)

        self.assertEqual(rvs.shape, (size, len(lam)))
Esempio n. 4
0
    def test_pdf(self):
        """Test pdf."""

        eta, lam = 10, [.5, 1.5, 2]
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)
        size = (10, len(lam))
        data = np.random.normal(size=size)
        pdf = skst.pdf(data)

        self.assertEqual(pdf.ndim, 1)
        self.assertEqual(pdf.shape, (size[0], ))
Esempio n. 5
0
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)
Esempio n. 6
0
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)
Esempio n. 7
0
    def test_pdf(self):
        """Test pdf."""

        eta, lam = 10, [.5, 1.5, 2]
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)
        size = (10, len(lam))
        data = np.random.normal(size=size)
        pdf = skst.pdf(data)

        self.assertEqual(pdf.ndim, 1)
        self.assertEqual(pdf.shape, (size[0], ))
Esempio n. 8
0
    def test_likelihood(self):
        """Test log-likelihood."""

        eta, lam = 10, [.5, 1.5, 2]
        theta = np.concatenate((np.atleast_1d(eta), lam))
        size = (10, len(lam))
        data = np.random.normal(size=size)
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam, data=data)
        logl1 = skst.likelihood(theta)
        logl2 = skst.likelihood(theta * 2)

        self.assertIsInstance(logl1, float)
        self.assertNotEqual(logl1, logl2)
        npt.assert_array_equal(skst.data, data)
Esempio n. 9
0
    def test_init(self):
        """Test __init__."""

        skst = SkStBL(ndim=3)

        self.assertIsInstance(skst.eta, np.ndarray)
        self.assertIsInstance(skst.lam, np.ndarray)

        eta, lam = 10, [.5, 1.5]
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)

        npt.assert_array_equal(skst.eta, np.array(eta))
        npt.assert_array_equal(skst.lam, np.array(lam))

        eta, lam = 15, [1.5, .5]
        skst.from_theta(np.concatenate((np.atleast_1d(eta), lam)))

        npt.assert_array_equal(skst.eta, np.array(eta))
        npt.assert_array_equal(skst.lam, np.array(lam))

        size = (10, len(lam))
        data = np.random.normal(size=size)
        skst = SkStBL(ndim=len(lam), data=data)

        npt.assert_array_equal(skst.data, data)
Esempio n. 10
0
    def test_cdf(self):
        """Test cdf."""

        eta, lam = 20, 1.5
        skst = SkStBL(ndim=1, eta=eta, lam=lam)
        cdf = skst.cdf(np.zeros(1))

        self.assertIsInstance(cdf, float)

        eta, lam = 20, [1.5, .5]
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)
        cdf = skst.cdf(np.zeros(2) - 10)

        self.assertIsInstance(cdf, float)
Esempio n. 11
0
    def test_likelihood(self):
        """Test log-likelihood."""

        eta, lam = 10, [.5, 1.5, 2]
        theta = np.concatenate((np.atleast_1d(eta), lam))
        size = (10, len(lam))
        data = np.random.normal(size=size)
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam, data=data)
        logl1 = skst.likelihood(theta)
        logl2 = skst.likelihood(theta * 2)

        self.assertIsInstance(logl1, float)
        self.assertNotEqual(logl1, logl2)
        npt.assert_array_equal(skst.data, data)
Esempio n. 12
0
def plot_bidensity():

    lam = [1.5, -2]
    mvsn = MvSN(ndim=len(lam), lam=lam)
    mvsn.plot_bidensity()

    eta = 20
    skst = MvSt(ndim=2, eta=eta)
    skst.plot_bidensity()

    eta, lam = [20, 5], [1.5, .5]
    skst = SkStJR(ndim=len(lam), eta=eta, lam=lam)
    skst.plot_bidensity()

    eta, lam = 20, [1.5, .5]
    skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)
    skst.plot_bidensity()

    eta, lam = 20, [1.5, -2]
    skst = SkStDM(ndim=len(lam), eta=eta, lam=lam)
    skst.plot_bidensity()

    eta, lam = 20, [1.5, -2]
    skst = SkStAC(ndim=len(lam), eta=eta, lam=lam)
    skst.plot_bidensity()
Esempio n. 13
0
    def test_quantile(self):
        """Test quantile."""

        eta, lam = 20, 1.5
        skst = SkStBL(ndim=1, eta=eta, lam=lam)
        arg = -2.
        cdf = skst.cdf(arg)
        ppf = skst.ppf(cdf)

        self.assertAlmostEqual(ppf, arg)

        arg = -.1 * np.ones(3)
        cdf = skst.cdf_vec(arg)
        quantiles = skst.ppf_vec(cdf)

        npt.assert_array_almost_equal(arg, quantiles)
Esempio n. 14
0
def compute_univ_cdf():
    eta, lam = 20, 1.5
    skst = SkStJR(ndim=1, eta=eta, lam=lam)
    print(skst.cdf(np.zeros(1)))

    eta, lam = 20, 1.5
    skst = SkStBL(ndim=1, eta=eta, lam=lam)
    print(skst.cdf(np.zeros(1)))

    eta, lam = 100, 1.5
    skst = SkStDM(ndim=1, eta=eta, lam=lam)
    print(skst.cdf(np.zeros(1) + 10))
Esempio n. 15
0
def compute_cdf():
    eta, lam = [20, 5], [1.5, .5]
    skst = SkStJR(ndim=len(lam), eta=eta, lam=lam)
    print(skst.cdf(np.zeros(2)))

    eta, lam = 20, [1.5, .5]
    skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)
    print(skst.cdf(np.zeros(2)))

    eta, lam = 100, [1.5, -2]
    skst = SkStDM(ndim=len(lam), eta=eta, lam=lam)
    print(skst.cdf(np.zeros(2)))
Esempio n. 16
0
def compute_quantile():
    eta, lam = 20, 1.5
    skst = SkStJR(ndim=1, eta=eta, lam=lam)
    cdf = skst.cdf(np.zeros(1) - 2)
    print(skst.ppf(cdf))

    eta, lam = 20, 1.5
    skst = SkStBL(ndim=1, eta=eta, lam=lam)
    cdf = skst.cdf(np.zeros(1) - 2)
    print(skst.ppf(cdf))

    eta, lam = 100, 1.5
    skst = SkStDM(ndim=1, eta=eta, lam=lam)
    cdf = skst.cdf(np.zeros(1) - 2)
    print(skst.ppf(cdf))
Esempio n. 17
0
    def test_cdf(self):
        """Test cdf."""

        eta, lam = 20, 1.5
        skst = SkStBL(ndim=1, eta=eta, lam=lam)
        cdf = skst.cdf(np.zeros(1))

        self.assertIsInstance(cdf, float)

        eta, lam = 20, [1.5, .5]
        skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)
        cdf = skst.cdf(np.zeros(2) - 10)

        self.assertIsInstance(cdf, float)
Esempio n. 18
0
    def test_quantile(self):
        """Test quantile."""

        eta, lam = 20, 1.5
        skst = SkStBL(ndim=1, eta=eta, lam=lam)
        arg = -2.
        cdf = skst.cdf(arg)
        ppf = skst.ppf(cdf)

        self.assertAlmostEqual(ppf, arg)

        arg = -.1 * np.ones(3)
        cdf = skst.cdf_vec(arg)
        quantiles = skst.ppf_vec(cdf)

        npt.assert_array_almost_equal(arg, quantiles)
Esempio n. 19
0
def plot_bidensity_simulated():

    size = int(1e4)

    lam = [1.5, -2]
    mvsn = MvSN(ndim=len(lam), lam=lam)
    mvsn.plot_bidensity()

    rvs = mvsn.rvs(size=size)
    sns.kdeplot(rvs, shade=True)
    plt.axis('square')
    plt.xlim([-2, 2])
    plt.ylim([-2, 2])
    plt.show()

    eta = 20
    skst = MvSt(ndim=2, eta=eta)
    skst.plot_bidensity()

    rvs = skst.rvs(size=size)
    sns.kdeplot(rvs, shade=True)
    plt.axis('square')
    plt.xlim([-2, 2])
    plt.ylim([-2, 2])
    plt.show()

    eta, lam = [20, 5], [1.5, .5]
    skst = SkStJR(ndim=len(lam), eta=eta, lam=lam)
    skst.plot_bidensity()

    rvs = skst.rvs(size=size)
    sns.kdeplot(rvs, shade=True)
    plt.axis('square')
    plt.xlim([-2, 2])
    plt.ylim([-2, 2])
    plt.show()

    eta, lam = 20, [1.5, .5]
    skst = SkStBL(ndim=len(lam), eta=eta, lam=lam)
    skst.plot_bidensity()

    rvs = skst.rvs(size=size)
    sns.kdeplot(rvs, shade=True)
    plt.axis('square')
    plt.xlim([-2, 2])
    plt.ylim([-2, 2])
    plt.show()

    eta, lam = 20, [1.5, -2]
    skst = SkStDM(ndim=len(lam), eta=eta, lam=lam)
    skst.plot_bidensity()

    rvs = skst.rvs(size=size)
    sns.kdeplot(rvs, shade=True)
    plt.axis('square')
    plt.xlim([-2, 2])
    plt.ylim([-2, 2])
    plt.show()

    eta, lam = 20, [1.5, -2]
    skst = SkStAC(ndim=len(lam), eta=eta, lam=lam)
    skst.plot_bidensity()

    rvs = skst.rvs(size=size)
    sns.kdeplot(rvs, shade=True)
    plt.axis('square')
    plt.xlim([-2, 2])
    plt.ylim([-2, 2])
    plt.show()