簡體   English   中英

在 Python 中繪制 QQ 圖,就像在 R 中一樣

[英]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:

R中的QQ_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM