我具有特定股票的以下价格数据。使用df.head()
,我有:
Adj Close pct_change log_ret
Date
2018-01-02 167.701889 0.017905 0.017746
2018-01-03 167.672668 -0.000174 -0.000174
2018-01-04 168.451508 0.004645 0.004634
2018-01-05 170.369385 0.011385 0.011321
2018-01-08 169.736588 -0.003714 -0.003721
使用df['pct_change'] = df['Adj Close'].pct_change()
获取pct_change,而使用df['log_ret'] = np.log(df['Adj Close']) - np.log(df['Adj Close'].shift(1))
导出log_ret。
首先,我证明股票的日收益率是正态分布的:
plt.hist(df['log_ret'].loc[df.index >= '2018-01-01'], 100)
plt.show()
由于股票的日收益率是正态分布的,因此股票的价格应遵循lognormal distribution
。如果我正确解释,则表示log(['Adj Price'])〜N(mean,var)。因此,我创建了一个新列log_price
并尝试绘制以下内容:
df['log_price'] = np.log(df['Adj Close'])
plt.hist(df['log_price'].loc[df.index >= '2018-01-01'], 100)
plt.show()
但是,价格似乎并不遵循对数正态分布。我想证明价格遵循对数正态分布,所以我做错了什么?
答案 0 :(得分:-1)
如果Y具有正态分布,则Y的指数函数X = exp(Y)具有对数正态分布
但是在您的代码中,您记录了错误的日志,因此请更正代码,有关更多详细信息,请遵循Wikipedia。