- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新:
该错误可能是由于我的数据集中还有一个名为“Q”的变量与 Q 函数冲突而引起的。这种情况我该如何优雅的解决呢?
<小时/>更新:您可以下载我的数据集here .
<小时/>我正在使用 statsmodels 和 pandas 数据帧运行简单的 OLS 回归,如下所示:
import statsmodels.formula.api as sm
import pandas as pd
df=pd.read_csv("exp.csv")
#df is a dataframe that I have containing many variable names such as AAPL, SPY, INF, etc.
for column in df:
result=sm.ols(formula="SPY"+" ~ "+column, data=df).fit()
但是,df 中的列名称之一是 INF
。我想也许 INF
是 Pasty 的保留字,代码给出了以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/statsmodels/base/model.py", line 155, in from_formula
missing=missing)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/statsmodels/formula/formulatools.py", line 65, in handle_formula_data
NA_action=na_action)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/highlevel.py", line 310, in dmatrices
NA_action, return_type)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/highlevel.py", line 165, in _do_highlevel_design
NA_action)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/highlevel.py", line 62, in _try_incr_builders
formula_like = ModelDesc.from_formula(formula_like)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/desc.py", line 165, in from_formula
value = Evaluator().eval(tree, require_evalexpr=False)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/desc.py", line 400, in eval
result = self._evaluators[key](self, tree)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/desc.py", line 221, in _eval_any_tilde
exprs = [evaluator.eval(arg) for arg in tree.args]
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/desc.py", line 400, in eval
result = self._evaluators[key](self, tree)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/desc.py", line 355, in _eval_number
"only allowed with **", tree)
patsy.PatsyError: numbers besides '0' and '1' are only allowed with **
SPY ~ INF
^^^
我也尝试过使用 Q 函数:
result=sm.ols(formula="SPY"+" ~ "+"Q('INF')", data=df).fit()
但是,它给了我以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/statsmodels/base/model.py", line 155, in from_formula
missing=missing)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/statsmodels/formula/formulatools.py", line 65, in handle_formula_data
NA_action=na_action)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/highlevel.py", line 310, in dmatrices
NA_action, return_type)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/highlevel.py", line 165, in _do_highlevel_design
NA_action)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/highlevel.py", line 70, in _try_incr_builders
NA_action)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/build.py", line 696, in design_matrix_builders
NA_action)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/build.py", line 443, in _examine_factor_types
value = factor.eval(factor_states[factor], data)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/eval.py", line 566, in eval
data)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/eval.py", line 551, in _eval
inner_namespace=inner_namespace)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/compat.py", line 36, in call_and_wrap_exc
return f(*args, **kwargs)
File "/home/ap248/.local/easybuild/software/2017/Core/miniconda2/4.3.27/lib/python2.7/site-packages/patsy/eval.py", line 166, in eval
+ self._namespaces))
File "<string>", line 1, in <module>
TypeError: 'Series' object is not callable
知道如何解决吗?
最佳答案
根据此链接:http://patsy.readthedocs.io/en/latest/builtins-reference.html#patsy.builtins.Q您可以在公式中使用 Q("var") 来消除错误。
下面的代码应该可以工作。
model = sm.ols('SPY ~ Q("INF")',data=df).fit()
完整示例
import statsmodels.formula.api as sm
import pandas as pd
import numpy as np
a = np.random.rand(10,3)
df = pd.DataFrame(data=a, columns=['SPY','INF','X'])
model = sm.ols('SPY ~ Q("INF")',data=df).fit()
关于python - Statsmodels (Patsy) 非法变量名/'Series' 对象不可调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51548666/
我正在使用 patsy 准备用于回归的分类数据,并希望将列名称映射到其在 DesignMatrix 中的索引。我尝试使用 DesignInfo 的 column_name_indexes 属性对象,但
对于回归,我通常使用 sklearn 的 OneHotEncoder 对分类变量进行编码. 我现在正在探索使用 patsy,但它似乎不提供 One-hot 编码:http://patsy.readth
我正在尝试使用 Patsy(使用 sklearn、pandas)创建一个简单的回归模型。 R 风格的公式创建是一大亮点。 我的数据包含一个名为“ship_city”的字段,它可以包含来自印度的任何城市
我正在尝试将 statsmodel 线性回归函数与公式一起使用。我的示例数据来自 Pandas 数据框。我在公式中的列名有一个小问题。由于下游流程,我的列名中有连字符。例如: +------+----
我正在尝试为 statsmodels 公式 API 编写一个包装器(这是一个简化版本,该函数的功能不止于此): import statsmodels.formula.api as smf def wr
对 Python 和机器学习还很陌生。 我正在尝试构建逻辑回归模型。我曾在 R 中工作以获得 lambda 并使用交叉验证来找到最佳模型,现在我将其转移到 python 中。 我在这里创建了一个设计矩
我目前正在使用 Python 的 Patsy 模块为我的模型创建矩阵输入。例如,我可能使用的公式是 'Survived ~ C(Pclass) + C(Sex) + C(honor) + C(tix)
我正在开发一个“预测模型即服务”的应用程序,其结构如下: 离线训练模型 定期将模型参数上传到“预测服务器” 预测服务器将单个观察值作为输入,并输出预测结果 我正在尝试使用 patsy,但遇到以下问题:
鉴于我有以下帕西公式, 'y ~ a + b + c' 并将其传递给 statsmodels.ols,如何向回归系数添加正则化项? 在这种情况下,我希望创建自己的惩罚函数,而不是简单地使用岭、套索或弹
我正在尝试使用 statsmodles 计算非线性回归模型。特别是我在学习 patsy 语法时遇到了问题。 是否有任何教程或示例如何使用 patsy 语法制定非线性模型? 特别是,如何使用 patsy
假设我有一个数据框(我们称之为DF),其中y是因变量,x1, x2, x3是我的独立变量变量。在 R 中,我可以使用以下代码拟合线性模型,并且 . 将包含模型中的所有自变量: # R code for
假设我有一个 pandas 数据框: df = pd.DataFrame({'x1': [0, 1, 2, 3, 4], 'x2': [10, 9, 8, 7,
当我执行 pip install statsmodels 时,它给我 ImportError: statsmodels requires patsy。 http://patsy.readthedocs
假设我有一个数据框(我们称它为 DF),其中 y 是因变量,x1, x2, x3 是我的独立变量变量。在 R 中,我可以使用以下代码拟合线性模型,. 将在模型中包含我的所有自变量: # R code
from patsy import * from pandas import * dta = DataFrame([["lo", 1],["hi", 2.4],["lo", 1.2],["lo",
from patsy import * from pandas import * dta = DataFrame([["lo", 1],["hi", 2.4],["lo", 1.2],["lo",
更新: 该错误可能是由于我的数据集中还有一个名为“Q”的变量与 Q 函数冲突而引起的。这种情况我该如何优雅的解决呢? 更新:您可以下载我的数据集here . 我正在使用 statsmodels 和
我正在运行逻辑回归,但在使用 Patsy 的 API 准备数据时遇到了问题,因为它大于一个小样本。 直接在 DataFrame 上使用 dmatrices 函数,我遇到了这个突然的错误(请注意,在我的
您好,我正在使用 statsmodel 运行以下模型,它运行良好。 from statsmodels.formula.api import ols from statsmodels.iolib.sum
我想为 P(wage > 250) 的四个自由度的自然三次样条函数创建一个 Logit 图,但由于某种原因发生错误。我不明白为什么,因为 OLS 工作正常。 这是代码(它应该可以在没有任何调整的情况下
我是一名优秀的程序员,十分优秀!