Пример #1
0
def make_age_linear(indata, cyto, ax, confounders):
    eqn, tmp_cyto = extract_cols(indata, cyto, 
                                     ['Age']+confounders)
    y, X = dmatrices(eqn, tmp_cyto, return_type='dataframe')
    model = sm.OLS(y, X).fit()
    num = (num for num, col in enumerate(X.columns) if col=='Age').next()
    
    if ax is not None:
        plot_fit(model, num, ax=ax)
    
    return model, model.f_pvalue, model.pvalues['Age'], model.params['Age']
Пример #2
0
    def test_plot_oth(self):
        #just test that they run
        res = self.res
        endog = res.model.endog
        exog = res.model.exog

        plot_fit(res, 0, y_true=None)
        plot_partregress(endog, exog, exog_idx=[0, 1])
        plot_regress_exog(res, exog_idx=0)
        plot_ccpr(res, exog_idx=[0])
        plot_ccpr(res, exog_idx=[0, 1])

        plt.close('all')
  def test_plot_oth(self, close_figures):
      #just test that they run
      res = self.res
      plot_fit(res, 0, y_true=None)
      plot_partregress_grid(res, exog_idx=[0,1])
      plot_regress_exog(res, exog_idx=0)
      plot_ccpr(res, exog_idx=0)
      plot_ccpr_grid(res, exog_idx=[0])
      fig = plot_ccpr_grid(res, exog_idx=[0,1])
      for ax in fig.axes:
          add_lowess(ax)
 
      close_or_save(pdf, fig)
    def test_plot_oth(self, close_figures):
        #just test that they run
        res = self.res
        plot_fit(res, 0, y_true=None)
        plot_partregress_grid(res, exog_idx=[0, 1])
        plot_regress_exog(res, exog_idx=0)
        plot_ccpr(res, exog_idx=0)
        plot_ccpr_grid(res, exog_idx=[0])
        fig = plot_ccpr_grid(res, exog_idx=[0, 1])
        for ax in fig.axes:
            add_lowess(ax)

        close_or_save(pdf, fig)
    def test_plot_oth(self):
        #just test that they run
        res = self.res
        endog = res.model.endog
        exog = res.model.exog

        plot_fit(res, 0, y_true=None)
        plot_partregress(endog, exog, exog_idx=[0,1])
        plot_regress_exog(res, exog_idx=0)
        plot_ccpr(res, exog_idx=[0])
        plot_ccpr(res, exog_idx=[0,1])

        plt.close('all')
Пример #6
0
    def test_plot_oth(self):
        #just test that they run
        res = self.res
        endog = res.model.endog
        exog = res.model.exog

        plot_fit(res, 0, y_true=None)
        plot_partregress_grid(res, exog_idx=[0,1])
        plot_regress_exog(res, exog_idx=0)
        plot_ccpr(res, exog_idx=0)
        plot_ccpr_grid(res, exog_idx=[0])
        fig = plot_ccpr_grid(res, exog_idx=[0,1])
        for ax in fig.axes:
            add_lowess(ax)

        plt.close('all')
Пример #7
0
    def test_plot_oth(self):
        #just test that they run
        res = self.res
        endog = res.model.endog
        exog = res.model.exog

        plot_fit(res, 0, y_true=None)
        plot_partregress_grid(res, exog_idx=[0, 1])
        plot_regress_exog(res, exog_idx=0)
        plot_ccpr(res, exog_idx=0)
        plot_ccpr_grid(res, exog_idx=[0])
        fig = plot_ccpr_grid(res, exog_idx=[0, 1])
        for ax in fig.axes:
            add_lowess(ax)

        plt.close('all')
