熊猫滚动相关性随时间偏移表现异常

时间:2019-04-15 13:27:41

标签: python pandas time-series

我正在尝试使用时间偏移量作为滚动窗口来计算pandas(0.21.1)数据帧的两列之间的滚动相关性。

使用int window = n,我得到了预期的行为-第一个非nan条目,即第n行,是使用前n行计算的相关性;下一行是使用1:n + 1行的相关性,等等。

但是,使用pd.Timedelta窗口时,我得到了完全不同的结果-第n行是相同的,但是第n + 1行是使用前n + 1行计算的相关性-就像窗口的值无关紧要,即使我有一个DateTimeIndex

示例:

df = pd.DataFrame(index=pd.DatetimeIndex(start='2019-01-01',freq='1min',periods=100),columns=['a','b'])
df['a']=range(100)
df['b']=[100+0.4*x + 17 * np.random.normal(0,1,1)[0] for x in range(100)]

基于第1至11行的“手动”相关性计算:

print(((df-df.mean())/df.std()).iloc[1:11].corr())

a    1.000000
b    0.277464
Name: 2019-01-01 00:10:00, dtype: float64

使用int窗口的相关性:

print(df.rolling(10)['a'].corr(df.rolling(10)['b']).iloc[10])

          a         b
a  1.000000  0.277464
b  0.277464  1.000000

使用偏移量窗口的相关性(应与timedelta相同,两者均无效):

print(df.rolling('10min')['a'].corr(df.rolling('10min')['b']).iloc[10])
a    1.000000
b    0.175995
Name: 2019-01-01 00:10:00, dtype: float64

我什么都不来?

0 个答案:

没有答案