我需要进行数据拟合以找到给定数据的分布。
我需要找到分布的pdf函数。
我可以在 matlab 和 python 中使用数据拟合函数。
它看起来像一个截断的伽马。
但是,如何找到分布的参数?
如果数据不能很好地拟合截断的伽马怎么办?
QQ 图(四分位数)表明它不适合截断伽马。
如何找到截断 gamma 的分布参数,例如 alpha(形状)、beta(比例)?
如果数据拟合在这里不起作用,我可以使用哪些其他方法?
任何帮助,将不胜感激。
我需要进行数据拟合以找到给定数据的分布。
我需要找到分布的pdf函数。
我可以在 matlab 和 python 中使用数据拟合函数。
它看起来像一个截断的伽马。
但是,如何找到分布的参数?
如果数据不能很好地拟合截断的伽马怎么办?
QQ 图(四分位数)表明它不适合截断伽马。
如何找到截断 gamma 的分布参数,例如 alpha(形状)、beta(比例)?
如果数据拟合在这里不起作用,我可以使用哪些其他方法?
任何帮助,将不胜感激。
在 Matlab 中查看allfitdist。
或者,考虑使用 ExpertFit 或 EasyFit 等专业套装。JMP 统计软件还有一个相当容易使用的分布拟合选项。所有这些都将评估拟合优度标准,例如Cramer-von Mises和对数似然估计。
一旦您选择了分布的函数形式,参数值通常由最大似然估计器或矩量法估计。
如果您计划在某种模拟中使用结果,您可能会考虑仅引导样本而不是分布拟合。如果进行模拟,另一种选择是运行一个设计的实验,您可以在其中改变分布选择,看看替代方案是否会对您的结果产生重大影响,然后再过分担心是否适合正确的分布。
也许这篇文章可以提供帮助。
我提供了一个示例,说明如何使用OpenTURNS根据 BIC 标准找到最佳分布。
您定义一个列表“分销工厂”tested_distributions = [ot.WeibullMaxFactory(), ot.NormalFactory(), ot.UniformFactory()]
然后你打电话BestModelBIC
找最合适的
best_model, best_bic = ot.FittingTest.BestModelBIC(sample, tested_distributions)
目前,您可以在 OpenTURNS 中的 30 个可用“工厂”中进行选择(见下文)。TruncatedNormalFactory 可用但还没有 TruncatedBetaFactory
print(ot.DistributionFactory.GetContinuousUniVariateFactories())
[Out]:
[ArcsineFactory,
BetaFactory,
BurrFactory,
ChiFactory,
ChiSquareFactory,
DirichletFactory,
ExponentialFactory,
FisherSnedecorFactory,
FrechetFactory,
GammaFactory,
GeneralizedParetoFactory,
GumbelFactory,HistogramFactory,
InverseNormalFactory,
LaplaceFactory,LogisticFactory,
LogNormalFactory,
LogUniformFactory,
MeixnerDistributionFactory,
NormalFactory,
ParetoFactory,
RayleighFactory,
RiceFactory,
StudentFactory,
TrapezoidalFactory,
TriangularFactory,
TruncatedNormalFactory,
UniformFactory,
WeibullMaxFactory,
WeibullMinFactory]
#30