Пример #8
0
    def test_plot_fit(self):
        res = self.res

        fig = plot_fit(res, 0, y_true=None)

        x0 = res.model.exog[:, 0]
        yf = res.fittedvalues
        y = res.model.endog

        px1, px2 = fig.axes[0].get_lines()[0].get_data()
        np.testing.assert_equal(x0, px1)
        np.testing.assert_equal(y, px2)

        px1, px2 = fig.axes[0].get_lines()[1].get_data()
        np.testing.assert_equal(x0, px1)
        np.testing.assert_equal(yf, px2)

        plt.close(fig)
Пример #9
0
    def test_plot_fit(self):
        res = self.res

        fig = plot_fit(res, 0, y_true=None)

        x0 = res.model.exog[:, 0]
        yf = res.fittedvalues
        y = res.model.endog

        px1, px2 = fig.axes[0].get_lines()[0].get_data()
        np.testing.assert_equal(x0, px1)
        np.testing.assert_equal(y, px2)

        px1, px2 = fig.axes[0].get_lines()[1].get_data()
        np.testing.assert_equal(x0, px1)
        np.testing.assert_equal(yf, px2)

        close_or_save(pdf, fig)
Пример #10
0
    ax = fig6.add_subplot(2, 1, 1)
    #namestr = ' for %s' % self.name if self.name else ''
    x1beta = x1 * res.params[1]
    x2beta = x2 * res.params[2]
    plt.plot(x1, x1beta + res.resid, 'o')
    plt.plot(x1, x1beta, '-')
    ax.set_title('X_i beta_i plus residuals versus exog (CCPR)')  # + namestr)
    ax = fig6.add_subplot(2, 1, 2)
    plt.plot(x2, x2beta + res.resid, 'o')
    plt.plot(x2, x2beta, '-')

    #print res.summary()

doplots = 1
if doplots:
    fig1 = smrp.plot_fit(res, 0, y_true=None)
    smrp.plot_fit(res, 1, y_true=None)
    smrp.plot_partregress(y, exog0, exog_idx=[0, 1])
    smrp.plot_regress_exog(res, exog_idx=0)
    smrp.plot_ccpr(res, exog_idx=[0])
    smrp.plot_ccpr(res, exog_idx=[0, 1])

from statsmodels.graphics.tests.test_regressionplots import TestPlot
tp = TestPlot()
tp.test_plot_fit()

fig1 = smrp.plot_partregress(y, exog0, exog_idx=[0, 1])
#add lowess
ax = fig1.axes[0]
y0 = ax.get_lines()[0]._y
x0 = ax.get_lines()[0]._x
Пример #11
0
#######
#Spread Stationarity
######
#Testing for Stationarity on RDA, RDB, Total, Repsol and Centrica
#Testing for Stationarity on RDA, RDB
concMergered = [RDA['Close'], RDB['Close']]
combo = pd.concat(concMergered, axis=1).dropna()
combo.columns = ["RDA", "RDB"]
model = statsm.ols(formula="RDA~RDB", data=combo)
result1 = model.fit()
result1.params
result1.summary()
#plt.plot(result,label='Ordinary least Squares',color='Black')
# graph of best fit
#statsgraph.plot_fit(result, 1,label='Ordinary least Squares',color='Black')
statsgraph.plot_fit(result1, 1)

#Testing for Stationarity on Ge, ?, R^2 should be near 1 ( best so far 68% ge on Amazon)
# Apple, exxon, Wells  no
# Microsoft, facebook, WallMart so so
#JohnsonJ not great
####### Amazon & Alphabet 68%
#Apple on Google 43%
# JPM-Wells 67%, Citi no,BOA no, Goldamn 50%
# Barcalys - Lloyds 43%-HSBC 62%-Stan 54%-RBS 55%

# royal Dutch is stationary hence strong evidence of cointgeration
# Credit Suisse - DB 86%
#concMergeredCO = [BP['Close'], RDA['Close']]
#Another example Centrica and repsol
concMergeredCO = [Centrica['Close'], Repsol['Close']]
Пример #12
0
 def test_graphs(self, res):
     col_num = self.X.shape[1]
     rp.plot_fit(res, exog_idx=col_num - 3)
     rp.plot_regress_exog(res, exog_idx=col_num - 1, fig=None)
     rp.plot_leverage_resid2(res)  # squared
