APROXIMACIÓN
EMPÍRICA
DE LA
FUNCIÓN DE REGRESIÓN
CONTEXTO TEÓRICO
Conocida la distribución de una población bidimensional se conoce su función de regresión
Y
(
y = g(x ) = E Y
x
X = x
)
X
CONTEXTO PRÁCTICO
Con 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.
y = gˆ ( x ) = a + bx
1
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.
y = gˆ 2 ( x ) = a 0 + a 1x + a 2 x 2
Y
X
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ÓN
Si 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
gˆ ( x ) =
1
k
k
å
yj
j= 1
Si no es así, consideraremos un entorno de ese punto suficientemente grande para que
haya datos en su vertical, y razonaremos sobre estos datos.
Y
X
x-h
x
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.
h
y = gˆ 3 ( x ) =
å
{x i Î ( x -
y i ×w i ,
h ,x + h
)}
æ
ç w > 0;
ç i
çè
ö
wi = 1÷
÷
÷
÷
ø
å
i
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.
y = gˆ 4 h ( x ) = a + bx
Y
X
x-h
x
x+h
Existen procedimientos para aproximar con los datos ventanas óptimas, es decir
h o = a r g m in h D ( g , gˆ h
)
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
( X ,Y )
X Î U ( - 3, 3 )
Y
X = x
Î N
(2 +
3x , 3 2
)
Notemos que en este caso
(
y = g(x ) = E Y
X = x
)=
2 + 3x
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*x1
lines(x1,y1,lwd=2,col=6,type="l")
poli1<-lm(y~x) #”~”=alt+ctrl+4
abline(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 NadarayaWatson"),lwd=2,col=c(6,3,5,4,2))
5
0
-5
-10
y
10
15
20
Función de regresión
-3
-2
-1
0
1
x
MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=10
2
3
20
Función de regresión
15
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
 1( 2 )  0.7450
2
 1( 2 ,3 )  0.7453
5
0
-5
-10
y
10
2
-3
-2
-1
0
1
x
MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=10
2
3
5
0
-5
-10
y
10
15
20
Función de regresión
-3
-2
-1
0
1
x
MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=100
2
3
20
Función de regresión
15
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
 1( 2 )  0.7789
2
 1( 2 ,3 )  0.7794
5
0
-5
-10
y
10
2
-3
-2
-1
0
1
x
MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=100
2
3
5
0
-5
-10
y
10
15
20
Función de regresión
-3
-2
-1
0
1
x
MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=1000
2
3
20
Función de regresión
15
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
 1( 2 )  0.7567
2
 1( 2 ,3 )  0.7572
5
0
-5
-10
y
10
2
-3
-2
-1
0
1
x
MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=1000
2
3
5
0
-5
-10
y
10
15
20
Función de regresión
-3
-2
-1
0
1
x
MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=10000
2
3
20
Función de regresión
15
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
 1( 2 )  0.7557
2
 1( 2 ,3 )  0.7557
5
0
-5
-10
y
10
2
-3
-2
-1
0
1
x
MODELO: Y=2+3*X+N(0,3), X=U(-3,3); N=10000
2
3
ESCENARIO 2
( X ,Y )
X Î U ( - 3, 3 )
Y
X = x
Î N
(2 +
X =
)=
x
3x 2 , 3 2
)
Notemos que en este caso
(
y = g(x ) = E Y
2 + 3x 2
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+4
abline(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 NadarayaWatson"),lwd=2,col=c(6,3,5,4,2))
20
10
0
y
30
40
Función de regresión
-3
-2
-1
0
1
x
MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=10
2
3
40
Función de regresión
30
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
 1( 2 )  0.0084
2
 1( 2 ,3 )  0.8605
20
10
0
y
2
-3
-2
-1
0
1
x
MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=10
2
3
20
10
0
y
30
40
Función de regresión
-3
-2
-1
0
1
x
MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=100
2
3
40
Función de regresión
30
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
 1( 2 )  0.0184
2
 1( 2 ,3 )  0.7563
20
10
0
y
2
-3
-2
-1
0
1
x
MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=100
2
3
20
10
0
y
30
40
Función de regresión
-3
-2
-1
0
1
2
x
MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=1000
3
40
Función de regresión
30
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
 1( 2 )  0.0001
2
 1( 2 ,3 )  0.6911
20
10
0
y
2
-3
-2
-1
0
1
2
x
MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=1000
3
20
10
0
y
30
40
Función de regresión
-3
-2
-1
0
1
2
x
MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=10000
3
40
Función de regresión
30
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
 1( 2 )  0.0003
2
 1( 2 ,3 )  0.7286
20
10
0
y
2
-3
-2
-1
0
1
2
x
MODELO: Y=2+3*X^2+N(0,5), X=U(-3,3); N=10000
3
ESCENARIO 3
( X ,Y )
X Î U ( - 3, 3 )
Y
X = x
Î N
( sen ( 3 x ) , 12 )
Notemos que en este caso
(
y = g(x ) = E Y
X = x
)=
sen ( 3 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+4
abline(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 NadarayaWatson"),lwd=2,col=c(6,3,5,4,2))
-4
-2
0
y
2
4
6
Función de regresión
-3
-2
-1
0
1
2
x
MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=10
3
6
Función de regresión
4
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
 1( 2 )  0.1550
2
 1( 2 ,3 )  0.1849
-4
-2
0
y
2
2
-3
-2
-1
0
1
2
x
MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=10
3
-4
-2
0
y
2
4
6
Función de regresión
-3
-2
-1
0
1
2
x
MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=100
3
6
Función de regresión
4
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
 1( 2 )  0.0155
2
 1( 2 ,3 )  0.0267
-4
-2
0
y
2
2
-3
-2
-1
0
1
2
x
MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=100
3
-4
-2
0
y
2
4
6
Función de regresión
-3
-2
-1
0
1
2
x
MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=1000
3
6
Función de regresión
4
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
 1( 2 )  0.0475
2
 1( 2 ,3 )  0.0511
-4
-2
0
y
2
2
-3
-2
-1
0
1
2
x
MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=1000
3
-4
-2
0
y
2
4
6
Función de regresión
-3
-2
-1
0
1
2
x
MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=10000
3
6
Función de regresión
4
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
 1( 2 )  0.0219
2
 1( 2 ,3 )  0.0219
-4
-2
0
y
2
2
-3
-2
-1
0
1
2
x
MODELO: Y=sin(3*x)+N(0,1), X=U(-3,3); N=10000
3
ESCENARIO 4
( X ,Y )
X Î U
Y
(-
3, 3 )
æ
Î N çç s e n
çè
X = x
æ1
ç
ç
èç x
ö 2ö
÷
,1 ÷
÷
÷
÷
ø
ø÷
Notemos que en este caso
(
y = g(x ) = E Y
X = x
)
æ1
= sen çç
çè 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+4
abline(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))
-4
-2
0
y
2
4
Función de regresión
-0.4
-0.2
0.0
0.2
0.4
x
MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=10)
Función de regresión
4
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
 1( 2 )  0.1277
2
 1( 2 ,3 )  0.1597
-4
-2
0
y
2
2
-0.4
-0.2
0.0
0.2
0.4
x
MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=10)
-4
-2
0
y
2
4
Función de regresión
-0.4
-0.2
0.0
0.2
0.4
x
MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=100)
Función de regresión
4
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
 1( 2 )  0.0000
