【问题标题】:Different results when using the st.gumbel_r.ppf()使用 st.gumbel_r.ppf() 时的不同结果
【发布时间】:2021-06-17 17:53:37
【问题描述】:

我想使用 st.gumbel_r.ppf() 计算给定概率的值。我将它与分析解决方案进行比较,它给了我完全不同的结果,有人知道为什么吗? 我使用方法的时刻获得了比例和位置的值

P_class = [0.14285714, 0.28571429, 0.42857143, 0.57142857, 0.71428571, 0.85714286, 0.999999]

u = 8.590342451210152
alpha = 0.1841827435642898

h_class1 = st.gumbel_r.ppf(P_class, scale = u, loc = alpha)
h_class = u-np.log(-np.log(P_class))/alpha

Results
h_class1 = [ -5.53466431,  -1.7516637 ,   1.6076281 ,   5.17091797, 9.54112426,  16.24661736, 118.86414528]
h_class = [4.97583548,  7.36682128,  9.49000861, 11.74212971, 14.50424958, 18.74235061, 83.60013865]

我想在使用 scipy 函数时得到相同的 h_class 结果

【问题讨论】:

    标签: python scipy scipy.stats


    【解决方案1】:

    您的比例和位置参数混淆了,h_class 的正确表达式如下。

    import scipy.stats as st
    P_class = [0.14285714, 0.28571429, 0.42857143, 0.57142857, 0.71428571, 0.85714286, 0.999999]
    
    u = 8.590342451210152
    alpha = 0.1841827435642898
    
    h_class1 = st.gumbel_r.ppf(P_class, scale = u, loc = alpha)
    h_class = alpha-np.log(-np.log(P_class))*u
    print(h_class1)
    print(h_class)
    

    你会得到一个完美的匹配

    [ -5.5346644   -1.7516636    1.60762813   5.17091794   9.54112411
      16.24661755 118.86414528]
    [ -5.5346644   -1.7516636    1.60762813   5.17091794   9.54112411
      16.24661755 118.86414528]
    

    【讨论】:

      【解决方案2】:

      鉴于您的比例位置值,您定义的右偏 Gumpel 分布是

      dist = sps.gumbel_r(loc=alpha, scale=u)
      x = np.linspace(dist.ppf(.0001), dist.ppf(.99999), 1000)
      pdf = dist.pdf(x)
      cdf = dist.cdf(x)
      fig, ax = plt.subplots(1, 2, figsize=(12, 4))
      ax[0].plot(x, pdf)
      ax[0].set_title('PDF')
      ax[1].plot(x, cdf)
      ax[1].set_title('CDF')
      for p in P_class:
          ax[1].axhline(p, color='r', ls='--', lw=1)
          ax[1].axvline(dist.ppf(p), color='k', ls=':', lw=1)
          print('CDF:', p, 'X:', dist.ppf(p))
      plt.show()
      

      使用 ppf(百分比点函数),您可以在累积密度函数 (CDF) 的值 p 处评估 x 的值

      CDF: 0.14285714 X: -5.534664397573627
      CDF: 0.28571429 X: -1.7516635973033354
      CDF: 0.42857143 X: 1.6076281292815586
      CDF: 0.57142857 X: 5.170917935306729
      CDF: 0.71428571 X: 9.541124106213145
      CDF: 0.85714286 X: 16.246617550548397
      CDF: 0.999999 X: 118.86414527936681
      

      因此,您得到的比例位置可能是错误的,或者您正在搜索的内容不同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-26
        • 2014-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多