问题标签 [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 回答
830 浏览

python - 变量有连字符时的Patsy公式

我正在尝试将 statsmodel 线性回归函数与公式一起使用。我的示例数据来自 Pandas 数据框。我对公式中的列名有一点问题。由于下游流程,我的列名中有连字符。例如:

现在,保留连字符的原因之一是它允许 python 拆分字符串以进行其他分析,所以我必须保留它。如您所见,当我想使用 B-NN 对 VOLT 进行回归时VOLT ~ B-NN,我遇到了一个问题,因为 patsy 公式找不到 B。

有没有办法告诉 Patsy B-NN是变量名而不是 B 减去 NN?

谢谢。

BJR

0 投票
2 回答
221 浏览

python - 在 Patsy 中创建自定义函数

我知道我能做到

但是我可以创建一个任意函数吗?我试图在 R 中模仿公式语言中相同级别的灵活性,但在 python 中实现似乎并不直接

0 投票
1 回答
177 浏览

r - R - 使用带有网状的 patsy.dmatrices()

尝试将函数patsy.dmatrices()reticulateR 包一起使用时,我遇到了命名空间问题。

这是一个简单的可重现示例:

我收到以下错误:

我认为这与命名空间相关联(参见命名空间问题在函数中调用 patsy 时),这可以通过使用eval_env函数的参数来解决,dmatrices()但我无法弄清楚如何。

当我们想在 R 中使用 Pythonstatsmodels包时,这是非常有问题的,该patsy包使用公式包。

谢谢你的帮助,

0 投票
1 回答
231 浏览

python - 对纵向数据和多个因变量使用 ols (python statsmodel) 是否正确?

在统计方面,我仍然是菜鸟。我正在使用具有 patsy 功能的 Python Package Statsmodel。

我的熊猫数据框如下所示:

因变量:沉降(纵向数据)

自变量:Label(分类)、control_grid(分类)、lvl1(分类)、lvl2(分类)。

我对两件事感兴趣。

哪些自变量对因变量有显着影响?

哪些自变量有显着交互作用?

在搜索并阅读了多个文档后,我这样做:

结果显示:

我是否在 Python 中使用正确的模型来获得我想要的结果?

我想我是,但我想验证一下。我阅读表格的方式是分类变量 lvl1 和 lvl2 对因变量有显着影响并且显示出显着的交互作用(对于某些变量)。但是,我不明白为什么我的所有变量都没有显示...正如您在我的数据中看到的那样,lvl1 列也包含“a”,但此变量未显示在结果摘要中。

0 投票
1 回答
604 浏览

python - 阻止 patsy dmatrix 删除 NaN 行

我想使用 patsy 的dmatrix函数来生成一个设计矩阵,其中保留了具有 NaN 值的行。例如,下面的代码将返回一个四行的设计矩阵,这是我们通常想要的。但是,在这种情况下,我想dmatrix返回一个包含五行的矩阵,其中第一行将有一个 NaN 值。

或者,我会选择一个允许我检索已删除/保留的行号的答案。在上面的示例中,第 1 行是被删除的行,而第 2-5 行被保留。

0 投票
1 回答
62 浏览

python - Replicate Scipy's RegressionResults.predict functionality

Here's my sample program:

You'll notice, if you run this, that model.params is a pandas Series with indices the same as the right-hand side of the formula, except with an additional entry: "Intercept"

And, using some internal functionality I can't determine, the RegressionResults object's .predict() can recognize the column headers from newdf, match them up (including the patsy syntax "I(z**2)"), add the intercept, and return an answer Series. (this is the last line of my sample code)

This seems convenient! Better than writing out my formula again in python/numpy code whenever I want to evaluate slight variations on it. I feel like there should be some way for me to construct a similar pd.Series for formula coefficients, instead of having created it through a model and fit. Then I should be able to apply this to an appropriate dataframe as a way of evaluating functions.

My attempts to figure out how statsmodel is doing this haven't worked, I haven't found anything obvious in the related function doc pages, in patsy, nor can I seem to enter this section of the source code while debugging. Anyone have any idea how to set this up?

0 投票
1 回答
1562 浏览

python - 使用 Python statsmodel 进行多元线性回归

在 R 中,可以执行多重线性回归,例如

在 Python 中,可以使用 R 样式公式执行多元线性回归,所以我认为下面的代码应该也能正常工作,

但我得到了错误

我想不可能只回归列中的部分行,因为 data = df 有 62 行,而其他变量有 51 行。

有没有像 R 一样方便的回归方法?

df 类型是 pandas Dataframe,列名是 volume_1,price_1

0 投票
1 回答
1220 浏览

python - dmatrices 看不到一列

我在下面有这段代码,假设在给列上创建 2 个数据框。df 的 Region 列有 5 个变量;W、E、N、S 和 C。但是,结果数据框只有 W、E、N、S 和一个截距列。

当我更改为如下所示的最后一行时,它可以正常工作并在数据框上显示 5 个区域值。

有人可以解释一下这是什么原因吗?在第一个代码而不是区域 C 上创建的拦截列是什么?

0 投票
0 回答
106 浏览

python - 如何在 patsy 中按组贬低变量?

对于回归,我想从(许多)右侧变量(它们是交互作用)中减去组特定的平均值。

如果没有组特异性,这当然很容易。

我怎么能用组特定的方式做到这一点?问题是右侧包含许多我不能天真地预先创建的交互术语。

所以我想预先做这样的事情:

但这不可行,有什么建议吗?

编辑 或者:有没有办法在 scikit 中按组标准化数据?

https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler

0 投票
1 回答
492 浏览

python - 为什么带有/不带 T 的虚拟变量的名称?

使用patsy时,我注意到它在其他情况下有时会命名虚拟变量,有时也可能T不命名。T今天我意识到,T当回归方程中存在常数项时,它是附加的,没有T常数项就不会。例如,比较以下代码中的z[T.1], z[0], z[1], 。OUTPUT

问题

的作用是T什么?它只是表明存在常数项吗?如果是这样,考虑到我们总是可以看到常数项的存在/不存在,这不是多余的吗?还有其他角色吗?

提前感谢您的洞察力。