APROXIMACIÓN EMPÍRICA DE LA FUNCIÓN DE REGRESIÓN.

Post on 02-Feb-2016

218 views 2 download

transcript

APROXIMACIÓN EMPÍRICA

DE LAFUNCIÓN DE REGRESIÓN

CONTEXTO TEÓRICOConocida la distribución de una población bidimensional se conoce su función de regresión

X

Y

x

( )( ) Yy g x EX x

= ==

CONTEXTO PRÁCTICOCon n observaciones de esa población, en principio no puedo calcular la función de regresión al no disponer de datos en la vertical de x.

¿?

ESTIMADORES PARAMÉTRICOS DE LA FUNCIÓN DE REGRESIÓN(Suponen que la función de regresión es paramétrica y consideran los datos como un vector bidimensional discreto con masa sus frecuencias relativas)

1.Recta de regresión de Y sobre X (estimador bueno sólo si la función de regresión es lineal). Un indicador de su “bondad” es el cuadrado del coeficiente de correlación lineal muestral entre X e Y.

1̂( )y g x a bx= = +

2. Polinomio de regresión de Y sobre X, por ejemplo, de grado 2 (estimador bueno sólo si la función de regresión es lineal o cuadrática, en ese caso). Un indicador de su “bondad” es el cuadrado del coeficiente de correlación lineal múltiple muestral correspondiente.

22 0 1 2ˆ ( )y g x a a x a x= = + +

X

Y

ESTIMADORES NO PARAMÉTRICOS DE LA FUNCIÓN DE REGRESIÓN(No suponen nada acerca de la función de regresión. Van a ser estimadores “todo terreno” )

MOTIVACIÓNSi hubiera datos en la vertical del punto en que se pretende estimar la función de regresión, se promediarían sus respuestas, es decir, si por ejemplo k datos estuvieran en esa vertical

1

1(̂ )

k

jj

g x yk =

= å

Si no es así, consideraremos un entorno de ese punto suficientemente grande para que haya datos en su vertical, y razonaremos sobre estos datos.

X

Y

xx-h x+h

3. Estimador de Nadaraya-Watson: promedia de forma ponderada las respuestas de los datos en ese entorno, penalizando su alejamiento de la vertical del punto x.

( ){ }3

,

ˆ ( ) , 0; 1i

hi i i i

x x h x h i

y g x y w w wÎ - +

æ ö÷ç= = × > = ÷ç ÷ç ÷è øå å

4. Regresión polinómica local (lineal, en particular): asigna al punto x el valor en x de un polinomio de regresión (la recta de regresión, en particular) construido sólo con los datos en ese entorno.

4̂ ( )hy g x a bx= = +

X

Y

xx-h x+h

Existen procedimientos para aproximar con los datos ventanas óptimas, es decir

( )ˆargmin ,o h hh D g g=

siendo D una distancia funcional adecuada.

ESTUDIO DE SIMULACIÓN

Suponiendo un escenario controlado, es decir, una distribución bidimensional conocida (y por lo tanto su función de regresión teórica también), podemos estudiar por simulación (trabajando sobre muestras artificiales del mismo) el comportamiento de los cuatro estimadores considerados, comparándolos con la función de regresión teórica.

ESCENARIO 1

( )( )( )2

,3,3

2 3 , 3

X YX U

Y N xX x

Î -

Î +=

Notemos que en este caso

( )( ) 2 3Yy g x E xX x

= = = +=

Por lo tanto, si el número de datos es grande, cabe esperar buen funcionamiento de la recta de regresión y del polinomio de regresión de Y sobre X de orden 2.Veremos que los estimadores no paramétricos (“todo terreno”) tampoco funcionan mal.

ESCENARIO 1. Código fuente en R para comparar por Monte Carlo regresión lineal simple, polinómica de grado 2, Nadaraya-Watson y polinómica local de grado 1

MODELO PARAMÉTRICO 1: Y=2+3*X+N(0,3) con X=U(-3,3).

require(lokern)require(KernSmooth)x<-runif(100000,-3,3)y<-2+3*x+rnorm(100000,0,3)plot(x,y,xlim=c(-3,3),ylim=c(-10,20),main="Función de regresión",sub="MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=100000")x1<-seq(-3,3,length=1000)y1<-2+3*x1lines(x1,y1,lwd=2,col=6,type="l")

