bloque 3 - uned · desarrollado se encuentra probablemente en el programa r, también de libre...

13
BLOQUE 3 MÉTODOS DE REGRESIÓN NO PARAMÉTRICA Preliminares Para seguir adecuadamente estos apuntes es preciso dominar la teoría y los ejercicios de los anteriores módulos. Igualmente es deseable tener a mano un manual de econometría básica. Recuerda que estos apuntes pueden contener errores tipográficos. Cualquier comentario a los mismos es bienvenido. Introducción: Histogramas y Kernels Un histograma es una primera aproximación a la estimación de un histograma de densidades. El histograma con el que hemos trabajado en bloques precedentes es un histograma de frecuencias, el área total que representa no suma 1, y por tanto no son válidos para estimar densidades. Ahora estamos interesados en localizar una función que integre 1. Para calcular el histograma necesitamos, a parte de una muestra, un origen y para los bins y una anchura del bin que denotamos por h (revisar ejercicio 5). Este parámetro es conocido por smoothing parameter o parámetro de suavizado porque es el parámetro clave para producir histogramas suaves (smooth): Valores bajos de h generan histogramas con mucha variación, mientras que valores altos para h generan formas suavizadas. El siguiente gráfico que recoge varios histogramas de frecuencias para variables normales estándar puede ser ilustrativo:

Upload: others

Post on 18-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

BLOQUE 3

MÉTODOS DE REGRESIÓN NO PARAMÉTRICA

Preliminares Para seguir adecuadamente estos apuntes es preciso dominar la teoría y los ejercicios de los

anteriores módulos. Igualmente es deseable tener a mano un manual de econometría básica.

Recuerda que estos apuntes pueden contener errores tipográficos. Cualquier comentario a

los mismos es bienvenido.

Introducción: Histogramas y Kernels

Un histograma es una primera aproximación a la estimación de un histograma de densidades. El

histograma con el que hemos trabajado en bloques precedentes es un histograma de frecuencias,

el área total que representa no suma 1, y por tanto no son válidos para estimar densidades. Ahora

estamos interesados en localizar una función que integre 1.

Para calcular el histograma necesitamos, a parte de una muestra, un origen y para los bins y una

anchura del bin que denotamos por h (revisar ejercicio 5). Este parámetro es conocido por

smoothing parameter o parámetro de suavizado porque es el parámetro clave para producir

histogramas suaves (smooth): Valores bajos de h generan histogramas con mucha variación,

mientras que valores altos para h generan formas suavizadas. El siguiente gráfico que recoge

varios histogramas de frecuencias para variables normales estándar puede ser ilustrativo:

Page 2: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

Si llamamos al contenedor o bin k-ésimo, donde tk – tk+1 = h, para todo k; y si

denominamos por vk al número de observaciones que caen en el k-ésimo bin, entonces

donde I es la función indicatriz de pertenencia al bin k-

ésimo, es un estimador de la densidad que integra 1.

Ejemplo

Vamos a realizar este cálculo para una distribución estándar normal:

n = 1000;

x = randn(n,1);

Calculamos el historgrama con la función hist, utilizando el valor por

Bk [tk ,tk1)

fHIST vk

nh

1

nhIBk (Xi ); x en Bk

i1

n

Page 3: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

defecto de 10 bins.

% Histograma.

[vk,bc] = hist(x);

% Anchura del bin.

h = bc(2)- bc(1);

El estimador del histograma lo hacemos así. Obsérvese que tenemos que

ajustar el output de hist para asegurar que el estimador de la densidad

es teóricamente correcto. Obtengamos el estimador de nuestra función en

el punto x0=0.

xo = 0;

% Buscamos todos los centros de bines menores a x0.

ind = find(bc < xo);

% xo deberia estar entre estos dos centros

b1 = bc(ind(end));

b2 = bc(ind(end)+1);

% Lo asignamos al bin más cercano.

if (xo-b1) < (b2-xo) % entonces va al 1er bin

fhat = vk(ind(end))/(n*h);

else

fhat = vk(ind(end)+1)/(n*h);

end

