繁体   English   中英

用于按组滚动 window 回归的 Pyhton 代码

[英]Pyhton code for rolling window regression by groups

我想在 12 个月内对面板数据执行滚动 window 回归,并以 output 的方式获得每月拦截基金。 我的数据具有每月回报的资金 (ID)。 在此处输入图像描述

请您帮助我使用相同的 python 代码。

statsmodels中有滚动 OLS。 您可以将其与groupby一起使用

示例代码:

import pandas as pd
import numpy as np

from statsmodels.regression.rolling import RollingOLS

# Read data & adding "intercept" column
df = pd.read_csv('sample_rolling_regression_OLS.csv')
df['intercept'] = 1

# Groupby then apply RollingOLS
df.groupby('name')[['y', 'intercept', 'x']].apply(lambda g: RollingOLS(g['y'], g[['intercept', 'x']], window=6).fit().params)

示例数据:或者您可以在以下位置下载: https://www.dropbox.com/s/zhklsg5cmfksufm/sample_rolling_regression_OLS.csv?dl=0

   name     y    x  intercept
0     a  13.7  7.8          1
1     a -14.7 -9.7          1
2     a  -3.4 -0.6          1
3     a   7.4  3.3          1
4     a  -5.3 -1.9          1
5     a  -8.3 -2.3          1
6     a   8.9  3.7          1
7     a  10.0  7.9          1
8     a   1.8 -0.4          1
9     a   6.7  3.1          1
10    a  17.4  9.9          1
11    a   8.9  7.7          1
12    a  -3.1 -1.5          1
13    a -12.2 -7.9          1
14    a   7.6  4.9          1
15    a   4.2  2.3          1
16    a -15.3 -5.6          1
17    a   9.9  6.7          1
18    a  11.0  5.2          1
19    a   5.7  5.1          1
20    a  -0.3 -0.6          1
21    a -15.0 -8.7          1
22    a -10.6 -5.7          1
23    a -16.0 -9.1          1
24    b  16.7  8.5          1
25    b   9.2  8.2          1
26    b   4.7  3.4          1
27    b -16.7 -8.7          1
28    b  -4.8 -1.5          1
29    b  -2.6 -2.2          1
30    b  16.3  9.5          1
31    b  15.8  9.8          1
32    b -10.8 -7.3          1
33    b  -5.4 -3.4          1
34    b  -6.0 -1.8          1
35    b   1.9 -0.6          1
36    b   6.3  6.1          1
37    b -14.7 -8.0          1
38    b -16.1 -9.7          1
39    b -10.5 -8.0          1
40    b   4.9  1.0          1
41    b  11.1  4.5          1
42    b -14.8 -8.5          1
43    b  -0.2 -2.8          1
44    b   6.3  1.7          1
45    b -14.1 -8.7          1
46    b  13.8  8.9          1
47    b  -6.2 -3.0          1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM