【问题标题】:R gamlss.dist exGAUS versus scipy.stats exponnorm-- how to get same answerR gamlss.dist exGAUS 与 scipy.stats exponnorm——如何得到相同的答案
【发布时间】:2022-10-13 00:08:19
【问题描述】:

我正在尝试在 Python 的 scipy.stats.exponnorm 中复制来自 R 的 gamlss.dist exGAUS 的答案。

R 中的以下内容返回-0.4003516

library(gamlss)
qexGAUS(0.5, mu = -1., sigma = .6, nu = .7, lower.tail = TRUE, log.p = FALSE)

但是,scipy 中的以下内容返回 -0.6153701019503552

from scipy.stats import exponnorm
exponnorm.ppf(q=0.5, K=.7, loc=-1, scale=.6)

如何配置 scipy 输入以获得与 R 中相同的答案?基于Why does gamlss give incorrect estimates of ex-gaussian distribution parameters?,我认为它与输入的对数转换有关,但我似乎无法与对数/反对数输入的各种组合相匹配。

【问题讨论】:

    标签: python r scipy.stats gamlss


    【解决方案1】:

    如果您阅读该函数的文档,您会看到您需要按此顺序放置输入,并且 K 实际上是一个类似对象的数组,并且该函数返回一个类似对象的数组。

    ppf(q, *args, **kwds) method of scipy.stats._continuous_distns.exponnorm_gen instance
        Percent point function (inverse of `cdf`) at q of the given RV.
        
        Parameters
        ----------
        q : array_like
            lower tail probability
        arg1, arg2, arg3,... : array_like
            The shape parameter(s) for the distribution (see docstring of the
            instance object for more information)
        loc : array_like, optional
            location parameter (default=0)
        scale : array_like, optional
            scale parameter (default=1)
        
        Returns
        -------
        x : array_like
            quantile corresponding to the lower tail probability q.
    

    与 R 实现相比,此函数的输入似乎非常不同。 r 实现只是要求 mu sigma 等来获得分布的形状。

    我试着像这样实现它,

    我将正态分布放入 K 变量中,并将 loc(均值)和比例(sig)设置在 ppf 之外。

    from scipy.stats import exponnorm
    norm = stats.norm(1, 0)
    x= norm.rvs(1)
    exponnorm.ppf(q=0.5, K=x, loc=-1, scale=0.6)
    

    我的输出是,

    array([-0.47452099])
    

    K 实际上是采用一组数字来获得相同的分布。我认为他们在 scipy 和 r 中实现这一点的方式是不同的,所以数字将会关闭。

    您是否考虑过改用https://github.com/ppsp-team/PyNM?它链接到 R gamlss 包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      相关资源
      最近更新 更多