【发布时间】:2019-06-02 18:40:38
【问题描述】:
我注意到从 scipy stats 返回的偏度不正确。 Pandas.skew() 实际上提供了更好的结果。 我最近试图复制 French&Schwert 的一篇经典论文,Expected Stock Returns and Volatility。我使用从 1928 年到 1984 年的 S&P500 数据。我按照论文中的公式计算收益的标准差,并且对于均值、标准差和标准差的标准差,我能够得到相同的结果。 但是,当我使用 scipy.stats.skew 函数时,我无法获得 sp 返回的任何数量的 std dev 。该函数返回“nan”,显然它应该返回一个值。 我切换到 Pandas.skew()。它返回了我在论文中的正确值。
显然,scipy.stats.skew() 函数有问题。
scipy.stats.skew() pandas.skew()
- Scipy.stats.skew() 的结果 ['Adj Close_gspc','Adj Close_gspc_lag','SP_Return','SP_Return_square', 'SP_Return_lag'、'SP_varianceMon'、'SP_varianceMon_sqrRoot']
array([ 0.6922229 , 0.69186265, -0.11292165, 4.23571807, -1.9556035 , 5.39873607, 南])
- 熊猫的结果:
Adj Close_gspc 0.693745 调整 Close_gspc_lag 0.693384 SP_Return -0.113170 SP_Return_square 4.245033 SP_Return_lag -1.959904 SP_varianceMon 5.410609 SP_varianceMon_sqrRoot 2.800919 数据类型:float64
【问题讨论】:
-
如果您提供minimal reproducible example 任何人都可以运行以重现问题,那么帮助您调试
nan值会更容易。
标签: scipy statistics