def test_ceres_poisson(self): np.random.seed(3446) n = 100 p = 3 exog = np.random.normal(size=(n, p)) exog[:, 0] = 1 lin_pred = 4 + exog[:, 1] + 0.2 * exog[:, 2]**2 expval = np.exp(lin_pred) endog = np.random.poisson(expval) model = sm.GLM(endog, exog, family=sm.families.Poisson()) results = model.fit() for focus_col in 1, 2: for j in 0, 1: if j == 0: fig = plot_ceres_residuals(results, focus_col) else: fig = results.plot_ceres_residuals(focus_col) ax = fig.get_axes()[0] add_lowess(ax) ax.set_position([0.1, 0.1, 0.8, 0.77]) effect_str = [ "Intercept", "Linear effect, slope=1", "Quadratic effect" ][focus_col] ti = "CERES plot" if j == 1: ti += " (called as method)" ax.set_title(ti + "\nPoisson regression\n" + effect_str) close_or_save(pdf, fig)
def test_ceres_poisson(self, close_figures): np.random.seed(3446) n = 100 p = 3 exog = np.random.normal(size=(n, p)) exog[:, 0] = 1 lin_pred = 4 + exog[:, 1] + 0.2*exog[:, 2]**2 expval = np.exp(lin_pred) endog = np.random.poisson(expval) model = sm.GLM(endog, exog, family=sm.families.Poisson()) results = model.fit() for focus_col in 1, 2: for j in 0, 1: if j == 0: fig = plot_ceres_residuals(results, focus_col) else: fig = results.plot_ceres_residuals(focus_col) ax = fig.get_axes()[0] add_lowess(ax) ax.set_position([0.1, 0.1, 0.8, 0.77]) effect_str = ["Intercept", "Linear effect, slope=1", "Quadratic effect"][focus_col] ti = "CERES plot" if j == 1: ti += " (called as method)" ax.set_title(ti + "\nPoisson regression\n" + effect_str) close_or_save(pdf, fig)
# -*- coding: utf-8 -*- ''' Using a model built from the the state crime dataset, make a CERES plot with the rate of Poverty as the focus variable. ''' import matplotlib.pyplot as plt import statsmodels.api as sm import statsmodels.formula.api as smf from statsmodels.graphics.regressionplots import plot_ceres_residuals crime_data = sm.datasets.statecrime.load_pandas() results = smf.ols('murder ~ hs_grad + urban + poverty + single', data=crime_data.data).fit() plot_ceres_residuals(results, 'poverty') plt.show()
# -*- coding: utf-8 -*- ''' Using a model built from the the state crime dataset, make a CERES plot with the rate of Poverty as the focus variable. ''' import statsmodels.api as sm import matplotlib.pyplot as plt import statsmodels.formula.api as smf from statsmodels.graphics.regressionplots import plot_ceres_residuals crime_data = sm.datasets.statecrime.load_pandas() results = smf.ols('murder ~ hs_grad + urban + poverty + single', data=crime_data.data).fit() plot_ceres_residuals(results, 'poverty') plt.show()