我在遍历pandaframe(Python)中的不同组/代码/公司时遇到问题。我想对每个股票=公司运行单独的回归,并将值存储在新的pandaframe中。
下面是数据的简短示例:(请注意,这些值是随机的)
Date Ticker Company Price HML SMB ER
21/06/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
24/06/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
25/06/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
26/06/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
27/06/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
28/06/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
01/07/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
02/07/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
03/07/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
05/07/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
08/07/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
09/07/2002 ANTQ A.A. IMPORT 0,009 0,015 0,028 0,037
10/07/2002 ANTQ A.A. IMPORT 0,101 0,015 0,028 0,037
11/07/2002 ANTQ A.A. IMPORT 0,101 0,015 0,028 0,037
12/07/2002 ANTQ A.A. IMPORT 0,101 0,015 0,028 0,037
21/06/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
24/06/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
25/06/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
26/06/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
27/06/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
28/06/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
01/07/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
02/07/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
03/07/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
05/07/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
08/07/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
09/07/2002 AIR AAR CORP 0,009 0,015 0,028 0,037
10/07/2002 AIR AAR CORP 0,101 0,015 0,028 0,037
11/07/2002 AIR AAR CORP 0,101 0,015 0,028 0,037
12/07/2002 AIR AAR CORP 0,101 0,015 0,028 0,037
想法如下:
首先,我想通过对超额收益(收益)上的Fama和法国(ER,HML和SML)因子进行回归来进行回归。然后,我想使用该模型通过从模型的预测超额收益中减去实际超额收益来预测模型中的误差。
error = smf.ols(formula="df['Return'] ~ + df['ER']+ df['HML'] + df['SML']+ ", data= df).fit().predict()-df['p']
因为我有一个横截面数据集(行上方有行情自动收录器),所以我想对每个行情收录器进行回归,并将每个行情收录器的错误值存储在新数据框中。导致这个for循环,我知道这是错误的,但要给出一个想法。
grouped_df= df.groupby("Ticker")
for group in grouped_df:
error['group'] = smf.ols(formula="df['Return'] ~ + df['ER']+ df['HML'] + df['SML']+ ", data= df).fit().predict()-df['p']
我可以帮忙吗?
先谢谢您
詹斯