[英]Plotting Q-Q graph in Python like in R
當我嘗試 plot 將以下數據存儲在變量 i 中時,我遇到了麻煩。
Dates
2015-08-21 0.032369
2015-08-24 0.040211
2015-09-01 0.030023
Python
import statsmodels.api as sm
from matplotlib import pyplot as plt
fig = sm.qqplot(i, line='45')
plt.show()
R
r <- 0.01
spcs <- as.numeric(diff(time(i)))
qq_plot(spcs, FUN = function(p) qexp(p, rate = r)) # r = exceedance probability
在 R
我得到以下 plot:
我在 colab 中分享筆記本的鏈接可能有助於理解問題
[Colab 鏈接][2]
您應該 plot pandas
系列的索引代替(獲取DatetimeIndex
的差異,將其轉換為timedelta
並提取天數),如下所示,以獲得正確的 qq 圖(具有適當的分布):
import statsmodels.api as sm
import scipy.stats as stats
from matplotlib import pyplot as plt
pd.to_timedelta(np.diff(i.index), unit='ns').days.values
# array([3, 8])
r = 0.01
fig = sm.qqplot(pd.to_timedelta(np.diff(i.index), unit='ns').days.values, \
stats.expon, loc=0, scale=r)
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.