使用 Pandas 数据框运行 OLS 回归

2023-12-21

我有一个pandas数据框,我希望能够根据 B 列和 C 列中的值预测 A 列的值。这是一个玩具示例:

import pandas as pd
df = pd.DataFrame({"A": [10,20,30,40,50], 
                   "B": [20, 30, 10, 40, 50], 
                   "C": [32, 234, 23, 23, 42523]})

理想情况下,我会有类似的东西ols(A ~ B + C, data = df)但当我看到examples http://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html来自算法库,例如scikit-learn它似乎使用行列表而不是列列表将数据提供给模型。这将需要我将数据重新格式化为列表内的列表,这似乎首先违背了使用 pandas 的目的。对 pandas 数据框中的数据运行 OLS 回归(或更一般的任何机器学习算法)的最 Pythonic 方法是什么?


我认为你几乎可以完全按照你的想法去做,使用统计模型 http://statsmodels.sourceforge.net/包是其中之一pandas' 之前的可选依赖项pandas' 版本 0.20.0(它用于一些事情pandas.stats.)

>>> import pandas as pd
>>> import statsmodels.formula.api as sm
>>> df = pd.DataFrame({"A": [10,20,30,40,50], "B": [20, 30, 10, 40, 50], "C": [32, 234, 23, 23, 42523]})
>>> result = sm.ols(formula="A ~ B + C", data=df).fit()
>>> print(result.params)
Intercept    14.952480
B             0.401182
C             0.000352
dtype: float64
>>> print(result.summary())
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      A   R-squared:                       0.579
Model:                            OLS   Adj. R-squared:                  0.158
Method:                 Least Squares   F-statistic:                     1.375
Date:                Thu, 14 Nov 2013   Prob (F-statistic):              0.421
Time:                        20:04:30   Log-Likelihood:                -18.178
No. Observations:                   5   AIC:                             42.36
Df Residuals:                       2   BIC:                             41.19
Df Model:                           2                                         
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept     14.9525     17.764      0.842      0.489       -61.481    91.386
B              0.4012      0.650      0.617      0.600        -2.394     3.197
C              0.0004      0.001      0.650      0.583        -0.002     0.003
==============================================================================
Omnibus:                          nan   Durbin-Watson:                   1.061
Prob(Omnibus):                    nan   Jarque-Bera (JB):                0.498
Skew:                          -0.123   Prob(JB):                        0.780
Kurtosis:                       1.474   Cond. No.                     5.21e+04
==============================================================================

Warnings:
[1] The condition number is large, 5.21e+04. This might indicate that there are
strong multicollinearity or other numerical problems.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Pandas 数据框运行 OLS 回归 的相关文章

