class TestRlm(CheckRlmResults): from scikits.statsmodels.datasets.stackloss import load data = load() # class attributes for subclasses data.exog = sm.add_constant(data.exog) def __init__(self): # Test precisions self.decimal_standarderrors = DECIMAL_1 self.decimal_scale = DECIMAL_3 results = RLM(self.data.endog, self.data.exog,\ M=sm.robust.norms.HuberT()).fit() # default M h2 = RLM(self.data.endog, self.data.exog,\ M=sm.robust.norms.HuberT()).fit(cov="H2").bcov_scaled h3 = RLM(self.data.endog, self.data.exog,\ M=sm.robust.norms.HuberT()).fit(cov="H3").bcov_scaled self.res1 = results self.res1.h2 = h2 self.res1.h3 = h3 def setup(self): # r.library('MASS') # self.res2 = RModel(self.data.endog, self.data.exog, # r.rlm, psi="psi.huber") from results.results_rlm import Huber self.res2 = Huber()
class TestRlmHuber(CheckRlmResults): from scikits.statsmodels.datasets.stackloss import load data = load() data.exog = sm.add_constant(data.exog) def __init__(self): results = RLM(self.data.endog, self.data.exog,\ M=sm.robust.norms.HuberT()).fit(scale_est=\ sm.robust.scale.HuberScale()) h2 = RLM(self.data.endog, self.data.exog,\ M=sm.robust.norms.HuberT()).fit(cov="H2", scale_est=sm.robust.scale.HuberScale()).bcov_scaled h3 = RLM(self.data.endog, self.data.exog,\ M=sm.robust.norms.HuberT()).fit(cov="H3", scale_est=sm.robust.scale.HuberScale()).bcov_scaled self.res1 = results self.res1.h2 = h2 self.res1.h3 = h3 def setup(self): from results.results_rlm import HuberHuber self.res2 = HuberHuber()
""" import numpy as np import scikits.statsmodels.api as sm RLM = sm.RLM DECIMAL_4 = 4 DECIMAL_3 = 3 DECIMAL_2 = 2 DECIMAL_1 = 1 from scikits.statsmodels.datasets.stackloss import load data = load() # class attributes for subclasses data.exog = sm.add_constant(data.exog) decimal_standarderrors = DECIMAL_1 decimal_scale = DECIMAL_3 results = RLM(data.endog, data.exog, M=sm.robust.norms.HuberT()).fit() # default M h2 = RLM(data.endog, data.exog, M=sm.robust.norms.HuberT()).fit(cov="H2").bcov_scaled h3 = RLM(data.endog, data.exog, M=sm.robust.norms.HuberT()).fit(cov="H3").bcov_scaled from scikits.statsmodels.robust.tests.results.results_rlm import Huber res2 = Huber() print "res2.h1"
# results_huber = model_huber.fit(scale_est="stand_mad", update_scale=False) # model_ramsaysE = RLM(endog, exog, M=norms.RamsayE()) # results_ramsaysE = model_ramsaysE.fit(update_scale=False) # model_andrewWave = RLM(endog, exog, M=norms.AndrewWave()) # results_andrewWave = model_andrewWave.fit(update_scale=False) # model_hampel = RLM(endog, exog, M=norms.Hampel(a=1.7,b=3.4,c=8.5)) # convergence problems with scale changed, not with 2,4,8 though? # results_hampel = model_hampel.fit(update_scale=False) ####################### ### Stack Loss Data ### ####################### from scikits.statsmodels.datasets.stackloss import load data = load() data.exog = sm.add_constant(data.exog) ############# ### Huber ### ############# # m1_Huber = RLM(data.endog, data.exog, M=norms.HuberT()) # results_Huber1 = m1_Huber.fit() # m2_Huber = RLM(data.endog, data.exog, M=norms.HuberT()) # results_Huber2 = m2_Huber.fit(cov="H2") # m3_Huber = RLM(data.endog, data.exog, M=norms.HuberT()) # results_Huber3 = m3_Huber.fit(cov="H3") ############## ### Hampel ### ############## # m1_Hampel = RLM(data.endog, data.exog, M=norms.Hampel()) # results_Hampel1 = m1_Hampel.fit()
from scikits.statsmodels.sandbox.tools import cross_val if __name__ == '__main__': #A: josef-pktd import scikits.statsmodels.api as sm from scikits.statsmodels.api import OLS #from scikits.statsmodels.datasets.longley import load from scikits.statsmodels.datasets.stackloss import load from scikits.statsmodels.iolib.table import (SimpleTable, default_txt_fmt, default_latex_fmt, default_html_fmt) import numpy as np data = load() data.exog = sm.tools.add_constant(data.exog) resols = sm.OLS(data.endog, data.exog).fit() print '\n OLS leave 1 out' for inidx, outidx in cross_val.LeaveOneOut(len(data.endog)): res = sm.OLS(data.endog[inidx], data.exog[inidx, :]).fit() print data.endog[outidx], res.model.predict(res.params, data.exog[outidx, :]), print data.endog[outidx] - res.model.predict(res.params, data.exog[outidx, :]) print '\n OLS leave 2 out' resparams = [] for inidx, outidx in cross_val.LeavePOut(len(data.endog), 2):
Created on Sun Mar 27 14:36:40 2011 """ import numpy as np import scikits.statsmodels.api as sm RLM = sm.RLM DECIMAL_4 = 4 DECIMAL_3 = 3 DECIMAL_2 = 2 DECIMAL_1 = 1 from scikits.statsmodels.datasets.stackloss import load data = load() # class attributes for subclasses data.exog = sm.add_constant(data.exog) decimal_standarderrors = DECIMAL_1 decimal_scale = DECIMAL_3 results = RLM(data.endog, data.exog,\ M=sm.robust.norms.HuberT()).fit() # default M h2 = RLM(data.endog, data.exog,\ M=sm.robust.norms.HuberT()).fit(cov="H2").bcov_scaled h3 = RLM(data.endog, data.exog,\ M=sm.robust.norms.HuberT()).fit(cov="H3").bcov_scaled from scikits.statsmodels.robust.tests.results.results_rlm import Huber res2 = Huber()