poli1<-lm(y~x) #”~”=alt+ctrl+4abline(poli1,lwd=2,col=3)

poli2<-lm(y~x+I(x^2))df<-data.frame(x=x1)y1<-predict(poli2,df)lines(x1,y1,lwd=2,col=5)

v<-dpill(x,y)lines(locpoly(x,y,bandwidth=v,gridsize=length(x1),range.x=c(-3,3)),type="l",lwd=2,col=4) #corrige efecto frontera

res<-glkerns(x,y)lines(ksmooth(x,y,"normal",bandwidth=res$bandwidth,range.x=c(-3,3),n.points=length(x1)),lwd=2,col=2)legend("top",legend=c("Función de regresión teórica","Estimación por regresión polinómica (grado 1: recta)","Estimación por regresión polinómica (grado 2)","Estimación por regresión lineal local","Estimación por Nadaraya-Watson"),lwd=2,col=c(6,3,5,4,2))

-3 -2 -1 0 1 2 3

-10

-50

51

01

52

0

Función de regresión

MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=10x

y

-3 -2 -1 0 1 2 3

-10

-50

51

01

52

0

Función de regresión

MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=10x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson

21(2)

21(2,3)

0.7450

0.7453

-3 -2 -1 0 1 2 3

-10

-50

51

01

52

0

Función de regresión

MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=100x

y

-3 -2 -1 0 1 2 3

-10

-50

51

01

52

0

Función de regresión

MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=100x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson

21(2)

21(2,3)

0.7789

0.7794

-3 -2 -1 0 1 2 3

-10

-50

51

01

52

0

Función de regresión

MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=1000x

y

-3 -2 -1 0 1 2 3

-10

-50

51

01

52

0

Función de regresión

MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=1000x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson

21(2)

21(2,3)

0.7567

0.7572

-3 -2 -1 0 1 2 3

-10

-50

51

01

52

0

Función de regresión

MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=10000x

y

-3 -2 -1 0 1 2 3

-10

-50

51

01

52

0

Función de regresión

MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=10000x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson

21(2)

21(2,3)

0.7557

0.7557

ESCENARIO 2

( )( )( )2 2

,3,3

2 3 , 3

X YX U

Y N xX x

Î -

Î +=

Notemos que en este caso

( ) 2( ) 2 3Yy g x E xX x

= = = +=

Por lo tanto, si el número de datos es grande, cabe esperar buen funcionamiento del polinomio de regresión de Y sobre X de orden 2, y malo de la recta de regresión de Y sobre X.Veremos que los estimadores no paramétricos (“todo terreno”) tampoco funcionan mal.

ESCENARIO 2. Código fuente en R para comparar por Monte Carlo regresión lineal simple, polinómica de grado 2, Nadaraya-Watson y polinómica local de grado 1

MODELO PARAMÉTRICO 2: Y=2+3*X^2+N(0,5) con X=U(-3,3).

require(lokern)require(KernSmooth)x<-runif(100000,-3,3)y<-2+3*(x^2)+rnorm(100000,0,5)plot(x,y,xlim=c(-3,3),ylim=c(0,40),main="Función de regresión",sub="MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=100000")x1<-seq(-3,3,length=1000)y1<-2+3*(x1^2)lines(x1,y1,lwd=2,type="l",col=6)

poli1<-lm(y~x) #”~”=alt+ctrl+4abline(poli1,lwd=2,col=3)

poli2<-lm(y~x+I(x^2))df<-data.frame(x=x1)y1<-predict(poli2,df)lines(x1,y1,lwd=2,col=5)

v<-dpill(x,y)lines(locpoly(x,y,bandwidth=v,gridsize=length(x1),range.x=c(-3,3)),type="l",lwd=2,col=4) #corrige efecto frontera

res<-glkerns(x,y)lines(ksmooth(x,y,"normal",bandwidth=res$bandwidth,range.x=c(-3,3),n.points=length(x1)),lwd=2,col=2)legend("top",legend=c("Función de regresión teórica","Estimación por regresión polinómica (grado 1: recta)","Estimación por regresión polinómica (grado 2)","Estimación por regresión lineal local","Estimación por Nadaraya-Watson"),lwd=2,col=c(6,3,5,4,2))

-3 -2 -1 0 1 2 3

01

02

03

04

0

Función de regresión

MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=10x

y

-3 -2 -1 0 1 2 3

01

02

03

04

0

Función de regresión

MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=10x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson

21(2)

21(2,3)

0.0084

0.8605

-3 -2 -1 0 1 2 3

01

02

03

04

0

Función de regresión

MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=100x

y

-3 -2 -1 0 1 2 3

01

02

03

04

0

Función de regresión

MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=100x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson

21(2)

21(2,3)

0.0184

0.7563

-3 -2 -1 0 1 2 3

01

02

03

04

0

Función de regresión

MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=1000x

y

-3 -2 -1 0 1 2 3

01

02

03

04

0

Función de regresión

MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=1000x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson

21(2)

21(2,3)

0.0001

0.6911

-3 -2 -1 0 1 2 3

01

02

03

04

0

Función de regresión

MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=10000x

y

-3 -2 -1 0 1 2 3

01

02

03

04

0

Función de regresión

MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=10000x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson

21(2)

21(2,3)

0.0003

0.7286

ESCENARIO 3

( )( )( )2

,3,3

(3 ), 1

X YX U

Y N sen xX x

Î -

Î=

Notemos que en este caso

( )( ) (3 )Yy g x E sen xX x

= = ==

Por lo tanto, si el número de datos es grande, cabe esperar mal funcionamiento de la recta de regresión y del polinomio de regresión de Y sobre X de orden 2.Veremos que los estimadores no paramétricos (“todo terreno”) funcionan bien.

ESCENARIO 3. Código fuente en R para comparar por Monte Carlo regresión lineal simple, polinómica de grado 2, Nadaraya-Watson y polinómica local de grado 1

MODELO NO PARAMÉTRICO 3: Y=SIN(3*X)+N(0,1) con X=U(-3,3).

require(lokern)require(KernSmooth)x<-runif(100000,-3,3)y<-sin(3*x)+rnorm(100000,0,1)plot(x,y,xlim=c(-3,3),ylim=c(-4,6),main="Función de regresión",sub="MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=100000")x1<-seq(-3,3,length=1000)y1<-sin(3*x1)lines(x1,y1,lwd=2,type="l",col=6)

poli1<-lm(y~x) #”~”=alt+ctrl+4abline(poli1,lwd=2,col=3)

poli2<-lm(y~x+I(x^2))df<-data.frame(x=x1)y1<-predict(poli2,df)lines(x1,y1,lwd=2,col=5)

v<-dpill(x,y)lines(locpoly(x,y,bandwidth=v,gridsize=length(x1),range.x=c(-3,3)),type="l",lwd=2,col=4) #corrige efecto frontera

res<-glkerns(x,y)lines(ksmooth(x,y,"normal",bandwidth=res$bandwidth,range.x=c(-3,3),n.points=length(x1)),lwd=2,col=2)legend("top",legend=c("Función de regresión teórica","Estimación por regresión polinómica (grado 1: recta)","Estimación por regresión polinómica (grado 2)","Estimación por regresión lineal local","Estimación por Nadaraya-Watson"),lwd=2,col=c(6,3,5,4,2))

-3 -2 -1 0 1 2 3

-4-2

02

46

Función de regresión

MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=10x

y

-3 -2 -1 0 1 2 3

-4-2

02

46

Función de regresión

MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=10x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson 2

1(2)

21(2,3)

0.1550

0.1849

-3 -2 -1 0 1 2 3

-4-2

02

46

Función de regresión

MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=100x

y

-3 -2 -1 0 1 2 3

-4-2

02

46

Función de regresión

MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=100x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson 2

1(2)

21(2,3)

0.0155

0.0267

-3 -2 -1 0 1 2 3

-4-2

02

46

Función de regresión

MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=1000x

y

-3 -2 -1 0 1 2 3

-4-2

02

46

Función de regresión

MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=1000x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson 2

1(2)

21(2,3)

0.0475

0.0511

-3 -2 -1 0 1 2 3

-4-2

02

46

Función de regresión

MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=10000x

y

-3 -2 -1 0 1 2 3

-4-2

02

46

Función de regresión

MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=10000x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson 2

1(2)

21(2,3)

0.0219

0.0219

ESCENARIO 4

( )( )

2

,3,3

1, 1

X YX U

Y N senX x x

Î -æ æ ö ö÷ ÷ç çÎ ÷ ÷ç ç ÷ ÷ç ç= è è ø ø

Notemos que en este caso

( ) 1( ) Yy g x E sen

X x x

