Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的约翰逊矩分布_Python_Scipy_Statistics_Distribution - Fatal编程技术网

Python中的约翰逊矩分布

Python中的约翰逊矩分布,python,scipy,statistics,distribution,Python,Scipy,Statistics,Distribution,约翰逊矩分布(其算法于1976年发布)在年实现 被称为@Risk或理论风险 被调用的supplists 一个叫做约翰逊曲线工具箱的工具 在Scipy中,没有实现它,只有Johnson和分布,它们与Johnson矩分布不同。是否还有另一个python库,或者如何在python中实现它 。AS99算法:拟合 约翰逊以瞬间为曲线。应用统计学25(2):180-189 我在目前正在进行的一个辅助项目中也遇到了同样的问题,我找到了一个非常有效的解决方案 首先,我建议您阅读算法最初发布的位置。你需要注册

约翰逊矩分布(其算法于1976年发布)在年实现

  • 被称为@Risk或
    理论风险
  • 被调用的
    supplists
  • 一个叫做约翰逊曲线工具箱的工具
在Scipy中,没有实现它,只有Johnson和分布,它们与Johnson矩分布不同。是否还有另一个python库,或者如何在python中实现它

。AS99算法:拟合 约翰逊以瞬间为曲线。应用统计学25(2):180-189


我在目前正在进行的一个辅助项目中也遇到了同样的问题,我找到了一个非常有效的解决方案

首先,我建议您阅读算法最初发布的位置。你需要注册一个免费帐户,但是你每月可以得到100篇免费文章。我建议这样做的原因是,根据你的描述,我感觉你可能误解了算法的作用。你提到了“约翰逊矩分布”,它不是什么东西。那篇文章中描述的算法(与您在文章中提到的相同)描述了一个名为 JNSN,将平均值、stdDev、偏度和峰度作为输入,并返回估计的约翰逊分布类型(Su、Sb、正态或指数)加上分布所需的4个参数(γ、δ、β和λ)。这四个参数在文献中描述了关于约翰逊分布,分别命名为伽马、β、∑和LAM(虽然在代码中他指的最后2个为XLAM和席,并且在函数签名中具有相反的顺序)。 给定输出“itype”,您可以选择实例化法线曲线、指数曲线或通过SciPy。当您这样做时,beta和gamma对应于SciPy的“a”和“b”参数,而sigma和lam对应于“位置”和“比例”参数。您可以通过从实例化的SciPy分布中提取平均值、StdDev、偏度和峰度,并检查它们是否与传递给JNSN函数的输入匹配来测试这一点

现在来看python实现。。。没有。那里的代码是fortran。我试着把它翻译成Python,但是翻译中有太多的错误。而且,翻译代码的速度非常糟糕。因此,我放弃了翻译代码的想法,而是将代码编译成机器语言python插件

注意:源代码也包含到了一堆其他fortran模块中。

最后注意:原始源代码使用4字节浮点数。我在fortran代码中直接更新了它,然后使用
f2py-h…
命令生成,然后调整python的签名。

我在当前正在进行的一个副业项目中遇到了同样的问题,我找到了一个非常有效的解决方案

首先,我建议您阅读算法最初发布的位置。你需要注册一个免费帐户,但是你每月可以得到100篇免费文章。我建议这样做的原因是,根据你的描述,我感觉你可能误解了算法的作用。你提到了“约翰逊矩分布”,它不是什么东西。那篇文章中描述的算法(与您在文章中提到的相同)描述了一个名为 JNSN,将平均值、stdDev、偏度和峰度作为输入,并返回估计的约翰逊分布类型(Su、Sb、正态或指数)加上分布所需的4个参数(γ、δ、β和λ)。这四个参数在文献中描述了关于约翰逊分布,分别命名为伽马、β、∑和LAM(虽然在代码中他指的最后2个为XLAM和席,并且在函数签名中具有相反的顺序)。 给定输出“itype”,您可以选择实例化法线曲线、指数曲线或通过SciPy。当您这样做时,beta和gamma对应于SciPy的“a”和“b”参数,而sigma和lam对应于“位置”和“比例”参数。您可以通过从实例化的SciPy分布中提取平均值、StdDev、偏度和峰度,并检查它们是否与传递给JNSN函数的输入匹配来测试这一点

现在来看python实现。。。没有。那里的代码是fortran。我试着把它翻译成Python,但是翻译中有太多的错误。而且,翻译代码的速度非常糟糕。因此,我放弃了翻译代码的想法,而是将代码编译成机器语言python插件

注意:源代码也包含到了一堆其他fortran模块中。

最后注意:原始源代码使用4字节浮点数。我直接在fortran代码中更新了它,然后使用
f2py-h…
命令生成,然后调整python的签名。

不确定是什么分布。在您提供的R包中有Johnson SU、SB、normal和lognormal,没有其他内容。请参阅我添加的引用Hill论文的matlab代码?这就是约翰逊矩分布,
f\u-Johnson\u-M
。另一方面,R软件包文档说明,参数“也可以通过矩进行估计。应用统计算法99,由Hill、Hill和Holder(1976)提供,已被翻译为C用于此实现。”如果您有一篇描述该算法的论文,将算法转换为Python代码不是很简单吗?您看到了Matlab代码的正确长度,但不确定Johnson矩分布是什么。在您提供的R包中有Johnson SU、SB、normal和lognormal,没有其他内容。请参阅我添加的引用Hill论文的matlab代码?这就是约翰逊矩分布,
f\u-Johnson\u-M
。另一方面,R包文件规定,参数“也可根据