此Mathematica函数可找到Gamma分布的参数b, 给定平均值和95%的值,并用平均值[Mu]进行缩放; 两个值括号[Beta]使其速度更快,并且最大pg95 = 5.8 [Mu] * gb [[Mu] ,p95 ]有一个限制。 我需要将此代码转换为Python:
<div id="homeSlides fade">
答案 0 :(得分:0)
即使您找不到完全等效的伽马函数,您也应该能够使用SciPy的集成和求根函数来翻译gb
。可以获得所需的功能,例如(说明一些演示值)
例如
如您所见,从更基本的功能构造的代码会产生相同的答案,尽管速度较慢。
代码
gamma[z_] := \!\(
\*SubsuperscriptBox[\(\[Integral]\), \(0\), \(\[Infinity]\)]\(
\*SuperscriptBox[\(t\), \(z - 1\)]
\*SuperscriptBox[\(E\), \(-t\)] \[DifferentialD]t\)\)
gamma[a_, z0_, z1_] := \!\(
\*SubsuperscriptBox[\(\[Integral]\), \(z0\), \(z1\)]\(
\*SuperscriptBox[\(t\), \(a - 1\)]
\*SuperscriptBox[\(E\), \(-t\)] \[DifferentialD]t\)\)
gammaregularized[a_, z1_] := gamma[a, 0, z1]/gamma[a]
cdf[\[Beta]_, p_] :=
Piecewise[{{gammaregularized[1/\[Beta], p/\[Beta]], p > 0}}]
p = 1.2;
FindRoot[cdf[\[Beta], p] - .95, {\[Beta], 1, If[p == 1, 1.1, p]}]
FindRoot[CDF[GammaDistribution[1/\[Beta], \[Beta]],
p] - .95, {\[Beta], 1, If[p == 1, 1.1, p]}]