按组回归并在 python 中显示输出
Regression by group and display output in python
嗨~我想问一个与python中的回归分析相关的快速问题。我有以下 dataframe
:
group Y X
1 9 3
1 5 4
1 3 1
2 1 6
2 2 4
2 3 9
Y 是因变量,X 是自变量。我想按组 运行 回归 Y=a + bx
并输出另一个包含系数、t-stats 和 R-square 的 dataframe
。所以,数据框应该是这样的:
group coefficient t-stats intercept r-square
1 0.25 1.4 4.3 0.43
2 0.30 2.4 3.6 0.49
... ... ... ... ...
有人可以帮忙吗?非常感谢您的帮助。
我将展示一些模型,以便您构建其余部分。它主要是拉出您的自定义回归函数并使用 apply
.
传递数据框
告诉我你的想法。
import pandas as pd
import statsmodels.api as sm
def GroupRegress(data, yvar, xvars):
Y = data[yvar]
X = data[xvars]
X['intercept'] = 1.
result = sm.OLS(Y, X).fit()
return result.params
import pandas as pd
df = pd.DataFrame({'group': [1,1,1,2,2,2],
'Y': [9,5,3,1,2,3],
'X': [3,4,1,6,4,9]
})
df
df.groupby('group').apply(GroupRegress, 'Y', ['X'])
结果如下:
X intercept
group
1 1.000000 3.0
2 0.236842 0.5
嗨~我想问一个与python中的回归分析相关的快速问题。我有以下 dataframe
:
group Y X
1 9 3
1 5 4
1 3 1
2 1 6
2 2 4
2 3 9
Y 是因变量,X 是自变量。我想按组 运行 回归 Y=a + bx
并输出另一个包含系数、t-stats 和 R-square 的 dataframe
。所以,数据框应该是这样的:
group coefficient t-stats intercept r-square
1 0.25 1.4 4.3 0.43
2 0.30 2.4 3.6 0.49
... ... ... ... ...
有人可以帮忙吗?非常感谢您的帮助。
我将展示一些模型,以便您构建其余部分。它主要是拉出您的自定义回归函数并使用 apply
.
告诉我你的想法。
import pandas as pd
import statsmodels.api as sm
def GroupRegress(data, yvar, xvars):
Y = data[yvar]
X = data[xvars]
X['intercept'] = 1.
result = sm.OLS(Y, X).fit()
return result.params
import pandas as pd
df = pd.DataFrame({'group': [1,1,1,2,2,2],
'Y': [9,5,3,1,2,3],
'X': [3,4,1,6,4,9]
})
df
df.groupby('group').apply(GroupRegress, 'Y', ['X'])
结果如下:
X intercept
group
1 1.000000 3.0
2 0.236842 0.5