【发布时间】:2021-07-21 23:38:53
【问题描述】:
所以让我们看看我有一个代码:
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])。我知道有一种方法可以从a 和b 中导出时刻,但是有没有相反的方法呢? (这样做可能只是微不足道的数学,但我无法理解)。
我正在将 MATLAB 代码翻译成 python,其中像 johnsonsu 这样的分布是从前四个矩派生的,所以没有其他方法可以做到这一点。
【问题讨论】:
-
你试过
tensorflow吗? tensorflow.org/probability/api_docs/python/tfp/substrates/jax/… .另外,您可以发布MATLAB pdf的绘图和数据吗? -
还有一个问题,在
scipy中johnsonsu参数loc和scale不是均值和StdDev,而是xi 和lambda。所以它基本上是在 gamma (a)、delta (b)、xi (loc) 和 lambda (scale) 上参数化的。 -
MATLAB中有一个工具箱可以从mu, sd, skew, kurt中获取gamma, delta, xi, lambda it.mathworks.com/matlabcentral/fileexchange/…
-
这是一个与纳米表面模拟相关的代码。可能如果我上传它,我会让事情变得更复杂。但我想以这种方式这样做的主要原因是因为在 JohnshonSU 模拟之前,我做了一个使用前四个矩的高斯模拟。之后我用它来生成非高斯曲面。所有关于表面模拟的论文都使用前四个矩。
-
非常感谢兄弟!你是神!
标签: python-3.x scipy scipy.stats