Está en la página 1de 8

Regresion Local Polinomica

Antonio Lenton
antoniolenton@gmail.com

Samanta Fernandez
samanta.fernandez@gmail.com

Walter Lamagna
...@gmail.com

Noviembre 2010

1.

Modelos no param
etricos
En los modelos tradicionales de regresi
on no lineal se ajusta el modelo general
yi = f (, x0i ) + i

donde = (1 , ..., p )0 es un vector de parametros a estimar y x0i = (x1 , ..., xn ) es un vector de


predictores para la isima de n observaciones. Los errores i se asumen normalmente distribuidos con
media 0 y varianza constante 2 La funci
on f () relativa al valor medio de la respuesta y de los predictores
es especificada de antemano.
Un caso particular es la regresion lineal,donde .... Por otro lado, el modelo general de regresion no parametrica, se escribe de forma similar, pero se
diferencia de los anteriores en que la funcion f se deja sin especificar

yi = f (xi ) + i
= f (xi1 , xi2 , ..., xik ) + i

De hecho, el objeto del an


alisis de regresion no parametrico es estimar la funcion de regresion directamente, en lugar de estimar los par
ametros de la misma.
Hay muchos metodos de regresi
on no parametrica, la mayoria de los cuales asume que la funcion de
regresi
on es suavizada. Entre los metodos mas comunes encontramos la estimacion kernel, la smoothing
splines la regresi
on local polin
omica, a cuyo alisis nos abocaremos en en presente.
2

blablabla.... blablabla.... .....

2.

Regresi
on Local Polin
omica

2.1.

Idea general del m


etodo

Los metodos polin


omicos locales combinan la robustez de la regresion lineal con el concepto de ajuste
local de los metodos kernel
La idea es conseguir una curva suavizada cuyos valores en cada posicirticular del eje x se determinan
unicamente por los puntos en la vecindad, con esto, no se hacen presunciones acerca de la forma de la
relacion, en cambio esta surge de los en s
A grandes rasgos, podriamos describir el proceso de la siguiente forma: en primer lugar, se selecciona
un ancho de ventana, luego se ajusta un polinomio a los datos en dicha ventana El valor predicho de
la respuesta en el centro de la ventana es el valor ajustado. Luego, se procede a deslizar la ventana
sobre todo el rango de datos, repitiendo el proceso de ajuste a medida que la ventana se desplaza. La
implementaci
on m
as popular de este tipo de suavizado se denomina LOESS o LOWESS.
blablabla.... blablabla.... .....

2.2.

Par
ametros del modelo

Una de las cosas que se deben elegir es el orden de los polinomios a ajustar. Uno cuadratico permite
capturar picos y valles en la fuci
on, sin embargo, un termino lineal tambien tiene un buen desempe
no y
es el valor por defecto en la funcion loess
Otro par
ametro a setear es el ancho de la ventana, la opcion por defecto toma 3/4 de los datos y
puede no ser una buena eleccion, dependiendo del caso.
blablabla.... blablabla.... .....

3.

Aplicaciones

4.

Regresi
on Simple

5.

Regresi
on Multiple

6.

Resoluci
on de un caso en R

Si bien en los textos los acr


onimos LOESS y LOWESS se usan como sinonimos, en R corresponden
a dos implementaciones distintas, LOWESS fue la primera creada, mientras que LOESS es posterior, y
es mas potente y flexible.

6.1.

LOWESS
f: el ancho de ventana tomado para realizar el suavizado. Esto determina la proporcion de puntos
en el plot que influencian el suavizado en cada valor. Valores mas altos dan mayor suavizado
iter: el numero de iteraciones para lograr mayor robustez que deben ejecutarse. Utilizando valores
mas peque
nos la funcion se ejecutar
a mas rapidamente.
delta: los valores de x que caen dentro de un deltade cada uno de los otros, se reemplazan por
un unico valor en el output de lowess

Tomando el dataset de ejemplo del paquete car de R:


Cargamos los datos:
> data(Prestige)
> dataset = Prestige
> str(dataset)

'

data.frame':
$ education:
$ income
:
$ women
:
$ prestige :
$ census
:
$ type
:

102 obs. of 6 variables:


num 13.1 12.3 12.8 11.4 14.6 ...
int 12351 25879 9271 8865 8403 11030 8258 14163 11377
num 11.16 4.02 15.7 9.11 11.68 ...
num 68.8 69.1 63.4 56.8 73.5 77.6 72.6 78.1 73.1 68.8
int 1113 1130 1171 1175 2111 2113 2133 2141 2143 2153
Factor w/ 3 levels "bc","prof","wc": 2 2 2 2 2 2 2 2 2

