gpt4 book ai didi

python - pandas 与 scipy 中的 skew 和 kurtosis 函数有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 21:12:11 43 4
gpt4 key购买 nike

我决定比较 pandas 和 scipy.stats 中的 skew 和 kurtosis 函数,但不明白为什么我在库之间得到不同的结果。

据我从文档中得知,两个峰度函数都使用 Fisher 的定义进行计算,而对于偏斜,似乎没有足够的描述来说明它们的计算方式是否存在任何重大差异。

import pandas as pd
import scipy.stats.stats as st

heights = np.array([1.46, 1.79, 2.01, 1.75, 1.56, 1.69, 1.88, 1.76, 1.88, 1.78])

print "skewness:", st.skew(heights)
print "kurtosis:", st.kurtosis(heights)

返回:

skewness: -0.393524456473
kurtosis: -0.330672097724

而如果我转换为 pandas 数据框:

heights_df = pd.DataFrame(heights)
print "skewness:", heights_df.skew()
print "kurtosis:", heights_df.kurtosis()

返回:

skewness: 0   -0.466663
kurtosis: 0 0.379705

抱歉,如果我在错误的地方发布了此内容;不知道是统计问题还是编程问题。

最佳答案

差异是由于不同的归一化。默认情况下,Scipy 不会纠正偏差,而 pandas 会。

您可以通过传递 bias=False 参数告诉 scipy 纠正偏差:

>>> x = pandas.Series(np.random.randn(10))
>>> stats.skew(x)
-0.17644348972413657
>>> x.skew()
-0.20923623968879457
>>> stats.skew(x, bias=False)
-0.2092362396887948
>>> stats.kurtosis(x)
0.6362620964462327
>>> x.kurtosis()
2.0891062062174464
>>> stats.kurtosis(x, bias=False)
2.089106206217446

似乎没有办法告诉 pandas 消除偏差校正。

关于python - pandas 与 scipy 中的 skew 和 kurtosis 函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33109107/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com