Python 使用statsmodels创建剩余图

Python 使用statsmodels创建剩余图,python,statsmodels,Python,Statsmodels,我试图使用statsmodels.graphics.regressionplots.plot_Regression_exog创建剩余图,但我得到的错误是未找到独立Var。准确的误差如下: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <

我试图使用statsmodels.graphics.regressionplots.plot_Regression_exog创建剩余图,但我得到的错误是未找到独立Var。准确的误差如下:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-2-43dae6c58d5d> in <module>
     28 
     29 #produce regression plots
---> 30 fig = sm.graphics.plot_regress_exog(model,'Pow', fig=fig)

~\Anaconda3\lib\site-packages\statsmodels\graphics\regressionplots.py in plot_regress_exog(results, exog_idx, fig)
    218     fig = utils.create_mpl_fig(fig)
    219 
--> 220     exog_name, exog_idx = utils.maybe_name_or_idx(exog_idx, results.model)
    221     results = maybe_unwrap_results(results)
    222 

~\Anaconda3\lib\site-packages\statsmodels\graphics\utils.py in maybe_name_or_idx(idx, model)
    110     else: # assume we've got a string variable
    111         exog_name = idx
--> 112         exog_idx = model.exog_names.index(idx)
    113 
    114     return exog_name, exog_idx

ValueError: 'Pow' is not in list

<>注意<代码> POW是一个分类预测器,因此在访问它时,应该考虑它是类别级别。比如说,

import statsmodels.api as sm

fig = plt.figure(figsize=(12,8))

#produce regression plots
fig = sm.graphics.plot_regress_exog(model,'C(Pow)[T.180 W]', fig=fig)
将产生

要访问预测变量,您可以访问
模型的
参数

model.params
>>> 
Intercept          551.2
C(Pow)[T.180 W]     36.2
C(Pow)[T.200 W]     74.2
C(Pow)[T.220 W]    155.8
model.params
>>> 
Intercept          551.2
C(Pow)[T.180 W]     36.2
C(Pow)[T.200 W]     74.2
C(Pow)[T.220 W]    155.8