bloque 1

Anuncio
BLOQUE 1
DISTRIBUCIONES DE PROBABILIDAD COMUNES EN ECONOMÍA
Manipular y trabajar con las distribuciones más comunes que
encontramos en la investigación o trabajos con variables económicas son
los principales objetivos de este bloque. Para ello la forma de trabajar
será directamente desde el propio interface de MATLAB o de OCTAVE.
Ambos tienen unas funciones construidas que nos permiten obtener para
cada distribución de interés su correspondiente CDF (función de
distribución acumulada), PDF (función de distribución de probabilidad),
rnd (genererador de número aleatrios), y la inversa de la correspondiente
CDF, invCDF.
Un listado completo de las distribuciones de probabilidad construidas se
puede encontrar en los manuales de ayuda del software. Nosotros nos
centraremos específicamente en las siguientes:
Binomial
Poisson
Uniforme
Normal
Lognormal
t-student
F-Snedecor
Gamma
Chi-square
Beta
Para recordar en qué consisten se recomienda usar cualquier manual de
grado (o equivalente). También en el manual del software podemos
encontrar una descripción de la distribución. Para nosotros será
importante también saber la sintaxis de cada una de ellas, a tal efecto
haremos uso del comando de ayuda:
help name
Así, por ejemplo, si escribimos
help binocdf
help binopdf
help binornd
help binoinv
obtendremos ayuda relativa a las cuatro respectivas facilidades previstas
para una binomial.
Por otra parte, y para afianzar la interacción con el software, en los
ejercicios proponemos trabajar con cada una de estas distribuciones.
Será útil poder representar gráficamente distintos aspectos. A tal efecto
es necesario familiarizarse con los comandos plot y subplot, a los que
accedemos a su sintaxis a través de la ayuda:
help plot
help subplot
EJERCICIOS
1.- Para cada una de las distribuciones comentadas realizar un gráfico
ilustrativo de la PDF y la CDF. Elije valores comunes para los parámetros
que definen a cada distribución: Por ejemplo, en el caso de la Normal, lo
habitual es tomar N(0,1). A continuación está el código necesario para
generar una uniforme: Si alguna orden no te resulta conocida,
simplemente usa el comando help.
%% First get the domain over which we will
% evaluate the functions.
x = -1:.1:11;
% Now get the probability density function
% values at x.
pdf = unifpdf(x,0,10);
% Now get the cdf.
cdf = unifcdf(x,0,10);
% Do the plots.
subplot(1,2,1),plot(x,pdf)
title('PDF')
xlabel('X'),ylabel('f(X)')
axis([-1 11 0 0.2])
axis square
subplot(1,2,2),plot(x,cdf)
title('CDF')
xlabel('X'),ylabel('F(X)')
axis([-1 11 0 1.1])
axis square
2.- Encuentra la altura de la una función de probabilidad de distribución de una Normal
para mu, con las siguientes desviaciones típicas: 0.5, 1.0, 2.0. ¿Qué sucede con la
altura a medida que aumenta la desviación típica? ¿Qué sucede si ahora variamos la
media, mu?
** 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.
MUESTREO COMPUTACIONAL
En este apartado vamos a trabajar sobre conceptos muestrales y poblacionales que, en
caso de que el lector no esté familiarizado con ellos, deberían ser repasados de
cualquier manual.
La inferencia estadística es una colección de técnicas y métodos que nos ayudan a
medir y controlar el grado de incertidumbre cuando el investigador pretende arrojar una
información sobre una característica de una población objetivo (por ejemplo, la
desviación típica del nivel de ingresos en una zona geográfica determinada). Cuando no
es realista observar a ‘toda’ la población (tal vez la población es desmesuradamente
grande; tal vez hay elementos de la población que todavía no existen), pero sí parte de
la misma, el investigador puede obtener información sobre el objetivo poblacional a
partir de la información muestral. Esto se suele hacer realizando un muestreo aleatorio
en el que todos los elementos de la población tienen la misma posibilidad de ser
seleccionados para formar parte de la muestra.
En no pocas ocasiones la inferencia estadística usa la muestra para estimar o hacer
juicios sobre parámetros poblacionales (una medida descriptiva de una población o
distribución de variables aleatorias). Por ejemplo, la media aritmética, la desviación
estándar, cuantiles, coeficientes de correlación, etc.
Un estadístico es una función de variables aleatorias observadas en el muestreo que no
contiene información desconocida. Los estadísticos (estas funciones) nos sirven para
dar estimaciones puntuales de parámetros poblacional, para obtener un intervalo de
confianza para dicho parámetro, y también como test (contraste) en los contrastes de
hipótesis.
Tanto MATLAB como OCTAVE tienen unas librerías de estadísticos que suelen
aparecer con mucha frecuencia. Son los siguientes (utiliza el comando help para
aprender exactamente el contenido de los argumentos y las posibilidades de su
utilización):
Media muestral
Varianza muestral
Apuntamiento y curtosis
Covarianza
Coeficiente de correlación
mean(x,dim)
var(x)
skewness, kurtosis (ver help)
cov(x,y)
corrcoef(x,y)
Hemos comentando anteriormente que en ocasiones los estadísticos de una muestra
aleatoria son utilizados como estimadores puntuales de un parámetro poblacional (por
ejemplo, la media muestral se utiliza para estimar la media poblacional). Obviamente al
estar usando una muestra no es realista considerar que el estadístico obtenido de la
misma coincida con el valor del parámetro poblacional. Es decir, hay incertidumbre y
error en torno a la estimación del parámetro. La distribución muestral es la distribución
de probabilidad subyacente para el estadístico en cuestión, y entonces debemos
entender el estadístico como una variable aleatoria. Conocer la distribución muestral de
un estadístico nos permite realizar tests de hipótesis y calcular intervalos de confianza.
Para algunos estadísticos la distribución muestral (del estadístico) es conocida (por
ejemplo, la distribución de la media muestral cuando la variable se distribuye como una
normal. En otros muchos casos no conocemos la distribución de nuestro estadístico de
interés, en tales casos los métodos de simulación de Monte Carlo o métodos de
bootstrap son necesario para obtener (aproximar) la distribución muestral.
Los Teoremas Centrales del Límite y las Leyes de los Grandes Números juegan un
papel decisivo en el análisis y uso de las distribuciones muestrales. Los ejercicios de
este apartado están orientados a comprender ambos resultados. Para ello utilizaremos
por técnicas de Monte Carlo. Ahora es el momento de hacer el primer ejercicio de este
bloque.
Cuando queremos conocer algún parámetro de la función de distribución de
probabilidad poblacional, lo que hacemos es realizar una estimación del mismo
utilizando un estadístico al que llamamos estimador. Luego el estimador es una variable
aleatoria que dependiendo de la muestra arrojará distintos valores. Existen varias
técnicas de estimación (método de los momentos, máxima verosimilitud, entre otras), e
igualmente hay criterios que nos permiten evaluar los posibles estimadores: sesgo, error
cuadrático medio, eficiencia, el error estándar, etc. Estos cuatro conceptos es necesario
que se manejen con soltura. En estas notas sólo comentaré brevemente el error
estándar de un estimador (los restante 3 deben ser revisado en un manual adecuado).
El error estándar asociado a un estimador T es una medida de precisión de nuestro
estimador de interés T. Se define como la desviación estándar de su distribución
muestral:
Por ejemplo, el estimador de la media poblacional es la media muestral. La varianza del
estimador de la media es
Si la desviación estándar de la población de interés es desconocida, podemos sustituirla
por un estimador de la misma, S, en ese caso tendríamos entonces el error estándar
estimado.
Los estimadores máximo verosímiles (MV) son bastante habituales. Por este motivo el
ejercicio 4 (segundo de este bloque) nos va a permitir trabajar con ellos
computacionalmente. Para ello recordemos que un estimador MV es aquél valor del
parámetro(s) que maximiza la función de verosimilitud de la muestra. La función de
verosimilitud de una muestra aleatoria de tamaño n de una función de densidad
es la función de probabilidad conjunta:
Es decir, nos proporciona la probabilidad de que las variables aleatorias tomen los
valores particulares
Es función de un parámetro (o vector de parámetros)
desconocido. En caso de tener una muestra de variable aleatorias independientes,
idénticamente distribuidas (iid), la función de verosimilitud se puede
escribir:
que es el producto de funciones de densidad individuales evaluadas en cada punto
muestral.
La técnica MV consiste en encontrar el valor
que maximiza la función de
verosimilitud, lo cual implica (en bastantes ocasiones) igualar la derivada de
o o bien el logaritmo de dicha función
a 0,
Cuando se trata de un vector de
parámetros, lo que hacemos es toma derivadas parciales e igualarlas cero y resolver las
ecuaciones pertinentes. Su resolución nos llevaría a soluciones cerradas.
EJERCICIOS
3.- En la práctica econométrica el investigador se suele encontrar con estimadores que
no tienen una distribución exacta y por lo tanto el análisis asintótico es el marco natural
para hacer inferencia estadística. La teoría asintótica solo proporciona aproximaciones a
la distribución real cuando el número de observaciones es finito, y por tanto es
fundamental saber si las LGN y los TCL son aplicables para un estimador determinado.
Este ejercicio nos permite simular ambos términos.
3.1 Computa la media n = 5 variables aleatoria normales estándar. Repite esto 1000
veces, y guarda la media de cada iteración
3.2 Repite el paso 1 para n = 10, 25, 50, 100 y 500.
3.3 Utilizando las 1000 medias estimadas de cada uno de los 6 tamaños muestrales,
dibújalos en una sola figura usando el comando subplot en una maya de 3 por 2; usa
también title para poner una etiqueta a cada gráfico. Deberías observar que la
distribución colapsa y que las medias calculadas usando 1000 iteraciones están muy
próximas a 0.
3.4 Recuerda que el TCL se construye con
y por tanto para
verificar que se cumple el TCL en las medias simuladas es necesario escalarlas por raíz
de n para cada tamaño muestral. Dibuja las medias adecuadamente escaladas en un
gráfico de 3 por 2 (usa de nuevo subplot).
3.5 Observa que hasta ahora hemos realizado el ejercicio a partir de una distribución
exactamente normal dado que la media aritmética es una combinación lineal de
variables normales y por tanto también la media tiene una distribución normal. El TCL y
la LGN son mucho más generales. Repite los pasos 1 a 4 reemplazando las
distribuciones normales por variables aleatorias
cuya media y varianza son 1 y 2,
respectivamente.
4.- Las expresiones cerradas de estimadores máximo verosímiles son más la excepción
que la regla, en muchas aplicaciones son necesarios métodos numéricos como la
optimización no lineal que deben usarse. Este ejercicio nos permite trabajar algunos
aspecto de la estimación MV.
4.1 Descarga el archivo de datos FTSE100.
4.2 ¿Cuáles son los estimadores MV de la media y la varianza (expresión-cerrada) si
asumimos que los datos son iid normales.
4.3 Supongamos que no sabemos cuáles son los estimadores MV de la normal, pero
sabemos que la función de verosimilitud para n observaciones iid es
Escribe la función log-MV para n observaciones, y escribe una función de MATLAB u
OCTAVE que tenga las siguientes líneas principales:
function [LL] = normal_loglikelihood(parameters, y)
mu = parameters(1);
sigma2 = exp(parameters(2));
y que arroje el negative del logaritmo de la MV. Dicha función no es más que la el logMV multiplicada por -1, por tanto lo que haremos será minimizar –f.
4.4 Utiliza normal_loglikelihood(parameters, y) para calcular el estimador MV utilizando
fminunc. Comienza la optimización usando la solución analítica y al menos alguna otra
distinta.
4.5 No todos los estimadores ML nos conducen a formas cerradas. Un ejemplo muy
básico es la t-Student, el cual tiene la siguiente PDF
Escribe el logaritmo de la verosimilitud para n observaciones, considerando que la letra
griega gamma es relativa a dicha función de distribución. Utiliza para ello una función
que comience del siguiente modo
function [LL] = standarized_t_loglikelihood(parameters, y)
mu = parameters(1);
sigma2 = exp(parameters(2));
nu = exp(parameters(3))+2.01;
y que arroje el valor negativo del log-MV.
4.6 Utiliza esta última función para estimar los parámetros de una t-Student usando
fminunc.
ANÁLISIS GRÁFICO
Las posibilidades gráficas de OCTAVE o MATLAB son muy extensas. Nos vamos a
concentrar en algunas utilidades interesantes a los efectos de este curso. A tal efecto, el
comando help será la herramienta a utilizar para conocer las posibilidades de los
comandos, y la destreza en su uso la alcanzaremos en la realización práctica de los
ejercicios propuestos al efecto.
HIST
La instrucción hist nos permite generar histogramas. El comando help nos ayuda a
comprender su alcance. El siguiente ejemplo es ilustrativo de su utilización para un
vector de datos que puedes encontrar en el directorio de datos de curso:
load forearm
subplot(1,2,1)
% The hist function optionally returns the
% bin centers and frequencies.
[n,x] = hist(forearm);
% Plot and use the argument of width=1
% to produce bars that touch.
bar(x,n,1);
axis square
title('Frequency Histogram')
% Now create a relative frequency histogram.
% Divide each box by the total number of points.
subplot(1,2,2)
bar(x,n/140,1)
title('Relative Frequency Histogram')
axis square
Los comandos básicos son hist y bar. También se usan otras utilidades como axis,
title y subplot.
QQ-PLOTS
También puede ser interesante comparar dos distribuciones, dos muestras, o una
muestra y una distribución, etc. Básicamente consiste en considerar como punto a los
cuantiles muestrales, y dibujar los puntos (cuantiles) de un conjunto frente a otro. Son
especialmente útiles porque cuando comparamos ambos conjuntos de datos no es
necesario que tengan ni la misma escala ni la misma localización. De este modo si dos
conjuntos de datos de interés provienen de la misma distribución, entonces
esperaríamos que todos los puntos (cuantiles) se alinearan sobre una línea recta.
La instrucción qqplot nos permite comparar, en términos de cuantiles, un vector de
datos con una distribución predeterminada. Si lo que queremos es comparar dos
vectores de datos entonces simplemente tenemos que seguir los pasos del ejercicio 5.2.
BOX-PLOT
El último tipo de gráfico unidimensional que consideramos es el gráfico de cajas. Se
necesitan para su construcción de 5 valores obtenidos del conjunto de datos
disponibles. Los cuartiles muestrales (q0.25, q0.5, q0.75), el mínimo valor muestral y el
máximo. El recorrido intercuartílico lo obtenemos IQR = q0.75 – q0.25. A partir de IQR
calculamos dos extremos o límites: LL = q0.25 – 1.5 IQR, UL = q0.75 + 1.5 IQR. Por
construcción podemos intuir que las observaciones que caigan fuera de estos límites
son posible outliers (valores, por algún motivo, extraños). También podría intuirse que
estos puntos extremos provienen naturalmente de la distribución generadora del
proceso. En cualquiera de los casos, pueden ser motivo de estudio detallado
posteriormente.
Los valores adyacentes son los extremos (superior e inferior) que están entre los límites
máximo y mínimo. En caso de que no existan potenciales outliers, serían el máximo y el
mínimo, respectivamente. Con estos datos el gráfico de cajas se configura dibujando 3
líneas horizontales en cada uno de los tres cuartiles, y se completa la caja dibujando las
dos líneas verticales paralelas que determinan la caja. Entonces se extiende una línea
desde el primer cuartil al valor adyacente mínimo y se hace lo mismo para el tercer
cuartil y el mayor valor adyacente. Finalmente cualquier posible outlier se presenta con
un asterisco.
El siguiente gráfico lo ilustra
La instrucción en OCTAVE y MATLAB es boxplot. Acude a la ayuda para ver cómo
utilizarla. El ejercicio 3 de este bloque requiere su correcto manejo.
SCATTER PLOTS
Utilizamos este tipo de gráficos cuando queremos visualizar datos bivariantes que
posiblemente guarden cierta relación. Un gráfico scatter representa las parejas ordenas
como puntos. Suele servir para ver, en una fase muy inicial, cómo están relacionadas
dos variables (por ejemplo, si la relación es aparentemente directa o inversa, y/o si es
lineal o no-lineal).
Hay dos formas de acceder a la misma. Podemos acceder por el comando plot o bien
por el comando scatter, que nos permitirá con argumentos de función opcionales
modificar los marcadores de la parejas.
El ejercicio 5.4 nos permite usar ambas funciones, a la vez que introducimos cómo
trabajar con funciones normales multivariantes.
GRÁFICOS DE SUPERFICIES
En ocasiones conocemos una determinada función bivariante z = f(x,y), en tales casos
podemos generarla, y luego dibujar los valores de z como una superficie.
Las funciones mesh y surf se encargan de ello. El ejercicio 5.5 trabaja con surf
comandos. Acude a la ayuda para ver la sintaxis de los mismos.
EJERCICIOS
5.1 Comprobar cómo se ajustan –visualmente- los datos ‘forearm’ a una normal con
media y varianzas desconocidas. Para ello seguimos los siguientes pasos:
Obtener la estimación de la media y varianza
Obtener la función de densidad de probabilidad basada en dichos parámetros (ayuda:
usar linspace y norm)
Obtener la información necesaria para el histograma (comando hist)
Obtener la anchura de los bins del histograma
Dibujar el histograma de densidad con la expresión f = v(k)/nh, donde v(k) indica el
número de puntos que caen en el bin k-ésimo, y h representa la anchura de los bin(s).
(usa la función bar y plot).
El resultado final debe ser este:
5.2 Sigue lo siguientes pasos para construir un gráfico de cuantiles-cuantiles para dos
vectores de datos x,y utilizando la función sort.
% Consideramos dos tamaños muestrales distintos, por ejemplo
x = randn(1,n);
y = randn(1,m);
% Obtener el estadístico de orden para y, usando sort.
ys = sort(y);
% Hayar los cuantiles asociados usando x.
% Probabilidades para los cuantiles:
p = ((1:m) - 0.5)/m;
xs = quantile(x,p);
% Construye el gráfico de x sys.
% Pon una línea de referencia usando para ello el primer y el
tercer cuartil de cada conjunto de datos. Usa para ello la
instrucción quantile. Después utiliza la función polyfit para
localizar la recta que pasa por dichos puntos. Mira cómo se
utiliza dicha función con el comando help.
% Añade una línea de referencia a la figura usando polyval para
evaluar el polinomio de orden 1 (recta obtenida con polyfit) para
los valores de xs.
yhat = polyval(pol,xs);
%explica en comentario qué significa yhat?
hold on
plot(xs,yhat,'k')
xlabel('Sample Quantiles - X'),
ylabel('Sorted Y Values')
hold off
El resultado esperado debe ser algo parecido a esto.
5.3 Genera una muestra de 100 datos para cada una de las distribuciones siguientes:
uniforme, normal estándar, y exponencial. Haz un gráfico de cajas para las tres
muestras. ¿Qué diferencia hay entre los valores adyacentes de una muestra
proveniente de una distribución simétrica y de no-simétrica? ¿Cómo serán los lados de
las cajas?. Si el recorrido intercuartílico es pequeño, significa que los datos están
concentrados entorno a la mediana. ¿Cómo se aprecia este comentario en el gráfico
representado?
5.4 El objetivo de este ejercicio es generar una muestra de una función de distribución
normal bivariante. Necesitamos tener una matriz de varianzas y covarianzas, y un vector
de medias.
% Crear una matriz de covarianzas.
vmat = [2, 1.5; 1.5, 9];
% Vector de Medias (2,3).
mu = [2 3];
% Obtener 2 variables normales estándar.
td = randn(250,2);
% Usamos la transformación x=z*R+mu que nos permite obtener
% una Normal de medias mu, y covarianzas sigma. Para ello
%necesitamos factorizar sigma a fin de que R’R = sigma. Cholesky
%es una solución: help chol.
R = chol(vmat);
data = td*R+ones(250,1)*mu;
% Hacer el scatterplot con la function plot.
plot(data(:,1),data(:,2),'x')
axis equal
% Ahora con scatter.
% Usamos marcadores rellenos.
scatter(data(:,1),data(:,2),'filled')
axis equal
box on
El resultado es el siguiente
5.5 Vamos a generar la superficie de una normal bivariante estándar, es decir con
vector de medias cero, y varianzas 1, y covarianzas cero.
% Creamos el dominio sobre el que vamos a dibujar (hacer un help
% con meshgrid.
[x,y] = meshgrid(-3:.1:3,-3:.1:3);
% Evaluamos z para f(x,y) bivariante normal estándar.
z = (1/(2*pi))*exp(-0.5*(x.^2+y.^2));
% Dibujamos la superficie.
surf(x,y,z)
El resultado debería ser la habitual campana gausiana
Descargar