æ ö÷ç= = = ÷ç ÷ç= è ø

Por lo tanto, si el número de datos es grande, cabe esperar mal funcionamiento de la recta de regresión y del polinomio de regresión de Y sobre X de orden 2.Veremos que los estimadores no paramétricos (“todo terreno”) funcionan bien.

ESCENARIO 4. Código fuente en R para comparar por Monte Carlo regresión lineal simple, polinómica de grado 2, Nadaraya-Watson y polinómica local de grado 1

MODELO NO PARAMÉTRICO 4: Y=SIN(1/X)+N(0,1) con X=U(-0.5,0.5).

require(lokern)require(KernSmooth)x<-runif(100000,-0.5,0.5)y<-sin(1/x)+rnorm(100000,0,1)plot(x,y,xlim=c(-0.5,0.5),ylim=c(-4,5),main="Función de regresión",sub="MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=100000)")x1<-seq(-3,3,length=1000)y1<-sin(1/x1)lines(x1,y1,lwd=2,type="l",col=6)

poli1<-lm(y~x) #”~”=alt+ctrl+4abline(poli1,lwd=2,col=3)

poli2<-lm(y~x+I(x^2))df<-data.frame(x=x1)y1<-predict(poli2,df)lines(x1,y1,lwd=2,col=5)

v<-dpill(x,y)lines(locpoly(x,y,bandwidth=v,gridsize=length(x1),range.x=c(-3,3)),type="l",lwd=2,col=4) #corrige efecto frontera

res<-glkerns(x,y)lines(ksmooth(x,y,"normal",bandwidth=res$bandwidth,range.x=c(-3,3),n.points=length(x1)),lwd=2,col=2)legend("top",legend=c("Función de regresión teórica","Estimación por regresión polinómica (grado 1: recta)","Estimación por regresión polinómica (grado 2)","Estimación por regresión lineal local","Estimación por Nadaraya-Watson"),lwd=2,col=c(6,3,5,4,2))

-0.4 -0.2 0.0 0.2 0.4

-4-2

02

4

Función de regresión

MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=10)x

y

-0.4 -0.2 0.0 0.2 0.4

-4-2

02

4

Función de regresión

MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=10)x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson 2

1(2)

21(2,3)

0.1277

0.1597

-0.4 -0.2 0.0 0.2 0.4

-4-2

02

4

Función de regresión

MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=100)x

y

-0.4 -0.2 0.0 0.2 0.4

-4-2

02

4

Función de regresión

MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=100)x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson 2

1(2)

21(2,3)

0.0000

0.0122

-0.4 -0.2 0.0 0.2 0.4

-4-2

02

4

Función de regresión

MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=1000)x

y

-0.4 -0.2 0.0 0.2 0.4

-4-2

02

4

Función de regresión

MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=1000)x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson 2

1(2)

21(2,3)

0.0353

0.0354

-0.4 -0.2 0.0 0.2 0.4

-4-2

02

4

Función de regresión

MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=10000)x

y

-0.4 -0.2 0.0 0.2 0.4

-4-2

02

4

Función de regresión

MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=10000)x

y

Función de regresión teóricaEstimación por regresión polinómica (grado 1: recta)Estimación por regresión polinómica (grado 2)Estimación por regresión lineal localEstimación por Nadaraya-Watson 2

1(2)

21(2,3)

0.0214

0.0216

COMENTARIOS1. Una posible (y frecuente) elección de los pesos en el estimador de Nadaraya-Watson es

(0)

( )

( )...

( )( )

( )

h

h jj

h ii

h jh ij

h jj

K

K x x

K x x

K x xK x x

K x x

w

ìïïïï -ïïï- ïï= = íï- ï -ïïïï -ïïïî

å

åå

2

2

1( ) exp

22h

xK x

hh p

æ ö÷ç ÷= - ®ç ÷ç ÷çè ø

ixx h- x h+x

0ix x-

( )20,N h

2. Comentario válido para escenarios 1 y 2 (parcialmente). Con n grande, los cuadrados de los coeficientes de correlación lineal simple y correlación lineal múltiple considerados, indican la fracción total de varianza explicada con todas las estimaciones (pues tienden a coincidir). Notemos que aún en los mejores casos, esa fracción no suele pasar del 75%, debido al efecto de la varianza de la variable condicionada.

3. A efectos de definir los escenarios notemos que ( , ) ( ) ( )f x y f x f y x=