问题标签 [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 投票
2 回答
7940 浏览

python - 使用 pandas 或 statsmodel 创建虚拟变量以进行两列的交互

我有一个这样的数据框:

我想为 Industry X years_spend 创建虚拟变量,该变量创建变量len(df.Industry.value_counts()) * len(df.years_spend.value_counts()),例如 d_11_4 = 1 用于具有行业 ==1 和年花费 =4 的所有行,否则为 d_11_4 = 0。然后我可以将这些变量用于一些回归工作。

我知道我可以使用 df.groupby(['Industry','years_spend']) 制作我想要的组,并且我知道我可以使用以下patsy语法为一列创建这样的变量statsmodels

但如果我想处理 2 列,我会收到一个错误: IndexError: tuple index out of range

如何使用 pandas 或使用 statsmodels 中的某些功能来做到这一点?

0 投票
1 回答
826 浏览

python - 回归的格式化设计矩阵

我得到了一个没有响应变量的测试集。我已经建立了模型,需要预测测试集中的响应变量。

我在格式化测试设计矩阵以使其兼容时遇到问题。

我正在使用 patsy 库来构造矩阵。

我想做这样的事情,除了下面的代码不起作用:

什么是正确的方法?谢谢

0 投票
2 回答
3789 浏览

python - 构建设计矩阵python

假设我有一个 RxC列联表。这意味着有 R 行和 C 列。我想要一个维度为 RC × (R + C - 2) 的矩阵 X,它包含行的 R - 1“主效应”和列的 C - 1“主效应”。例如,如果你有R=C=2 (R = [0, 1], C = [0, 1]) 和主效应,有多种方法可以参数化设计矩阵 (X),但以下是一种方法:

请注意,这是 4 x 2 = RC x (R + C - 2),您省略了每一行的一层和每一列的一层。

对于 R 和 C 的任何值,我如何在 Python 中执行此操作,即 R = 3,C = 4([0 1 2] 和 [0 1 2 3])?我只有 R 和 C 的值,但我可以使用它们来使用np.arange(R)and构造数组np.arange(C)

0 投票
2 回答
1314 浏览

python - patsy 中的 One-hot 编码

对于回归,我通常使用 sklearn 对分类变量进行编码OneHotEncoder

我现在正在探索使用 patsy,但它似乎不提供 One-hot 编码: http: //patsy.readthedocs.io/en/latest/categorical-coding.html

是否可以使用 patsy 指定 One-hot 编码?

0 投票
1 回答
93 浏览

python - patsy 中未修改的列名索引

我正在使用 patsy 为回归准备分类数据,并希望将列名映射到DesignMatrix. 我曾尝试使用对象的column_name_indexes属性,DesignInfo但列名已被修改以反映编码。

使用文档中的数据的示例:

我希望能够'a2'通过调用来访问例如的列索引:

但当然会返回KeyError: 'a2'。因此,我必须自己构造修改后的键才能获得所需的列索引1

有没有办法通过引用未修改的特征/列名来访问列索引,即'a2'不必构造修改后的键,即'a[T.a2]'

0 投票
1 回答
457 浏览

python - 如何阻止 patsy 创建分类变量的冗余交互

我正在使用 patsy 使用公式 api 将回归与 statsmodels 拟合。

我的问题是我的设计矩阵是奇异的,因为 patsy 创建(本地?)分类的冗余交互。

我想排除第二列,因为当c1有值bc2没有值f

0 投票
1 回答
91 浏览

python - 如何在 python 3.6 中修改线性回归?

代码如下所示:

但它总是给我一个错误:

文件中的数据都是不同的数字。有些有 2 个小数,有些有更多。有什么想法可以解决这个问题并获得回归摘要吗?(由lm.summary()

先感谢您!

0 投票
1 回答
151 浏览

python - 将成本函数转换为 statsmodels 公式

我想将一些数据拟合到曲线上,将其用作成本函数:

它在使用 scipy.optimize 时有效,但我想改用 statsmodels。但是我正在努力定义一个 statsmodels 公式。你有什么想法如何做到这一点?

我试过这样的东西,但它不适用于这个 x*A + (1-x)*B:

0 投票
0 回答
92 浏览

statsmodels - 带有 Patsy 的 Statsmodels:保持输入字符串的顺序

Pasty 很好地集成在 Statsmodels 中,允许基于 string 编写 R 风格的公式

这将显示我的回归摘要,但参数的顺序似乎不遵循任何规则,例如:

因此,搜索我要查找的参数非常麻烦。

有没有办法强制摘要输出以与推算字符串相同的顺序显示?

0 投票
0 回答
4760 浏览

python - Statsmodels 与 Numpy 中的加权最小二乘?

我正在尝试使用 Numpy 的普通最小二乘 (OLS)函数复制 Statsmodels 的权重最小二乘 (WLS)函数的功能(即 Numpy 将 OLS 称为“最小二乘”)。

换句话说,我想在 Numpy 中计算 WLS。我使用这个 Stackoverflow 帖子作为参考,但是从 Statsmodel 到 Numpy 会出现截然不同的 R² 值。

采用以下复制此示例代码:

运行此类代码后,我得到以下结果:

显然这里有问题!谁能在这里指出我的缺点?我错过了理解 patsy 公式吗?