R BetaExpert函数的Python等价物

时间:2018-11-10 18:26:39

标签: python numpy scipy

任何Python库是否都提供了R中BetaExpert函数的等效功能? (https://rdrr.io/cran/prevalence/man/betaExpert.html

这是让您给出专家意见(即90%的人认为它大于0.7,最有可能的是0.9),并输出涵盖此内容的Beta分布的alpha / beta参数。

scipy.stats.beta和numpy.random.beta具有各种功能,但与我所能找到的R函数没有任何可比性。

谢谢, GD

1 个答案:

答案 0 :(得分:0)

https://www.codeproject.com/Articles/56371/Finding-Probability-Distribution-Parameters-from-P

给出了解决方案
from scipy import stats, optimize
def beta_parameters(x1, p1, x2, p2):
    "Find parameters for a beta random variable X so that P(X > x1) = p1 and P(X > x2) = p2."

    def square(x): 
        return x*x

    def objective(v):
        (a, b) = v
        temp  = square( stats.beta.cdf(x1, a, b) - p1 )
        temp += square( stats.beta.cdf(x2, a, b) - p2 )
        return temp

    # arbitrary initial guess of (3, 3) for parameters
    xopt = optimize.fmin(objective, (3, 3))
    return (xopt[0], xopt[1])