Está en la página 1de 5

Universidad

del País Vasco


A eman ta zabal zazu

Euskal Herriko
Unibertsitatea

Seminario 2. Curso 2021/22

1. Resumen
De qué trata esta sesión. En el seminario anterior hemos visto cómo estimar cosas mediante el
método de Monte Carlo. Ahora volvemos a utilizar esta técnica, junto con la teorı́a, para examinar
la eficiencia relativa de los estimadores de momentos (M) y de máxima verosimilitud (MV).
Veremos mediante un ejemplo sencillo que, como se espera de la teorı́a, los estimadores MV
superan a los estimadores por momentos, al menos para muestras grandes. Para muestras de tamaño
reducido, puede que no ocurra ası́.

Qué necesitas. Dominar el contenido del seminario y actividad anteriores. También necesitarás
tener acceso a un ordenador equipado con R.

2. Contenido
Supongamos que tenemos datos con un histograma como el de la Figura 1. Si tuviéramos que
ajustar una distribución a estos datos, una buena elección inicial serı́a una γ(a, r) ya que sabemos
que puede tener una forma similar para unos valores adecuados de los parámetros a y r.

2.1. Estimadores por momentos de a, r


Dado que (ver la teorı́a) la media de una γ(a, r) es r/a, y la varianza es r/a2 , los estimadores por
momentos de a y r son muy sencillos, y podemos obtenerlos a partir de las dos ecuaciones siguientes:

r/a = X (1)
n
1 X
r/a2 + r2 /a2 = Xi2 (2)
n i=1

1
Estadı́stica Aplicada a la Economı́a Curso 2021-2022

Figura 1: Histograma de los datos a ajustar

600
500
400
Frequency

300
200
100
0

1 2 3 4 5

2.2. Estimadores por Máxima Verosimilitud de a, r


Los estimadores Máximo Verosı́miles son mucho más complejos en este caso, pero ¡no te dejes
intimidar por las fórmulas que aparecen a continuación! Conceptualmente, es muy sencillo. Recuerda
que la densidad de la distribución γ(a, r) es:
ar r−1 −ax
f (x) = x e
Γ(r)
Por tanto, la verosimilitud asociada con una muestra (x1 , . . . , xn ) es:
n
" #
anr Y (r−1)
Pn
−a i=1 xi
L (a, r; x1 , . . . , xn ) = xi e , (3)
[Γ(r)]n i=1

y el logaritmo de la verosimilitud:
n
X n
X
log L (a, r; x1 , . . . , xn ) = nr log (a) − n log Γ (r) + (r − 1) log(xi ) − a xi . (4)
i=1 i=1

2
Estadı́stica Aplicada a la Economı́a Curso 2021-2022

2.2.1. El enfoque habitual


Deberı́amos calcular las derivadas de (4), igualarlas a cero y resolver para r y a. Para a tendrı́amos
que:
n
nr X
− xi = 0; (5)
a i=1

esto nos da para a el mismo resultado que el estimador de momentos (ver (1)).
Sin embargo, cuando derivamos respecto de r tenemos que:
n
X
n log(a) − nψ(r) + log(xi ) = 0 (6)
i=1

donde
∂ log Γ(r)
ψ(r) = (7)
∂r
es la llamada función psi (o digamma). Como r está dentro de ψ(r), es difı́cil resolver (6) para r.

2.2.2. Maximizar directamente la (log) verosimilitud


Una alternativa mejor en este caso serı́a maximizar la verosimilitud directamente, proporcionando
la función log L (a, r; x1 , . . . , xn ) a una rutina informática que encuentra el máximo.
Primero escribimos el código que calcule la función (4):

> gamma.vero <- function(par) {


+ a <- par[1] ; r <- par[2]
+ n <- length(muestra)
+ ll <- n*r*log(a) - n*log(gamma(r)) +
+ (r-1)*sum(log(muestra)) - a*sum(muestra)
+ return(ll)
+ }

Date cuenta: metemos los dos parámetros formando un vector par; los valores de las x0i s deben estar
en un vector de nombre muestra1 .
Una vez que hemos codificado el logaritmo de la verosimilitud, la pasamos a la función optim. Se
trata de una función de uso general que optimiza el valor de una función respecto a los parámetros
pasados en par.
Haremos todo esto con datos simulados. Generaremos datos de una γ(a = 5, r = 10) y luego
estimaremos los parámetros (ya conocidos, porque hemos sido nosotros los que hemos determinado
su valor):

> muestra <- rgamma(5000, rate=5, shape=10)


> mean(muestra) # Deberı́a ser cercana a 10/5

[1] 1.998211

> var(muestra) # Deberı́a ser cercana a 10/5^2 = 0.40


1
Esto se considera normalmente una mala práctica de programación; todos los inputs de una función deberı́an
darse como argumentos, y todos los outputs devueltos a través del “return”. Nosotros pasamos por alto esta regla para
que sea más sencillo de seguir o entender.

3
Estadı́stica Aplicada a la Economı́a Curso 2021-2022

[1] 0.3937126

Ahora podemos invocar a optim. El primer argumento es un vector con unos valores iniciales
sugeridos para los parámetros, el segundo argumento es el nombre de la función a optimizar, el
tercero unos valores de control. El fnscale=-1 significa que los valores devueltos por la función
optimizada se multiplican por -1. Hacemos esto porque, por defecto, optim minimiza una función.
Una manera de obtener la maximización deseada es multiplicar por -1.

> par <- c(1,1)


> optim(par,gamma.vero,control=list(fnscale=-1))

$par
[1] 5.113283 10.217077

$value
[1] -4578.748

$counts
function gradient
75 NA

$convergence
[1] 0

$message
NULL

En $par se encuentran los valores que maximizan la función. Podemos ver que son muy próximos a
los (en este caso) conocidos valores reales 5 y 10.
Para comparar, podemos calcular los estimadores por momentos. Sustituyendo (1) en (2),
n
2 1X
X/a + X = X2 (8)
n i=1 i

a partir de lo cual,

X
a = Pn 2
1 2
n i=1 Xi −X
2
X
r = Pn 2
1 2
n i=1 Xi −X

En este caso,

> n <- length(muestra)


> a <- mean(muestra) / ( sum(muestra^2)/n - mean(muestra)^2 )
> a

[1] 5.076319

4
Estadı́stica Aplicada a la Economı́a Curso 2021-2022

> r <- a * mean(muestra)


> r

[1] 10.14356

En este caso particular, las estimaciones por momentos están un poco más cerca de los valores
verdaderos que las estimaciones MV. La comparación requerirı́a calcular ambos estimadores un gran
número de veces, tal y como se hizo en la Actividad 1.

También podría gustarte