我正在计算coskew矩阵,想用pandas内置的skew
方法重新检查我的计算。我无法调和熊猫是如何计算的。
将我的系列定义为:
import pandas as pd
series = pd.Series(
{0: -0.051917457635120283,
1: -0.070071606515280632,
2: -0.11204865874074735,
3: -0.14679988245503134,
4: -0.088062467095565145,
5: 0.17579741198527793,
6: -0.10765856028420773,
7: -0.11971470229167547,
8: -0.15169210769159247,
9: -0.038616800990881606,
10: 0.16988162977411481,
11: 0.092999418364443032}
)
我比较了下面的计算结果,希望它们是相同的。
series.skew()
1.1119637586658944
(((series - series.mean()) / series.std(ddof=0)) ** 3).mean()
0.967840223081231
这是明显不同的。我想可能是Fisher-Pearson coefficient。所以我做到了:
n = len(series)
skew = series.sub(series.mean()).div(series.std(ddof=0)).apply(lambda x: x ** 3).mean()
skew * (n * (n - 1)) ** 0.5 / (n - 1)
1.0108761442417222
还差一点呢。
熊猫是如何计算倾斜的?
我发现带参数} 返回相等的输出,所以我认为在
bias=False
的^{pandas skew
中默认为bias=False
:不确定是100%,但我想我在code找到了
编辑(piRSquared)
来自^{} ^{} code
调整是
(n * (n - 1)) ** 0.5 / (n - 2)
,而不是(n * (n - 1)) ** 0.5 / (n - 1)
相关问题 更多 >
编程相关推荐