Étant donné un ensemble de données:
x <- c(4.9958942,5.9730174,9.8642732,11.5609671,10.1178216,6.6279774,9.2441754,9.9419299,13.4710469,6.0601435,8.2095239,7.9456672,12.7039825,7.4197810,9.5928275,8.2267352,2.8314614,11.5653497,6.0828073,11.3926117,10.5403929,14.9751607,11.7647580,8.2867261,10.0291522,7.7132033,6.3337642,14.6066222,11.3436587,11.2717791,10.8818323,8.0320657,6.7354041,9.1871676,13.4381778,7.4353197,8.9210043,10.2010750,11.9442048,11.0081195,4.3369520,13.2562675,15.9945674,8.7528248,14.4948086,14.3577443,6.7438382,9.1434984,15.4599419,13.1424011,7.0481925,7.4823108,10.5743730,6.4166006,11.8225244,8.9388744,10.3698150,10.3965596,13.5226492,16.0069239,6.1139247,11.0838351,9.1659242,7.9896031,10.7282936,14.2666492,13.6478802,10.6248561,15.3834373,11.5096033,14.5806570,10.7648690,5.3407430,7.7535042,7.1942866,9.8867927,12.7413156,10.8127809,8.1726772,8.3965665)
.. Je voudrais déterminer la distribution de probabilité la plus appropriée (gamma, bêta, normale, exponentielle, poisson, chi carré, etc.) avec une estimation des paramètres. Je suis déjà au courant de la question sur le lien suivant, où une solution est fournie en utilisant R: /programming/2661402/given-a-set-of-random-numbers-drawn-from-a- continue-univariée-distribution-f la meilleure solution proposée est la suivante:
> library(MASS)
> fitdistr(x, 't')$loglik #$
> fitdistr(x, 'normal')$loglik #$
> fitdistr(x, 'logistic')$loglik #$
> fitdistr(x, 'weibull')$loglik #$
> fitdistr(x, 'gamma')$loglik #$
> fitdistr(x, 'lognormal')$loglik #$
> fitdistr(x, 'exponential')$loglik #$
Et la distribution avec la plus petite valeur loglik est sélectionnée. Cependant, d'autres distributions telles que la distribution bêta nécessitent la spécification de certains paramètres d'addition dans la fonction fitdistr ():
fitdistr(x, 'beta', list(shape1 = some value, shape2= some value)).
Étant donné que j'essaie de déterminer la meilleure distribution sans aucune information préalable, je ne sais pas quelle peut être la valeur des paramètres pour chaque distribution. Existe-t-il une autre solution qui prend en compte cette exigence? il ne doit pas nécessairement être en R.
la source
J'ai trouvé une fonction qui répond à ma question en utilisant matlab. Il peut être trouvé sur ce lien: http://www.mathworks.com/matlabcentral/fileexchange/34943
Je prend un vecteur de données en entrée
et renvoie les informations suivantes pour la meilleure distribution de raccord:
la source