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