Beispiel #1
0
def test_exponential_predict_is_length():
    """
	Tests that the prediction IS dataframe length is equal to the number of steps h
	"""
    model = pf.GAS(data=exponentialdata,
                   ar=2,
                   sc=2,
                   family=pf.GASExponential())
    x = model.fit()
    assert (model.predict_is(h=5).shape[0] == 5)
Beispiel #2
0
def test2_exponential_predict_is_length():
    """
	Tests that the length of the predict IS dataframe is equal to no of steps h
	"""
    model = pf.GASX(formula="y ~ x1 + x2",
                    data=data,
                    ar=1,
                    sc=1,
                    family=pf.GASExponential())
    x = model.fit()
    assert (model.predict_is(h=5).shape[0] == 5)
Beispiel #3
0
def test_exponential_predict_length():
    """
	Tests that the length of the predict dataframe is equal to no of steps h
	"""
    model = pf.GASX(formula="y ~ x1",
                    data=data,
                    ar=1,
                    sc=1,
                    family=pf.GASExponential())
    x = model.fit()
    x.summary()
    assert (model.predict(h=5, oos_data=data_oos).shape[0] == 5)
Beispiel #4
0
def test_exponential_predict_nans():
    """
	Tests that the predictions are not nans
	"""
    model = pf.GAS(data=exponentialdata,
                   ar=2,
                   sc=2,
                   family=pf.GASExponential())
    x = model.fit()
    x.summary()
    assert (len(
        model.predict(h=5).values[np.isnan(model.predict(h=5).values)]) == 0)
Beispiel #5
0
def test_exponential_pml():
    """
	Tests a PML model estimated with Laplace approximation and that the length of the 
	latent variable list is correct, and that the estimated latent variables are not nan
	"""
    model = pf.GAS(data=exponentialdata,
                   ar=1,
                   sc=1,
                   family=pf.GASExponential())
    x = model.fit('PML')
    assert (len(model.latent_variables.z_list) == 3)
    lvs = np.array([i.value for i in model.latent_variables.z_list])
    assert (len(lvs[np.isnan(lvs)]) == 0)
Beispiel #6
0
def test_exponential_mh():
    """
	Tests an GAS model estimated with Metropolis-Hastings and that the length of the 
	latent variable list is correct, and that the estimated latent variables are not nan
	"""
    model = pf.GAS(data=exponentialdata,
                   ar=1,
                   sc=1,
                   family=pf.GASExponential())
    x = model.fit('M-H', nsims=300)
    assert (len(model.latent_variables.z_list) == 3)
    lvs = np.array([i.value for i in model.latent_variables.z_list])
    assert (len(lvs[np.isnan(lvs)]) == 0)
Beispiel #7
0
def test_exponential_bbvi():
    """
	Tests an GAS model estimated with BBVI and that the length of the latent variable
	list is correct, and that the estimated latent variables are not nan
	"""
    model = pf.GAS(data=exponentialdata,
                   ar=1,
                   sc=1,
                   family=pf.GASExponential())
    x = model.fit('BBVI', iterations=100)
    assert (len(model.latent_variables.z_list) == 3)
    lvs = np.array([i.value for i in model.latent_variables.z_list])
    assert (len(lvs[np.isnan(lvs)]) == 0)
Beispiel #8
0
def test_exponential_laplace():
    """
	Tests an GASX model estimated with Laplace approximation, and tests that the latent variable
	vector length is correct, and that value are not nan
	"""
    model = pf.GASX(formula="y ~ x1",
                    data=data,
                    ar=1,
                    sc=1,
                    family=pf.GASExponential())
    x = model.fit('Laplace')
    assert (len(model.latent_variables.z_list) == 4)
    lvs = np.array([i.value for i in model.latent_variables.z_list])
    assert (len(lvs[np.isnan(lvs)]) == 0)
Beispiel #9
0
def test_exponential_mh():
    """
	Tests an GASX model estimated with Metropolis-Hastings, and tests that the latent variable
	vector length is correct, and that value are not nan
	"""
    model = pf.GASX(formula="y ~ x1",
                    data=data,
                    ar=1,
                    sc=1,
                    family=pf.GASExponential())
    x = model.fit('M-H', nsims=300)
    assert (len(model.latent_variables.z_list) == 4)
    lvs = np.array([i.value for i in model.latent_variables.z_list])
    assert (len(lvs[np.isnan(lvs)]) == 0)
Beispiel #10
0
def test_exponential_couple_terms():
    """
	Tests the length of the latent variable vector for an GASX model
	with 1 AR and 1 SC term, and tests that the values are not nan
	"""
    model = pf.GASX(formula="y ~ x1",
                    data=data,
                    ar=1,
                    sc=1,
                    family=pf.GASExponential())
    x = model.fit()
    assert (len(model.latent_variables.z_list) == 4)
    lvs = np.array([i.value for i in model.latent_variables.z_list])
    assert (len(lvs[np.isnan(lvs)]) == 0)
Beispiel #11
0
def test2_exponential_predict_is_nans():
    """
	Tests that the predictions in-sample are not NaNs
	"""
    model = pf.GASX(formula="y ~ x1 + x2",
                    data=data,
                    ar=1,
                    sc=1,
                    family=pf.GASExponential())
    x = model.fit()
    x.summary()
    assert (len(
        model.predict_is(h=5).values[np.isnan(
            model.predict_is(h=5).values)]) == 0)
Beispiel #12
0
def test2_exponential_pml():
    """
	Tests an GASX model estimated with PML, with multiple predictors, and 
	tests that the latent variable vector length is correct, and that value are not nan
	"""
    model = pf.GASX(formula="y ~ x1 + x2",
                    data=data,
                    ar=1,
                    sc=1,
                    family=pf.GASExponential())
    x = model.fit('PML')
    assert (len(model.latent_variables.z_list) == 5)
    lvs = np.array([i.value for i in model.latent_variables.z_list])
    assert (len(lvs[np.isnan(lvs)]) == 0)
Beispiel #13
0
def test_exponential_predict_nans():
    """
	Tests that the predictions are not NaNs
	"""
    model = pf.GASX(formula="y ~ x1",
                    data=data,
                    ar=1,
                    sc=1,
                    family=pf.GASExponential())
    x = model.fit()
    x.summary()
    assert (len(
        model.predict(h=5, oos_data=data_oos).values[np.isnan(
            model.predict(h=5, oos_data=data_oos).values)]) == 0)
Beispiel #14
0
def test_exponential_couple_terms():
    """
	Tests an GAS model with 1 AR and 1 SC term and that
	the latent variable list length is correct, and that the estimated
	latent variables are not nan
	"""
    model = pf.GAS(data=exponentialdata,
                   ar=1,
                   sc=1,
                   family=pf.GASExponential())
    x = model.fit()
    assert (len(model.latent_variables.z_list) == 3)
    lvs = np.array([i.value for i in model.latent_variables.z_list])
    assert (len(lvs[np.isnan(lvs)]) == 0)
Beispiel #15
0
def test2_exponential_no_terms():
    """
	Tests the length of the latent variable vector for an GASX model
	with no AR or SC terms, and two predictors, and tests that the values 
	are not nan
	"""
    model = pf.GASX(formula="y ~ x1 + x2",
                    data=data,
                    ar=0,
                    sc=0,
                    family=pf.GASExponential())
    x = model.fit()
    assert (len(model.latent_variables.z_list) == 3)
    lvs = np.array([i.value for i in model.latent_variables.z_list])
    assert (len(lvs[np.isnan(lvs)]) == 0)