问题标签 [patsy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3427 浏览

pandas - PatsyError:数据参数和列之间的行数不匹配(statsmodels)

我正在使用带有 Patsy 包的 R 样式公式使用 statsmodels 并收到一个我无法正面或反面的错误,任何提示或技巧将不胜感激。

PatsyError:数据参数和 C('Industry_Banking&CapitalMarkets') 之间的行数不匹配(8137 对 1)

DataFrame 确实有 8137 行并且没有丢失数据

完整代码如下

0 投票
1 回答
466 浏览

python - 向 Statsmodels(或 Patsy)添加系数的正则化

鉴于我有以下 patsy 公式,

并将其传递给 statsmodels.ols,如何向回归系数添加正则化项?

在这种情况下,我希望创建自己的惩罚函数,而不是简单地使用 ridge、lasso 或 elasticnet 回归。

这是一个可重现的示例,其中包含与我的问题类似的数据:

0 投票
0 回答
26 浏览

python - 如何使用 statsmodels.formula 测试 SLR 中的回归系数是否相等?

标题已经定义了我的问题,所以让我先举个例子:

使用此示例,数字是否有效并不重要,例如,假设 b_1 和 b_2 是 x_1 和 x_2 的相应偏回归系数,我如何测试它们是否相等?

感谢您的帮助。

0 投票
0 回答
203 浏览

python - 如何在 statsmodels 中创建约束回归?

我需要在下面的线性回归中添加一个约束,以便y_pred [i] >= y_pred [i+1]

0 投票
1 回答
245 浏览

python - 无法从 patsy 导入 dmatrices

我正在尝试在pycharm中使用包中的函数,但是在导入时出现以下错误dmatrices()patsy

from patsy import dmatrices

在“ init .py”中找不到参考“dmatrices ”

我的python版本是3.8

0 投票
1 回答
934 浏览

python - 使用 patsy、statsmodels 将简单回归转换为对数刻度

我正在学习在线计量经济学课程并学习统计模型。

我从讲师那里知​​道,这种回归将更适合对数尺度,但我不知道如何或在哪里转换我的数据/公式。

我正在使用 Python、Pandas、Statsmodels 和 Patsy

这是我将数据转换为 dmatrices 的地方:

这是我在 statsmodels 中运行回归的地方:

我得到一个非常低的 r 平方,但模型确实运行。我只是想弄清楚如何转换为对数刻度。课程中给出的示例,他将 X 轴和 Y 轴都转换为对数刻度

编辑:我使用它来工作:

有没有办法在 1 行代码中完成,如果我需要在另一个问题中对更多变量执行此操作,甚至是循环?

0 投票
0 回答
560 浏览

python - 如何在 Python (Statsmodels) 中编写线性混合效应模型的公式?

请耐心等待,因为我是这个级别的统计数据和 Python 的新手。我已经阅读了 statsmodels 和 patsy 的所有文件,但仍有疑问。

我正在尝试使用 statsmodels MixedLM 分析纵向数据。简化一点,我有 5 个变量,自变量之间没有共线性:

  • 结果:因变量。
  • 患者:随机效应,因为每个患者都对结果进行了多次测量
  • 时间:固定效应
  • 有针对性:固定效应,0 = 否,1 = 是,患者是否是针对结果进行干预的目标
  • 性别:固定效应,0=男性,1=女性

我想知道两件事:

  1. 患者是否被靶向与随时间推移的结果趋势之间是否存在关联?
  2. 随着时间的推移,患者性别和结果趋势之间是否存在关联,仅在目标群体中?

也许很重要:我实际上并没有试图做出任何预测。只是准确地解释我已经拥有的数据。

为了回答第一个问题,我尝试了:

这个符号正确吗?或者我应该使用:

更好地比较结果趋势的差异?或者是其他东西?

为了回答第二个问题,我尝试了:

但我认为这是不正确的,因为系数没有意义。目标患者的起始结果需要> 6,但目标:性别的系数< 6。一种解决方案是制作一个仅包含目标患者的单独数据框,但我很好奇是否有操作员我可以在这里用不同的方式得到我想要的。

谢谢!

0 投票
1 回答
445 浏览

python - 在OLS中自动测试交互效果的Python方式

在 R 中,您基本上可以编写model='Lottery ~ (Literacy + Wealth + Region)^k'并获取这些变量的每个 k 路组合。

statsmodels支持一些 R 风格的 OLS 回归,但它们似乎不支持^k语法。我有一个大数据集,足够大,无法手动尝试变量组合的做法,并且基本上正在寻找一种自动化交互效果搜索的方法。

0 投票
0 回答
343 浏览

python - 在 Python 中使用三次样条对回归模型进行预测

我正在构建一个线性回归模型,其中一个输入变量是销售数量。我不想使用每天的销售数量作为线性输入,而是想使用某种形式的三次样条变换(因为它在设定点之后趋于尾随,并且在此之前的关系不是线性的)。我的问题是:

我相信我可以在我的训练数据集上为这个变量创建三次样条曲线(然后使用这些建立线性模型),如下所示:

transformed_x = dmatrix("bs(data, knots=(2000, 3000, 4000), degree=3, include_intercept=False)", {"data": df['Sales_Volume']},return_type='dataframe')

但是为了对单个新数据点进行预测,比如 5000 次销售,我如何使用这些相同的样条对我的拟合模型进行预测?

如果我尝试为 5000 个销售额的单个数据点创建另一个转换版本的 transform_x,我会收到一条错误消息:

ValueError:一些结值([2000 3000 4000])低于下限(5000)

如果我有一个大型新数据集来预测覆盖所有这些结的范围,它会起作用,但现在我不确定我是否可以确信在新数据集上进行相同的转换会产生正确的结果?

0 投票
0 回答
222 浏览

python - Statsmodels OLS 数据参数和列之间的不匹配

我正在尝试使用 statsmodels 对我的数据运行线性模型。我的数据框如下所示:

第一列是索引。第二列标题是一个 0,带有几个前导空格。有 88 行数据。我的代码如下:

我收到一条错误消息,上面写着:

我正在使用 patsy 0.5.1。和python 3.6.8。我尝试重命名第一列以摆脱前导空格。我已经尝试了许多不同的 ols 公式迭代,都具有相同的错误。我究竟做错了什么?提前致谢。