El resultado es fhat = 0.3477. El valor verdadero de una normal estándar evaluada en 0 es

. Por lo que estamos bastante cercanos, pero no exáctamente iguales al verdadero valor.

Prueba a ver qué te sale a ti, y en el primer ejercicio que entregues me comentas el resultado.

En este ejemplo hemos usado una anchura (h) dada por defecto en el comando hist. Sin embargo

en las gráficas anteriores hemos visto que su elección es relevante. Este es un tema que ha

generado mucha literatura. A continuación daré algunos de los resultados que nos puedan resultar

más operativos en economía.

Supongamos que tenemos un estimador de una función poblacional en un punto x, y

estamos interesado en conocer algo sobre la calidad del estimador respecto a la verdadera

función. Una medida habitual de esta calidad es el MSE (error cuadrático medio)

1 / 2

f (x)

MSE( f (x)) E[( f (x) f (x))2]Var( f (x))Sesgo2( f (x)).

Page 4: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

En caso de que se trate de un estimador de densidad , es posible bajo ciertas condiciones,

definir una cota superior para MSE de :

Así, el primer sumando en la desigualdad acota superiormente la varianza, y el segundo sumando

acota superiormente el sesgo al cuadrado. De este modo podemos observar fácilmente que

sucede cuando h varía.

Podríamos querer minimizar el MSE del estimador de densidad variando h. Valores pequeños de h

conducen a reducciones en el sesgo del estimador de la densidad y, a la vez, a mayores varianzas

en el mismo. Se produce justamente el trade-off entre varianza y sesgo que hemos visto en la

primera figura. Se hace necesario entonces tener alguna(s) regla o norma para seleccionar h. Una

norma básica es la Regla de Sturges, que indica el número, k, adecuado de contenedores (bins) en

el histograma:

El ancho del bin h se obtiene dividiendo el rango muestral entre el número obtenido con la regla,

k. Existen muchas otras reglas el alumno interesado en este particular puede solicitarme más

literatura.

Un problema importante que presenta el histograma de densidad como estimador de la función

de densidad es que no es una función continua, y proporciona una visión un tanto abrupta y poco

eficaz para representaciones generales. Una forma fundamental de generalizar el estimador y así

evitar los problemas del mismo consiste en reemplazar la función indicatriz I(.) por una función K

que denominamos Kernel, y que satisface la condición:

.

En tal caso el estimador kernel será

fHIST (x)

fHIST (x)

MSE( fHIST (x)) f (k )

nh 2

kh2 , con x en Bk , y donde var( fHIST (x))

f (k )

nh

hf (k ) f (t)dtBk

para algún k en Bk , y finalmente k es una constante positiva tal que

para todo k , x en Bk resulta que el sesgo(fHIST (x)) f (k ) f (x) k k x kh.

k 1 log2 n.

K(x)dx

1

fKer (x) 1

nhKx Xi

h

.

i1

n

Page 5: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

La función fKer hereda las propiedades de continuidad y diferenciablidad del Kernel. Para ilustrar

el procedimiento veamos en qué consiste:

Pasos básicos:

1.- Elegir: kernel, h, y dominio (valores de x) sobre los que evaluar f(x).

2.- Para cada Xi evaluar el kernel en todo x del dominio:

El resultado de esto es un conjunto de n curvas, una para cada punto Xi.

3.- Ponderar cada curva por 1/h.

4.- Para cada x, hacer la media de las curvas ponderadas.

Ejemplo básico: Para un conjunto de datos, mostramos cómo obtener estimador kernel de la

densidad, usando para ello la distribución estándar normal como kernel.

% Generate standard normal random variables.

n = 10;

data = randn(1,n);

% We will get the density estimate at these x values.

x = linspace(-4,4,50);

fhat = zeros(size(x));

h = 1.06*n^(-1/5);

hold on

for i=1:n

% get each kernel function evaluated at x

% centered at data

f = exp(-(1/(2*h^2))*(x-data(i)).^2)/sqrt(2*pi)/h;

plot(x,f/(n*h));

fhat = fhat+f/(n);

end

