python - 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
为什么会发生这种情况,我能做些什么来解决它?
解决方案
错误的是我在价格后加了“-”号而不是“~”
正确的代码应该是
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
推荐阅读
- cognos - Concur / Cognos report studio - 如果 culmn b 中的至少一个值满足条件,则显示 a 列中的所有项目
- node.js - 如何在 for 循环中正确执行异步调用?
- javascript - Vue - 组件中无法访问的商店模块
- laravel - Laravel 通过变量/值获取本地化
- angular - Angular Material 选项卡组 - 防止选项卡更改
- shell - 删除空格并用空格更改符号
- c++ - 找不到 Protobuf(缺少:Protobuf_PROTOC_EXECUTABLE)
- snort - 减少/限制 Snort 规则触发器 (Syn Flood) 发生的警报数量
- wagtail - 如何将页面 ID 用于 Wagtail 的自定义 URL
- excel - 将范围从一个工作簿复制到另一个工作簿