我需要进行数据拟合以找到给定数据的分布。
我需要找到发行版的pdf函数。
我可以在matlab和python中使用数据拟合函数。
它看起来像一个截断的伽玛。
但是,如何找到分布的参数?
如果数据不能很好地适应截断的伽玛怎么办?
QQ图(qunatile-quantile)表明它不适合截断 伽马。
如何查找分布参数,例如alpha(shape),beta(scale) 对于截断的伽玛?
如果数据拟合在这里不起作用,我可以使用哪些其他方法?
任何帮助都将不胜感激。
答案 0 :(得分:1)
在Matlab中查看allfitdist。
或者,考虑专业包,例如ExpertFit或EasyFit。 JMP统计软件也有一个相当容易使用的分配拟合选项。所有这些都将评估拟合度标准,例如Cramer-von Mises和对数似然估计。
选择分布的函数形式后,参数值通常由maximum likelihood estimators或method of moments估算。
如果您计划在某种模拟中使用结果,您可能会考虑引导样本而不是分布拟合。另一种选择,如果模拟将运行一个设计的实验,你可以改变分布选择,看看替代品是否会对你的结果产生重大影响,然后再过分担心恰当的分布。
答案 1 :(得分:0)
也许this post可以提供帮助。
我提供了一个示例,说明如何使用OpenTURNS根据BIC标准找到最佳分布。
您定义了一个列表'Distribution Factories'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