plot(x,fhat);

hold off

El resultado es el siguiente:

K i Kx Xi

h

, i 1,...,n.

Page 6: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

EJERCICIO 9. Identifica cada uno de los pasos básicos indicados anteriormente en el código que he

generado. Posteriormente, utiliza el código anterior para comprobar cómo evoluciona la forma de

la curva a medida que variamos la anchura h. Para ello, contempla usar n=100 observaciones de

una normal estándar, y los siguientes h=0.84, 0.42, 0.21, 0.11. Finalmente, en lugar de utilizar el

kernel normal utiliza este otro: , en el resto de los casos K(t) = 0.

Debido a la relevancia de la elección del parámetro que controla la anchura, h, estamos

interesados en conocer cómo determinar los valores apropiados para h. Para kernel normales se

puede demostrar que el ancho de ventana (anchura) óptimo es:

Junto con la elección del parámetro h, también hemos tenido que elegir la función kernel. Sin

embargo esta elección es menos importante toda vez que el efecto del kernel se reduce de

manera importante al ir tomando medias. En la práctica habitual la determinación del kernel se

debe a cuestiones computacionales o a requisitos de diferenciabilidad requeridos en la estimación.

La siguiente tabla recoge los más habituales.

23( ) (1 ) 1 1

4K t t si t

1/5* 1/5 1/54 3 1.06 .Kerh n n

Page 7: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

Que gráficamente son:

Page 8: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

EJERCICIO 10. Matlab tiene la función ksdensity. Con uso de la ayuda reproduce el ejercicio 1

utilizando esta función. Los usuarios de Octave tienen la función kernel_density y

kernel_bandwidth. Estos últimos usuarios pueden intentar, sin embargo, ver si el código de

ksdensity funciona en Octave. Para conseguir el código podéis localizarlo en la web del curso.

EJERCICIO 11. Una atracción turística que ha sido muy estudiada históricamente se caracteriza por

emular un geiser. Una de las variables más relevantes es el tiempo de espera (minutos) entre una

erupción y otra consecutiva. Conocer las características de la variable “tiempo de espera” ayuda a

las autoridades del parque de atracciones a controlar otras variables de interés. Los datos geyser

contienen la información necesaria para arrojar luz sobre el comportamiento de la variable

aleatoria. Se pide:

a. Si asumimos un modelo paramétrico como la distribución normal, dibujar la función de

densidad correspondiente a los datos geyser.

b. Si por el contrario adoptamos un enfoque noparamétrico, dibuja la densidad estimada

mediante un kernel.

Page 9: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

c. Compara una y otra. ¿Qué conclusiones puedes sacar?

Regresión No paramétrica

En esta sección es necesario recordar mínimamente los elementos básicos de econometría. Existe

bastante software (‘empaquetado’ o ‘enlatado’) contrastado para la práctica econométrica, tanto

software comercial como libre. Claro ejemplo de esto último es GRETL, qué es instalable en varios

entornos. Respecto a MATLAB y OCTAVE está disponible un módulo denominado ‘econometrics’

que tienen programadas muchas funciones habituales en la práctica econométrica. Es más difícil

encontrar repertorios relativos a econometría no paramétrica. A estos efectos el software más

desarrollado se encuentra probablemente en el programa R, también de libre disposición.

Por otro lado, las técnicas de regresión no paramétricas no suelen explicarse en los cursos

introductorios de econometría, pese a la relevancia que están adquieriendo en la actualidad en la

investigación teórica y aplicada en técnicas econométricas. Esta sección pretende iniciar al

estudiante, a un nivel muy elemental, en este tópico.

El análisis de regresión es quizás la herramientas más utilizada de todo el conjunto de

herramientas para el análisis de datos. La regresión modeliza el comportamiento esperado de una

variable dependiente -y- dado un vector de variables explicativas (regresores) que covarían

posiblemente con y. El modelo básico es la regresión lineal respecto a los parámetros del modelos

(atención: no respecto de la variables en sí), por ejemplo:

y01X12X2...kXk .

Este modelo es paramétrico porque asumimos un modelo explícito para la relación entre la

