2017-06-15 67 views

回答

2

在熊猫中使用ewm.cov。您可以根据半衰期,跨度或质量中心计算平滑因子。

在熊猫0.19中,结果是Panel。在pandas 0.20中,您将获得MultiIndex DataFrame,因为Panel已弃用。

df = pd.DataFrame(np.random.randn(1000, 3)) 
covs = df.ewm(span=60).cov() 
covs[3] # covariance matrix as of period 4; could be DatetimeIndex 
Out[7]: 
     0  1  2 
0 0.48489 0.12341 -0.41335 
1 0.12341 0.59947 -0.18762 
2 -0.41335 -0.18762 0.67513 
+0

谢谢布拉德。 ewma的递归是从数据框的第一行开始还是在最后一行?这对设置测试数据有影响 – schuler

+0

从第一个位置开始。你想'.ewm(adjust = False)'(默认是'True')。您可能需要查看[docs](http://pandas.pydata.org/pandas-docs/stable/computation.html#exponentially-weighted-windows)以确保自己。 –