Gegeben ein Datensatz:
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)
.. Ich möchte die am besten passende Wahrscheinlichkeitsverteilung (Gamma, Beta, Normal, Exponentiell, Poisson, Chi-Quadrat usw.) mit einer Schätzung der Parameter bestimmen. Die Frage auf dem folgenden Link, wo eine Lösung mit R bereitgestellt wird, ist mir bereits bekannt: /programming/2661402/given-a-set-of-random-numbers-drawn-from-a- kontinuierliche-univariate-verteilung-f die beste vorgeschlagene lösung ist die folgende:
> 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 #$
Und die Verteilung mit dem kleinsten loglik-Wert wird ausgewählt. Andere Distributionen wie die Betaverteilung erfordern jedoch die Angabe einiger Additionsparameter in der Funktion fitdistr ():
fitdistr(x, 'beta', list(shape1 = some value, shape2= some value)).
Da ich versuche, die beste Verteilung ohne vorherige Information zu bestimmen, weiß ich nicht, wie der Wert der Parameter für jede Verteilung möglicherweise sein kann. Gibt es eine andere Lösung, die diese Anforderung berücksichtigt? es muss nicht in R sein
quelle
Ich habe eine Funktion gefunden, die meine Frage mit matlab beantwortet. Es kann auf diesem Link gefunden werden: http://www.mathworks.com/matlabcentral/fileexchange/34943
Ich nehme einen Datenvektor als Eingabe
und gibt die folgenden Informationen für die bestmögliche Verteilung zurück:
quelle