auto.head()
auto_complete = auto.dropna()
auto_complete.shape

# # Linear Regression: mpg ~ weight + price
# ## descriptive statistics

auto['mpg'].describe()
auto[['mpg', 'weight']].describe()
auto[['mpg', 'weight']].mean()
auto[['mpg', 'weight']].std()
sns.pairplot(auto, vars=['mpg', 'weight', 'price'], kind='reg')
model1 = ols('mpg ~ weight + price', data=auto)
fit1 = model1.fit()
fit1.summary()
plot_fit(fit1, 'weight')
fit1.predict()
fit1.resid

# ## Interaction Terms (will include main effects)
ols('mpg ~ weight * price', data=auto).fit().summary()

# ## model with categorical variable & robust standard errors (same as Stata's reg, robust)
# ### [documentation for standard errors](https://www.statsmodels.org/dev/generated/statsmodels.regression.linear_model.RegressionResults.html) (search for HC0_se, HC1_se, etc.)
auto.groupby('foreign').size()
auto.groupby('foreign').mpg.mean()
sns.pairplot(auto, vars=['mpg', 'weight', 'price'], kind='reg', hue='foreign')
fit2 = ols('mpg ~ weight + price + foreign', data=auto).fit(cov_type='HC1')
fit2.summary()
fit2.params
fit2.bse
Пример #14
0
    #namestr = ' for %s' % self.name if self.name else ''
    x1beta = x1*res.params[1]
    x2beta = x2*res.params[2]
    plt.plot(x1, x1beta + res.resid, 'o')
    plt.plot(x1, x1beta, '-')
    ax.set_title('X_i beta_i plus residuals versus exog (CCPR)')# + namestr)
    ax = fig6.add_subplot(2,1,2)
    plt.plot(x2, x2beta + res.resid, 'o')
    plt.plot(x2, x2beta, '-')


    #print res.summary()

doplots = 1
if doplots:
    fig1 = smrp.plot_fit(res, 0, y_true=None)
    smrp.plot_fit(res, 1, y_true=None)
    smrp.plot_partregress_grid(res, exog_idx=[0,1])
    smrp.plot_regress_exog(res, exog_idx=0)
    smrp.plot_ccpr(res, exog_idx=0)
    smrp.plot_ccpr_grid(res, exog_idx=[0,1])

from statsmodels.graphics.tests.test_regressionplots import TestPlot
tp = TestPlot()
tp.test_plot_fit()

fig1 = smrp.plot_partregress_grid(res, exog_idx=[0,1])
#add lowess
ax = fig1.axes[0]
y0 = ax.get_lines()[0]._y
x0 = ax.get_lines()[0]._x
Пример #15
0

def DailyReturn(Prices):
    returns = Prices.shift(1) / Prices - 1
    return returns.dropna()


ReturnTotal = DailyReturn(Total['Close'])
ReturnCentrica = DailyReturn(Repsol['Close'])

concMergered = [RDA['Close'], RDB['Close']]
combo = pd.concat(concMergered, axis=1).dropna()
combo.columns = ["RDA", "RDB"]
model = statsm.ols(formula="RDA~RDB", data=combo)
result1 = model.fit()
statsgraph.plot_fit(result1, 1)

concMergeredCO = [Centrica['Close'], Repsol['Close']]
comboCO = pd.concat(concMergeredCO, axis=1).dropna()
comboCO.columns = ["Centrica", "Repsol"]
model = statsm.ols(formula=" Centrica~Repsol", data=comboCO)
resultCO = model.fit()

# Demonstrates clarity for the error term in the model parameters against the residuals
# No drift term
residualsCO = resultCO.resid

concMergeredMV = [
    RDA['Close'], RDB['Close'], Total['Close'], Repsol['Close'],
    Centrica['Close']
]