2
 1( 2 ,3 )  0.0122
-4
-2
0
y
2
2
-0.4
-0.2
0.0
0.2
0.4
x
MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=100)
-4
-2
0
y
2
4
Función de regresión
-0.4
-0.2
0.0
0.2
0.4
x
MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=1000)
Función de regresión
4
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
 1( 2 )  0.0353
2
 1( 2 ,3 )  0.0354
-4
-2
0
y
2
2
-0.4
-0.2
0.0
0.2
0.4
x
MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=1000)
-4
-2
0
y
2
4
Función de regresión
-0.4
-0.2
0.0
0.2
0.4
x
MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=10000)
Función de regresión
4
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
 1( 2 )  0.0214
2
 1( 2 ,3 )  0.0216
-4
-2
0
y
2
2
-0.4
-0.2
0.0
0.2
0.4
x
MODELO: Y=sin(1/x)+N(0,1), X=U(-0.5,0.5); N=10000)
COMENTARIOS
1. Una posible (y frecuente) elección de los pesos en el estimador de Nadaraya-Watson es
ìï
ï
ï
ï
ï
ï
ï
K h (x - x i )
ï
wi =
= ïí
å K h ( x - x j ) ïïï
j
ï
ï
ï
ï
ïï
î
K h (x ) =
å
K h (x - x j )
j
...
K h (x - x i )
å
K h (x - x j )
x - h
x
xi x + h
j
æ x2
ex p çç çç 2 h 2
è
2p
1
h
K h ( 0)
ö
÷
÷
÷
÷
ø
®
N
( 0, h 2 )
x - xi 0
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 )
Descargar

Sea la siguiente ecuación: