Como usar fitdistr() em r para ajustar distribuições


Você pode usar a função fitdistr() do pacote MASS em R para estimar os parâmetros de uma distribuição maximizando a função de verossimilhança.

Esta função usa a seguinte sintaxe básica:

fitdistr(x, densofun,…)

Ouro:

  • x : Um vetor numérico representando os valores da distribuição
  • Densefun : a distribuição para estimar os parâmetros para

Observe que o argumento densofun aceita os seguintes nomes de distribuição potencial: beta , cauchy , qui-quadrado , exponencial , gama , geométrica , lognormal , logística , binomial negativo , normal , Poisson , t e Weibull .

O exemplo a seguir mostra como usar a função fitdistr() na prática.

Exemplo: como usar a função fitdistr() para ajustar distribuições em R

Suponha que usemos a função rnorm() em R para gerar um vetor de 200 valores que segue uma distribuição normal:

 #make this example reproducible
set. seeds (1)

#generate sample of 200 observations that follows normal dist with mean=10 and sd=3
data <- rnorm(200, mean=10, sd=3)

#view first 6 observations in sample
head(data)

[1] 8.120639 10.550930 7.493114 14.785842 10.988523 7.538595

Podemos usar a função hist() para criar um histograma para visualizar a distribuição dos valores dos dados:

 hist(data, col=' steelblue ')

Gere uma distribuição normal em R

Podemos ver que os dados realmente parecem distribuídos normalmente.

Podemos então usar a função fitdistr() para estimar os parâmetros desta distribuição:

 library (MASS)

#estimate parameters of distribution
fitdistr(data, “ normal ”)

      mean sd    
  10.1066189 2.7803148 
 (0.1965979) (0.1390157)

A função fitdistr() estima que o vetor de valores segue uma distribuição normal com média de 10,1066189 e desvio padrão de 2,7803148 .

Esses valores não devem ser surpreendentes, pois geramos os dados usando a função rnorm() com valor médio de 10 e desvio padrão de 3.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como traçar uma distribuição normal em R
Como gerar uma distribuição normal em R
Como realizar um teste de Shapiro-Wilk para normalidade em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *