Como ajusto os parâmetros de uma distribuição t, ou seja, os parâmetros correspondentes à 'média' e 'desvio padrão' de uma distribuição normal. Eu suponho que eles são chamados de 'média' e 'escala / graus de liberdade' para uma distribuição t?
O código a seguir geralmente resulta em erros de "falha na otimização".
library(MASS)
fitdistr(x, "t")
Preciso escalar x primeiro ou converter em probabilidades? Qual a melhor forma de fazer isso?
r
distributions
maximum-likelihood
fitting
robust
user12719
fonte
fonte
Respostas:
fitdistr
usa técnicas de máxima probabilidade e otimização para encontrar parâmetros de uma determinada distribuição. Às vezes, especialmente para a distribuição t, como @ user12719 notou, a otimização no formato:falha com um erro.
Nesse caso, você deve ajudar o otimizador, fornecendo ponto de partida e limite inferior para começar a procurar por parâmetros ideais:
Observe,
df=3
é o seu melhor palpite sobre o quedf
poderia ser um "ótimo" . Depois de fornecer essas informações adicionais, seu erro desaparecerá.Alguns trechos para ajudá-lo a entender melhor a mecânica interna de
fitdistr
:...
fonte
Vamos tentar algumas simulações:
Mostrar que a estimativa é muito instável (olhando para o histograma, uma parte considerável dos valores estimados está no limite superior dado para otimizar 200).
Repetindo com um tamanho de amostra maior:
o que é muito melhor, mas a média ainda está muito acima do valor real de 2,5.
Lembre-se de que esta é uma versão simplificada do problema real, onde os parâmetros de localização e escala também precisam ser estimados.
fonte
Na ajuda para fitdistr, este exemplo:
indicando que você só precisa de um valor para df. Mas isso pressupõe padronização.
Para mais controle, eles também mostram
onde os parâmetros seriam m = média, s = desvio padrão, df = graus de liberdade
fonte
\mu
e\sigma
também. +1 a muito tempo atrás, a propósito.df
é a causa do erro, e a resposta certa deve fornecer alguma receita para encontrá-lo.df=9
é bom no exemplo deles e irrelevante aqui.