首页 > 解决方案 > PatsyError:模型缺少所需的结果变量

问题描述

当我尝试运行这个模型时

y, X =dmatrices('price - area + bedrooms + bathrooms', df, return_type='dataframe')

vif=pd.DataFrame()
vif["VIF Factor"]=[variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
vif["features"]=X.columns
vif

它得到这个错误:

PatsyError                                Traceback (most recent call last)
<ipython-input-27-4e351f766736> in <module>()
----> 1 y, X =dmatrices('price - area + bedrooms + bathrooms', df, return_type='dataframe')
      2 
      3 vif=pd.DataFrame()
      4 vif["VIF Factor"]=[variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
      5 vif["features"]=X.columns

/opt/conda/lib/python3.6/site-packages/patsy/highlevel.py in dmatrices(formula_like, data, eval_env, NA_action, return_type)
    310                                       NA_action, return_type)
    311     if lhs.shape[1] == 0:
--> 312         raise PatsyError("model is missing required outcome variables")
    313     return (lhs, rhs)

PatsyError: model is missing required outcome variables

为什么会发生这种情况,我能做些什么来解决它?

标签: pythonpandaspatsy

解决方案


错误的是我在价格后加了“-”号而不是“~”

正确的代码应该是

y, X =dmatrices('price ~ area + bedrooms + bathrooms', df, return_type='dataframe')

vif=pd.DataFrame()
vif["VIF Factor"]=[variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
vif["features"]=X.columns
vif

推荐阅读