0

当我尝试运行这个模型时

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

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

4

1 回答 1

0

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

正确的代码应该是

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
于 2021-10-07T08:53:30.930 回答