如何从前四个矩均值、标准差、偏度和峰度中提取johnsonsu.rvs()分布的a、b?

How to extract a, b of johnsonsu.rvs() distribution from the first four moments mean, stdev, skewness and kurtosis?

让我们看看我有一个代码,其中:

mu=0 # first moment
rms=3 # second moment
skew=1 # third moment - skewness
kurt=3 # fourth moment - kurtosis

问题是我想使用这些参数作为输入并从中提取一些 a, b 来满足我的 johnsonsu.rvs(a=?, b=?, loc=mu, scale=rms, size=[N,N])。我知道有一种方法可以从 ab 中推导出力矩,但是有什么方法可以相反吗? (可能这只是微不足道的数学运算,但我无法理解)。

我正在将 MATLAB 代码翻译成 python,其中像 johnsonsu 这样的分布是从前四个时刻派生的,所以没有其他方法可以做到这一点。

我已经移植了 MATLAB 代码来估计矩的约翰逊分布参数

https://www.mathworks.com/matlabcentral/fileexchange/46123-johnson-curve-toolbox

到Python

https://github.com/maxdevblock/j_johnson_M

用法

from j_johnson_M import f_johnson_M

coef, j_type, err = f_johnson_M(mu, sd, skew, kurt)

gamma, delta, xi, lam = coef