python pandas中的分组回归

Kha*_*lid 4 python python-2.7 python-3.x pandas pandas-groupby

我想问一个有关python pandas回归分析的快速问题。因此,假设我具有以下数据集:

 Group      Y        X
  1         10       6
  1         5        4
  1         3        1
  2         4        6
  2         2        4
  2         3        9
Run Code Online (Sandbox Code Playgroud)

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

 Group   Coefficient
   1        0.25 (lets assume that coefficient is 0.25)
   2        0.30
Run Code Online (Sandbox Code Playgroud)

我希望我能解释我的问题。在此先感谢您的帮助。

iDr*_*ish 7

我不确定您需要的回归类型,但这是您执行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'])
Run Code Online (Sandbox Code Playgroud)

您可以定义您的回归函数,并将参数传递给它。