【问题标题】:Plotting Q-Q graph in Python like in R像在 R 中一样在 Python 中绘制 QQ 图
【发布时间】:2021-05-22 20:04:24
【问题描述】:

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

我得到以下情节:

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

[Colab 链接][2]

【问题讨论】:

    标签: python r matplotlib


    【解决方案1】:

    您应该改为绘制pandas 系列的索引(取DatetimeIndex 的差异,将其转换为timedelta 并提取天数),如下所示,以获得正确的qq-plot(具有适当的分布):

    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()
    

    【讨论】:

      猜你喜欢
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-09
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多