11023 ...
...
...
2 ...

> head(dataset)

GOV.ADMINISTRATORS
GENERAL.MANAGERS
ACCOUNTANTS
PURCHASING.OFFICERS
CHEMISTS
PHYSICISTS

education income women prestige census type


13.11 12351 11.16
68.8
1113 prof
12.26 25879 4.02
69.1
1130 prof
12.77
9271 15.70
63.4
1171 prof
11.42
8865 9.11
56.8
1175 prof
14.62
8403 11.68
73.5
2111 prof
15.64 11030 5.13
77.6
2113 prof

De este dataset vamos a tomar la columna income para predecir los valores de prestige
> income = dataset$income
> prestige = dataset$prestige

Ejecutamos la funcion, y mostramos el resultado:

> result.low = lowess(prestige, income, f = ".75")


> str(result.low)

List of 2
$ x: num [1:102] 14.8 17.3 20.1 20.2 20.8 21.5 23.2 23.3 25.1 25.2 ...
$ y: num [1:102] 1898 2266 2681 2696 2785 ...

lowess devuelve una lista de coordenadas x e y que corresponden a coordenadas de la linea de ajuste,
con esto podemos graficarla:
3

25000

> plot(income ~ prestige)


> lines(result.low, col = "blue")

20000

15000

10000

5000

income

20

40

60

80

prestige

Si variamos el par
ametro f de la funcion lowess podemos ver como varia la linea resultado:

25000

f=0.7

25000

f=1

40

5000

80

20

40

prestige

f=0.5

f=0.3

60

prestige

60

25000

20

15000

80

25000

income

15000

5000

income

20

40

60

80

20

prestige

40

60

prestige

5000

15000

5000

income

15000

income

80

25000

f=0.15

25000

f=0.2

40

5000

80

20

40

prestige

f=0.1

f=0.05

60

prestige

60

25000

20

15000

80

25000

income

15000

5000

income

20

40

60

5000

15000

income

15000

5000

income

80

20

prestige

40

60

80

prestige

Como podemos ver, los resultados varan bastante seg


un los valores elegidos de los parametros. Vemos
que f
acilmente podemos caer en overfitting dependiendo de que parametros usemos para el modelo
Para determinar la combinaci
on
optima de valores pueden generarse varios modelos, aplicando una
crossvalidation cada vez.

6.2.

LOESS

loess es una funci


on m
as nueva, que devuelve un objeto con los resultados, con la funcion predict()
podemos obtener los valores ajustados. Algunos parametros que se pueden especificar para loess son

span: el parametro que controla el grado de suavizado de la curva


degree: el grado de los polinomios a usar, usualmente 1 o 2
enp.target: una forma alternativa de especificar span, como el numero aproximado de partros a
usar.

parametric: indica si algun termino debe ser ajustado globalmente en vez de en forma local, los
tinos se pueden especificar por nombre, n
umero o como vector del mismo tama
no que el n
umero
de predictores.
drop.square: para ajustes con mas de un predictor y degree = 2, indica si el termino cuadratico
debe ser eliminado para algun predictor en particular. Los terminos se indican del mismo modo
que para parametric
dropped:
normalize: indica si los predictores deben ser normalizados a una escala com
un, en caso de haber
mas de uno. La normalizacion que se utiliza es seteada al 10Debe setearse a falso para predictores
en coordenadas espaciales y otros que tengan escala com
un.
family:
method:
Utilizamos la funcion loess para generar la prediccion para la variable income a partir de la variable
prestige
> to_sort = data.frame(x = prestige, y = income)
> str(to_sort)

data.frame':
102 obs. of 2 variables:
$ x: num 68.8 69.1 63.4 56.8 73.5 77.6 72.6 78.1 73.1 68.8 ...
$ y: int 12351 25879 9271 8865 8403 11030 8258 14163 11377 11023 ...

25000

ordered = to_sort[with(to_sort, order(x)), ]


x = ordered$x
y = ordered$y
y.loess <- loess(y ~ x, span = 0.75, data.frame(x = x, y = y))
y.predict <- predict(y.loess, data.frame(x = x))
plot(x, y)
lines(x, y.predict, col = "blue")

20000

15000

10000

5000

>
>
>
>
>
>
>

'

20

40

60
x

80

7.

Ventajas

8.

Desventajas

9.

Bibliografa Consultada

También podría gustarte