问题标签 [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.
python - Python - Patsy 显然已安装但 python 找不到它?
所以我的 statsmodels 安装非常混乱——我实际上不得不自己将文件夹移动到 Enthought 的 site-packages 文件夹中。但无论如何,现在,当我选择 时import statsmodels.api as smapi
,我会收到以下错误消息列表:
所以它会出现patsy
未安装。但是当我这样做时pip install patsy
,我得到以下信息:
Requirement already satisfied (use --upgrade to upgrade): patsy in ./Enthought/Canopy_64bit/User/lib/python2.7/site-packages/patsy-0.4.1-py2.7.egg
Requirement already satisfied (use --upgrade to upgrade): six in ./Enthought/Canopy_64bit/User/lib/python2.7/site-packages (from patsy)
Requirement already satisfied (use --upgrade to upgrade): numpy in ./Enthought/Canopy_64bit/User/lib/python2.7/site-packages (from patsy)
并检查我的site-packages
文件夹,我看到了:
patsy-0.4.1-py2.7.egg
这就是上面的代码所指向的。但就是这样。仅此一项显然无法帮助我statsmodels
解决问题,但我无法再安装patsy
. 如果我尝试升级它(pip install --upgrade patsy
),我会得到:
Requirement already up-to-date: patsy in ./patsy-0.4.1-py2.7.egg
Requirement already up-to-date: six in /home/joshuajoseph/Enthought/Canopy_64bit/User/lib/python2.7/site-packages (from patsy)
Requirement already up-to-date: numpy in /home/joshuajoseph/Enthought/Canopy_64bit/User/lib/python2.7/site-packages (from patsy)
谁能帮我弄清楚发生了什么?
python - Python StatsModels Patsy 解决方法,使用超出模型参数进行预测
我正在对按年份细分的抵押贷款数据面板进行回归。所有变量都是分类的虚拟变量。在某些年份,抵押贷款的某些特征或特征可能在其他年份不存在,因此我收到如下所示的 Patsy 错误:
有什么方法可以在 StatsModels 预测工具的构造中插入不存在变量的 beta 系数,最好是前一年的一个。因此,例如:
如果我做了 model2012.predict(data2013),则会出现错误,因为 2013 年有 C 类贷款的观察值和回归量,但 2012 年没有。但是,我想在预测中假设 C 类贷款的 2011 年贝塔系数使用 2012 年参数的 2013 年数据。
如何实现?任何投入将不胜感激。
python - 在构建没有截距的两级分类变量的设计矩阵时,这是 patsy 的预期行为吗?
(patsy v0.4.1,python 3.5.0)
我想使用 patsy(最好是通过 statsmodels)来构建回归的设计矩阵。
我想拟合的 patsy 式公式是
其中 category 是一个两级分类变量。应该表明0 + ...
我不想要隐式截距项。
我期望的设计矩阵有一个带有零和一的列,指示是否category
具有基本级别 (0) 或其他级别 (1)。
以下代码:
输出:
这是单一的,而不是我想要的。
当我改为跑步时
输出是
这对于包含截距的模型是正确的,但仍然不是我想要的。
没有拦截的输出是预期的行为吗?如果是这样,为什么?我只是对这个设计矩阵应该如何与标准编码一起工作感到困惑吗?
我知道我可以编辑设计矩阵以使我的回归按照我想要的方式工作,但如果这是一个错误,我希望看到它在 patsy 中得到修复。
python - 检验 cobb-douglas 函数的规模不变回报假设检验:
我使用像 numpy 和 pandas + statsmodel 这样的 scipy 项目包来进行一些计量经济学工作,比如回归,现在我想要一个显示 β1+β2=1 的测试。
我的公式是: $ Ln(Q_i) = \beta_0 + \beta_1 Ln(L_i) + \beta_2 Ln(K_i) $
我知道在 stata 中我必须使用此代码,但在 python 中我不知道测试 β1+β2=1 的最佳方法是什么:
numpy - 当我添加 None 值时,为什么 patsy 会返回其他列?
我正在使用 patsy 创建矩阵。但是当数据集中有 None 或 Nan 值时,我会出现奇怪的行为。如下所示,它不只是删除 None 行,而是创建带有 1 和 0 的附加列。
当我添加 None 值时,为什么 patsy 会返回其他列?
python - patsy dmatrix 关于特定变量的导数
编辑:我现在有一个候选解决方案来解决我的问题(参见下面的玩具示例)——如果你能想到更强大的东西,请告诉我。
我刚刚发现了 python 的patsy包,用于从 R 样式公式创建设计矩阵,它看起来很棒。我的问题是:给定一个 patsy 公式,例如“(x1 + x2 + x3)**2”,是否有一种简单的方法可以创建一个包含与特定变量相关的导数的设计矩阵,例如“x1”?
这是一个玩具示例:
该代码生成一个带有列的设计矩阵[1, 7*x1, x2, x3, 7*x1*x2, 7*x1*x3, x2*x3, x1^2, x1*x2*x3]
。
假设我想要一个新的公式来区分 design_matrix 关于 x1。所需的结果是一个与 形状相同design_matrix
但其列为 的矩阵[0, 7, 0, 0, 7*x2, 7*x3, 0, 2*x1, x2*x3]
。有没有一种程序化的方式来做到这一点?我试过搜索 patsy 文档以及 stackoverflow,但我什么也没看到。当然,我可以手动创建导数矩阵,但如果有一个函数可以做到这一点,那就太好了(当我将公式更改为 时,不必更新它"(x1 + x2 + x3 + x4)**2 + I(x1**3)"
)。
python - 在函数中调用 patsy 时的命名空间问题
我正在尝试为 statsmodels 公式 API 编写一个包装器(这是一个简化版本,该函数的功能不止于此):
如果我将此功能提供给用户,然后他/她会尝试定义他/她自己的功能:
他们将收到一个NameError
,因为patsy
模块正在wrapper
函数的命名空间中查找square
。是否有一种安全的 Pythonic 方式来处理这种情况,而无需先验地知道函数名称是什么或需要多少函数?
仅供参考:这是针对 Python 3.4.3 的。
python - 使用 pandas 或 statsmodels 在 python 中按条件创建分类变量
我想用这种方法从我的数据中创建分类变量:
我尝试使用来自的C() 方法patsy
,但它不起作用,我知道在 stata 中我必须使用下面的代码,但在搜索后我没有找到任何干净的方法来做到这一点pyhton
:
python - 如何持久化 patsy DesignInfo?
我正在开发一个“预测模型即服务”的应用程序,其结构如下:
- 离线训练模型
- 定期将模型参数上传到“预测服务器”
- 预测服务器将单个观察作为输入,并输出预测
我正在尝试使用 patsy,但遇到了以下问题:当单个预测出现时,如何将其转换为正确的形状,使其看起来像一行训练数据?
当训练数据中的 DesignInfo 在内存中可用时,patsy 文档提供了一个示例:http: //patsy.readthedocs.io/en/latest/library-developers.html#predictions
然后输出:
请注意,该行与训练数据的形状相同;它有一列animal[T.dog]
. 在我的应用程序中,我无法访问 DesignInfo 来为新数据构建 DesignMatrix。具体来说,预测服务器如何知道训练数据中有多少其他类别的动物以及按什么顺序排列?
我以为我可以腌制它,但事实证明这还不支持:https ://github.com/pydata/patsy/issues/26
我也可以简单地将矩阵列作为字符串保存并从该在线重建矩阵,但这似乎有点脆弱。
有没有好的方法来做到这一点?