我正在尝试重新创建一个扩展的beta分布,它是由我公司的一个内部工具输出的。这个工具相当过时,我正在尝试提出一个替代品。初始工具要求用户提供P90/P50/P10分位数值。它不要求用户提供alpha或beta值。因此,我需要弄清楚如何只根据分位数数据来做一个拉伸的beta分布。
例如,我想找到一个多边形的拉伸beta分布,p90值是100英亩,P50值是250英亩,P10的值是500英亩我不知道如何在Scipy中实现我不知道如何估计alpha和beta因子。我觉得如果我能推导出alpha和beta因子,我可以使用loc和scale值来潜在地约束分布。
我试着阅读Scipy的文档,老实说,我看不懂。我不是统计学家,文档似乎假设我对统计学很熟悉。
如果我能推导出alpha和beta值,那么我认为我应该能够使用loc和scale值来约束和复制分布,这是对的吗?
请让我知道我是否可以提供任何澄清。x1c 0d1x
1条答案
按热度按时间vdzxcuhz1#
不幸的是,我现在不能花时间来发布所有的细节,但我可以确认,解决3个参数(a,b和尺度参数)的3个方程的一般策略确实有效;我能够恢复OP显示的解决方案。
(1)三方程组:当x_1 = 100,x_2 = 250,x_3 = 500,分位数_1 = 1/10,分位数_2 = 1/2,分位数_3 = 9/10时,求出cdf(x_k)=分位数_k。
一般β分布CDF
其中x 0是偏移量(上述33.3),L是比例。(Scipy符号可能不同。)
(2)雅可比矩阵。对cdf(x_k)关于a、b和L求微分,给出3个梯度。构造一个矩阵,以这些梯度为行。最大值表示导数为
正则化超几何函数是3F 2函数除以gamma(n[k])的乘积,其中n是第二参数列表。
在网上快速搜索一下,Scipy似乎没有实现3F 2,所以这可能是一个障碍。
(3)为多维牛顿算法提供方程和雅可比矩阵。
很抱歉,我不能给予一个完整的解决方案,或者用Python,现在。希望这对所有的帮助一样。
编辑:这里有一个完整的解决方案,为Maxima。
下面是我得到的解决方案:
和输出: