我开始使用新的 Mathematica 统计和数据分析功能进行越来越多的工作。
我周二参加了“Mathematica 统计与数据分析”在线研讨会(非常棒的演讲,我强烈推荐),但我遇到了一些问题,我希望这个论坛上的人可以花点时间考虑一下。
我创建了一个相当广泛的笔记本来简化我的数据分析,称之为“AnalysisNotebook”。它输出一系列广泛的图表和数据,包括:直方图、PDF
and CDF
图、Q-Q 图、尾部拟合研究图、假设检验数据等。
只要我继续使用 Mathematica 的现成发行版,这就非常有效,并且对于简单的情况可能也适用MixtureDistribution
甚至ParameterMixtureDistribution
至于这些 Mathematica 可能会计算出时刻和PDF
and CDF
, FindDistributionParameters
等,将混合物分解成碎片。
当我尝试定义和使用一个简单的方法时,我遇到了麻烦TransformedDistribution
i.e.,
LogNormalNormalDistribution[Gamma_, Sigma_, Delta_] :=
TransformedDistribution[ u*v + Delta,
{Distributed[ u, LogNormalDistribution[ Log[Gamma], Sigma] ],
Distributed[ v, NormalDistribution[0, Sqrt[2]]}
];
我想做很多类似转换分布的事情。我很欣赏这样的挑战(其中一些是我在这个论坛上学到的 - 谢谢大家):
- 它们可能没有封闭的形式;
-
PDF
and CDF
计算可能需要插值、解决方法或自定义方法;
-
FindDistributionParameters
and DistributionFitTest
会不知道如何处理这种事情。
基本上,人们想要使用的标准东西实际上不起作用/不能工作,并且人们不能完全期望它们这样做。
人们可以编写自定义代码来完成这些事情(这个论坛再次为我提供了很多帮助),但随后将自定义替代方案的所有复杂性合并到我的 AnalysisNotebook 中,这似乎很愚蠢。 AnalysisNotebook 将随着每个新的自定义函数而增长。
如果我可以编写我的自定义版本,这将对我的工作有很大帮助PDF
, CDF
, FindDistributionParameters
, DistributionFitTest
以及我可能需要的其他标准,更通用的内置版本可以简单地无缝调用。这样,像我的 AnalysisNotebook 这样的东西就可以保持简单和整洁,成为我工具箱中的标准组件。如果你明白我的意思的话,我可以把时间花在数学上而不是管道上。
为了澄清我的意思,类似于如何定义函数的版本来执行不同的操作(使用不同数量的参数或其他类型的态势感知),Mathematica 必须对使用分布作为参数的函数执行类似的操作知道针对特定的内置发行版使用哪种解决方案。我希望能够添加或扩展功能PDF[]
, CDF[]
, FindDistributionParameters[]
, DistributionFitTest[]
以及该级别的相关函数 - 为自定义发行版及其所需的支持代码添加功能,内置函数将/可以无缝调用这些代码。
也许只是一个梦想,但如果有人知道我可以实现这一目标的任何方法,我将非常感谢您的反馈。
EDIT-我遇到过的问题类型:
以下代码永远不会完成执行
r1 = RandomVariate[LogNormalNormalDistribution[0.01, 0.4, 0.0003], 1000];
FindDistributionParameters[r1, LogNormalNormalDistribution[gamma, sigma, delta]]
为了解决这个问题,我编写了以下函数
myLNNFit[data_] := Module[{costFunction, moments},
moments = Moment[EmpiricalDistribution[data], #] & /@ Range[5];
costFunction[gamma_, sigma_, delta_] =
Sqrt@Total[((Moment[LogNormalNormalDistribution[gamma, sigma, delta],#]&/@Range[5]) - moments)^2];
NMinimize[{costFunction[gamma, sigma, delta], gamma > 0, sigma > 0}, {gamma, sigma, delta}] ]
它本身工作得很好,但与其他一切都不能很好地配合。