Dado um conjunto de dados:
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)
.. Gostaria de determinar a distribuição de probabilidade mais adequada (gama, beta, normal, exponencial, poisson, qui-quadrado etc.) com uma estimativa dos parâmetros. Já estou ciente da pergunta no link a seguir, onde uma solução é fornecida usando R: /programming/2661402/given-a-set-of-random-numbers-drawn-from-a- distribuição-univariada-contínua-f, a melhor solução proposta é a seguinte:
> 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 #$
E a distribuição com o menor valor do loglik é selecionada. No entanto, outras distrubções, como a distribuição beta, exigem a especificação de alguns parâmetros de adição na função fitdistr ():
fitdistr(x, 'beta', list(shape1 = some value, shape2= some value)).
Dado que estou tentando determinar a melhor distribuição sem nenhuma informação prévia, não sei qual pode ser o valor dos parâmetros para cada distribuição. Existe outra solução que leve esse requisito em consideração? não precisa estar em R.
fonte
Eu encontrei uma função que responde minha pergunta usando o matlab. Pode ser encontrado neste link: http://www.mathworks.com/matlabcentral/fileexchange/34943
Pego um vetor de dados como entrada
e retorna as seguintes informações para a melhor distribuição de ajuste:
fonte