用Python绘制QQ图

2024-10-01 15:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图在变量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

我得到下面的图:

QQ_PLOT in R

我在colab中共享笔记本的链接可能有助于理解问题

[Colab Link][2]


Tags: 数据fromimportapimatplotlibasfig绘制
1条回答
网友
1楼 · 发布于 2024-10-01 15:31:34

您应该绘制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()

enter image description here

相关问题 更多 >

    热门问题