绘制python中线性模型的对比度

时间:2016-12-13 14:50:01

标签: python statsmodels

在python中我试图绘制线性模型的效果

data = pd.read_excel(input_filename)
data.sexe = data.sexe.map({1:'m', 2:'f'})
data.diag = data.diag.map({1:'asd', 4:'hc'})
data.site = data.site.map({ 10:'USS', 20:'UYU', 30:'CAM', 40:'MAM', 2:'Cre'})

lm_full = sm.formula.ols(formula= L_bankssts_thickavg ~  diag + age + sexe + site' % var, data=data).fit()

我使用了线性模型,效果很好:

print(lm_full.summary()) 

给予:

                             OLS Regression Results                            
===============================================================================
Dep. Variable:     L_bankssts_thickavg   R-squared:                       0.156
Model:                             OLS   Adj. R-squared:                  0.131
Method:                  Least Squares   F-statistic:                     6.354
Date:                 Tue, 13 Dec 2016   Prob (F-statistic):           7.30e-07
Time:                         15:40:28   Log-Likelihood:                 98.227
No. Observations:                  249   AIC:                            -180.5
Df Residuals:                      241   BIC:                            -152.3
Df Model:                            7                                         
Covariance Type:             nonrobust                                         
===================================================================================
                      coef    std err          t      P>|t|      [95.0% Conf. Int.]
-----------------------------------------------------------------------------------
Intercept           2.8392      0.055     51.284      0.000         2.730     2.948
diag[T.hc]         -0.0567      0.021     -2.650      0.009        -0.099    -0.015
sexe[T.m]          -0.0435      0.029     -1.476      0.141        -0.102     0.015
site[T.Cre]        -0.0069      0.036     -0.189      0.850        -0.078     0.065
site[T.MAM]        -0.0635      0.040     -1.593      0.112        -0.142     0.015
site[T.UYU]        -0.0948      0.038     -2.497      0.013        -0.170    -0.020
site[T.USS]         0.0145      0.037      0.396      0.692        -0.058     0.086
age                -0.0059      0.001     -4.209      0.000        -0.009    -0.003
==============================================================================
Omnibus:                        0.698   Durbin-Watson:                   2.042
Prob(Omnibus):                  0.705   Jarque-Bera (JB):                0.432
Skew:                          -0.053   Prob(JB):                        0.806
Kurtosis:                       3.175   Cond. No.                         196.
==============================================================================

我知道想用#34; diag"变量: 由于它出现在我的模型中,诊断对因变量有影响,我想绘制这种效果。我希望有一个图形表示,其中包含两个可能的diag值(即:' asd'和' hc'),显示哪个组具有最低值(即对比度的图形表示) )

我想要与R

中的allEffect库类似的东西

你认为python中有类似的功能吗?

1 个答案:

答案 0 :(得分:0)

绘制此效果的最佳方法是使用matplot lib执行CCPR Plots。

# Component-Component plus Residual (CCPR) Plots (= partial residual plot)
fig, ax = plt.subplots(figsize=(5, 5))
fig = sm.graphics.plot_ccpr(lm_full, 'diag[T.sz]', ax=ax)
plt.close

哪个给出了

Plot