bloque 2

Anuncio
BLOQUE 2
MÉTODOS DE MONTE CARLO Y TÉCNICAS DE BOOTSTRAP Preliminares Para seguir adecuadamente estos apuntes es preciso recordar los
conceptos claves de inferencia estadística. Es conveniente al menos
recordar con claridad los siguientes términos:
Contraste de hipótesis
Hipótesis nula
Hipótesis alternativa
Test estadístico
Test de una cola; test de dos colas
Error tipo I
Error tipo II
Tamaño y Potencia de un test
Región de no-rechazo (aceptación)
Región de rechazo
Valor crítico
P-valor (p-value)
Intervalo de confianza
Técnicas de Monte Carlo Los procedimientos de Monte Carlo (MC), a los que nos podemos referir
como pruebas de MC, experimentos de MC, simulaciones de MC, test o
contrastes de MC, tienen un peculiar nombre ‘Monte Carlo’ dado que
necesariamente implican generar un gran número de números aleatorios,
como se hace en los juegos de azar de los casinos. El casino más
famoso cuando los ordenadores por primera vez fueron capaces de
realizar simulaciones era el de Monte Carlo. Esto explica que hablemos
de experimento de MC y no de experimentos de LV (Las Vegas).
Precisamente la idea fundamental detrás de cualquier método de MC es
podemos aprender características de un estadístico (o un test)
obteniendo repetidas muestras aleatorias de la población de interés y
observando el comportamiento del estadístico para dichas muestras. Los
valores observados que va tomando el estadístico para las distintas
muestras se utilizan para estimar la distribución de dicho estadístico.
Obviamente si previamente conocemos (analíticamente) dicha
distribución no es necesario implementar métodos de MC.
Se observa que es necesario para los métodos de MC generar números
aleatorios. Afortunadamente las secciones anteriores nos han enseñado
a hacerlo. Fundamentalmente, toda simulación de MC tiene los
siguientes pasos
i) Determinar el modelo (población) que representa la verdadera
población de interés.
ii) Tomar una muestra de la misma.
iii) Calcular el valor del estadístico para la muestra generada, y
almacenar dicho valor.
iv) Repetir los pasos ii y iii para un número B de tiradas.
v) Utilizar los B valores almacenados del estadístico de interés para
estudiar la distribución del estadístico.
Estos pasos pueden ser útiles para estudiar, por ejemplo, la desviación
estándar del estadístico. Pero también puede ser extraordinariamente útil
para contrastar una hipótesis. Cuando hacemos un contraste estadístico
de hipótesis, una vez que observamos el valor que toma el estadístico
para una muestra (dada), debemos decidir si el valor observado es
consistente con la hipótesis nula o no. Para ello podemos (en caso de no
conocer la distribución teórica) utilizar la información que nos proporciona
la simulación de MC. Esto requiere que estimemos la distribución del
estadístico cuando la hipótesis nula es verdadera (cierta).
Recordemos que cuando conocemos la distribución del estadístico, basta
que fijemos un nivel de significación para el contraste de hipótesis, y
entonces busquemos un valor crítico, para que podamos saber si
rechazamos o no la hipótesis nula. Alternativamente (preferiblemente en
mi opinión) podemos usar el p-value para realizar el contraste. En el caso
de contraste de hipótesis con simulación de MC, el valor crítico y el pvalue se obtienen utilizando la distribución estimada para el test en
cuestión.
El siguiente ejemplo resulta ilustrativo de la técnica usando p-values.
Ejemplo
El conjunto de dato MCdata contiene 25 observaciones, y sabemos tiene
una desviación típica de 7,8. Usemos esos datos para contrastar la
siguiente hipótesis nula (Ho) y alternativa (Ha):
Ho:
versus Ha:
Podemos pensar, inicialmente, que los datos provienen de una
distribución normal. Visualmente, y a modo sólo del ejemplo, podemos
utilizar la función normplot para ver si la distribución normal es
apropiada como la población de donde muestrear.
normplot(MCdata)
Si asumimos que proviene de una normal, entonces
% Calcular el valor del estadístico deseado. En este caso la
%media muestral.
Tobs = mean(MCdata);
% Número de muestras de MC deseadas.
M = 1000;
% Comienza la simulación.
Tm = zeros(1,M);
for i = 1:M
% GEnerar una muestra aleatoria bajo Ho.
sigma = 7.8;
xs = sigma*randn(1,n) + 454;
Tm(i) = mean(xs);
end
% Obtener el p-value. Es un test de una sola cola (baja).
% Buscar todos los valores de la simulación que están por debajo
%del valor del estadístico
ind = find(Tm <= Tobs);
pvalhat = length(ind)/M;
Obtendremos un valor próximo a 0.007, es decir, el valor del estadístico
obtenido de la muestra deja una masa de probabilidad por debajo del 5
por ciento respecto de la distribución muestral que hemos aproximado
por MC. Dicho de otro modo, el estadístico toma un valor poco verosímil
si la hipótesis nula Ho fuera verdadera. En conclusión, a ese nivel de
significación, la Ho se rechaza.
Es el momento de trabajar con el ejercicio 6.
Los métodos de Monte Carlo son muy frecuentemente utilizados para
estudiar el comportamiento de un contraste o estadístico en términos del
Error Tipo I y la potencia (=1-Error Tipo II). Supongamos por ejemplo que
tenemos un test para el que no estamos seguros de que efectivamente
podamos usar una distribución límite estándar normal, y queremos saber
si utilizando la aproximación estándar nos equivocamos más de los que
estamos dispuestos. O por ejemplo, supongamos que tenemos un test
asintóticamente distribuido de acuerdo a una función de probabilidad
conocida, sin embargo queremos saber si para muestras pequeñas usar
la aproximación asintótica es adecuado. En estos casos es necesario
realizar unas pruebas de tamaño del test (error tipo I) para ver si estamos
rechazando de acuerdo a lo previsto por la teoría. Los pasos
fundamentales (que trabajaremos en el ejercicio 7) son los siguientes
Método de Monte Carlo para evaluación del Error Tipo I
1. Determine the pseudo-population when the null hypothesis is true.
2. Generate a random sample of size n from this pseudo-population.
3. Perform the hypothesis test using the critical value.
4. Determine whether a Type I error has been committed. In other
words, was the null hypothesis rejected? We know that it should
not be rejected because we are sampling from the distribution
according to the null hypothesis. Record the result for this trial as,
5. Repeat steps 2 through 4 for M trials.
6. The probability of making a Type I error is
.
El paso 6 es lo mismo que calcular la proporción de veces que la Ho es
falsamente rechazada en las M tiradas que hemos realizado. Esto es una
estimación del nivel de significatividad del test para un valor crítico
determinado (por la teoría).
Ahora es el momento de trabajar el ejercicio 7 es decir, el segundo de
este bloque.
Técnicas de bootstrapping Lo primero que nos puede llamar la atención es el nombre tan peculiar
que tiene esta técnica. Es más sencillo entender el origen de la
denominación una vez que entendamos en qué consisten es tipo de
técnicas.
El bootstrap es un método de Monte Carlo donde no haremos
suposiciones paramétricas sobre la población correcta que genera la
muestra aleatoria. En su lugar, usamos la muestra como una estimación
de la población. Esta estimación se denomina distribución empírica
donde cada xi tiene una probabilidad de 1/n. Por tanto, cada xi tiene la
misma probabilidad de ser seleccionada en una nueva muestra tomada
de . Cuando usamos
como nuestra pseudo-población,
remuestreamos con reemplazamiento de la muestra original
. La nueva muestra obtenida por este procedimiento la
denotamos por
. Dado que el remuestreo es con
reemplazamiento a partir de la muestra original, existe la posibilidad de
que algunos puntos aparezcan más de una vez en
,o
que no aparezcan. Tal y como lo acabamos de exponer, el método es
aplicable a un proceso unidimensional, pero es obvio que también puede
hacerse para el caso d-dimensional.
Uno puede preguntarse por qué es necesario utilizar este procedimiento,
y qué utilidad tiene. Recordemos inicialmente que se trata de un
procedimiento de Monte Carlo, y por tanto, es útil cuando no podemos
obtener una solución analítica para el problema que estamos tratando de
resolver. Por ejemplo, supongamos que queremos conocer el error
estándar de un estimador. Si este estimador fuera la media muestral, y
tuviéramos datos iid, sería muy razonable utilizar
dado que el Teorema Central del Límite nos permite estar seguros de
que asintóticamente lo estamos haciendo perfectamente.
Por otro lado, esto no sería tan sencillo si nuestro estimador fuera,
digamos, la mediana o el percentil quinto. Dado que no conocemos la
naturaleza del proceso generador de los datos, difícilmente podríamos
construir un estimador de su error estándar o un intervalo de confianza.
Toda vez que no podemos hacer supuestos sobre la naturaleza del
proceso generador, el bootstrap sí nos permite generar este tipo de
estimadores, y precisamente ahí está su utilidad.
Veamos entonces cómo realizaría para un estimador de nuestro interés,
Algoritmo Bootstrap General
1. Dada una muestra aleatoria,
, calcula
.
2. Toma una muestra con reemplazamiento de la muestra original para
formar
, donde b indica el número de muestra
bootstrap.
3. Calcula el mismo estadístico usando ahora la muestra bootstrap d el
paso 2 para obtener
4. Repite los pasos 2 a 3, B veces.
5. Utiliza esta estimación de la distribución de (esto es, las réplicas
bootstrap) para obtener la característica deseada (por ejemplo, el error
estándar, el sesgo o un intervalo de confianza)
A continuación vamos a aplicar el algoritmo general a varios casos.
Comenzamos por la estimación bootstrap de error estándar de un
estadístico .
El algoritmo particular para el error estándar sería el siguiente
A modo de ejemplo supongamos que estamos interesados en obtener el
error estándar del estimador del apuntamiento de una población. Vamos
a estimarlo por bootstrap.
Tomamos para ello nuestra muestra MCdata con la que hemos trabajado
en los ejercicios previos. El código es el siguiente:
load MCdata
% Condiciones iniciales: tamaño de la población y número de
%réplicas.
n = length(MCdata);
B = 100;% number of bootstrap replicates
% Estimación del estadístico de interés.
theta = skewness(MCdata);
% Usa la function ‘unidrnd’ para obtener los índices del
%remuestreo.
inds = unidrnd(n,n,B);
% Extrae estos de los datos.
xboot = forearm(inds);
% POdemo obetener el apuntamiento de cada columna usando
% skewness.
thetab = skewness(xboot);
% Estimamos ahora el error estándar
seb = std(thetab);
Hay otras situaciones habituales para las que la estimación por bootstrap
nos resulta muy útil. Tal es el caso del sesgo, que es otra cantidad que
mide la precisión estadística de un estimador. El sesgo se define como la
diferencia entre el valor esperado del estadístico y el parámetro
verdadero:
Sesgo de θ̂ = E(θ̂ ) − θ = E[θ̂ − θ ] .
Muchos estadísticos tienen un sesgo muestral finito, y por tanto su valor
es distinto de cero. Sin embargo, asintóticamente son estadísticos
insesgados. Los estadísticos sesgados suelen aparecer cuando el
estimador es una función no-lineal de los datos. El bootstrap puede
utilizarse para estimar el sesgo, y el estimador puede usarse para
eliminar el sesgo en el estimador original. La idea consiste en calcular la
esperanza sobre la distribución empírica de F. El algortimo sería de la
siguiente manera:
Como continuación del ejemplo anterior, si quisiéramos estimar el sesgo
del apuntamiento muestral, simplemente tendríamos que calcular la
media del apuntamiento con las réplicas bootstrap, y restarle la el
estimador inicial.
Por otro lado, también es posible utilizar estas técnicas para elaborar
intervalos de confianza de estimadores. El procedimiento general sería el
siguiente:
Si los estimadores por bootstrap están ordenados del menor al mayor, y
BalphaL y BalphaH son enteros, entonces el intervalo de confianza es
[θ̂ *Bα L ,θ̂ *Bα H ] .
Completa a continuación el ejercicio 8.
EJERCICIOS 6.- En el ejemplo MCdata con p-values hemos obtenido que
rechazábamos la hipótesis nula. Ahora vamos a considerar las mismas
hipótesis, pero nuestro test estadístico será
. Ahora sigue los
siguientes pasos
% Obtener el valor observado del test estadístico a partir de la
muestra MCdat
% Genera 1000 muestras aleatorias consistentes con la Ho,
recuerda que el número de observaciones de cada muestra ha de ser
igual al número de observaciones que hay en MCdata.
% Para cada muestra guarda el valor del estadístico de interés
valorado para dicha muestra.
% Ahora deberías tener un vector con 1000 valoraciones del
estadistico de interés. Utiliza la función quantile con un nivel
de 0.05 de significatividad para contrastar la Ho. Recuerda que
usando quantile, en este caso, obtenemos el valor crítico que nos
delimita la frontera entre la región de rechazo y aceptación.
% La teoría nos dice que no habría sido necesario usar métodos de
MC, toda vez que el estadístico computado se ajusta a una normal
(0, 1) y por tanto el valor crítico teórico para esta Ho es de 1.645. ¿Qué conclusiones puedes sacar al valorar Ho con la
distribución teórica (no-simulada) al compararlo con la
conclusión obtenida mediante métodos de MC?
7.- Ahora queremos saber si el estadístico utilizado en el ejercicio anterior
realmente se comporta como indica su distribución teórica para muestras
de tamaño 20. A tal efecto elaboremos una simulación de MC para
comprobar si el tamaño del estadístico es correcto. Sigue los siguientes
pasos
- Fija el número de simulaciones que deseas realizar (M = 1000)
- Decide el nivel de significatividad para el contraste de la Ho (alpha =
0.05)
- Obtener el valor crítico teórico si usamos z. Ayuda: es -1.645, pero usa
norminv para determinarlo con el software (no siempre te acuerdas y
nunca llevas las tablas encima).
- Generar M muestras bajo la Ho
- Utiliza las instrucciones bucle if-end para valorar si en cada iteración
(cada muestra simulada) el estadístico rechaza falsamente la Ho (es
decir, si comete error tipo I) o no.
- Para cada iteración deberías contabilizar acumuladamente si el número
de veces que se comete dicho error.
- Cuando finalices las M iteraciones obtendrás un índice acumulado que
te indicará el número de veces que rechazaste (erróneamente) la Ho
cuando realmente la hemos generado correctamente. Divide este
indicador entre el número de iteraciones, y obtendrás un valor muy
próximo a 0.05.
- Ahora prueba hacer exactamente lo mismo, pero aumenta el número de
simulaciones a M = 2000. ¿Has notado variación?
- Prueba ahora con M = 10, 50, 100, 150, 200, 300, 500. Compara los
resultados para todos los M considerados en el ejercicio con el valor
teórico (0.05). Haz un gráfico ilustrativo de lo que sucede. ¿Alguna
conclusión?
8.- Intervalo de confianza por percentiles para la media aritmética. Sigue
los siguientes pasos:
- Genera una población N(0,1) de 100 observaciones.
- Calcula su media muestral
- Genera un bucle de índices para el remuestreo con reemplazamiento.
- Remuestrea B=1000 veces con el bucle anterior la población generada
al principio, y calcula las 1000 medias muestrales.
- Ordenalas de menor a mayor.
- Elije el valor de significación del alpha, y selecciona los valores en la
posición B*alpha y B*(1-alpha) de las B medias
- Calcula el intervalo para la media.
** Utiliza las normas establecidas para la correcta entrega de ejercicios. Para que
los ejercicios sean evaluados y formen parte de la calificación final deben
entregarse en tiempo y forma.
Descargar