variable a explicar - y – y las explicativas X. Por eso decimos que se trata del modelo de regresión

lineal paramétrico, que también se puede expersar de forma más útil y compacta así:

yi Xi ' i, i 1,...,n,

donde Xi ° k, y un vector k1 de parámetros desconocidos.

La estimación de mínimos cuadrados para un vector de errores E(i)0 y var(i)2, es

(X'X)-1X'y, y es un vector nx1,X[Xi], para i1,...,n.

EJERCICIO 12. Descarga el conjunto de datos REGRESION, y calcula el estimador de mínimos

cuadrados considerando la primera variable como variable a explicar. Luego, con el modelo

estimado, calcula el vector de residuos, y haz un gráfico de la variable original, los valores

estimados y los residuos. Finalmente, repite el ejercicio con el siguiente código para el estimador:

Page 10: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

bhat = X\Y; %%bhat es el estimador de beta. ¿Aprecias alguna

diferencia?

Un modelo más general que el lineal paramétrico sería este otro

yi g(Xi,)i, i 1,...,n ,

donde la función g tiene un forma funcional conocida con un vector parámetros (betas)

desconocido. En este caso, en ciertas circunstancias, la estimación mínimo cuadrática o bien los

mínimos cuadrados nolineales podrían servir para estimar adecuadamente el vector de

parámetros. También en este caso estaríamos bajo un esquema paramétrico en el que asumimos

que conocemos la forma funcional. Los métodos de regresión noparamétrica precisamente no

requieren que se hagan asunciones a propósito de la forma funcional del proceso generador de

datos. Simplemente asume que la variable de estudio existe y que satisface ciertas condiciones de

regularidad (por ejemplo, diferenciabilidad) y condiciones sobre los momentos. Ahora bien, al

poner menos restricciones que en caso paramétrico, serán necesarias más observaciones que las

requeridas por la técnicas parmétrica para alcanzar el mismo grado de precisión que

obtendríamos bajo un modelo correctamente especificado paramétrico.

Consideremos el modelo de regresión noparamétrico siguiente:

yi g(Xi )i, i 1,...,n.

Las realizaciones muestrales (yi , Xi) son iid. La función g es desconocida. En caso de que sea

diferenciable (smooth), entonces podemos estimarla utilizando kernels. La fución g(x) se

interpreta como la media condicionada de y dada la realización del vector X=x, esto es

g(x)E[yi Xi x] .

De hecho, se puede demostrar que E[y X] es la función óptima de X para predecir la variable

explicativa y, en el sentido de que el error de predicción medio será mínimo para la clase de todas

las funciones continuas.

Si denominamos a fy,x (x,y), f (x) y fy x

(x, y) como la función de distribución de probabilidad

(PDF) conjunta de (y,X), la PDF marginal de X, y la PDF condicionada de y X , respectivamente, y

recordando que fy x(x,y) fy,x(x,y) / f (x) , se tiene que

E[y X] y fy x

(x,y)dy yfy,x(x,y) dy

f (x):g(x)

La estimación de las funciones , ( , ), ( )y xf x y f x se realiza por kernels del tipo a los estudiados en la

sección anterior. La cuestión es por tanto cómo estimar la integral. Realizando algunas

operaciones se llega a la expresión

Page 11: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

1

1 1

1

ˆ ( ) , donde .

ni

iin n ji

i i ii jn i

i

X xy K

X xX xhg x y w w K K

X x h hK

h

Es decir, el estimador E(y/X) es simplemente una media ponderada de Yi con pesos

(ponderaciones) wi. Desde el punto de vista teórico es posible demostrar que este estimador es

consistente, es decir, g(x)p

g(x). A este estimador se le denomina estimador Nadaraya-Watson

y también estimador kernel local constante de g(x).

Para el caso en que Xi es un vector q-dimensional, la expresión del estimador sería la misma con la

salvedad de que ahora 1

1

... ,qii i

q

X xX x X xK k k

h h h

siendo hq el parámetro

smooth asociado con la variable Xq.

EJERCICIO 13. Estimador Nadaraya-Watson.

A partir de la siguiente generación de ruido.

x = linspace(0, 4 * pi,100);

y = sin(x) + 0.75*randn(size(x));

Crea una función inline para poder evaluar los pesos usando un kernel

normal: Para ello, haz un help inline, y úsala con la siguiente

expresión:

mystrg='(2*pi*h^2)^(-1/2)*exp(-0.5*((x - mu)/h).^2)';

wfun = FUNCIÓN INLINE ADECUADA PARA mystrg;

%Obtener la estimación para cada valor de x, y almacénalos en yhatnw

yhatnw = zeros(size(x));

n = length(x);

% Fijamos el width en 1.

h = 1;

% Calculamos el smooth para cada valor en x

for i = 1:n

w = wfun(h,x(i),x);

yhatnw(i) = EXPRESIÓN DEL ESTIMADOR NADARAYA-WATSON para cada i;

end

Ahora dibuja los datos originales junto con la curva estimada.

A continuación, y sobre el script anterior, implementa el siguiente estimador conocido como estimador no paramétrico Priestley-Chao:

gPC (x) 1

h(xi xi1)K

x xi n

yi

i1

n

Ahora estarás estimando dos curvas. Representa gráficamente ambas.

Page 12: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

Sin embargo, el método Nadaraya-Watson, que ajusta una constante local, puede ser fácilmente

generalizable y estimar g(x) con un estimador kernel noparamétrico local lineal o incluso

polinómico. Los estimadores locales lineales además automáticamente proveen de un estimador

respuesta, esto es, la derivada de g(x), mientras que el orden p-ésimo del método polinómico local

puede llegar hasta la derivada de orden p.

Los estimadores kernel locales polinómicos consisten en obtener una estimación de Yo en el punto

Xo ajustando un polinomico de grado p utilizando para ello mínimos cuadrados ponderados. En

definitiva se quiere ponderar los puntos en base a su distancia al punto Xo (los puntos cercanos

tendrán mayor peso que los alejados). Los pesos se obtienen de la altura de una función kernel

centrada en Xo.

La expresión del estimador kernel localmente polinómico en un punto x es:

0 1(Xi x) 2(Xi x)2 ...p(Xi x)

p

usando los puntos (Xi,Yi) y por medio de mínimos cuadrados ponderados. Los pesos están

definidos por la función kernel

Kh(Xi x) 1

hKXi x

h

.

El valor de la estimación en el punto x es 0 , donde i es tal que minimiza

Kh(Xi x)(Yi i1

n

0 1(Xi x) ... p(Xi x)p )2 .

Matricialmente el procedimiento para la estimación de mínimos cuadrados ponderados sería la

siguiente:

b (X 'xWxXx )1X 'xWxY, donde Y es el vector de respuestas de dimensión nx1,

y por otro lado,

Xx

1 X1 x ... X1 x p

: : ... :

1 Xn x ... Xn x p

, y W es una matriz n x n con los pesos en la diagnonal principal

wii Kh (Xi x).

El estimador y f (x) es el coeficiente del intercepto 0 del ajuste local, y por tanto lo podemos

obtener de

f (x) i '1(X 'xWxXx )1X 'xWxY, donde i '1

Page 13: BLOQUE 3 - UNED · desarrollado se encuentra probablemente en el programa R, también de libre disposición. Por otro lado, las técnicas de regresión no paramétricas no suelen

es un vector (p+1) x 1 con un uno en el primer lugar, y cero en el resto.

En el caso particular de p = 0, llegamos al estimador de Nadaraya-Watson, y para p = 1 llegamos al

estimador kernel local lineal.

EJERCICIO 14. Implementa el estimador kernel lineal local (p=1), y con exactamente los mismos

datos que en el ejercicio 13, replica dicho ejercicio.

En función de cuál sea el orden del estimador kernel polinómico local, el ancho de banda h (o

anchos de banda) será(n) diferente(s). No obstante esto no es el objeto de este curso y el lector

interesado puede hallar una variedad de métodos alternativos en Li y Racine (2007) para

seleccionarlos óptimamente.