随机推荐

  • 在所有视图中创建 Telerik Sidedrawer

    我已经成功地让 Telerik Side drawer 在一个视图中工作 但我坚持将其制作成一个可以全局使用的组件 我想避免将其复制并粘贴到每个视图中 所以我的问题是如何将其变成可重用的组件 所以当你使用page router outlet
  • MySQL - 如果尚不存在则插入

    我想执行这个 MySQL 查询 INSERT INTO cron stats user VALUES int d by user 每当此类用户尚不存在时 如下所示 SELECT 1 FROM cron stats WHERE user in
  • git log 中带有 tformat 的额外换行符

    当我使用git log pretty oneline shortstat 我得到了我的日志的紧凑表示 git log pretty oneline shortstat 73c6eecd930c2f66d5c1e87fcca7ca9b0e35
  • 需要一些有关使用 PERL 的 IRC BOTS 的信息

    有谁知道有一款用 Perl 编写的好 irc 机器人吗 我只需要一个简单的登录到该频道 然后根据用户所说的内容进行回复 e g 用户
  • 只让实例访问标签本身?

    看着这个帖子 https serverfault com questions 686526 how do you tag and name the ec2 instance that was launched by an ec2 spot
  • AppStore iOS 应用新版本提交问题

    您好 提前致谢 在尝试使用应用程序加载器向 AppStore 提交新版本的 iOS 应用程序时 我收到了以下消息 ITC apps validation prerelease build missing 并停止提交 我在使用以前版本的 iT
  • GRPC:用Java/Scala制作高吞吐量客户端

    我有一项以相当高的速率传输消息的服务 目前它由 akka tcp 提供服务 每分钟生成 350 万条消息 我决定尝试一下 grpc 不幸的是 它导致吞吐量小得多 每分钟约 500k 条消息 甚至更少 您能推荐一下如何优化吗 My setup
  • 错误:我的 Prolog 代码中超出本地堆栈

    我无法弄清楚为什么给定 Prolog 代码的以下查询会生成错误Out of local stack 序言代码 likes g c likes c a likes c b likes b a likes b d likes X Z likes
  • PHP DOM UTF-8 问题

    首先 我的数据库使用 Windows 1250 作为本机字符集 我将数据输出为 UTF 8 我在我的网站上使用 iconv 函数将 Windows 1250 字符串转换为 UTF 8 字符串 并且效果完美 问题是当我使用 PHP DOM 解
  • 列出 Capybara/Poltergeist 元素的子元素

    我四处寻找 但找不到办法做到这一点 我们正在 EmberJS Rails 应用程序上的 Cucumber 功能中使用 Poltergeist 驱动程序运行 Capybara 测试 我无法使用 page driver debug 因为我在无头
  • 从 Swagger/OpenAPI 生成 Spring MVC 控制器

    有没有办法根据 Swagger OpenAPI 规范生成控制器 Spring MVC 代码 我知道 Swagger 可以从现有的 Spring 代码生成 但是反过来也可能吗 您基本上是在寻找生成 swagger 服务器端代码 如果您想在构建
  • 重新排列数据:从水年转换为日历年

    我有一个表 其中包含来自流量计的数据 排列如下 Water Year May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr 1 1953 1954 55 55 43 62 30 46 26 17 2
  • 如何在Android中获取MP3文件的持续时间[重复]

    这个问题在这里已经有答案了 我正在开发一个媒体播放器项目 我想根据我正在播放的 MP3 文件的长度旋转图像 即当歌曲结束时图像应该停止旋转 我想获取所选 MP3 文件的持续时间 以便可以对旋转进行计时 我读了这个问题在 Android 中从
  • 构造函数中“this”关键字的作用是什么?

    我刚才正在查看 MSDN 的示例代码 发现 namespace IListSourceCS public class Employee BusinessObjectBase private string id private string
  • 等待所有线程完成java中的工作

    我正在编写一个具有 5 个线程的应用程序 这些线程同时从 Web 获取一些信息并填充缓冲区类中的 5 个不同字段 当所有线程完成其工作时 我需要验证缓冲区数据并将其存储在数据库中 我该如何做到这一点 当所有线程完成工作时收到警报 我采取的方
  • 如何从分隔类型文件中的特定行打印特定字段

    我有一个排序的分隔类型文件 我想提取特定行中的特定字段 这是我的输入文件 somefile csv efevfe 132143 27092011080210 howdy hoodie adfasdfs 14321 2709201108184
  • Bootstrap:CSS - 列表组项目的高度

    请考虑关注 JSFiddle http jsfiddle net 7W2r4 12 http jsfiddle net 7W2r4 12 您可能会注意到 list group item已经完全崩溃了 而且我似乎无法让它自动调整 例如 hei
  • 更改 Visual Studio 中文档之间移动的 Ctrl + Tab 行为

    Is it possible to change how Ctrl Tab and Shift Ctrl Tab work in Visual Studio I have disabled the popup navigator windo
  • java.lang.ClassCastException:android.widget.TextView。为什么我会得到这个?

    由于某种原因 我收到 ClassCastException 错误 我真的不知道为什么 预先感谢 我是一名新程序员 任何帮助都会真正有帮助 没有双关语 Code final EditText answerBox EditText findVi
  • 使用 Pandas 数据框运行 OLS 回归

    我有一个pandas数据框 我希望能够根据 B 列和 C 列中的值预测 A 列的值 这是一个玩具示例 import pandas as pd df pd DataFrame A 10 20 30 40 50 B 20 30 10 40 50