业绩归因Brinson模型
result = pd.DataFrame()
result['板块配置'] = df['Q2']-df['Q1']-(df['wp_i']-df['wb_i'])*sum(df['Q1'])
result['板块内选股'] = df['Q3']-df['Q1']
result['交互收益'] = df['Q4']-df['Q3']-df['Q2']+df['Q1']
result['总超额收益'] = df['Q4']-df['Q1']
result.loc['合计'] = result.apply(lambda x:x.sum(),axis=0)
result
Out[4]:
板块配置 板块内选股 交互收益 总超额收益
现金 -0.018223 0.000000 0.000000 0.000000
能源 -0.001290 0.018671 0.021414 0.040507
原材料 -0.001123 0.359715 -0.267110 0.088813
非必需消费品 -0.001447 0.064139 -0.016882 0.044210
必需消费品 -0.010780 -0.014408 0.014408 -0.014408
医疗保健 0.000008 0.252120 0.000569 0.252703
金融 0.006898 0.581913 -0.346624 0.228961
信息技术 -0.001133 -0.005285 0.005285 -0.005285
电信服务 -0.000119 -0.000675 0.000675 -0.000675
公共服务 0.000000 0.000000 0.000000 0.000000
工业 -0.006254 0.206330 0.128927 0.334894
合计 -0.033462 1.462520 -0.459337 0.969721