【问题标题】:Plotting a lognormal distribution of stock price绘制股票价格的对数正态分布
【发布时间】:2019-08-19 03:02:26
【问题描述】:

我有雅虎从 2000 年 1 月 1 日到 2018 年 12 月 31 日特定股票的每日价格数据。我了解股票价格的每日百分比变化遵循正态分布,因此我做了以下操作:

df['pct_change'] = df['Adj Close'].pct_change()
df = df.dropna()

# Plot normal distribution of daily returns
mu = df['pct_change'].mean()
std = df['pct_change'].std()
x = np.linspace(mu - 5*std, mu + 5*std,100)
plt.plot(x, stats.norm.pdf(x, mu, std))
plt.show()

现在,我想用对数正态分布绘制股票价格,但我对 stats.lognorm.pdf() 函数和要包含的参数感到非常困惑。由于价格的日志是正态分布的,我应该在原始数据框中创建Adj Price 列的日志的新列吗?如果有帮助,这里是数据框的head()。谢谢。

            High       Low      Open     Close       Volume        Adj Close  \
Date                                                                         
2000-01-03  4.017857  3.631696  3.745536  3.997768  133949200.0   3.488905   
2000-01-04  3.950893  3.613839  3.866071  3.660714  128094400.0   3.194754   
2000-01-05  3.948661  3.678571  3.705357  3.714286  194580400.0   3.241507   
2000-01-06  3.821429  3.392857  3.790179  3.392857  191993200.0   2.960991   
2000-01-07  3.607143  3.410714  3.446429  3.553571  115183600.0   3.101249   

              pct_change  
Date                    
2000-01-03    0.088754  
2000-01-04   -0.084310  
2000-01-05    0.014634  
2000-01-06   -0.086539  
2000-01-07    0.047368 

【问题讨论】:

  • 什么是stats?您应该在示例中显示相关的导入语句。
  • @wwii:是scipy.stats(问题标记为scipy)。不过,我并不清楚这个问题:您是否完全不考虑时间,是否试图将日志与您的价格(以及哪个价格?)相匹配?
  • @fuglede:我正在尝试拟合“调整价格”,因为我想显示价格遵循对数正态分布。这是我使用对数正态分布的方式吗?或者正确的解释方式是:给定“Adj Price”的均值和标准差,价格 x 将遵循某个对数正态分布?
  • 如果您想确定数据是否遵循某种分布,除了适合您的目的的任何统计测试之外,您可能还需要一个 QQ 图;它们往往比仅仅根据数据绘制拟合分布更容易阅读。

标签: python matplotlib scipy


【解决方案1】:

假设您想使用 MLE 估计对数正态的参数,并且您特别对 df.Close 的值感兴趣,您可以使用 lognorm.fit 进行此操作:

shape, location, scale = stats.lognorm.fit(df.Close)

从那里,您可以像绘制正态分布情况一样绘制分布,通过

获得密度
stats.lognorm.pdf(x, s=shape, loc=location, scale=scale)

【讨论】:

  • 应该是 stats.lognorm.fit(df) 还是 stats.lognorm.fot(df['Adj Price'])?因为我有兴趣绘制调整后价格的对数范数分布?
  • 那么应该是stats.lognorm.fit(df['Adj Price'])
猜你喜欢
  • 2019-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多