Funciones de máxima verosimilitud

LAAN

Propósito

El objetivo de esta presentación es definir funciones de máxima verosimilitud de diferentes distribuciones:

  1. Distribución normal
  2. Distribución exponencial
  3. Distribución gamma
  4. Distribución \( \chi^2 \)
  5. Distribución binomial
  6. Distribución geométrica
  7. Distribución Poisson

Propósito

Para cada distribución, se simularán en primera instancia 1000 observaciones de la distribución; después, se definirá la función de verosimilitud apropiada y finalmente se estimará la función de verosimilitud usando la función mle() de la libreria stats4

Distribución normal

Simulamos 1000 valores de una distribución normal, con media 1 y desviación estándar 3:

x = rnorm(1000,1,3)

La distribución normal depende de dos parámetros poblacionales \( \mu \), \( \sigma^2 \).

lnormal = function(media, desvest){
  s = dnorm(x,media, desvest)
  -sum(log(s))
}

Distribución normal

library(stats4)
mle(lnormal, start = list(media = 4, desvest = 5))

Call:
mle(minuslogl = lnormal, start = list(media = 4, desvest = 5))

Coefficients:
   media  desvest 
1.121095 3.096180 

Distribución exponencial

Simulamos 1000 observaciones tomadas de una distribución exponencial com \( tasa = 5 \):

x = rexp(1000,5)

Nótese que \( tasa = 1/\beta \).

lexpo = function(tasa){
  s = dexp(x,tasa)
  -sum(log(s))
}

Distribución exponencial

library(stats4)
mle(lexpo, start = list(tasa = 10))

Call:
mle(minuslogl = lexpo, start = list(tasa = 10))

Coefficients:
    tasa 
5.226148 

Distribución Gamma

Simulamos 1000 observaciones de una distribución gamma con \( \alpha=3.8 \), \( \beta = 4.5 \):

x = rgamma(1000,3.8,4.5)
lgamma = function(a,b){
  s = dgamma(x,a,b)
  -sum(log(s))
}

Distribución gamma

library(stats4)
mle(lgamma, start = list(a = 1, b = 2))

Call:
mle(minuslogl = lgamma, start = list(a = 1, b = 2))

Coefficients:
       a        b 
3.838453 4.594182 

Distribución X-cuadrada

Simulamos 1000 observaciones de una distribución \( \chi^2 \) con 10 grados de libertad:

x = rchisq(1000,10)
lchi = function(gl){
  r = dchisq(x,gl)
  -sum(log(r))
}

Distribución X-cuadrada

library(stats4)
mle(lchi, start = list(gl = 1))

Call:
mle(minuslogl = lchi, start = list(gl = 1))

Coefficients:
      gl 
9.862445 

Distribución binomial

Generamos 1000 observaciones tomadas de una distribución binomial con \( n=100 \) y \( p=.3 \):

x = rbinom(1000,100,.3)
lbinom = function(proba){
  r = dbinom(x,100,proba)
  -sum(log(r))
}

Distribución binomial

library(stats4)
mle(lbinom, start = list(proba = .91))

Call:
mle(minuslogl = lbinom, start = list(proba = 0.91))

Coefficients:
    proba 
0.3004495 

Distribución geométrica

Simulamos 1000 observaciones con \( p=.25 \):

x = rgeom(1000,.25)
lgeom = function(proba){
  r = dgeom(x,proba)
  -sum(log(r))
}

Distribución geométrica

library(stats4)
mle(lgeom, start = list(proba=.98))

Call:
mle(minuslogl = lgeom, start = list(proba = 0.98))

Coefficients:
    proba 
0.2543081 

Distribución Poisson

Simulamos 1000 observaciones con \( \lambda = 6 \)

x = rpois(1000,6)
lpois = function(lambda){
  r = dpois(x,lambda)
  -sum(log(r))
}

Distribución Poisson

library(stats4)
mle(lpois, start = list(lambda=1))

Call:
mle(minuslogl = lpois, start = list(lambda = 1))

Coefficients:
lambda 
  6.04