def test_bad_criterion(): data = load_stackloss() data.exog = np.asarray(data.exog) data.endog = np.asarray(data.endog) data.exog = sm.add_constant(data.exog, prepend=False) mod = RLM(data.endog, data.exog, M=norms.HuberT()) with pytest.raises(ValueError, match='Convergence argument unknown'): mod.fit(conv='unknown')
def test_rlm_start_values(): data = sm.datasets.stackloss.load_pandas() exog = sm.add_constant(data.exog, prepend=False) model = RLM(data.endog, exog, M=norms.HuberT()) results = model.fit() start_params = [0.7156402, 1.29528612, -0.15212252, -39.91967442] result_sv = model.fit(start_params=start_params) assert_allclose(results.params, result_sv.params)
def setup_class(cls): super(TestRlmAndrewsHuber, cls).setup_class() model = RLM(cls.data.endog, cls.data.exog, M=norms.AndrewWave()) results = model.fit(scale_est=HuberScale()) h2 = model.fit(cov="H2", scale_est=HuberScale()).bcov_scaled h3 = model.fit(cov="H3", scale_est=HuberScale()).bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): super(TestRlmBisquareHuber, cls).setup_class() model = RLM(cls.data.endog, cls.data.exog, M=norms.TukeyBiweight()) results = model.fit(scale_est=HuberScale()) h2 = model.fit(cov="H2", scale_est=HuberScale()).bcov_scaled h3 = model.fit(cov="H3", scale_est=HuberScale()).bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): super(TestRlmAndrewsHuber, cls).setup_class() model = RLM(cls.data.endog, cls.data.exog, M=norms.AndrewWave()) results = model.fit(scale_est=HuberScale()) h2 = model.fit(cov="H2", scale_est=HuberScale()).bcov_scaled h3 = model.fit(cov="H3", scale_est=HuberScale()).bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): super(TestRlmBisquareHuber, cls).setup_class() model = RLM(cls.data.endog, cls.data.exog, M=norms.TukeyBiweight()) results = model.fit(scale_est=HuberScale()) h2 = model.fit(cov="H2", scale_est=HuberScale()).bcov_scaled h3 = model.fit(cov="H3", scale_est=HuberScale()).bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def test_rlm_start_values_errors(): data = sm.datasets.stackloss.load_pandas() exog = sm.add_constant(data.exog, prepend=False) model = RLM(data.endog, exog, M=norms.HuberT()) start_params = [0.7156402, 1.29528612, -0.15212252] with pytest.raises(ValueError): model.fit(start_params=start_params) start_params = np.array([start_params, start_params]).T with pytest.raises(ValueError): model.fit(start_params=start_params)
def setup_class(cls): cls.data = load_stackloss() cls.data.exog = sm.add_constant(cls.data.exog, prepend=False) model = RLM(cls.data.endog, cls.data.exog, M=norms.HuberT()) results = model.fit(scale_est=HuberScale()) h2 = model.fit(cov="H2", scale_est=HuberScale()).bcov_scaled h3 = model.fit(cov="H3", scale_est=HuberScale()).bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): super(TestRlmBisquare, cls).setup_class() # Test precisions cls.decimal_standarderrors = DECIMAL_1 model = RLM(cls.data.endog, cls.data.exog, M=norms.TukeyBiweight()) results = model.fit() h2 = model.fit(cov="H2").bcov_scaled h3 = model.fit(cov="H3").bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): super(TestRlmBisquare, cls).setup_class() # Test precisions cls.decimal_standarderrors = DECIMAL_1 model = RLM(cls.data.endog, cls.data.exog, M=norms.TukeyBiweight()) results = model.fit() h2 = model.fit(cov="H2").bcov_scaled h3 = model.fit(cov="H3").bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): from statsmodels.datasets.stackloss import load cls.data = load(as_pandas=False) cls.data.exog = sm.add_constant(cls.data.exog, prepend=False) model = RLM(cls.data.endog, cls.data.exog, M=norms.HuberT()) results = model.fit(scale_est=HuberScale()) h2 = model.fit(cov="H2", scale_est=HuberScale()).bcov_scaled h3 = model.fit(cov="H3", scale_est=HuberScale()).bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): super(TestHampel, cls).setup_class() # Test precisions cls.decimal_standarderrors = DECIMAL_2 cls.decimal_scale = DECIMAL_3 cls.decimal_bcov_scaled = DECIMAL_3 model = RLM(cls.data.endog, cls.data.exog, M=norms.Hampel()) results = model.fit() h2 = model.fit(cov="H2").bcov_scaled h3 = model.fit(cov="H3").bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): cls.data = load_stackloss() # class attributes for subclasses cls.data.exog = sm.add_constant(cls.data.exog, prepend=False) # Test precisions cls.decimal_standarderrors = DECIMAL_1 cls.decimal_scale = DECIMAL_3 model = RLM(cls.data.endog, cls.data.exog, M=norms.HuberT()) results = model.fit(conv='sresid') h2 = model.fit(cov="H2").bcov_scaled h3 = model.fit(cov="H3").bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): super(TestHampel, cls).setup_class() # Test precisions cls.decimal_standarderrors = DECIMAL_2 cls.decimal_scale = DECIMAL_3 cls.decimal_bcov_scaled = DECIMAL_3 model = RLM(cls.data.endog, cls.data.exog, M=norms.Hampel()) results = model.fit() h2 = model.fit(cov="H2").bcov_scaled h3 = model.fit(cov="H3").bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): from statsmodels.datasets.stackloss import load cls.data = load(as_pandas=False) # class attributes for subclasses cls.data.exog = sm.add_constant(cls.data.exog, prepend=False) # Test precisions cls.decimal_standarderrors = DECIMAL_1 cls.decimal_scale = DECIMAL_3 model = RLM(cls.data.endog, cls.data.exog, M=norms.HuberT()) results = model.fit(conv='sresid') h2 = model.fit(cov="H2").bcov_scaled h3 = model.fit(cov="H3").bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def setup_class(cls): from statsmodels.datasets.stackloss import load cls.data = load(as_pandas=False) # class attributes for subclasses cls.data.exog = sm.add_constant(cls.data.exog, prepend=False) # Test precisions cls.decimal_standarderrors = DECIMAL_1 cls.decimal_scale = DECIMAL_3 model = RLM(cls.data.endog, cls.data.exog, M=norms.HuberT()) cls.model = model results = model.fit() h2 = model.fit(cov="H2").bcov_scaled h3 = model.fit(cov="H3").bcov_scaled cls.res1 = results cls.res1.h2 = h2 cls.res1.h3 = h3
def rlm_date(x,y): from statsmodels.robust.robust_linear_model import RLM x2 = sm.add_constant(date2num(x)) rlmmodel = RLM(y,x2) rlmresults = rlmmodel.fit() return x,rlmresults.fittedvalues,N.array(rlmresults.pvalues).mean()
def fit_velocity(dist, tmax1, plot=True): # rlm = RLM(dist/1000 , np.abs(tmax1)) # rlm = RLM(np.abs(tmax1), dist/1000, M=sm.robust.norms.Hampel(1, 2, 4)) s = dist / 1000 t = np.abs(tmax1) o = np.ones(len(t)) # rlm = RLM(d/t, np.ones(len(d)), M=sm.robust.norms.Hampel(1, 2, 4)) rlm = RLM(s / t, o, M=sm.robust.norms.Hampel(1, 2, 4)) res = rlm.fit(maxiter=100) v = res.params[0] w = res.weights # scale = res.scale # v = np.median(s/t) from statsmodels.robust.scale import mad scale = mad(s / t, center=v, c=1) tmax = np.max(s) / v if plot: fig = plt.figure() ax = fig.add_subplot(121) ax.scatter(tmax1, dist) ax.plot((-tmax, 0, tmax), (np.max(dist), 0, np.max(dist))) ax2 = fig.add_subplot(122) ax2.hist(dist / 1000 / np.abs(tmax1), bins=np.linspace(3, 5, 21)) return v, w, scale
#sc_gau_x,sc_gau_y = gaussian_point_smooth(N.array(middate[wsc]),N.array(d.mb[wsc])) #in_gau_x,in_gau_y = gaussian_point_smooth(N.array(middate[win]),N.array(d.mb[win])) se_gau_x,se_gau_y = loess_point_smooth(N.array(middate[wse]),N.array(d.mb[wse]),frac=1) sc_gau_x,sc_gau_y = loess_point_smooth(N.array(middate[wsc]),N.array(d.mb[wsc]),frac=1) in_gau_x,in_gau_y = loess_point_smooth(N.array(middate[win]),N.array(d.mb[win]),frac=1) #se_gau_x,se_gau_y,se_p = rlm_date(N.array(middate[wse]),N.array(d.mb[wse]))#loess_point_smooth(N.array(middate[wse]),N.array(d.mb[wse]),frac=0.7) #sc_gau_x,sc_gau_y,sc_p = rlm_date(N.array(middate[wsc]),N.array(d.mb[wsc]))#loess_point_smooth(N.array(middate[wsc]),N.array(d.mb[wsc]),frac=0.7) #in_gau_x,in_gau_y,in_p = rlm_date(N.array(middate[win]),N.array(d.mb[win]))#loess_point_smooth(N.array(middate[win]),N.array(d.mb[win]),frac=0.7) N.array(date2num(middate[wse])) from statsmodels.robust.robust_linear_model import RLM rlmmodel = RLM(N.array(d.mb[wse]),N.array(date2num(middate[wse]))) rlmresults = rlmmodel.fit() #FIGURE SETUP fig = plt.figure(figsize=[4,7]) #ax1 = fig.add_subplot(414) #ax2 = fig.add_subplot(413) #ax3 = fig.add_subplot(412) #ax4 = fig.add_subplot(411) ax1 = plt.subplot2grid((8,1), (6, 0), rowspan=2) ax2 = plt.subplot2grid((8,1), (4, 0), rowspan=2) ax3 = plt.subplot2grid((8,1), (2, 0), rowspan=2) ax4 = plt.subplot2grid((8,1), (0, 0), rowspan=2) #ax5 = plt.subplot2grid((9,1), (2, 0))
def test_bad_criterion(): data = sm.datasets.stackloss.load(as_pandas=True) data.exog = sm.add_constant(data.exog, prepend=False) mod = RLM(data.endog, data.exog, M=norms.HuberT()) with pytest.raises(ValueError, match='Convergence argument unknown'): mod.fit(conv='unknown')