尝试获取滚动相关性时的 NAN 值
NAN values when trying to get the rolling correlation
我正在尝试获取 2 个值的滚动相关性,但我一直在获取 NAN 值。我知道 NAN 值与 window 大小相关联,但我很困惑。我怎么知道要为 window 尺寸放什么?我已经查看了该论坛上有关此问题的一些先前帖子,但我感到困惑。
数据集名称是 ok
,这是我插入的代码 ok[matic].rolling(50).corr(ok[bi])
。
这是我试过的代码; matic
和 bi
是我想要 运行 与 运行 宁相关的两个变量;总共有 49 行和两列。我确实有每一行的日期。但是我一直在获取 NAN 值,并且尝试在 window 大小中插入数字 50、49 和 48。我还从 bi 变量中删除了一个值,使其比 matic 值小一,但我仍然收到所有 NAN 值。我只想要每个相关性的图形和图表
matic bitcoin
Date
2021-04-01 NaN NaN
2021-04-02 NaN NaN
2021-04-03 NaN NaN
2021-04-04 NaN NaN
2021-04-05 NaN NaN
2021-04-06 NaN NaN
2021-04-07 NaN NaN
2021-04-08 NaN NaN
2021-04-09 NaN NaN
2021-04-10 NaN NaN
2021-04-11 NaN NaN
2021-04-12 NaN NaN
2021-04-13 NaN NaN
2021-04-14 NaN NaN
您获得所有 NA 的原因是因为您使用的 window 尺寸太大。
这是一个可重现的小例子:
import pandas as pd
import numpy as np
nobs = 49
ok = pd.DataFrame({'matic':np.random.rand(nobs),
'bi':np.random.rand(nobs)})
print(ok['matic'].rolling(window=50).corr(ok['bi']))
由于您的数据只有 49 个观测值,因此无法计算 window 大小为 50 的滚动平均值。
相反,您可以这样做:
print(ok['matic'].rolling(window=3).corr(ok['bi']))
计算 window 大小为 3 的滚动平均值(即三个连续项之间的相关项)。
最后,您也可以这样做:
print(ok['matic'].corr(ok['bi']))
这将只计算整个数据集中的一个相关性。
我正在尝试获取 2 个值的滚动相关性,但我一直在获取 NAN 值。我知道 NAN 值与 window 大小相关联,但我很困惑。我怎么知道要为 window 尺寸放什么?我已经查看了该论坛上有关此问题的一些先前帖子,但我感到困惑。
数据集名称是 ok
,这是我插入的代码 ok[matic].rolling(50).corr(ok[bi])
。
这是我试过的代码; matic
和 bi
是我想要 运行 与 运行 宁相关的两个变量;总共有 49 行和两列。我确实有每一行的日期。但是我一直在获取 NAN 值,并且尝试在 window 大小中插入数字 50、49 和 48。我还从 bi 变量中删除了一个值,使其比 matic 值小一,但我仍然收到所有 NAN 值。我只想要每个相关性的图形和图表
matic bitcoin
Date
2021-04-01 NaN NaN
2021-04-02 NaN NaN
2021-04-03 NaN NaN
2021-04-04 NaN NaN
2021-04-05 NaN NaN
2021-04-06 NaN NaN
2021-04-07 NaN NaN
2021-04-08 NaN NaN
2021-04-09 NaN NaN
2021-04-10 NaN NaN
2021-04-11 NaN NaN
2021-04-12 NaN NaN
2021-04-13 NaN NaN
2021-04-14 NaN NaN
您获得所有 NA 的原因是因为您使用的 window 尺寸太大。
这是一个可重现的小例子:
import pandas as pd
import numpy as np
nobs = 49
ok = pd.DataFrame({'matic':np.random.rand(nobs),
'bi':np.random.rand(nobs)})
print(ok['matic'].rolling(window=50).corr(ok['bi']))
由于您的数据只有 49 个观测值,因此无法计算 window 大小为 50 的滚动平均值。
相反,您可以这样做:
print(ok['matic'].rolling(window=3).corr(ok['bi']))
计算 window 大小为 3 的滚动平均值(即三个连续项之间的相关项)。
最后,您也可以这样做:
print(ok['matic'].corr(ok['bi']))
这将只计算整个数据集中的一个相关性。