def test_zero_resid(): # smoke and regression tests X = np.array([[1, 0], [0, 1], [0, 2.1], [0, 3.1]], dtype=np.float64) y = np.array([0, 1, 2, 3], dtype=np.float64) res = QuantReg(y, X).fit(0.5, bandwidth='chamberlain') #'bofinger') res.summary() assert_allclose(res.params, np.array([0.0, 0.96774163]), rtol=1e-4, atol=1e-20) assert_allclose(res.bse, np.array([0.0447576, 0.01154867]), rtol=1e-4, atol=1e-20) assert_allclose(res.resid, np.array([0.0, 3.22583680e-02, -3.22574272e-02, 9.40732912e-07]), rtol=1e-4, atol=1e-20) X = np.array([[1, 0], [0.1, 1], [0, 2.1], [0, 3.1]], dtype=np.float64) y = np.array([0, 1, 2, 3], dtype=np.float64) res = QuantReg(y, X).fit(0.5, bandwidth='chamberlain') res.summary() assert_allclose(res.params, np.array([9.99982796e-08, 9.67741630e-01]), rtol=1e-4, atol=1e-20) assert_allclose(res.bse, np.array([0.04455029, 0.01155251]), rtol=1e-4, atol=1e-20) assert_allclose(res.resid, np.array([-9.99982796e-08, 3.22583598e-02, -3.22574234e-02, 9.46361860e-07]), rtol=1e-4, atol=1e-20)
def test_alpha_summary(): X = np.array([[1, 0], [0, 1], [0, 2.1], [0, 3.1]], dtype=np.float64) y = np.array([0, 1, 2, 3], dtype=np.float64) res = QuantReg(y, X).fit(0.5, bandwidth='chamberlain', use_t=True) summ_20 = res.summary(alpha=.2) assert '[0.025 0.975]' not in str(summ_20) assert '[0.1 0.9]' in str(summ_20)
def test_use_t_summary(): X = np.array([[1, 0], [0, 1], [0, 2.1], [0, 3.1]], dtype=np.float64) y = np.array([0, 1, 2, 3], dtype=np.float64) res = QuantReg(y, X).fit(0.5, bandwidth='chamberlain', use_t=True) summ = res.summary() assert 'P>|t|' in str(summ) assert 'P>|z|' not in str(summ)
def test_alpha_summary(): X = np.array([[1, 0], [0, 1], [0, 2.1], [0, 3.1]], dtype=np.float64) y = np.array([0, 1, 2, 3], dtype=np.float64) res = QuantReg(y, X).fit(0.5, bandwidth='chamberlain', use_t=True) summ_20 = res.summary(alpha=.2) assert '[0.025 0.975]' not in str(summ_20) assert '[0.1 0.9]' in str(summ_20)
def test_use_t_summary(): X = np.array([[1, 0], [0, 1], [0, 2.1], [0, 3.1]], dtype=np.float64) y = np.array([0, 1, 2, 3], dtype=np.float64) res = QuantReg(y, X).fit(0.5, bandwidth='chamberlain', use_t=True) summ = res.summary() assert 'P>|t|' in str(summ) assert 'P>|z|' not in str(summ)
import pandas as pd import numpy as np import statsmodels.api as sm from statsmodels.regression.quantile_regression import QuantReg import matplotlib.pyplot as plt data = pd.read_csv('ice.csv') x = data[['temp', 'street']] x = sm.add_constant(x) y = data['ice'] est = QuantReg(y, x).fit(q=0.99999) print(est.summary())