所以我有一些股票价格数据,我想测试价格是否遵循对数正态分布。我的代码如下:
import scipy.stats as stats
print(stats.kstest(df['DJIA'], "lognorm", stats.lognorm.fit(df['DJIA'])))
结果如下:
KstestResult(statistic=0.90996368658950855, pvalue=0.0)
p值为零意味着数据不符合对数正态分布,这是不可能的,因为预期股票价格将是对数正态分布的。价格的直方图如下:
我试图将直方图与对数正态函数拟合,但无法做到这一点。
答案 0 :(得分:2)
您应该在适合分配的价格时调整价格数据。尝试拟合直方图中的计数数据。您显示的图表看起来不像股票价格的直方图,它看起来像价格数据的条形图。
count, bins, ignored = plt.hist(df['DJIA'], 100, normed=True, align='mid')
params = stats.lognorm.fit(count)
stats.kstest(count, "lognorm", params)
小心kstest和fit,因为log-normal是一个连续分布,你的直方图是离散的。