python pandas中的分组回归

Posted

技术标签:

【中文标题】python pandas中的分组回归【英文标题】:Regression by group in python pandas 【发布时间】:2018-09-28 10:01:48 【问题描述】:

我想问一个与 python pandas 中的回归分析相关的快速问题。 所以,假设我有以下数据集:

 Group      Y        X
  1         10       6
  1         5        4
  1         3        1
  2         4        6
  2         2        4
  2         3        9

我的目标是进行回归; Y 是因变量,X 是自变量。问题是我想按组运行此回归并在新数据集中打印系数。所以,结果应该是这样的:

 Group   Coefficient
   1        0.25 (lets assume that coefficient is 0.25)
   2        0.30

我希望我能解释我的问题。 非常感谢您的帮助。

【问题讨论】:

只适合每个组的单独回归模型... 就算我有一百万个群? 嗯,这取决于你的目标......你打算如何处理这些系数? 为什么我的目标在这里很重要?重要的一点是我需要所有这些系数。实际上,我认为我无法进行单独的回归。它很耗时,因为我有大量的团体。它是逐个滴答数据。 知道你的目标,我们可能会给你更好的建议......目前我不明白为什么你需要在每个组中进行回归,而不是使用@对整个数据集进行一次回归987654323@ 和 X 作为输入 X 数据集和 Y 作为目标 【参考方案1】:

我不确定您需要的回归类型,但这就是您执行 OLS(普通最小二乘法)的方式:

import pandas as pd
import statsmodels.api as sm 

def regress(data, yvar, xvars):
    Y = data[yvar]
    X = data[xvars]
    X['intercept'] = 1.
    result = sm.OLS(Y, X).fit()
    return result.params


#This is what you need
df.groupby('Group').apply(regress, 'Y', ['X'])

您可以定义您的回归函数并按照上述方式向其传递参数。

【讨论】:

以上是关于python pandas中的分组回归的主要内容,如果未能解决你的问题,请参考以下文章

python多元线性回归怎么计算

使用 Python(Pandas 和 Numpy)进行线性回归

使用 Python(Pandas 和 Numpy)进行线性回归

python pandas groupby分组后的数据怎么用

使用Pandas数据读取器进行Python回归建模

如何在 Python Pandas 中输出回归表