107
REGRESI ´ ON NO PARAM ´ ETRICA EN R Trabajo Fin de M´aster M´asterenEstad´ ıstica Aplicada Autora: Nisa Boukichou Abdelkader Tutora: Mar´ ıa Dolores Mart´ ınez Miranda

Regresión no paramétrica en R

  • Upload
    ru-lo

  • View
    266

  • Download
    15

Embed Size (px)

Citation preview

Page 1: Regresión no paramétrica en R

REGRESION

NO PARAMETRICA

EN R

Trabajo Fin de Master

Master en Estadıstica Aplicada

Autora: Nisa Boukichou AbdelkaderTutora: Marıa Dolores Martınez Miranda

Page 2: Regresión no paramétrica en R
Page 3: Regresión no paramétrica en R

Indice general

Prologo 1

1. Introduccion 51.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2. Estimacion del modelo de Regresion No Parametrica . . . . . . . . . 61.3. Regresion Polinomial Local . . . . . . . . . . . . . . . . . . . . . . . . 101.4. Metodos de seleccion de la complejidad del modelo . . . . . . . . . . 131.5. Extension multivariante . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.5.1. El problema de la dimensionalidad . . . . . . . . . . . . . . . 161.5.2. Modelos aditivos no parametricos . . . . . . . . . . . . . . . . 16

1.6. Seleccion del parametro ancho de banda . . . . . . . . . . . . . . . . 17

2. Software disponible en R 192.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2. Libro KernSmooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.3. Libro Locpol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.4. Libro Locfit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632.5. Libro sm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3. Aplicacion practica 873.1. Estudio con datos reales . . . . . . . . . . . . . . . . . . . . . . . . . 873.2. Estudio con datos simulados . . . . . . . . . . . . . . . . . . . . . . . 94

Bibliografıa 99

iii

Page 4: Regresión no paramétrica en R

Prologo

Dado el rapido avance que ha experimentado la Estadıstica Computacional enlas ultimas decadas, hoy en dıa podemos agradecerle el desarrollo de diversos cam-pos dentro de la Estadıstica, que eran impensables dado que requerıan costososprocedimientos de calculo. Un ejemplo de este tipo lo constituyen los enfoques noparametricos del Analisis de Regresion.

Las tecnicas de Regresion No Parametrica logran una mejor adaptacion a losdatos disponibles, mediante la obtencion de estimaciones mas proximas a la curvade regresion subyacente. Esto es posible usando la informacion suministrada direc-tamente desde los datos, sin formular rıgidos modelos parametricos.

En este trabajo nuestro objetivo ha sido el de explorar las tecnicas de regresionno parametrica mas habituales y las capacidades que R incorpora actualmente parasu aplicacion practica. En este sentido el trabajo se ha estructurado en tres capıtulos.El primero tiene como finalidad establecer los elementos teoricos fundamentales dela regresion no parametrica, desde la propia formulacion del modelo. De este modopara un problema general de regresion se definen dos vıas se solucion. Una serıa laregresion parametrica o clasica que presenta la ventaja de ser mas sencilla y menoscostosa desde el punto de vista computacional, pero que suele ser muy poco flexibley de difıcil adaptacion en situaciones complejas. Paralelamente y no necesariamenteen contraposicion (puesto que ambas pueden ir de la mano) la denominada regresionno parametrica. De esta ultima destacamos fundamentalmente su flexibilidad, ya quepermite una mejor adaptacion a diversas situaciones y problemas, si bien requierede un elevado coste computacional y una mayor complejidad desde el punto de vistateorico.

Una vez definido el contexto general y establecidas las caracterısticas particularesque perfilan el problema de regresion no parametrica frente a los planteamientosclasicos parametricos, se procede a analizar algunas de las mas relevantes tecnicas deeste tipo. El tratamiento que se ha hecho de dichos metodos en este trabajo, ha sidodirigido fundamentalmente hacia la practica y concreto la practica con el softwareR. De este modo no se ha profundizado en aspectos teoricos de complejidad comoson los estudios de tipo asintotico. Bajo tal perspectiva se han explorado metodosunivariantes y multivariantes, perfilandose los denominados metodos de regresionpolinomial local como una buena solucion, dadas sus buenas propiedades teoricas y

1

Page 5: Regresión no paramétrica en R

2 PROLOGO

sus deseables caracterısticas de interpretabilidad y sencillez en la practica.

De forma sencilla se plantea tambien en este primer capıtulo el conocido problemade la dimensionalidad. Desde dicha motivacion se introducen metodos que permitensalvar dicho problema, como son los modelos de regresion aditivos no parametri-cos. Dichos modelos se caracterizan fundamentalmente porque la naturaleza de losefectos de las variables explicativas sobre la variable de respuesta se considera deforma individual. Esto obviamente permite ganar en simplicidad y tambien en in-terpretabilidad.

Asociado a los metodos de regresion no parametrica (univariantes o multivari-antes) se introduce uno de los problemas tecnicos cruciales en la practica, la elecciondel parametro de suavizado o ancho de banda que define la complejidad del modelo.Desde el punto de vista teorico se formula el problema de seleccion y se perfilan losdistintos metodos disenados para su seleccion automatica. En concreto se distingueentre los metodos basados en la metodologıa plug-in, los basados en el criterio devalidacion cruzada (cross-validation) y los procedimientos basados en Bootstrap.

Una vez expuestos los elementos teoricos necesarios comienza el capıtulo dos,donde se hace un estudio profundo de los aspectos computacionales asociados adichos metodos. El software analizado es el entorno de analisis y programacion es-tadıstica R y en contreto algunos de los libros especıficos de funciones, actualmentedisponibles en la web http://cran.es.r-project.org, para la aplicacion practicade los metodos de regresion no parametricos. Nuestra atencion se ha centrado fun-damentalmente en los libros kernSmooth, locpol, locfit y sm, si bien existenfunciones disponibles en otros libros (stats, monreg, lokern, loess, lowess, np,psplines, etc.). Asociado a alguna aplicacion de datos concreta se ilustrara tambienel uso de alguna de estas funciones adicionales.

De estos libros de R se ha hecho una descripcion casi exhaustiva, obviando soloen algunos casos partes que no corresponden a los objetivos concretos de este trabajoy mas concretamente de los metodos teoricos desarrollados en el capıtulo primero.Hemos de destacar que todo el trabajo aquı desarrollado esta sujeto a la necesariay continua actualizacion, dado el rapido avance en esta materia computacional. Eneste sentido para cada libro se ha especificado la version utilizada incorporandodentro de la ultima (hasta septiembre de 2009) version de R.

Para finalizar este trabajo se desarrollan en el capıtulo tres algunas aplicacionespracticas. Nos hemos centrado en modelos de regresion univariante, haciendo uso dealgunas de las funciones analizadas en el capıtulo dos. Se han ilustrado los metodosde regresion no parametrica para distintos conjuntos de datos. Hemos querido re-alizar dichas ilustraciones usando datos reales (disponibles en libros de R) y tambienmediante ejercicios de simulacion. Con esto pretendemos iniciarnos en el metodohabitualmente usado en la investigacion para la validacion practica de las nuevasmetodologıas propuestas. En la resolucion de estos ejercicios practicos hemos uti-lizado varias funciones disponibles para el mismo problema. Esto nos ha permitido

Page 6: Regresión no paramétrica en R

INDICE GENERAL 3

realizar conclusiones acerca de dichos procedimientos.A modo de conclusion podemos decir que este trabajo nos ha permitido un

acercamiento a los metodos de regresion no parametrica mas habituales con unenfoque eminentemente practico. Las ilustraciones desarrolladas con datos permitenexplorar el modo en que actualmente se puede trabajar en R, para dar solucionesal problema de regresion no parametrico. Los metodos de regresion polinomial localofrecen una sencilla vıa de solucion, suficientemente documentada e implementadaen diversos libros de R. No obstante sigue siendo necesaria la incorporacion de nuevasfunciones, que permitan la implementacion de novedosas tecnicas, que ocupan laspublicaciones actuales en dicha materia. Estamos seguros de que es cuestion deno mucho tiempo y entre nuestros objetivos esta el de intentar colaborar en dichatarea. El inicio de este proposito se traduce en el trabajo que actualmente tiene ensus manos.

Nisa Boukichou AbdelkaderGranada, 27 de septiembre de 2009

Page 7: Regresión no paramétrica en R

4 INDICE GENERAL

Page 8: Regresión no paramétrica en R

Capıtulo 1

Introduccion

1.1. Antecedentes

Consideremos en primer lugar el planteamiento de un problema de regresion,habitualmente especificado como sigue:

Sea un conjunto de n observaciones, {(Xi, Yi), i = 1, . . . , n}, de una variablealeatoria bidimensional, (X,Y ), satisfaciendo el modelo,

Yi = m(Xi) + εi, i = 1, . . . , n, (1.1)

donde

los residuos εi son variables aleatorias independientes (vv.aa.ii.) con mediacero y varianza σ2(Xi),

y la funcion m es desconocida y se define como la funcion de regresion, m(x) =E[Y |X = x].

Un planteamiento tal corresponde a un modelo de regresion de tipo univariante,esto es, con tan solo una variable explicativa, basado en un diseno aleatorio, dondelas observaciones constituyen una muestra aleatoria de la poblacion (X,Y). Ademas,estamos considerando una situacion general de heterocedasticidad, es decir, lasvarianzas de los errores se suponen distintas.

Con tal planteamiento el interes se centra principalmente en los tres objetivossiguientes:

1. Explorar y representar la relacion existente entre la variable explicativa, X, yla variable Y .

2. Predecir el comportamiento de Y para valores de la variable X aun no obser-vados.

5

Page 9: Regresión no paramétrica en R

6 CAPITULO 1. INTRODUCCION

3. Estimar las derivadas de m, ası como algunas propiedades relacionadas.

Para alcanzar tales objetivos se puede optar por dos aproximaciones diferentes:asumir algun modelo parametrico para la funcion de regresion o no imponer tal re-striccion, asumiendo tan solo que la funcion presenta algunas propiedades deseablesgeneralmente relacionadas con la derivabilidad.

La primera aproximacion corresponderıa a lo que se denomina Regresion Pa-rametrica, y supone que la funcion de regresion desconocida, m, pertenece a algunafamilia parametrica de funciones, m ∈ {mθ|θ ∈ Θ}. De esta manera se procede a laseleccion de alguna de ellas segun algun criterio previamente especificado, comopuede ser el criterio de mınimos cuadrados. Por contraposicion a la segundaaproximacion se le denomina Regresion No Parametrica, y la unica restriccionque se le impone a la funcion m, es que sea suave, entendiendo esta suavidad enterminos de derivabilidad. En este ultimo sentido a estos metodos tambien se lessuele denominar metodos de suavizamiento o suavizado.

De partida podemos destacar de las dos aproximaciones una serie de ventajas einconvenientes:

- Los modelos de Regresion Parametrica en general son sencillos y de calculorapido. Ademas, el presuponer que tienen una forma definida y parametricapara la funcion de regresion, hace que se tengan garantizadas de antemanolas propiedades de las estimaciones resultantes. Sin embargo, se caracterizanpor ser metodos poco flexibles y de difıcil adaptacion en diversas situacionesreales.

- El planteamiento no parametrico por el contrario, permite una mayor flexibili-dad y por eso, se considera una de las mejores herramientas de tipo explorato-rio. No obstante, el no realizar muchas hipotesis sobre la estructura subyacenteen los datos se traduce en soluciones mucho mas complejas y con un mayorcoste computacional.

En este trabajo nos centraremos en la teorıa de Regresion No Parametrica y dehecho sera la aproximacion que desarrollaremos con mas detalle en lo que sigue.

1.2. Estimacion del modelo de Regresion No Pa-

rametrica

La teorıa y los metodos de suavizamiento o regresion no parametrica han cobradoun gran auge en las ultimas decadas unido al avance en materia computacional. Unarevison de los mismos se puede encontrar por ejemplo en los libros de Wand yJones (1995), Fan y Gijbels (1996) y Loader (1999). El creciente interes por estas

Page 10: Regresión no paramétrica en R

1.2. ESTIMACION DEL MODELO DE REGRESION NO PARAMETRICA 7

metodologıas ha tenido dos razones principales: la primera, que los estadısticos sedieron cuenta de que planteamientos puramente parametricos no aportaban la flex-ibilidad necesaria para la estimacion de las curvas que aparecıan en la practica. Yla segunda razon estaba ligada al avance de la informatica y al desarrollo de unhardware que posibilitaba el costoso calculo de esos estimadores no parametricos.Los primeros estimadores de regresion no parametrica propuestos fueron los sencillosestimadores de tipo nucleo de Nadaraya (1964) y Watson (1964). Dichos estimadoresse han ido refinando y perfeccionando dentro de los denominados metodos de re-gresion polinomial local, convirtıendose en uno de los metodos mas empleados pordiversos analistas en la actualidad.

Y centrando la atencion en la adecuada eleccion de los parametros decisivos enel buen comportamiento de los estimadores de regresion resultantes, como son: elancho de banda o parametro de suavizado y el grado de los ajustes polinomialeslocales. A continuacion, en Eubank (1988) se puede encontrar el siguiente postuladoque dice lo siguiente:

Supongamos que la funcion de regresion desconocida m, es suave entonces, pode-mos esperar que las observaciones tomadas en puntos proximos a uno dado x puedandarnos informacion del vector de dicha funcion en x.

Con este planteamiento y sobre el diagrama de dispersion de los datos, se tratade definir unas bandas centradas en cada punto y de un ancho h, y calcular la esti-macion en el punto utilizando tan solo las observaciones que caen dentro. Ademas,para obtener la curva de regresion estimada, la banda definida por el parametroh recorrera todo el diagrama de dispersion de izquierda a derecha. No obstantetambien, al parametro h se le suele llamar ancho de banda o parametro de suavizado.

Figura 1.1: Ancho de Banda

Page 11: Regresión no paramétrica en R

8 CAPITULO 1. INTRODUCCION

Como podemos observar en este grafico (Figura 1.1), en primer lugar hemosdefinido unas bandas centradas en los puntos x = 25 y x = 30 con un ancho h encada una de ellos. Y despues, hemos estimado las curvas de regresion en cada unode los puntos utilizando solamente las observaciones que caen dentro de cada unade las bandas.

Por tanto, siguiendo esta idea se han desarrollado diversas tecnicas, entre las quedestacaremos estos cuatro tipos:

1. Estimadores tipo nucleo: realizan un promedio de las observaciones quecaen en cada banda. Se definen como:

m(x) =n∑

i=1

Wi(x)Yi (Nadaraya − Watson, 1964)

donde:

Wi(x) ∼= n−1h−1k

(Xi − x

h

)

2. Regresion Polinomial Local: realiza un ajuste polinomial con las observa-ciones que caen en la banda. Se define como:

mınn∑

i=1

Yi −

p∑

j=0

βj(Xi − x)j

2

h−1k

(Xi − x

h

)(Cleveland, 1979)

3. Suavizamiento por Splines: se define como la solucion a un problema demınimos cuadrados penalizados. Y se calcula de la siguiente forma:

min n−1n∑

i=1

{m(Xi) − Yi}2 + λ

∫(m(r)(x))2dx (λ > 0)

4. Estimadores basados en Desarrollos en Serie Ortogonal o los que estantan de moda denominados Wavelets, se definen como:

Page 12: Regresión no paramétrica en R

1.2. ESTIMACION DEL MODELO DE REGRESION NO PARAMETRICA 9

mN(x) =N∑

j=1

θjqj(x)

donde:

θj = n−1n∑

i=1

qj(Xi)Yi

Ruppert, Wand y Carroll (2003) establecen los siguientes factores a tener encuenta a la hora de evaluar y decidir que tipo de estimador no parametrico utilizaren la practica:

1. Conveniencia. ¿Esta disponible en el software de uso habitual o favorito porel analista?

2. Facilidad para su implementacion. Si no esta disponible directamente, ¿es facilimplementarlo en el lenguaje de programacion habitual del analista?

3. Flexibilidad. Se trata de ver si el estimador es capaz de explicar un amplioabanico de tipos de relaciones que pueden existir entre las variables de interes.

4. Simplicidad y sencillez. ¿Es intuitivo? esto es, si es facil entender como elmetodo actua sobre los datos para dar respuestas.

5. Tratabilidad: ¿es sencillo estudiar las propiedades matematicas del estimador?.

6. Fiabilidad. Si se tiene garantıa de que las respuestas proporcionadas por elestimador son “verdad”.

7. Eficiencia. Si el estimador hace un uso de los datos eficiente.

8. Posibilidades de extension a otras situaciones o problemas mas complicados.

Este trabajo se desarrolla desde una perspectiva computacional y practica, eneste sentido ponemos especial atencion en los puntos 1, 2, 3 y 8 anteriores. Ası,desde tales premisas, los metodos de regresion polinomial local constituyen unaadecuada eleccion. De hecho se trata de un procedimiento sencillo y muy intuitivo,que esta implementado y ampliamente documentado en programas estadısticos ylenguajes de programacion de uso extendido. Destacan implementaciones en S-Plus,MatLab y en R atraves de diversos libros especıficos.

A continuacion describiremos con mas detalle el procedimiento de regresion poli-nomial local desde el punto de vista teorico.

Page 13: Regresión no paramétrica en R

10 CAPITULO 1. INTRODUCCION

1.3. Regresion Polinomial Local

Si suponemos que la funcion de regresion,m tiene p derivadas en un punto x0,entonces vıa el teorema de Taylor tenemos una aproximacion de este tipo para losvalores en un entorno de x0.

m(x) ≈ m(x0) + m′(x0)(x − x0) +m′′(x0)

2!(x − x0)

2 + ... +m(p)(x0)

p!(x − x0)

p

Luego, esto justifica que se puede aproximar localmente m por funciones polinomi-cas de grado p.

Pp(x) =p∑

j=0

βj(x − x0)j

Ası, se obtienen estimaciones de los coeficientes βj con j = 0, . . . , p y entonces,

observando la expresion, vemos que la estimacion del termino independiente β0

sera un estimador de m en x0 y el resto de coeficientes βj proporcionaran esti-maciones de sus derivadas.

Por eso, con el fin de estimar m localmente mediante polinomios de grado p

consideraremos un problema de mınimos cuadrados ponderados:

minn∑

i=1

Yi −

p∑

j=0

βj(Xi − x0)j

2

kh(Xi − x0)

donde:

h es un parametro denominado ancho de banda o parametro de suavizadoque controla las observaciones que caen en cada entorno.

Kh(u) = h−1K(uh), donde la funcion K(·), se denomina funcion nucleo.

Dicha funcion define las ponderaciones que se asignan a cada observacion enel entorno local considerado. Habitualmente se supone una densidad simetricay con soporte compacto.

y p es el grado del ajuste polinomial local.

Ademas,como casos particulares se puede obtener el conocido estimador nucleode Nadaraya-Watson, que supone realizar ajustes polinomiales locales de grado cero,y tambien cuando el ajuste polinomial es de grado uno, se obtiene el denominado es-timador lineal local. Si bien los ajustes constantes has sido estudiados y ampliamente

Page 14: Regresión no paramétrica en R

1.3. REGRESION POLINOMIAL LOCAL 11

utilizados por teoricos y analistas de datos, es el ajuste lineal el que ha mostradoser mas conveniente y el mas usado actualmente en la practica (en este sentido esinteresante la discusion del artıculo de Cleveland (1979).

Como anteriormente hemos mencionado la definicion del estimador esta deter-minado por tres parametros: el ancho de banda, h, la funcion nucleo y el gradop.

El ancho de banda se define como un parametro positivo cuyo rango en prin-cipio sera la amplitud del intervalo de estimacion. No obstante la eleccion de dichoparametro constituye uno de los aspectos cruciales del procedimiento de estimacion.Las buenas propiedades del estimador resultante dependera en gran medida de laeleccion que se haga de dicho parametro. En este sentido existe una compensacion(trade-off en ingles) entre flexiblidad y complejidad que es contralada a traves de di-cho parametro. Ası, si dicho parametro se toma muy pequeno, tan solo observacionesmuy proximas al punto de estimacion intervendran en el calculo del estimador, de-scribiendo muy bien comportamientos locales pero obtendremos una curva estimadamuy variable. Si por el contrario, dicho parametro se toma muy grande, las estima-ciones en cada punto se veran afectadas por observaciones en puntos alejados deforma que difıcilmente se podran recoger los comportamientos locales, dando lugara grandes sesgos y como consecuencia obtendremos poca variabilidad. Notese portanto que una practica con anchos de banda muy grandes se traduce en proced-imientos computacionalmente costosos.

Ası, desde un punto de vista teorico, la eleccion del ancho de banda tendra quebuscar una adecuada compensacion entre sesgo y varianza. Y desde un punto devista practico supondra la eleccion de la complejidad del modelo.

Por otro lado, con la eleccion del grado de los ajustes polinomiales nos ocurrealgo similar. Es decir, la utilizacion de ajustes de grado cero o uno nos daran es-timaciones con poca variabilidad, muy suaves, pero con sesgos muy elevados. Porel contrario, cuando los ajustes son con grados mayores (dos o tres) nos permitiranmayor adaptabilidad, o sea, menores sesgos pero, obtendremos mayor varianza.

Luego, del mismo modo que para la eleccion del ancho de banda es necesario unacompensacion entre sesgo y varianza, para elegir p se buscara tambien la compen-sacion optima entre sesgo y varianza.

Y finalmente, la funcion nucleo, K, define la forma de los pesos que se asocian acada observacion dentro de la banda definida y por tanto, determina su importanciaen el calculo de la estimacion. Para dicha funcion es habitual el uso de alguna de lassiguientes densidades:

1. Triangular: k(u) = (1 − |u|)1|u|≤1

2. Epanechnikov: k(u) = 34(1 − u2)1|u|≤1

3. Biponderado: k(u) = 1516

(1 − u2)21|u|≤1

Page 15: Regresión no paramétrica en R

12 CAPITULO 1. INTRODUCCION

4. Gaussiano: k(u) = (2π)−1 exp(−x2

2)1|u|≤1

En la practica, la eleccion del nucleo no afecta al buen comportamiento de lasestimaciones resultantes, por lo que considerar una funcion u otra atiende funda-mentalmente a razones tecnicas.

Por otro lado, tenemos que el ancho de banda y el grado del polinomio necesitanuna compensacion entre el sesgo y la varianza, por tanto, se definen a continuacioncriterios para medir dicho compromiso y asimismo, la consecuente bondad de lasestimaciones.

Luego, entre las diversas medidas que se pueden definir, hemos considerado lassiguientes:

- El Error Cuadratico Medio Condicional en su version local (MSE):

MSE(mh(x0)) = EY/X

[(mh(x0) − m(x0))

2]

- El Error Cuadratico Medio Condicional en su version global (MISE):

MISE(mh) = EY/X

[∫(mh(x) − m(x))2dx

]

Por tanto, como sabemos el error cuadratico medio se puede descomponer enun termino de sesgo al cuadrado mas uno de varianza, por lo que podemos asumirque este criterio permitira la compensacion entre sesgo y varianza anteriormentemencionado.

MSE(mh(x0)) ={EY/X [mh(x0)] − m(x0)

}2

︸ ︷︷ ︸sesgo2

+ V arY/X(mh(x0))︸ ︷︷ ︸varianza

En cuanto, a la eleccion entre un criterio u otro dependera de que busquemosoptimalidad en cada punto (MSE) o bien, que busquemos la optimalidad conjuntaen todo el intervalo de estimacion (MISE).

A continuacion, veremos varios procedimientos de estimacion de h o tambiendenominados selectores del ancho de banda o metodos se seleccion de la complejidaddel modelo.

Page 16: Regresión no paramétrica en R

1.4. METODOS DE SELECCION DE LA COMPLEJIDAD DEL MODELO 13

1.4. Metodos de seleccion de la complejidad del

modelo

A) Metodos Plug-in

La idea que subyace en este tipo de tecnicas es que a partir de la expresionoptima teorica del ancho de banda, se proponen estimadores de lo desconocidoque se incrustaran en dicha expresion teorica. No obstante, aunque estos pro-cedimientos comparten una misma filosofıa, podemos hacer una clasificacionde los mismos en dos categorıas:

- Plug-in Asintotico:

Parte de expresiones asintoticas teoricas del error (MSE o MISE) y estimalo desconocido. Y uno de los inconvenientes que tiene es que es necesariorealizar hipotesis bastante restrictivas sobre la funcion de regresion de-sconocida, lo cual limita su campo de aplicacion en la practica. Ademas,es valida para tamanos muestrales grandes porque en caso, de tamanosmuestrales pequenos dicho procedimiento no es efectivo.

- Plug-in no Asintotico:

Debido al problema que presenta el plug-in asintotico en muestras pequenas,se toma como punto de partida expresiones desarrolladas de los erroresteoricos de naturaleza no asintotica, incrustando en ellas las estimacionespropuestas para los terminos desconocidos. Por otro lado, dependiendode si utilizan iteraciones para llegar a la solucion optima, se puedendistinguir entre:

- Plug-in iterativo:

Anaden una sucesion de iteraciones con el fin de conseguir una progresivamejora del ancho de banda. Su inconveniente es que aumenta el costecomputacional.

- Plug-in no iterativo o directo:

Son los que no utilizan iteraciones para la obtencion del selector delparametro.

B) Otros metodos de seleccion automatica basados en los datos:

Se basan en la minimizacion de criterios de error relacionados con con losanteriores MSE y MISE pero conocidos, como es la suma residual de cuadradospara obtener la seleccion del parametro. Ademas, dentro del mismo destacamosalgunas de las elecciones mas habituales, como son:

Page 17: Regresión no paramétrica en R

14 CAPITULO 1. INTRODUCCION

• La validacion cruzada por mınimos cuadrados.

• La validacion cruzada generalizada.

• El criterio de informacion de Akaike.

• El error de prediccion finito.

• El selector de Shibata.

• La T de Rice.

C) Procedimientos basados en aproximaciones Bootstrap

La metodologıa bootstrap tiene como proposito ganar informacion acerca dela distribucion de un estimador. Sin embargo, en regresion no parametricala metodologıa bootstrap es utilizada fundamentalmente para dos tareas: laprimera es la de elegir el parametro de suavizamiento o ancho de banda y lasegunda es la de construir intervalos de confianza para la curva de regresion.

1.5. Extension multivariante

Consideramos ahora la extension del modelo (1.1) al caso en que se consideramas de una covariable. De este modo sea Xi un vector de D covariables y el modelogeneral de regresion multivariante heterocedastico dado por:

Yi = m(Xi) + εi (1.2)

donde la funcion σ(x) = V ar[Y |X = x] es finita, y los residuos, εi, son vari-ables independientes e identicamente distribuidas, con media cero, varianza σ2(Xi)y son independientes de los vectores aleatorios, Xi. La funcion de regresion, m(x) =E[Y |X = x], con x = (x1, . . . , xD)T .

El modelo de regresion lineal multivariante supone que la relacion entre la vari-able de respuesta Y y cada una de las variables independientes es lineal. A veces,es evidente que esta relacion no es lineal, por lo que hay que considerar modelosque sean mas flexibles. Las tecnicas de regresion no parametricas responden a estaflexibilidad ya que no imponen condiciones sobre la forma de la funcion D-variante,m(x).

En esta situacion, los estimadores mas comunes para m(x) son versiones mul-tivariantes de los estimadores tipo nucleo (como los polinomiales locales descritosanteriormente) o splines de suavizamiento. Ruppert y Wand (1994) introducen laextension multivariante del estimador polinomial local. A continuacion describimosel estimador polinomial local para el caso general de grado p y D > 1. Consideramosel siguiente problema de mınimos cuadrados ponderados:

Page 18: Regresión no paramétrica en R

1.5. EXTENSION MULTIVARIANTE 15

mın β

n∑

i=1

Yi −

p∑

L=1

l1+...+ld=L

βl1,...,ld

D∏

j=1

(Xi − xj)lj

2

KH(Xi − x)

donde: β = {βl1,...,lD : l1 + . . . + lD = L} y L = {0, . . . , p} es un vector de coefi-cientes, H es una matriz de dimension D × D simetrica, definida positiva; K(·) es

una funcion nucleo no negativa D-variante y KH(u) = |H|−1/2K(H−1/2u).

A la matriz H se le denomina matriz ancho de banda, dado que es la extensionmultivariante del parametro ancho de banda univariante. Si denotamos por βj, j =0, . . . , p, a las soluciones del problema anterior entonces, usando el desarrollo deTaylor, el estimador polinomico local vendra dado por la primera de ellas, esto es:

mp(x) = β0,...,0

El problema en forma matricial y su solucion, se definen mediante:

mınβ

(Y − Xxβ)T Wx,H (Y − Xxβ)

mp(x) = eT1

(XT

x Wx,HXx

)−1XT

x Wx,HY

donde e1 es un vector (pD + 1), con un 1 en la primera posicion y 0 en el resto,Y = (Y1, . . . , Yn)T ,

Xx =

1 (X1 − x)T · · · ((X1 − x)p)T

......

. . ....

1 (Xn − x)T · · · ((Xn − x)p)T

y

Wx,H = diag {KH(X1 − x), . . . , KH(Xn − x)}

Casos particulares:

p = 0, este coincide con la version multivariante del estimador nucleo deNadaraya-Watson:

m0(x) =

∑ni=1 KH(Xi − x)Yi∑ni=1 KH(Xi − x)

Page 19: Regresión no paramétrica en R

16 CAPITULO 1. INTRODUCCION

p = 1, es el estimador lineal local multivariante (Ruppert y Wand, 1994):

m1(x) = eT1

(XT

x,HWx,HXx

)−1XT

x Wx,HY

1.5.1. El problema de la dimensionalidad

Aunque la generalizacion al caso multidimensional de la mayorıa de tecnicasde suavizamiento es posible, aparece un problema importante conocido como: elproblema de la dimensionalidad, (en ingles the curse of dimensionality, Bell-man,1961).

Este problema se refiere al hecho de que cuando estamos estimando, considerandoun entorno con un numero fijo de datos, y tenemos una superficie de gran dimension,dicho entorno puede ser demasiado grande como para ser llamado local, es decir,si un entorno local contiene 10 datos de cada variable, entonces el correspondienteentorno local D − dimensional contiene 10D datos.

Como consecuencia se necesitan conjuntos de datos mucho mas grandes inclusocuando D no es muy elevado, y en la practica puede que tales conjuntos no estendisponibles.

Otro problema que presentan los estimadores multivariantes es la falta de inter-pretabilidad, ya que sera difıcil de visualizarlos graficamente. No es posible repre-sentar superficies para D > 2.

Tambien resulta un inconveniente el excesivo coste computacional de las versionesmultivariantes, que requieren un gran numero de operaciones. Esto hace que en lapractica los suavizadores multidimensionales solo se apliquen hasta dimensiones 2o 3.

Los problemas anteriores nos llevan a plantear modelos alternativos que evitenestos inconvenientes, como los que se comentan en este trabajo y que reciben elnombre de modelos aditivos.

Los modelos aditivos se presentan como una herramienta util para el analisis dedatos. Estos modelos mantienen una importante caracterıstica de interpretacion delos modelos lineales, al tener representada cada variable de forma separada. Ası lanaturaleza de los efectos de una variable sobre la variable de respuesta no dependede los valores de las otras variables.

Los modelos aditivos fueron formulados por Friedman y Stuetzle, (1981) y con-stituıan el centro del algoritmo ACE de Breiman y Friedman(1985).

1.5.2. Modelos aditivos no parametricos

Propuestos por Hastie y Tibshirani (1990), son una tecnica de regresion noparametrica multivariante muy utilizada. Frente a otras tecnicas de regresion no

Page 20: Regresión no paramétrica en R

1.6. SELECCION DEL PARAMETRO ANCHO DE BANDA 17

parametrica multivariante, los modelos aditivos pueden interpretar facilmente losefectos individuales de las variables independientes sobre la variable dependiente,sin tener en cuenta que el numero de variables sea elevado. Si partimos del modelode regresion multiple heterocedastico (1.2), el modelo aditivo supone que la funcion,m, se puede escribir como la suma de funciones univariantes de cada una de lasvariables independientes, que se suponen suaves; es decir:

m(x) = E[Y |X = (x1, . . . , xD)T

]= α + m1(x1) + . . . + mD(xD)

Para estimar este modelo se han propuesto en los ultimos anos diferentes meto-dos, entre ellos destacamos el algoritmo backfitting, el metodo de integracion marginaly el smooth backfitting (Nielsen and Sperlich, 2005), como los mas importantes, y apartir de estos se han propuesto distintas modificaciones pero, todas ellas con el finde mejorar las estimaciones obtenidas.

El algoritmo backfitting, propuesto por Buja, Hastie y Tibshirani(1989) pro-porciona un metodo iterativo para estimar las componentes unidimensionales. Sinembargo, el hecho de ser un proceso iterativo dificulta el estudio de las propiedadesasintoticas de las estimaciones. Y por eso, esta dificultad del estudio de las propiedadesdel algoritmo backfitting es lo que lleva a otros autores a plantearse metodos de es-timacion alternativos.

De esta forma, Linton y Nielsen(1995) proponen el metodo de integracionmarginal para un modelo aditivo bivariante, este es un metodo que estima di-rectamente cada una de las componentes univariantes y permite el estudio de suspropiedades, y fue generalizado para un modelo multivariante (D > 2) por Hengart-ner(1996) y Kim, Linton y Hengartner(1997).

1.6. Seleccion del parametro ancho de banda

La seleccion de una matriz de anchos de banda en el caso general multivariante,H, a partir de los datos, ha sido mucho menos considerado en la literatura que elproblema en el caso univariante, en el que interviene un unico ancho de banda.

En el caso de los modelos aditivos, el parametro es un vector que define el gradode suavizamiento empleado en cada componente del modelo y puede considerar unancho de banda diferente para cada una de las componentes aditivas o un unicoparametro comun para todas ellas.

Al igual que en el caso univariante se pueden utilizar diversos metodos de se-leccion del parametro ancho de banda. Los mas destacados son el metodo plug-in yel metodo de validacion cruzada. Para una revision de estos metodos se pueden veren el libro de Hastie y Tibshirani (1990) y en el de Martınez Miranda et al., (2008).

Page 21: Regresión no paramétrica en R

18 CAPITULO 1. INTRODUCCION

El metodo de validacion cruzada de este modelo se puede encontrar en el librode Kim, Linton y Hengartner, 1999; en el de Kauermann y Opsomer, 2003 y en elde Nielsen y Sperlich, 2005.

Y para los metodos plug-in ver los libros de Opsomer y Ruppert, 1997; el deSeverance-Lossin y Sperlich, 1997 y el de Mammen y Park, 2005.

Page 22: Regresión no paramétrica en R

Capıtulo 2

Software disponible en R

2.1. Introduccion

El programa R es un entorno de analisis y programacion estadıstico que formaparte del proyecto de software libre GNU General Public Licence. R esta disponibleen la direccion http://www.r-project.org. El proyecto R comenzo en 1995 porun grupo de estadısticos de la universidad de Auckland, dirigidos por Ross Ihakay Robert Gentleman. R esta basado en el lenguaje de programacion S, disenadoespecıficamente para la programacion de tareas estadısticas en los anos 80 por losLaboratorios Bell AT&T. El lenguaje S se considera un lenguaje de programacionestadıstica orientado a objetos de alto nivel.

Frente a otros lenguajes de programacion, R es sencillo, intuitivo y eficienteya que se trata de un lenguaje interpretado (a diferencia de otros como Fortran,C++, Visual Basic, etc.). Como programa de analisis estadıstico, R-base permiterealizar tareas estadısticas sencillas habituales y ademas permite extensiones queimplementan tecnicas estadısticas avanzadas. De este modo se cubre las necesidadesde cualquier analista, tanto en el ambito de la estadıstica profesional como en el dela investigacion estadıstica.

R consta de un sistema base pero la mayorıa de las funciones estadısticas vienenagrupadas en distintos libros (o bibliotecas del ingles packages) que se incorporande forma opcional. Para los metodos de regresion no parametrica existen funcionesdisponibles en el libro basico stats, no obstante el uso mas adecuado de dichos meto-dos puede conseguirse a traves de funciones incorporadas en varios libros adicionalesy actualmente disponibles en la web. Entre estos libros destacan kernSmooth,locpol, np, locfit,lokern, monreg, loess, sm, lowess etc.

En este capıtulo haremos una descripcion casi exhaustiva de algunos de estoslibros. En concreto nos centraremos en los libros kernSmooth, locpol, locfit y sm.Se ha obviado solo en algunos casos, partes que no corresponden a los objetivosconcretos de este trabajo y mas concretamente de los metodos teoricos desarrollados

19

Page 23: Regresión no paramétrica en R

20 CAPITULO 2. SOFTWARE DISPONIBLE EN R

en el capıtulo primero.Hemos de destacar que todo el trabajo aqui desarrollado esta sujeto a la necesaria

y continua actualizacion, dado el rapido avance en esta materia computacional. Eneste sentido los libros descritos se ha actualizado solo en la fecha que se indica ensus correspondientes apartados.

2.2. Libro KernSmooth

En este libro llamado KernSmooth se trabajara con funciones para el suavizadodel nucleo y la estimacion de densidades correspondientes al texto de Wand y Jones(1995). Dicho libro corresponde a la actualizacion del 24-05-2009, version 2.23-2 yesta sujeta a cualquier modificacion a dıa de hoy porque esta en constante actual-izacion.

Ademas, nos vamos a encontrar en este libro diferentes funciones con las quepodremos trabajar el tema que nos ocupa como es la regresion no parametrica. Losdetalles de cada una de las funciones se veran en cada seccion de las mismas conmas detenimiento pero, basicamente tratan de calcular el parametro de seleccion, elestimador de densidad, el calculo de los bins y la funcion de regresion.

Funcion bkde

Descripcion: devuelve las coordenadas x e y de un Binned estimado de ladensidad del nucleo para la funcion de probabilidad de los datos.

Funcion:

bkde(x, kernel = "normal", canonical = FALSE, bandwidth,

gridsize = 401L, range.x, truncate = TRUE)

donde:

El nucleo kernel puede ser: normal, box (rectangular), epanech (Beta(2,2)),biweight (Beta(3,3)), triweight (Beta(3,3)).

Valor devuelto por la funcion: esta funcion devuelve un grafico de la funcionde probabilidad.

Ejemplo de uso:

> data(geyser, package="MASS")

> x <- geyser$duration

Page 24: Regresión no paramétrica en R

2.2. LIBRO KERNSMOOTH 21

> est <- bkde(x, bandwidth=0.25)

> plot(est, type="l")

0 1 2 3 4 5 6

0.0

0.1

0.2

0.3

0.4

0.5

est$x

est$

y

Figura 2.1: KernSmooth de bkde

Funcion bkde2D

Descripcion: devuelve la red de puntos y la matriz de densidad estimada in-ducida. El nucleo es la densidad normal bivariada.

Funcion:

bkde2D(x, bandwidth, gridsize = c(51L, 51L), range.x, truncate = TRUE)

Valor devuelto por la funcion: esta funcion devuelve dos graficos, el primeroes el contorno de las variables x1 y x2 y las estimaciones de f . Y el segundo grafico,es la perpestiva de las estimaciones de f .

Ejemplo de uso:

> data(geyser, package="MASS")

> x <- cbind(geyser$duration, geyser$waiting)

Page 25: Regresión no paramétrica en R

22 CAPITULO 2. SOFTWARE DISPONIBLE EN R

> est <- bkde2D(x, bandwidth=c(0.7, 7))

> contour(est$x1, est$x2, est$fhat)

> persp(est$fhat)

0.001

0.002

0.003

0.004

0.005

0.006

0.006

0.007

0.007

0 1 2 3 4 5 6

4060

8010

012

0

Figura 2.2: KernSmooth de bkde2D1

est$fhat

Y

Z

Figura 2.3: KernSmooth de bkde2D2

Funcion bkfe

Descripcion: calcula una estimacion aproximada (binned) para la estimaciontipo nucleo de una funcion de densidad. El nucleo es la densidad normal estandar.

Page 26: Regresión no paramétrica en R

2.2. LIBRO KERNSMOOTH 23

Funcion:

bkfe(x, drv, bandwidth, gridsize = 401L, range.x, binned = FALSE,

truncate = TRUE)

donde:

El drv: es el orden de la derivada en la funcion de densidad.

Valor devuelto por la funcion: esta funcion lo que nos devuelve es un valoraproximado de la estimacion de la densidad.

Ejemplo de uso:

> data(geyser, package="MASS")

> x <- geyser$duration

> est <- bkfe(x, drv=4, bandwidth=0.3)

> est

[1] 33.04156

Funcion dpih

Descripcion: Se utiliza directamente el metodo plug-in para seleccionar el tamanodel bin de un estimador de tipo histograma.

NOTA: Plug-in puede ser asintotico y no asintotico, y si se usa iteraciones parallegar a la solucion optima pueden ser plug-in iterativo y plug-in no iterativo (di-recto).

Funcion:

dpih(x, scalest = "minim", level = 2L, gridsize = 401L,

range.x = range(x), truncate = TRUE)

donde:

El minim es el mınimo de la desviacion tıpica estandar (stdev) y del rangointercuartilico (iqr) dividido por 1’349.

Page 27: Regresión no paramétrica en R

24 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Valor devuelto por la funcion: esta funcion devuelve un valor y con este seconstruye el vector de los bins que posteriormente se utilizaran para construir elhistograma.

Ejemplo de uso:

> data(geyser, package="MASS")

> x <- geyser$duration

> h <- dpih(x)

> bins <- seq(min(x)-0.1, max(x)+0.1+h, by=h)

> hist(x, breaks=bins)

> h <- dpih(x)

> h

[1] 0.2088382

> bins <- seq(min(x)-0.1, max(x)+0.1+h, by=h)

> bins

[1] 0.7333333 0.9421715 1.1510096 1.3598478 1.5686859 1.7775241 1.9863623

[8] 2.1952004 2.4040386 2.6128767 2.8217149 3.0305530 3.2393912 3.4482294

[15] 3.6570675 3.8659057 4.0747438 4.2835820 4.4924202 4.7012583 4.9100965

[22] 5.1189346 5.3277728 5.5366110 5.7454491

Histogram of x

x

Fre

quen

cy

1 2 3 4 5

010

2030

4050

60

Figura 2.4: KernSmooth de dpih

Page 28: Regresión no paramétrica en R

2.2. LIBRO KERNSMOOTH 25

Funcion dpik

Descripcion: Se utiliza directamente el metodo plug-in para seleccionar el anchode banda de la densidad estimada tipo nucleo.

Funcion:

dpik(x, scalest = "minim", level = 2L, kernel = "normal",

canonical = FALSE, gridsize = 401L, range.x = range(x),

truncate = TRUE)

donde:

El minim es el mınimo de la desviacion tıpica estandar, stdev y del rangointercuartılico, iqr dividido por 1.349.

Valor devuelto por la funcion: esta funcion devuelve el valor del ancho debanda y despues, lo utiliza con la funcion bkde para calcular los bins estimados de ladensidad del nucleo para finalmente representarlos graficamente dicha estimacion.

Ejemplo de uso:

> data(geyser, package="MASS")

> x <- geyser$duration

> h <- dpik(x)

> h

[1] 0.1434183

> est <- bkde(x, bandwidth=h)

> plot(est,type="l")

Page 29: Regresión no paramétrica en R

26 CAPITULO 2. SOFTWARE DISPONIBLE EN R

1 2 3 4 5 6

0.0

0.2

0.4

0.6

est$x

est$

y

Figura 2.5: KernSmooth de dpik

Funcion dpill

Descripcion: Se utiliza el metodo plug-in para la seleccion del ancho de bandade un estimador lineal local con nucleo gaussiano, descrito por Ruppert, Sheather yWand (1995).

Funcion:

dpill(x, y, blockmax = 5, divisor = 20, trim = 0.01, proptrun = 0.05,

gridsize = 401L, range.x, truncate = TRUE)

donde:

El blockmax es el numero maximo de bloques de los datos para la construccionde un parametro inicial estimado.

El trim es la proporcion de la muestra de cada uno de los extremos recortadosen la direccion x antes de aplicar el metodo plug-in.

El proptrun es la proporcion de la serie de x en cada extremo truncado en lafuncion estimada.

Page 30: Regresión no paramétrica en R

2.2. LIBRO KERNSMOOTH 27

Valor devuelto por la funcion: esta funcion devuelve el valor del ancho debanda segun el metodo descrito por Ruppert, Sheather y Wand (1995). Este valorse puede utilizar para calcular el estimador de regresion lineal local.

Ejemplo de uso:

> local({pkg <- select.list(sort(.packages(all.available = TRUE)))

+ if(nchar(pkg)) library(pkg, character.only=TRUE)})

KernSmooth 2.23 loaded

Copyright M. P. Wand 1997-2009

> data(geyser, package = "MASS")

> x <- geyser$duration

> y <- geyser$waiting

> plot(x, y)

> h <- dpill(x, y)

> h

[1] 0.2342897

> fit <- locpoly(x, y, bandwidth = h)

> lines(fit)

1 2 3 4 5

5060

7080

9010

011

0

x

y

Figura 2.6: KernSmooth de dpill

Page 31: Regresión no paramétrica en R

28 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Funcion locpoly

Descripcion: Estima una funcion de densidad de probabilidad, una funcion deregresion o sus derivadas utilizando polinomios locales.

Funcion:

locpoly(x, y, drv = 0L, degree, kernel = "normal",

bandwidth, gridsize = 401L, bwdisc = 25,

range.x, binned = FALSE, truncate = TRUE)

donde:

El drv es el orden de la derivada para ser estimada.

El bwdisc es el numero de anchos de banda equiespaciados logaritmicamenteutilizados para acelerar el calculo.

Valor devuelto por la funcion: esta funcion devuelve un objeto con los re-sultados de la estimacion de la funcion de densidad o la funcion de regresion o susderivadas utilizando polinomios locales. A partir de este objeto se puede representarel ajuste realizado usando el metodo plot.

Ejemplo de uso:

> data(geyser, package = "MASS")

> # local linear density estimate

> x <- geyser$duration

> est <- locpoly(x, bandwidth = 0.25)

> plot(est, type = "l")

> # local linear regression estimate

> y <- geyser$waiting

> plot(x, y)

> fit <- locpoly(x, y, bandwidth = 0.25)

> lines(fit)

Page 32: Regresión no paramétrica en R

2.2. LIBRO KERNSMOOTH 29

1 2 3 4 5

0.0

0.1

0.2

0.3

0.4

0.5

est$x

est$

y

Figura 2.7: KernSmooth de locpoly

1 2 3 4 5

5060

7080

9010

011

0

x

y

Figura 2.8: KernSmooth de locpoly

Page 33: Regresión no paramétrica en R

30 CAPITULO 2. SOFTWARE DISPONIBLE EN R

2.3. Libro Locpol

En este libro se recogen funciones que calculan estimadores de tipo polinomiallocal, segun se describen en Fan y Gijbels (1996) o Wand y Jones (1995). Dicho librocorresponde a la actualizacion del 17-04-2009, version es del 0.2-0.

Dentro de este libro se recogen funciones para calcular cantidades utiles asociadasa los nucleos, el estimador de densidad, la estimacion polinomial local ası comoselectores del parametro ancho de banda de tipo plug-in y validacion cruzada.

Funcion compKernVals

Descripcion: permiten calcular valores utiles relacionados con el nucleo.

Funciones:

computeRK(kernel, lower=dom(kernel)[[1]], upper=dom(kernel)[[2]],

subdivisions = 25)

computeK4(kernel, lower=dom(kernel)[[1]], upper=dom(kernel)[[2]],

subdivisions = 25)

computeMu(i, kernel, lower=dom(kernel)[[1]], upper=dom(kernel)[[2]],

subdivisions = 25)

computeMu0(kernel, lower=dom(kernel)[[1]], upper=dom(kernel)[[2]],

subdivisions = 25)

Kconvol(kernel,lower=dom(kernel)[[1]],upper=dom(kernel)[[2]],

subdivisions = 25)

donde:

lower, upper: son los lımites de integracion inferior y superior.

Valor devuelto por las funciones: estas funciones devuelven un valor numericoque son del tipo:

computeK4 : es el cuarto fin de autoconvolucion de K.

computeRK : es el segundo fin de autoconvolucion de K.

Page 34: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 31

computeMu0 : es el integrante de K.

computeMu2 : es el segundo momento de orden K.

computeMu: es el i-esimo momento de orden K.

Kconvol : es la autoconvolucion de K.

Ejemplo de uso:

> g <- function(kernels)

+ {

+ mu0 <- sapply(kernels,function(x) computeMu0(x,))

+ mu0.ok <- sapply(kernels,mu0K)

+ mu2 <- sapply(kernels,function(x) computeMu(2,x))

+ mu2.ok <- sapply(kernels,mu2K)

+ Rk.ok <- sapply(kernels,RK)

+ RK <- sapply(kernels,function(x) computeRK(x))

+ K4 <- sapply(kernels,function(x) computeK4(x))

+ res <- data.frame(mu0,mu0.ok,mu2,mu2.ok,RK,Rk.ok,K4)

+ res

+ }

> g(kernels=c(EpaK,gaussK,TriweigK,TrianK))

mu0 mu0.ok mu2 mu2.ok RK Rk.ok K4

1 1 1 0.2000000 0.200000 0.6000000 0.6000000 0.4337657

2 1 1 1.0000000 1.000000 0.2820948 0.2820948 0.1994711

3 1 1 0.1111111 0.111111 0.8158508 0.8158510 0.5879019

4 1 1 0.1666667 0.166667 0.6666667 0.6666670 0.4793655

## Sacamos los valores de cada funcion individualmente pero

## son los mismos que se observan en la tabla anterior.

> EpaK

function (x)

ifelse(abs(x) <= 1, 3/4 * (1 - x^2), 0)

attr(,"RK")

[1] 0.6

attr(,"RdK")

[1] 1.5

Page 35: Regresión no paramétrica en R

32 CAPITULO 2. SOFTWARE DISPONIBLE EN R

attr(,"mu0K")

[1] 1

attr(,"mu2K")

[1] 0.2

attr(,"K4")

[1] 0.4337657

attr(,"dom")

[1] -1 1

> gaussK

function (x)

dnorm(x, 0, 1)

attr(,"RK")

[1] 0.2820948

attr(,"RdK")

[1] 0.1410474

attr(,"mu0K")

[1] 1

attr(,"mu2K")

[1] 1

attr(,"K4")

[1] 0.1994711

attr(,"dom")

[1] -Inf Inf

> TriweigK

function (x)

ifelse(abs(x) <= 1, 35/32 * (1 - x^2)^3, 0)

attr(,"RK")

[1] 0.815851

attr(,"RdK")

[1] 3.18182

attr(,"mu0K")

[1] 1

attr(,"mu2K")

[1] 0.111111

attr(,"K4")

[1] 0.5879012

attr(,"dom")

Page 36: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 33

[1] -1 1

> TrianK

function (x)

ifelse(abs(x) <= 1, (1 - abs(x)), 0)

attr(,"RK")

[1] 0.666667

attr(,"RdK")

[1] 2

attr(,"mu0K")

[1] 1

attr(,"mu2K")

[1] 0.166667

attr(,"K4")

[1] 0.4793729

attr(,"dom")

[1] -1 1

Funcion denCVBwSelC

Descripcion: calcula el selector mediante validacion cruzada del ancho de bandapara el estimador de la densidad de Parsen-Rosenblatt.

Funcion:

denCVBwSelC(x, kernel = gaussK, weig = rep(1, length(x)),

interval = .lokestOptInt)

donde:

weig: es un vector de pesos para las observaciones.

Valor devuelto por la funcion: esta funcion devuelve un valor numerico conel ancho de banda.

Ejemplo de uso:

> stdy <- function(size=100,rVar=rnorm,dVar=dnorm,kernel=gaussK,x=NULL)

+ {

Page 37: Regresión no paramétrica en R

34 CAPITULO 2. SOFTWARE DISPONIBLE EN R

+ if( is.null(x) ) x <- rVar(size)

+ Tc <- system.time( dbwc <- denCVBwSelC(x,kernel) )[3]

+ ucvT <- system.time( ucvBw <- bw.ucv(x,lower=0.00001,upper=2.0) )[3]

+ nrdT <- system.time( nrdBw <- bw.nrd(x) )[3]

+ {

+ xeval <- seq( min(x)+dbwc , max(x)-dbwc ,length=50)

+ hist(x,probability=TRUE)

+ lines(xeval,trueDen <- dVar(xeval),col="red")

+ lines(density(x),col="cyan")

+ xevalDenc <- PRDenEstC(x,xeval,dbwc,kernel)

+ dencMSE <- mean( (trueDen-xevalDenc)^2 )

+ xevalucvDen <- PRDenEstC(x,xeval,ucvBw,kernel)

+ ucvMSE <- mean( (trueDen-xevalucvDen)^2 )

+ xevalDenNrd <- PRDenEstC(x,xeval,nrdBw,kernel)

+ nrdMSE <- mean( (trueDen-xevalDenNrd)^2 )

+ lines(xevalDenc,col="green")

+ lines(xevalucvDen,col="blue")

+ lines(xevalDenNrd,col="grey")

+ }

+ return( cbind( bwVal=c(evalC=dbwc,ucvBw=ucvBw,nrdBw=nrdBw),

+ mse=c(dencMSE,ucvMSE,nrdMSE),

+ time=c(Tc,ucvT,nrdT) ) )

+ }

> stdy(100,kernel=gaussK)

bwVal mse time

evalC 0.1806189 0.5476062 6.92

ucvBw 0.1846771 0.5474982 0.06

nrdBw 0.3460004 0.5448560 0.01

> stdy(100,rVar=rexp,dVar=dexp,kernel=gaussK)

bwVal mse time

evalC 0.1197885 4.646692 7.59

ucvBw 0.1209562 4.646678 0.00

nrdBw 0.3183121 4.647766 0.00

> stdy(200,rVar=rexp,dVar=dexp,kernel=gaussK)

Page 38: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 35

bwVal mse time

evalC 0.06563341 8.532414 33.04

ucvBw 0.06655133 8.532399 0.01

nrdBw 0.28667317 8.533728 0.00

## check stdy with other kernel, distributions

Histogram of x

x

Den

sity

−2 −1 0 1

0.0

0.1

0.2

0.3

0.4

0.5

Figura 2.9: Locpol de denCVBwSelC1

Histogram of x

x

Den

sity

0 1 2 3 4 5

0.0

0.2

0.4

0.6

0.8

Figura 2.10: Locpol de denCVBwSelC2

Page 39: Regresión no paramétrica en R

36 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Histogram of x

x

Den

sity

0 2 4 6 8

0.0

0.1

0.2

0.3

0.4

0.5

0.6

Figura 2.11: Locpol de denCVBwSelC3

Funcion equivKernel

Descripcion: calcula el nucleo equivalente asociado a la estimacion polinomicalocal de la funcion de regresion o sus derivadas.

Funcion:

equivKernel(kernel,nu,deg,lower=dom(kernel)[[1]],upper=dom(kernel)[[2]],

subdivisions=25)

donde:

nu: es el orden de derivadas a estimar.

Valor devuelto por la funcion: esta funcion devuelve un vector cuyas com-ponentes son el nucleo equivalente utilizado para calcular el estimador polinomiallocal de las derivadas de la funcion de regresion.

Ejemplo de uso:

> curve(EpaK(x),-3,3,ylim=c(-.5,1))

> f <- equivKernel(EpaK,0,3)

> curve(f(x),-3,3,add=TRUE,col="blue")

> curve(gaussK(x),-3,3,add=TRUE)

Page 40: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 37

> f <- equivKernel(gaussK,0,3)

> curve(f(x),-3,3,add=TRUE,col="blue")

> ## Draw several Equivalent local polynomial kernels

> curve(EpaK(x),-3,3,ylim=c(-.5,1))

> for(p in 1:5){

+ curve(equivKernel(gaussK,0,p)(x),-3,3,add=TRUE)

+ }

−3 −2 −1 0 1 2 3

−0.

50.

00.

51.

0

x

Epa

K(x

)

Figura 2.12: Locpol de equivKernel

−3 −2 −1 0 1 2 3

−0.

50.

00.

51.

0

x

Epa

K(x

)

Figura 2.13: Locpol de equivKernel

Page 41: Regresión no paramétrica en R

38 CAPITULO 2. SOFTWARE DISPONIBLE EN R

−3 −2 −1 0 1 2 3

−0.

50.

00.

51.

0

x

Epa

K(x

)

Figura 2.14: Locpol de equivKernel

−3 −2 −1 0 1 2 3

−0.

50.

00.

51.

0

x

Epa

K(x

)

Figura 2.15: Locpol de equivKernel

Page 42: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 39

Funcion KernelChars

Descripcion: para un determinado nucleo devuelve algunos de los valores numeri-cos mas comunmente utilizados para funciones relacionadas con ellos.

Funciones: aquı tenemos las mismas que en el punto 2.2.1.

-- RK(K)

-- RdK(K)

-- mu2K(K)

-- mu0K(K)

-- K4(K)

-- dom(K)

Valor devuelto por las funciones: estas funciones devuelven un valor numerico.

Ejemplo de uso:

> g <- function(kernels)

+ {

+ mu0 <- sapply(kernels,function(x) computeMu0(x,))

+ mu0.ok <- sapply(kernels,mu0K)

+ mu2 <- sapply(kernels,function(x) computeMu(2,x))

+ mu2.ok <- sapply(kernels,mu2K)

+ Rk.ok <- sapply(kernels,RK)

+ RK <- sapply(kernels,function(x) computeRK(x))

+ K4 <- sapply(kernels,function(x) computeK4(x))

+ res <- data.frame(mu0,mu0.ok,mu2,mu2.ok,RK,Rk.ok,K4)

+ res

+ }

> g(kernels=c(EpaK,gaussK,TriweigK,TrianK))

mu0 mu0.ok mu2 mu2.ok RK Rk.ok K4

1 1 1 0.2000000 0.200000 0.6000000 0.6000000 0.4337657

2 1 1 1.0000000 1.000000 0.2820948 0.2820948 0.1994711

Page 43: Regresión no paramétrica en R

40 CAPITULO 2. SOFTWARE DISPONIBLE EN R

3 1 1 0.1111111 0.111111 0.8158508 0.8158510 0.5879019

4 1 1 0.1666667 0.166667 0.6666667 0.6666670 0.4793655

Funcion kernelCte

Descripcion: estos son los valores en funcion del nucleo y del grado del poli-nomio local que se utilizan en la seleccion del ancho de banda, tal como se proponeen Fan y Gijbels, 1996.

Funciones:

cteNuK(nu,p,kernel,lower=dom(kernel)[[1]],upper=dom(kernel)[[2]],

subdivisions= 25)

adjNuK(nu,p,kernel,lower=dom(kernel)[[1]],upper=dom(kernel)[[2]],

subdivisions= 25)

donde:

p: es el grado del polinomio local a estimar.

Valor devuelto por las funciones: ambas funciones devuelven valores numeri-cos.

Funcion Kernels

Descripcion: definicion de los nucleos utilizados en la estimacion polinomiallocal.

Funciones:

-- CosK(x)

-- EpaK(x)

-- Epa2K(x)

-- gaussK(x)

-- ...

Page 44: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 41

Funcion locCteWeights

Descripcion: pesos asociados al estimador polinomial local de grado cero (ogrado uno, locLinWeightsC.

Funciones:

locCteWeightsC(x, xeval, bw, kernel, weig = rep(1, length(x)))

locLinWeightsC(x, xeval, bw, kernel, weig = rep(1, length(x)))

locWeightsEval(lpweig, y)

locWeightsEvalC(lpweig, y)

donde:

xeval: es un vector con los puntos de evaluacion de los pesos.

lpweig: son pesos (XT WX)−1XT W evaluados en la matriz xeval.

Valor devuelto por las funciones:

locCteWeightsC y locLinWeightsC devuelven una lista con dos componentesque son:

– den : estimacion de (n ∗ bw ∗ f(x))p + 1.

– locWeig : (XT WX)−1XT W evaluado en la matriz xeval.

locWeightsEvalC y locWeightsEval devuelven un vector con la estimacion. Yrealizan el producto matricial entre locWeig y y, para obtener la estimaciondada por los puntos de xeval.

Ejemplo de uso:

> size <- 200

> sigma <- 0.25

Page 45: Regresión no paramétrica en R

42 CAPITULO 2. SOFTWARE DISPONIBLE EN R

> deg <- 1

> kernel <- EpaK

> bw <- .25

> xeval <- 0:100/100

> regFun <- function(x) x^3

> x <- runif(size)

> y <- regFun(x) + rnorm(x, sd = sigma)

> d <- data.frame(x, y)

> lcw <- locCteWeightsC(d$x, xeval, bw, kernel)$locWeig

> lce <- locWeightsEval(lcw, y)

> lceB <- locCteSmootherC(d$x, d$y, xeval, bw, kernel)$beta0

> mean((lce-lceB)^2)

[1] 1.582489e-32

> llw <- locLinWeightsC(d$x, xeval, bw, kernel)$locWeig

> lle <- locWeightsEval(llw, y)

> lleB <- locLinSmootherC(d$x, d$y, xeval, bw, kernel)$beta0

> mean((lle-lleB)^2)

[1] 5.319263e-32

Funcion locpol (caso 1)

Descripcion: formula para el calculo asociado la estimacion polinomial local.

Funcion:

locpol(formula,data,weig=rep(1,nrow(data)),bw=NULL,kernel=EpaK,deg=1,

xeval=NULL,xevalLen=100)

confInterval(x)

## S3 method for class ’locpol’:

residuals(object,...)

## S3 method for class ’locpol’:

fitted(object,deg=0,...)

## S3 method for class ’locpol’:

Page 46: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 43

summary(object,...)

## S3 method for class ’locpol’:

print(x,...)

## S3 method for class ’locpol’:

plot(x,...)

donde:

xevalLen: es la longitud de xeval si este no se especifica.

Valor devuelto por la funcion: devuelve una lista que contiene entre otroscomponentes los siguientes:

mf: modelo de marco para los datos y la formula.

data: hoja de datos con datos.

weig: vector de pesos para cada observaciones.

xeval: vector de puntos de evaluacion.

bw: suavizado de parametros, ancho de banda.

kernel: nucleo usado, ver nucleos.

kName: nombre del nucleo, una cadena con el nombre del nucleo.

deg: estimacion del grado (p) del polinomio local.

X,Y: nombre de los datos de la respuesta y de la covarianza. Tambien, seutilizan en lpF it para el nombre de los datos ajustados.

residuals: residuos del polinomio local ajustado.

lpFit: hoja de datos con el ajuste polinomico local, que contiene la covariable,la respuesta, la derivada estimada, la densidad estimada X y la estimacion dela varianza.

Page 47: Regresión no paramétrica en R

44 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Ejemplo de uso:

> N <- 250

> xeval <- 0:100/100

> ## ex1

> d <- data.frame(x = runif(N))

> d$y <- d$x^2 - d$x + 1 + rnorm(N, sd = 0.1)

> r <- locpol(y~x,d)

> plot(r)

> ## ex2

> d <- data.frame(x = runif(N))

> d$y <- d$x^2 - d$x + 1 + (1+d$x)*rnorm(N, sd = 0.1)

> r <- locpol(y~x,d)

> plot(r)

> ## length biased data !!

> d <- data.frame(x = runif(10*N))

> d$y <- d$x^2 - d$x + 1 + (rexp(10*N,rate=4)-.25)

> posy <- d$y[ whichYPos <- which(d$y>0) ];

> d <- d[sample(whichYPos, N,prob=posy,replace=FALSE),]

> rBiased <- locpol(y~x,d)

> r <- locpol(y~x,d,weig=1/d$y)

> plot(d)

> points(r$lpFit[,r$X],r$lpFit[,r$Y],type="l",col="blue")

> points(rBiased$lpFit[,rBiased$X],rBiased$lpFit[,rBiased$Y],type="l")

> curve(x^2 - x + 1,add=TRUE,col="red")

+

+

+

++

+

++

++

+

+++

+

+

++

+

+

+

++

+

+

+

+

+

++

+

+

+

+

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

+

++

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

+

+

++++

+

+

+

+

+

++

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

+

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+++

+

+

+

+

++

+

+

0.0 0.2 0.4 0.6 0.8 1.0

0.5

0.6

0.7

0.8

0.9

1.0

1.1

95% Conf. Int. for x−Points

x

y

Figura 2.16: Locpol de locpol1

Page 48: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 45

+

+

+

+

+

+

+

+

+

+

+

++

+

+

+

+

+

+

++

+ +

+

+

+

++

+

+

+

+

+

+

++

+

+

+

+

+

++

+

+

+

+

+

+

++

+

+

+

+

+

+

++

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

++

+

+

+

+

+

++

++

+

+

+

+

+

+

++

+

+

+

+

+

+

+

++

+

+

++

+

+

+

+

+

++

+

+

+

+++

+

+

+

+

+

+

+

+

++

+

+

+

+

+

++

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

++

+

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

+

++

+

+

+

+

+

+

+

+

+

+

+

+

+

+

++

+

+

+

+

+

+

+

+

+

0.0 0.2 0.4 0.6 0.8 1.0

0.4

0.6

0.8

1.0

1.2

1.4

95% Conf. Int. for x−Points

x

y

Figura 2.17: Locpol de locpol2

0.0 0.2 0.4 0.6 0.8 1.0

0.5

1.0

1.5

2.0

x

y

Figura 2.18: Locpol de locpol3

0.0 0.2 0.4 0.6 0.8 1.0

0.5

1.0

1.5

2.0

x

y

Figura 2.19: Locpol de locpol4

Page 49: Regresión no paramétrica en R

46 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Funcion locpol (caso 2)

Descripcion: calcula directamente la estimacion polinomial local de la funcionde regresion.

Funcion:

locCteSmootherC(x, y, xeval, bw, kernel, weig = rep(1, length(y)))

locLinSmootherC(x, y, xeval, bw, kernel, weig = rep(1, length(y)))

locCuadSmootherC(x, y, xeval, bw, kernel, weig = rep(1, length(y)))

locPolSmootherC(x, y, xeval, bw, deg, kernel, DET = FALSE,

weig = rep(1, length(y)))

looLocPolSmootherC(x, y, bw, deg, kernel, weig = rep(1, length(y)),

DET = FALSE)

donde:

DET: es el Booleano que se pide para calcular el calculo del determinante sila matriz es XT WX.

Valor devuelto por las funciones: devuelven una hoja de datos cuyos com-ponentes dan los puntos de la evaluacion, el estimador de regresion para la funcionm(x) y sus derivadas en cada punto, y la estimacion de la densidad marginal de x

para el grado p + 1. Estos componentes estan dados por:

x: evaluacion de puntos.

beta0, beta1, beta2,...: estimacion de la i-esima derivada de la funcion de re-gresion.

den: estimacion de (n ∗ bw ∗ f(x))p + 1.

Ejemplo de uso:

> N <- 100

> xeval <- 0:10/10

> d <- data.frame(x = runif(N))

Page 50: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 47

> d

> bw <- 0.125

> fx <- xeval^2 - xeval + 1

> fx

[1] 1.00 0.91 0.84 0.79 0.76 0.75 0.76 0.79 0.84 0.91 1.00

> ## Non random

> d$y <- d$x^2 - d$x + 1

> d$y

[1] 0.7612712 0.7559905 0.7522013 0.8848619 0.8160407 0.7507679 0.7964555

[8] 0.7856257 0.9741636 0.9471402 0.9154741 0.8486005 0.7595106 0.7562525

[15] 0.9431480 0.9800950 0.9716219 0.8589399 0.7505613 0.7940482 0.7525843

[22] 0.7895587 0.7531085 0.8553279 0.7591280 0.9631150 0.9631849 0.8603828

[29] 0.7903537 0.7556701 0.7860397 0.8094275 0.7536389 0.7867965 0.8181295

[36] 0.9376779 0.7546431 0.8301950 0.7556629 0.8893358 0.9162690 0.7812961

[43] 0.7538522 0.7552131 0.7965644 0.8778957 0.8928852 0.7509552 0.8604513

[50] 0.7935019 0.7500432 0.8074889 0.8835923 0.7947588 0.7504915 0.7627245

[57] 0.9235209 0.9114959 0.7629582 0.8350024 0.8640522 0.7598914 0.8609709

[64] 0.9384282 0.7897166 0.7922242 0.7500432 0.7503208 0.9851169 0.7852533

[71] 0.7550881 0.9455074 0.9149992 0.9838134 0.8332296 0.7501226 0.8569621

[78] 0.9153462 0.8034103 0.8810769 0.7504405 0.9838679 0.7711603 0.8152093

[85] 0.7521302 0.9085868 0.9313345 0.7854696 0.7500239 0.9594925 0.8544892

[92] 0.7874924 0.8297123 0.7909301 0.7507330 0.7631920 0.9656503 0.8223636

[99] 0.7850518 0.7722768

> cuest <- locCuadSmootherC(d$x, d$y ,xeval, bw, EpaK)

> cuest

x beta0 beta1 beta2 den

1 0.0 1.00 -1.00000e+00 2 0.02372248

2 0.1 0.91 -8.00000e-01 2 8.02909644

3 0.2 0.84 -6.00000e-01 2 23.31658125

4 0.3 0.79 -4.00000e-01 2 11.78540653

5 0.4 0.76 -2.00000e-01 2 38.67861685

6 0.5 0.75 1.93709e-16 2 35.01524608

7 0.6 0.76 2.00000e-01 2 28.50127243

8 0.7 0.79 4.00000e-01 2 6.56710512

9 0.8 0.84 6.00000e-01 2 19.20445392

10 0.9 0.91 8.00000e-01 2 8.74252631

11 1.0 1.00 1.00000e+00 2 0.01881323

Page 51: Regresión no paramétrica en R

48 CAPITULO 2. SOFTWARE DISPONIBLE EN R

> lpest2 <- locPolSmootherC(d$x, d$y , xeval, bw, 2, EpaK)

> lpest2

x beta0 beta1 beta2

1 0.0 1.00 -1.00000e+00 2

2 0.1 0.91 -8.00000e-01 2

3 0.2 0.84 -6.00000e-01 2

4 0.3 0.79 -4.00000e-01 2

5 0.4 0.76 -2.00000e-01 2

6 0.5 0.75 9.48996e-16 2

7 0.6 0.76 2.00000e-01 2

8 0.7 0.79 4.00000e-01 2

9 0.8 0.84 6.00000e-01 2

10 0.9 0.91 8.00000e-01 2

11 1.0 1.00 1.00000e+00 2

> print(cbind(x = xeval, fx, cuad0 = cuest$beta0, lp0 = lpest2$beta0,

cuad1 = cuest$beta1, lp1=lpest2$beta1))

x fx cuad0 lp0 cuad1 lp1

[1,] 0.0 1.00 1.00 1.00 -1.00000e+00 -1.00000e+00

[2,] 0.1 0.91 0.91 0.91 -8.00000e-01 -8.00000e-01

[3,] 0.2 0.84 0.84 0.84 -6.00000e-01 -6.00000e-01

[4,] 0.3 0.79 0.79 0.79 -4.00000e-01 -4.00000e-01

[5,] 0.4 0.76 0.76 0.76 -2.00000e-01 -2.00000e-01

[6,] 0.5 0.75 0.75 0.75 1.93709e-16 9.48996e-16

[7,] 0.6 0.76 0.76 0.76 2.00000e-01 2.00000e-01

[8,] 0.7 0.79 0.79 0.79 4.00000e-01 4.00000e-01

[9,] 0.8 0.84 0.84 0.84 6.00000e-01 6.00000e-01

[10,] 0.9 0.91 0.91 0.91 8.00000e-01 8.00000e-01

[11,] 1.0 1.00 1.00 1.00 1.00000e+00 1.00000e+00

> d$y <- d$x^2 - d$x + 1 + rnorm(d$x, sd = 0.1)

> d$y

[1] 0.6723636 0.8448013 0.6243922 0.8162543 0.7436355 0.6866786 0.7271204

[8] 0.8505989 1.0953380 0.9551620 0.8478272 0.9471580 0.8222345 0.7517749

[15] 0.9601393 1.0679246 1.1700375 0.7825367 0.6269945 0.7835987 0.7351159

[22] 0.8048367 0.6544773 0.9297912 0.7927135 1.0375346 1.1104370 0.7743744

[29] 0.7696472 0.7438772 0.8958657 0.8276265 0.7252702 0.8883434 0.6869968

[36] 0.8876989 0.9026008 0.8190183 0.9027349 0.6894363 0.9984543 0.8354297

[43] 0.6733276 0.6779314 0.7221547 0.8123858 0.8134340 0.8745750 0.8664553

Page 52: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 49

[50] 0.8047627 0.8801028 0.6856138 0.9211008 0.8376500 0.7492864 0.5999255

[57] 0.8460743 1.0463443 0.6829823 0.8607412 0.9401312 0.7307411 0.6731402

[64] 0.8374226 0.7110618 0.8485211 0.7864358 0.7215284 0.9580189 0.6532467

[71] 0.7706758 0.9308003 0.9222196 1.0207491 0.8385355 0.7530619 0.7516319

[78] 0.9301271 0.8300982 0.8937102 0.5815393 0.9806565 0.6800853 0.7677295

[85] 0.8154858 1.0819505 0.7909390 0.9901345 0.5212752 1.0151708 1.0160035

[92] 0.7293871 0.8928125 0.8333529 0.8743793 0.6063388 0.8478267 0.8197416

[99] 0.8457371 0.8609747

> cuest <- locCuadSmootherC(d$x,d$y , xeval, bw, EpaK)

> cuest

x beta0 beta1 beta2 den

1 0.0 1.1696954 -4.82196709 41.562041 0.02372248

2 0.1 0.8791549 -1.52413568 24.858571 8.02909644

3 0.2 0.8136628 -0.54206496 6.356705 23.31658125

4 0.3 0.7869036 -0.73315011 -9.195076 11.78540653

5 0.4 0.7310876 -0.22747304 7.882866 38.67861685

6 0.5 0.7329695 -0.06783130 4.586677 35.01524608

7 0.6 0.7619366 0.51090384 2.573981 28.50127243

8 0.7 0.8089766 0.07681645 -5.305648 6.56710512

9 0.8 0.8248833 0.62602660 7.108892 19.20445392

10 0.9 0.8967816 0.85090352 8.014109 8.74252631

11 1.0 1.0870074 5.53515036 86.530261 0.01881323

> lpest2 <- locPolSmootherC(d$x,d$y , xeval, bw, 2, EpaK)

> lpest2

x beta0 beta1 beta2

1 0.0 1.1696954 -4.82196709 41.562041

2 0.1 0.8791549 -1.52413568 24.858571

3 0.2 0.8136628 -0.54206496 6.356705

4 0.3 0.7869036 -0.73315011 -9.195076

5 0.4 0.7310876 -0.22747304 7.882866

6 0.5 0.7329695 -0.06783130 4.586677

7 0.6 0.7619366 0.51090384 2.573981

8 0.7 0.8089766 0.07681645 -5.305648

9 0.8 0.8248833 0.62602660 7.108892

10 0.9 0.8967816 0.85090352 8.014109

11 1.0 1.0870074 5.53515036 86.530261

> lpest3 <- locPolSmootherC(d$x,d$y , xeval, bw, 3, EpaK)

Page 53: Regresión no paramétrica en R

50 CAPITULO 2. SOFTWARE DISPONIBLE EN R

> lpest3

x beta0 beta1 beta2 beta3

1 0.0 0.5804087 39.0917900 -1761.581230 32073.140200

2 0.1 0.8791243 -1.5169100 24.921877 -8.022927

3 0.2 0.8144113 -0.7355235 5.935609 148.187404

4 0.3 0.7906162 0.1022015 -8.019882 -742.843339

5 0.4 0.7218013 1.1560714 5.543538 -1033.073360

6 0.5 0.7316335 -0.5044145 5.830562 410.750916

7 0.6 0.7684981 0.8838808 1.012286 -278.143321

8 0.7 0.8052345 -1.1792922 1.192569 1065.659358

9 0.8 0.8250382 0.6029547 7.136487 18.045586

10 0.9 0.8984336 1.0882845 6.575599 -266.262808

11 1.0 1.0834538 5.2542255 75.285771 -191.756862

> cbind(x = xeval, fx, cuad0 = cuest$beta0, lp20 = lpest2$beta0,

+ lp30 = lpest3$beta0, cuad1 = cuest$beta1, lp21 = lpest2$beta1,

+ lp31 = lpest3$beta1)

x fx cuad0 lp20 lp30 cuad1 lp21 lp31

[1,] 0.0 1.00 1.1696954 1.1696954 0.5804087 -4.82196709 -4.82196709 39.0917900

[2,] 0.1 0.91 0.8791549 0.8791549 0.8791243 -1.52413568 -1.52413568 -1.5169100

[3,] 0.2 0.84 0.8136628 0.8136628 0.8144113 -0.54206496 -0.54206496 -0.7355235

[4,] 0.3 0.79 0.7869036 0.7869036 0.7906162 -0.73315011 -0.73315011 0.1022015

[5,] 0.4 0.76 0.7310876 0.7310876 0.7218013 -0.22747304 -0.22747304 1.1560714

[6,] 0.5 0.75 0.7329695 0.7329695 0.7316335 -0.06783130 -0.06783130 -0.5044145

[7,] 0.6 0.76 0.7619366 0.7619366 0.7684981 0.51090384 0.51090384 0.8838808

[8,] 0.7 0.79 0.8089766 0.8089766 0.8052345 0.07681645 0.07681645 -1.1792922

[9,] 0.8 0.84 0.8248833 0.8248833 0.8250382 0.62602660 0.62602660 0.6029547

[10,] 0.9 0.91 0.8967816 0.8967816 0.8984336 0.85090352 0.85090352 1.0882845

[11,] 1.0 1.00 1.0870074 1.0870074 1.0834538 5.53515036 5.53515036 5.2542255

> print(cbind(x = xeval, fx, cuad0 = cuest$beta0, lp20 = lpest2$beta0,

+ lp30 = lpest3$beta0, cuad1 = cuest$beta1, lp21 = lpest2$beta1,

+ lp31 = lpest3$beta1))

Funcion pluginBw

Descripcion: implementa un selector del ancho de banda de tipo plug-in parala funcion de regresion. El metodo se describe en el texto de Fan y Gijbels (1996)

Page 54: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 51

paginas 110-112, y utiliza estimaciones piloto segun al regla del pulgar (Rule ofthumb.

Funcion:

pluginBw(x, y, deg, kernel, weig = rep(1,length(y)))

Valor devuelto por la funcion: esta funcion devuelve un valor numerico.

Ejemplo de uso:

> size <- 200

> sigma <- 0.25

> deg <- 1

> kernel <- EpaK

> xeval <- 0:100/100

> regFun <- function(x) x^3

> x <- runif(size)

> y <- regFun(x) + rnorm(x, sd = sigma)

> d <- data.frame(x, y)

> cvBwSel <- regCVBwSelC(d$x,d$y, deg, kernel, interval = c(0, 0.25))

> cvBwSel

[1] 0.1962416

> thBwSel <- thumbBw(d$x, d$y, deg, kernel)

> thBwSel

[1] 0.1993822

> piBwSel <- pluginBw(d$x, d$y, deg, kernel)

> piBwSel

[1] 0.1268736

> est <- function(bw, dat, x) return(locPolSmootherC(dat$x,dat$y, x,

+ bw, deg, kernel)$beta0)

> ise <- function(val, est) return(sum((val - est)^2 * xeval[[2]]))

Page 55: Regresión no paramétrica en R

52 CAPITULO 2. SOFTWARE DISPONIBLE EN R

> plot(d$x, d$y)

> trueVal <- regFun(xeval)

> trueVal

[1] 0.000000 0.000001 0.000008 0.000027 0.000064 0.000125 0.000216 0.000343

[9] 0.000512 0.000729 0.001000 0.001331 0.001728 0.002197 0.002744 0.003375

[17] 0.004096 0.004913 0.005832 0.006859 0.008000 0.009261 0.010648 0.012167

[25] 0.013824 0.015625 0.017576 0.019683 0.021952 0.024389 0.027000 0.029791

[33] 0.032768 0.035937 0.039304 0.042875 0.046656 0.050653 0.054872 0.059319

[41] 0.064000 0.068921 0.074088 0.079507 0.085184 0.091125 0.097336 0.103823

[49] 0.110592 0.117649 0.125000 0.132651 0.140608 0.148877 0.157464 0.166375

[57] 0.175616 0.185193 0.195112 0.205379 0.216000 0.226981 0.238328 0.250047

[65] 0.262144 0.274625 0.287496 0.300763 0.314432 0.328509 0.343000 0.357911

[73] 0.373248 0.389017 0.405224 0.421875 0.438976 0.456533 0.474552 0.493039

[81] 0.512000 0.531441 0.551368 0.571787 0.592704 0.614125 0.636056 0.658503

[89] 0.681472 0.704969 0.729000 0.753571 0.778688 0.804357 0.830584 0.857375

[97] 0.884736 0.912673 0.941192 0.970299 1.000000

> lines(xeval, trueVal, col = "red")

> xevalRes <- est(cvBwSel, d, xeval)

> cvIse <- ise(trueVal, xevalRes)

> lines(xeval, xevalRes, col = "blue")

> xevalRes <- est(thBwSel, d, xeval)

> thIse <- ise(trueVal, xevalRes)

> xevalRes <- est(piBwSel, d, xeval)

> piIse <- ise(trueVal, xevalRes)

> lines(xeval, xevalRes, col = "blue", lty = "dashed")

> res <- rbind( bw = c(cvBwSel, thBwSel, piBwSel),

+ ise = c(cvIse, thIse, piIse) )

> colnames(res) <- c("CV", "th", "PI")

> res

CV th PI

bw 0.196241577 0.199382210 0.126873646

ise 0.001127976 0.001100554 0.002027269

Page 56: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 53

0.0 0.2 0.4 0.6 0.8 1.0

−0.

50.

00.

51.

0

d$x

d$y

Figura 2.20: Locpol de pluginBw1

0.0 0.2 0.4 0.6 0.8 1.0

−0.

50.

00.

51.

0

d$x

d$y

Figura 2.21: Locpol de pluginBw2

Page 57: Regresión no paramétrica en R

54 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Funcion PRDenEstC

Descripcion: estimador Parsen-Rosenblat de densidad univariante.

Funcion:

PRDenEstC(x, xeval, bw, kernel, weig = rep(1, length(x)))

Valor devuelto por la funcion: esta funcion devuelve una hoja de datos dela forma: (x, den).

Ejemplo de uso:

> N <- 100

> x <- runif(N)

> xeval <- 0:10/10

> b0.125 <- PRDenEstC(x, xeval, 0.125, EpaK)

> b0.125

x den

1 0.0 0.3762050

2 0.1 0.8861180

3 0.2 0.9478700

4 0.3 0.9940558

5 0.4 1.2625850

6 0.5 1.2979144

7 0.6 1.1465889

8 0.7 1.2102660

9 0.8 0.8060191

10 0.9 0.7589499

11 1.0 0.3192066

> b0.05 <- PRDenEstC(x, xeval, 0.05, EpaK)

> b0.05

x den

1 0.0 0.4603164

2 0.1 1.0064206

3 0.2 0.5727967

4 0.3 1.1694444

Page 58: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 55

5 0.4 1.0153751

6 0.5 1.4813057

7 0.6 0.9270388

8 0.7 1.4077981

9 0.8 0.5424289

10 0.9 1.1261434

11 1.0 0.2701843

> cbind(x = xeval, fx = 1, b0.125 = b0.125$den, b0.05 = b0.05$den)

x fx b0.125 b0.05

[1,] 0.0 1 0.3762050 0.4603164

[2,] 0.1 1 0.8861180 1.0064206

[3,] 0.2 1 0.9478700 0.5727967

[4,] 0.3 1 0.9940558 1.1694444

[5,] 0.4 1 1.2625850 1.0153751

[6,] 0.5 1 1.2979144 1.4813057

[7,] 0.6 1 1.1465889 0.9270388

[8,] 0.7 1 1.2102660 1.4077981

[9,] 0.8 1 0.8060191 0.5424289

[10,] 0.9 1 0.7589499 1.1261434

[11,] 1.0 1 0.3192066 0.2701843

Funcion regCVBwSelC

Descripcion: implementa el metodo por validacion cruzada para la selecciondel ancho de banda del estimador de regresion polinomial local.

Funcion:

regCVBwSelC(x, y, deg, kernel=gaussK,weig=rep(1,length(y)),

interval=.lokestOptInt)

Valor devuelto por la funcion: esta funcion devuelve un valor numerico, elancho de banda seleccionado.

Ejemplo de uso:

> size <- 200

> sigma <- 0.25

Page 59: Regresión no paramétrica en R

56 CAPITULO 2. SOFTWARE DISPONIBLE EN R

> deg <- 1

> kernel <- EpaK

> xeval <- 0:100/100

> regFun <- function(x) x^3

> x <- runif(size)

> y <- regFun(x) + rnorm(x, sd = sigma)

> d <- data.frame(x, y)

> cvBwSel <- regCVBwSelC(d$x,d$y, deg, kernel, interval = c(0, 0.25))

> cvBwSel

[1] 0.1962416

> thBwSel <- thumbBw(d$x, d$y, deg, kernel)

> thBwSel

[1] 0.1993822

> piBwSel <- pluginBw(d$x, d$y, deg, kernel)

> piBwSel

[1] 0.1268736

> est <- function(bw, dat, x) return(locPolSmootherC(dat$x,dat$y, x,

+ bw, deg, kernel)$beta0)

> ise <- function(val, est) return(sum((val - est)^2 * xeval[[2]]))

> plot(d$x, d$y)

> trueVal <- regFun(xeval)

> trueVal

[1] 0.000000 0.000001 0.000008 0.000027 0.000064 0.000125 0.000216 0.000343

[9] 0.000512 0.000729 0.001000 0.001331 0.001728 0.002197 0.002744 0.003375

[17] 0.004096 0.004913 0.005832 0.006859 0.008000 0.009261 0.010648 0.012167

[25] 0.013824 0.015625 0.017576 0.019683 0.021952 0.024389 0.027000 0.029791

[33] 0.032768 0.035937 0.039304 0.042875 0.046656 0.050653 0.054872 0.059319

[41] 0.064000 0.068921 0.074088 0.079507 0.085184 0.091125 0.097336 0.103823

[49] 0.110592 0.117649 0.125000 0.132651 0.140608 0.148877 0.157464 0.166375

[57] 0.175616 0.185193 0.195112 0.205379 0.216000 0.226981 0.238328 0.250047

[65] 0.262144 0.274625 0.287496 0.300763 0.314432 0.328509 0.343000 0.357911

[73] 0.373248 0.389017 0.405224 0.421875 0.438976 0.456533 0.474552 0.493039

[81] 0.512000 0.531441 0.551368 0.571787 0.592704 0.614125 0.636056 0.658503

[89] 0.681472 0.704969 0.729000 0.753571 0.778688 0.804357 0.830584 0.857375

Page 60: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 57

[97] 0.884736 0.912673 0.941192 0.970299 1.000000

> lines(xeval, trueVal, col = "red")

> xevalRes <- est(cvBwSel, d, xeval)

> cvIse <- ise(trueVal, xevalRes)

> lines(xeval, xevalRes, col = "blue")

> xevalRes <- est(thBwSel, d, xeval)

> thIse <- ise(trueVal, xevalRes)

> xevalRes <- est(piBwSel, d, xeval)

> piIse <- ise(trueVal, xevalRes)

> lines(xeval, xevalRes, col = "blue", lty = "dashed")

> res <- rbind( bw = c(cvBwSel, thBwSel, piBwSel),

+ ise = c(cvIse, thIse, piIse) )

> colnames(res) <- c("CV", "th", "PI")

> res

CV th PI

bw 0.196241577 0.199382210 0.126873646

ise 0.001127976 0.001100554 0.002027269

0.0 0.2 0.4 0.6 0.8 1.0

−0.

50.

00.

51.

0

d$x

d$y

Figura 2.22: Locpol de regCVBwSelC

Page 61: Regresión no paramétrica en R

58 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Funcion selKernel

Descripcion: utilizacion de los atributos del nucleo para seleccionar nucleos.Esta funcion se utiliza principalmente para fines internos.

Funcion:

selKernel(kernel)

Valor devuelto por la funcion: esta funcion devuelve un entero que es unicopara cada nucleo.

Funcion simpleSmoothers

Descripcion: calcula un suavizador elemental de las respuestas, definido comoel promedio ponderado por el nucleo de las respuestas observadas. La version simp-

leSqSmootherC es igual solo que promediando las respuestas al cuadrado.

Funcion:

simpleSmootherC(x, y, xeval, bw, kernel, weig = rep(1, length(y)))

simpleSqSmootherC(x, y, xeval, bw, kernel)

Valor devuelto por las funciones: ambas funciones devuelven una hoja dedatos con:

x: puntos de evaluacion de x.

reg: valores de suavizado en los puntos de x.

Ejemplo de uso:

> size <- 1000

> x <- runif(100)

> bw <- 0.125

> kernel <- EpaK

Page 62: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 59

> xeval <- 1:9/10

> y <- rep(1,100)

> ## x kern. aver. should give density f(x)

> prDen <- PRDenEstC(x,xeval,bw,kernel)$den

> prDen

[1] 1.0888622 0.8859709 0.8785186 1.0515013 0.9550039 1.3555096 1.1455056

[8] 0.5906089 0.7851241

> ssDen <- simpleSmootherC(x,y,xeval,bw,kernel)$reg

> ssDen

[1] 1.0888622 0.8859709 0.8785186 1.0515013 0.9550039 1.3555096 1.1455056

[8] 0.5906089 0.7851241

> all(abs(prDen-ssDen)<1e-15)

[1] TRUE

> ## x kern. aver. should be f(x)*R2(K) aprox.

> s2Den <- simpleSqSmootherC(x,y,xeval,bw,kernel)$reg

> s2Den

[1] 0.6397285 0.5396532 0.5139364 0.6437790 0.5363702 0.8570298 0.6951637

[8] 0.3604343 0.4755898

> summary( abs(prDen*RK(kernel)-s2Den) )

Min. 1st Qu. Median Mean 3rd Qu. Max.

0.004515 0.007860 0.012880 0.016280 0.013590 0.043720

> summary( abs(1*RK(kernel)-s2Den) )

Min. 1st Qu. Median Mean 3rd Qu. Max.

0.03973 0.06035 0.08606 0.11220 0.12440 0.25700

> ## x kern. aver. should be f(x)*R2(K) aprox.

> for(n in c(1000,1e4,1e5))

+ {

+ s2D <- simpleSqSmootherC(runif(n),rep(1,n),xeval,bw,kernel)$reg

+ cat("\n",n,"\n")

Page 63: Regresión no paramétrica en R

60 CAPITULO 2. SOFTWARE DISPONIBLE EN R

+ print( summary( abs(1*RK(kernel)-s2D) ) )

+ }

1000

Min. 1st Qu. Median Mean 3rd Qu. Max.

0.0009869 0.0150400 0.0264600 0.0371300 0.0441600 0.1071000

10000

Min. 1st Qu. Median Mean 3rd Qu. Max.

0.001878 0.007167 0.010570 0.013100 0.021160 0.024560

1e+05

Min. 1st Qu. Median Mean 3rd Qu. Max.

0.0008332 0.0015290 0.0049780 0.0051580 0.0092530 0.0117500

Funcion thumbBw

Descripcion: implementa la regla del pulgar descrita en el texto de Fan y Gijbels(1996) para la seleccion del ancho de banda en regresion polinomial local.

Funcion:

thumbBw(x, y, deg, kernel, weig = rep(1, length(y)))

compDerEst(x, y, p, weig = rep(1, length(y)))

Valor devuelto por las funciones: la funcion thumbBw devuelve un unicovalor numerico, mientras que compDerEst devuelve una hoja de datos cuyos com-ponentes son los siguientes:

x: valores de x.

y: valores de y.

res: residuos de la estimacion parametrica.

Page 64: Regresión no paramétrica en R

2.3. LIBRO LOCPOL 61

der: derivada estimada de los valores de x.

Ejemplo de uso:

> size <- 200

> sigma <- 0.25

> deg <- 1

> kernel <- EpaK

> xeval <- 0:100/100

> regFun <- function(x) x^3

> x <- runif(size)

> y <- regFun(x) + rnorm(x, sd = sigma)

> d <- data.frame(x, y)

> cvBwSel <- regCVBwSelC(d$x,d$y, deg, kernel, interval = c(0, 0.25))

> cvBwSel

[1] 0.1962416

> thBwSel <- thumbBw(d$x, d$y, deg, kernel)

> thBwSel

[1] 0.1993822

> piBwSel <- pluginBw(d$x, d$y, deg, kernel)

> piBwSel

[1] 0.1268736

> est <- function(bw, dat, x) return(locPolSmootherC(dat$x,dat$y, x,

+ bw, deg, kernel)$beta0)

> ise <- function(val, est) return(sum((val - est)^2 * xeval[[2]]))

> plot(d$x, d$y)

> trueVal <- regFun(xeval)

> trueVal

[1] 0.000000 0.000001 0.000008 0.000027 0.000064 0.000125 0.000216 0.000343

[9] 0.000512 0.000729 0.001000 0.001331 0.001728 0.002197 0.002744 0.003375

[17] 0.004096 0.004913 0.005832 0.006859 0.008000 0.009261 0.010648 0.012167

[25] 0.013824 0.015625 0.017576 0.019683 0.021952 0.024389 0.027000 0.029791

[33] 0.032768 0.035937 0.039304 0.042875 0.046656 0.050653 0.054872 0.059319

[41] 0.064000 0.068921 0.074088 0.079507 0.085184 0.091125 0.097336 0.103823

Page 65: Regresión no paramétrica en R

62 CAPITULO 2. SOFTWARE DISPONIBLE EN R

[49] 0.110592 0.117649 0.125000 0.132651 0.140608 0.148877 0.157464 0.166375

[57] 0.175616 0.185193 0.195112 0.205379 0.216000 0.226981 0.238328 0.250047

[65] 0.262144 0.274625 0.287496 0.300763 0.314432 0.328509 0.343000 0.357911

[73] 0.373248 0.389017 0.405224 0.421875 0.438976 0.456533 0.474552 0.493039

[81] 0.512000 0.531441 0.551368 0.571787 0.592704 0.614125 0.636056 0.658503

[89] 0.681472 0.704969 0.729000 0.753571 0.778688 0.804357 0.830584 0.857375

[97] 0.884736 0.912673 0.941192 0.970299 1.000000

> lines(xeval, trueVal, col = "red")

> xevalRes <- est(cvBwSel, d, xeval)

> cvIse <- ise(trueVal, xevalRes)

> lines(xeval, xevalRes, col = "blue")

> xevalRes <- est(thBwSel, d, xeval)

> thIse <- ise(trueVal, xevalRes)

> xevalRes <- est(piBwSel, d, xeval)

> piIse <- ise(trueVal, xevalRes)

> lines(xeval, xevalRes, col = "blue", lty = "dashed")

> res <- rbind( bw = c(cvBwSel, thBwSel, piBwSel),

+ ise = c(cvIse, thIse, piIse) )

> colnames(res) <- c("CV", "th", "PI")

> res

CV th PI

bw 0.196241577 0.199382210 0.126873646

ise 0.001127976 0.001100554 0.002027269

0.0 0.2 0.4 0.6 0.8 1.0

−0.

50.

00.

51.

0

d$x

d$y

Figura 2.23: Locpol de thumbBw

Page 66: Regresión no paramétrica en R

2.4. LIBRO LOCFIT 63

2.4. Libro Locfit

En este libro llamado Locfit se implementan funciones asociadas al calculo dela regresion polinomial local, la verosimilitud y la densidad estimada. Los metodosimplementados se pueden consultar en los textos de Cook y Weisberg (1994), Loader(1999). Dicho libro corresponde a la actualizacion del 17-04-2009, version 1.5-4.

El libro contiene muchas funciones, en este trabajo nos centramos tan solo enaquellas asociadas al estimador de la densidad y de regresion de tipo polinomial local.Ası como aquellas que permiten la seleccion del parametro de suavizado asociado.

Funciones que calculan la densidad estimada

Funcion density.lf : proporciona un interfaz para el calculo de la funcion dedensidad.

Uso de la funcion:

density.lf(x, n = 50, window = "gaussian", width, from, to,

cut = if(iwindow == 4.) 0.75 else 0.5,

ev = lfgrid(mg = n, ll = from, ur = to),

deg = 0, family = "density", link = "ident", ...)

donde:

• window: es el tipo de ventana que se utiliza para la estimacion.

• from: es el lımite inferior para el dominio de estimacion.

• to: es el lımite superior para el dominio de estimacion.

• cut: es la expansion de los controles por defecto del dominio.

Valor devuelto por la funcion: esta funcion devuelve una lista con loscomponentes de x (puntos de evaluacion) e y (densidad estimada).

Ejemplo de uso:

> data(geyser)

> density.lf(geyser, window="tria")

Page 67: Regresión no paramétrica en R

64 CAPITULO 2. SOFTWARE DISPONIBLE EN R

$x

[1] 1.564723 1.635550 1.706378 1.777206 1.848033 1.918861 1.989689

[8] 2.060516 2.131344 2.202172 2.272999 2.343827 2.414654 2.485482

[15] 2.556310 2.627137 2.697965 2.768793 2.839620 2.910448 2.981276

[22] 3.052103 3.122931 3.193759 3.264586 3.335414 3.406241 3.477069

[29] 3.547897 3.618724 3.689552 3.760380 3.831207 3.902035 3.972863

[36] 4.043690 4.114518 4.185346 4.256173 4.327001 4.397828 4.468656

[43] 4.539484 4.610311 4.681139 4.751967 4.822794 4.893622 4.964450

[50] 5.035277

$y

[1] 1.182697e-16 1.890007e-01 4.623314e-01 7.174016e-01 8.081279e-01

[6] 5.571365e-01 3.739426e-01 1.256785e-01 3.316671e-03 8.002072e-02

[11] 1.963319e-01 1.132892e-01 3.419681e-02 7.653125e-02 4.129095e-02

[16] 1.046841e-02 7.019261e-02 4.762960e-02 2.512419e-02 1.445726e-01

[21] 9.107183e-02 4.838509e-02 9.322311e-02 9.322311e-02 6.792613e-02

[26] 1.022381e-01 1.911011e-01 3.630067e-01 3.338104e-01 2.442562e-01

[31] 5.441002e-01 5.917874e-01 3.663234e-01 3.868570e-01 6.537848e-01

[36] 8.292375e-01 6.788447e-01 4.238963e-01 4.480279e-01 4.545461e-01

[41] 4.034270e-01 3.677768e-01 5.616119e-01 7.364176e-01 3.963838e-01

[46] 1.409679e-01 9.322311e-02 9.322311e-02 5.972420e-02 5.913483e-17

> density(geyser, window="tria")

Call:

density.default(x = geyser, window = "tria")

Data: geyser (107 obs.); Bandwidth ’bw’ = 0.3677

x y

Min. :0.5668 Min. :0.0000

1st Qu.:1.9334 1st Qu.:0.0605

Median :3.3000 Median :0.1560

Mean :3.3000 Mean :0.1828

3rd Qu.:4.6666 3rd Qu.:0.2568

Max. :6.0332 Max. :0.4834

Funcion gam.lf : es una llamada a la funcion locfit por lf() utilizada en losterminos del modelo aditivo. Normalmente no es llamada directamente por losusuarios.

Uso de la funcion:

gam.lf(x, y, w, xeval, ...)

Page 68: Regresión no paramétrica en R

2.4. LIBRO LOCFIT 65

donde:

• w: son los pesos a priori.

Funcion locfit: formula base del libro para el ajuste de la regresion local ypara los modelos de verosimilitud.

Uso de la funcion:

locfit(formula, data=sys.frame(sys.parent()), weights=1, cens=0, base=0,

subset, geth=FALSE, ..., lfproc=locfit.raw)

donde:

• formula: es la formula del modelo; por ejmplo, y~lp(x) para un modelo deregresion; ~lp(x) para un modelo de densidad estimada. Es recomend-able, usar para lp() los RHS, especialmente cuando por defecto no seutilizan los parametros de suavizacion.

• subset: son las observaciones de subconjuntos en la hoja de datos.

• geth: no utilizar; siempre se pone geth = FALSE.

• lfproc: es una de las funciones de procesamiento para calcular el ajustelocal. El valor predeterminado es locfit.raw(). Otras opciones incluyenlocfit.robust(), locfit.censor() y locfit.quasi().

Valor devuelto por la funcion: esta funcion devuelve un objeto con claselocfit y un conjunto estandar de metodos para impresion, graficos, etc.

Ejemplo de uso:

> # fit and plot a univariate local regression

> data(ethanol, package="locfit")

> fit <- locfit(NOx ~ E, data=ethanol)

> plot(fit, get.data=TRUE)

> # a bivariate local regression with smaller smoothing parameter

> fit <- locfit(NOx~lp(E,C,nn=0.5,scale=0), data=ethanol)

> plot(fit)

Page 69: Regresión no paramétrica en R

66 CAPITULO 2. SOFTWARE DISPONIBLE EN R

> # density estimation

> data(geyser, data="locfit")

> fit <- locfit( ~ lp(geyser, nn=0.1, h=0.8))

> plot(fit,get.data=TRUE)

0.6 0.7 0.8 0.9 1.0 1.1 1.2

01

23

4

E

NO

x

o

o

o

o

o

o

o

o

o

o

o

ooo

o

ooo

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

oo

oo

o

o

o

o

o

o

o

o

oo

o

o

o

o

o

o

o

o

o

o

oo

o

o

oooo

oo

o

Figura 2.24: Locfit de locfit1

0

0.5

0.5

0.5

1

1

1.5

1.5

2

2

2.5

2.5

3

3

3.5

0.6 0.7 0.8 0.9 1.0 1.1 1.2

810

1214

1618

Figura 2.25: Locfit de locfit2

2.0 2.5 3.0 3.5 4.0 4.5 5.0

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

geyser

dens

ity

Figura 2.26: Locfit de locfit3

Page 70: Regresión no paramétrica en R

2.4. LIBRO LOCFIT 67

Funciones que calculan el parametro de suavizado

Funcion sjpi: calcula un ancho de banda a traves del metodo plug-in propuestopor Sheather y Jones (1991) para la estimacion de una densidad.

Uso de la funcion:

sjpi(x, a)

donde:

• a: es un vector de anchos de banda piloto.

Valor devuelto por la funcion: esta funcion devuelve una matriz con cuatrocolumnas; el numero de filas es igual a la longitud de a. La primera columnaes el plug-in de ancho de banda seleccionado. La segunda columna es el anchode banda piloto a. La tercera columna es el ancho de banda piloto de acuerdocon la supuesta relacion de Sheather-Jones. La cuarta columna es un calculointermedio.

Ejemplo de uso:

> data(geyser)

> gf <- 2.5

> a <- seq(0.05, 0.7, length=100)

> z <- sjpi(geyser, a)

> # the plug-in curve. Multiplying by gf=2.5 corresponds

> # to Locfit’s standard scaling for the Gaussian kernel.

> plot(gf*z[, 2], gf*z[, 1], type = "l", xlab = "Pilot Bandwidth k",

+ ylab = "Bandwidth h")

> # Add the assumed curve.

> lines(gf * z[, 3], gf * z[, 1], lty = 2)

> legend(gf*0.05, gf*0.4, lty = 1:2,

+ legend = c("Plug-in", "SJ assumed"))

Page 71: Regresión no paramétrica en R

68 CAPITULO 2. SOFTWARE DISPONIBLE EN R

0.5 1.0 1.5

0.2

0.4

0.6

0.8

1.0

Pilot Bandwidth k

Ban

dwid

th h

Plug−inSJ assumed

Figura 2.27: Locfit de sjpi

2.5. Libro sm

En este libro incluye metodos de regresion no parametrica y estimacion nucleode la densidad descritos en el texto de Bowman y Azzalini (1997). Dicho libro cor-responde a la actualizacion del 19-04-2009, version es del 2.2-3.

El libro contiene multiples funciones que no seran descritas aqui. De hecho noscentramos tan solo en aquellas asociadas al estimador de la densidad y de regresionde tipo polinomial local, en concreto aquellas que permiten la seleccion del parametrode suavizado asociado.

Estimacion nucleo de la funcion de densidad

La funcion sm.density calcula la estimacion de la densidad de los datos enuna, dos o tres dimensiones. En dos dimensiones, una variedad de representacionesgraficas pueden ser seleccionadas, y en tres dimensiones, puede representarse unasuperficie de contorno.

uso de la funcion:

sm.density(x, h, model = "none", weights = NA, group=NA, ...)

Valor devuelto por la funcion: esta funcion devuelve una lista que contiene los

Page 72: Regresión no paramétrica en R

2.5. LIBRO SM 69

valores de la estimacion de la densidad en los puntos de evaluacion, el parametro desuavizacion, los pesos del parametro de suavizacion y los pesos del nucleo. Tambien,para los datos de uno o dos dimensiones, se proporciona el error estandar de laestimacion y los extremos sueprior e inferior de una banda de la variabilidad.

Ejemplo de uso:

> # A one-dimensional example

> y <- rnorm(50)

> sm.density(y, model = "Normal")

> # sm.density(y, panel = TRUE)

> # A two-dimensional example

> y <- cbind(rnorm(50), rnorm(50))

> sm.density(y, display = "image")

> # A three-dimensional example

> y <- cbind(rnorm(50), rnorm(50), rnorm(50))

> sm.density(y)

−2 0 2 4

0.0

0.1

0.2

0.3

0.4

0.5

y

Pro

babi

lity

dens

ity fu

nctio

n

Figura 2.28: sm de sm-density1

−1 0 1 2

−2

−1

01

23

y[1]

y[2]

Figura 2.29: sm de sm-density2

Page 73: Regresión no paramétrica en R

70 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Figura 2.30: sm de sm-density3

Calculo del parametro de suavizado

La funcion h.select selecciona un parametro de suavizacion para la densidadestimada en una o dos dimensiones y para la regresion no parametrica con unao dos covariables.

Uso de la funcion:

h.select(x, y = NA, weights = NA, group = NA, ...)

Valor devuelto por la funcion: esta funcion devuelve el valor del parametrode suavizacion seleccionado.

Ejemplo de uso:

> x <- rnorm(50)

> h.select(x)

[1] 0.4766912

> h.select(x, method = "sj")

[1] 0.4164856

Page 74: Regresión no paramétrica en R

2.5. LIBRO SM 71

> x <- matrix(rnorm(100), ncol = 2)

> h.select(x)

[1] 0.5315978 0.4961265

> sm.density(x, method = "cv")

> x <- rnorm(50)

> y <- x^2 + rnorm(50)

> h.select(x, y)

[1] 0.3869072

> sm.regression(x, y, method = "aicc")

> x <- matrix(rnorm(100), ncol = 2)

> y <- x[,1]^2 + x[,2]^2 + rnorm(50)

> h.select(x, y, method = "cv", structure.2d = "common")

[1] 0.4695942 0.4695942

> sm.regression(x, y, df = 8)

x[1]

−2−1

01

2x[2]

−1

0

1

2

Density function

0.00

0.05

0.10

Figura 2.31: sm de sm1

Page 75: Regresión no paramétrica en R

72 CAPITULO 2. SOFTWARE DISPONIBLE EN R

−1 0 1 2

−1

01

23

45

x

y

Figura 2.32: sm de sm2

x[1]−1

01

2

x[2]

−1

0

1

2

y

2

4

6

Figura 2.33: sm de sm3

Page 76: Regresión no paramétrica en R

2.5. LIBRO SM 73

La funcion hcv utiliza la tecnica de validacion cruzada para seleccionar unparametro de suavizacion adecuado para la construccion de la densidad esti-mada o la curva de regresion no parametrica en una o dos dimensiones.

Uso de la funcion:

hcv(x, y = NA, hstart = NA, hend = NA, ...)

donde:

• hstart: es el valor mas pequeno de los puntos de la red para ser utilizado enuna busqueda en la red inicial para el valor del parametro de suavizacion.

• hend: es el mayor valor de los puntos de la red para ser utilizado en unabusqueda en la red inicial para el valor del parametro de suavizacion.

Valor devuelto por la funcion: esta funcion devuelve el valor del parametrode suavizacion que minimiza el criterio de validacion cruzada en la cuadrıculaseleccionada.

Ejemplo de uso:

> # Density estimation

> x <- rnorm(50)

> par(mfrow=c(1,2))

> h.cv <- hcv(x, display="lines", ngrid=32)

> sm.density(x, h=hcv(x))

> # Nonparametric regression

> x <- seq(0, 1, length = 50)

> y <- rnorm(50, sin(2 * pi * x), 0.2)

> par(mfrow=c(1,2))

> h.cv <- hcv(x, y, display="lines", ngrid=32)

> sm.regression(x, y, h=hcv(x, y))

Page 77: Regresión no paramétrica en R

74C

APIT

ULO

2.

SO

FTW

AR

ED

ISPO

NIB

LE

EN

R

0.20.4

0.60.8

−0.36 −0.34 −0.32 −0.30 −0.28 −0.26 −0.24

h

CV

−3

−1

12

3

0.0 0.2 0.4 0.6

x

Probability density function

Figu

ra2.34:

smde

sm4

0.050.15

0.25

2 4 6 8 10

h

CV

0.00.4

0.8

−1.0 −0.5 0.0 0.5 1.0

x

y

Figu

ra2.35:

smde

sm5

Page 78: Regresión no paramétrica en R

2.5. LIBRO SM 75

La funcion hnorm evalua el parametro de suavizacion, asintoticamente optimo,para estimar una funcion de densidad cuando la distribucion subyacente esnormal.

Uso de la funcion:

hnorm(x, weights)

Valor devuelto por la funcion: esta funcion devuelve el valor del parametrode suavizacion asintoticamente optimo para el caso normal.

Ejemplo de uso:

> x <- rnorm(50)

> hnorm(x)

[1] 0.4273578

La funcion hsj utiliza el metodo plug-in de Sheather-Jones para la seleccionde un parametro de suavizacion, que es adecuado para la construccion de ladensidad estimada unidimensional.

Uso de la funcion:

hsj(x)

Valor devuelto por la funcion: esta funcion devuelve el valor del parametrode suavizacion encontrado por el metodo de Sheather-Jones.

Ejemplo de uso:

> x <- rnorm(50)

> hsj(x)

[1] 0.3350144

Page 79: Regresión no paramétrica en R

76 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Estimacion de la funcion de regresion

Funcion sm.discontinuity: utiliza una comparacion de izquierda a derechade las curvas de regresion no parametricas para evaluar la evidencia de lapresencia de una o mas discontinuidades en una curva de regresion o en lasuperficie.

Uso de la funcion:

sm.discontinuity(x, y, h, hd, ...)

donde:

• hd: es un parametro de suavizado que se utiliza para suavizar las difer-encias del lado izquierdo y derecho de las estimaciones de la regresion noparametrica.

Valor devuelto por la funcion: esta funcion devuelve una lista que contienelos siguientes elementos:

• p: es el p-valor para la prueba de la hipotesis nula de que no se presentandiscontinuidades.

• sigma: es la desviacion estandar estimada de los errores.

• eval.points: son los puntos de evaluacion de las estimaciones de la re-gresion no parametrica.

• st.diff: es un vector o matriz de las diferencias estandarizadas entre ellado izquierdo y derecho de los estimadores en los puntos de evaluacion.

• diffmat: cuando x es un vector, este contiene la ubicacion y las diferenciasestandarizadas, donde este ultimo es mayor que 2,5.

• angle: cuando x es una matriz, este contiene los angulos estimados en lasdiferencias estandarizadas que fueron construidas.

• h: es el parametro de suavizacion principal.

• hd: es el parametro de suavizacion utilizado para la doble suavizacion.

Page 80: Regresión no paramétrica en R

2.5. LIBRO SM 77

Ejemplo de uso:

> par(mfrow = c(3, 2))

> provide.data(nile)

> sm.discontinuity(Year, Volume, hd = 0)

Test of continuity: significance = 0.006

location st.diff

1888.5 -2.85

1889.5 -3.65

1890.5 -3.12

1891.5 -2.82

1896.5 3.78

1897.5 4

1898.5 4.77

1899.5 3.35

1915.5 -3.02

1938.5 2.58

> sm.discontinuity(Year, Volume)

Test of continuity: significance = 0.009

location st.diff

1887.5 -2.9

1888.5 -3.28

1889.5 -3.34

1890.5 -3.03

1896.5 3.47

1897.5 4.2

1898.5 4.54

1899.5 4.48

1900.5 4.06

1901.5 3.37

1902.5 2.51

> ind <- (Year > 1898)

> plot(Year, Volume)

> h <- h.select(Year, Volume)

> sm.regression(Year[ ind], Volume[ ind], h, add = TRUE)

Page 81: Regresión no paramétrica en R

78 CAPITULO 2. SOFTWARE DISPONIBLE EN R

> hvec <- 1:15

> p <- numeric(0)

> for (h in hvec) {

+ result <- sm.discontinuity(Year, Volume, h,

+ display = "none", verbose = 0)

+ p <- c(p, result$p)

+ }

> plot(hvec, p, type = "l", ylim = c(0, max(p)), xlab = "h")

> lines(range(hvec), c(0.05, 0.05), lty = 2)

> provide.data(trawl)

> Position <- cbind(Longitude, Latitude)

> ind <- (Longitude < 143.8)

> sm.regression(Position[ind,], Score1[ind], theta = 35, phi = 30)

> sm.discontinuity(Position[ind,], Score1[ind], col = "blue")

Test of continuity: significance = 0.016

> # The following example takes longer to run.

> # Alternative values for nside are 32 and 64.

> # Alternative values of yjump are 1 and 0.5.

> par(mfrow = c(1, 1))

> nside <- 16

> yjump <- 2

> x1 <- seq(0, 1, length = nside)

> x2 <- seq(0, 1, length = nside)

> x <- expand.grid(x1, x2)

> x <- cbind(x1 = x[, 1], x2 = x[, 2])

> y <- rnorm(nside * nside)

> ind <- (sqrt((x[, 1] - 0.5)^2 + (x[, 2] - 0.5)^2) <= 0.25)

> y[ind] <- y[ind] + yjump

> image(x1, x2, matrix(y, ncol = nside))

> sm.discontinuity(x, y, df = 20, add = TRUE)

Test of continuity: significance = 0.005

Page 82: Regresión no paramétrica en R

2.5. LIBRO SM 79

1880 1900 1920 1940 1960

600

1000

Year

Vol

ume

1880 1900 1920 1940 1960

600

1000

Year

Vol

ume

1880 1900 1920 1940 1960

600

1000

Year

Vol

ume

2 4 6 8 10 12 14

0.00

0.15

0.30

hp

Longitude143.0143.2143.4143.6 La

titude

−11.8−11.6−11.4−11.2

Score1[ind]0.0

0.51.01.5

143.0 143.2 143.4 143.6 143.8

−11

.8−

11.4

Longitude

Latit

ude 2.5

3

Figura 2.36: sm de sm-discontinuity1

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

x1

x2

2.5

3

3.5

4

4.5

Figura 2.37: sm de sm-discontinuity2

Page 83: Regresión no paramétrica en R

80 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Funcion sm.monotonicity utiliza la idea de un .ancho de banda crıtico”paraevaluar la evidencia de que una curva de regresion es no monotona.

Uso de la funcion:

sm.monotonicity(x, y, N = rep(1, length(y)), h,

type = "continuous", ...)

Valor devuelto por la funcion: esta funcion devuelve una lista que contienelos siguientes elementos:

• p: es el p-valor para la prueba de la hipotesis nula que la curva de verdades monotona.

• hcrit: es el parametro de suavizacion crıtico. Este es el valor mas pequenoque cuando se aplica a los datos observados, hace la curva monotona.

• h: es el parametro de suavizacion utilizado para la doble suavizacion.

Ejemplo de uso:

> # Radiocarbon dating data

> provide.data(radioc)

Data file being loaded

> ind <- (Cal.age>5000 & Cal.age<6000)

> cal.age <- Cal.age[ind]

> rc.age <- Rc.age[ind]

> sm.monotonicity(cal.age, rc.age, method = "aicc", nboot = 200)

The smallest h which produces an increasing curve is 56.436

Standard deviation of estimated errors is: 25.603

Smoothing parameter used for estimation of residuals is: 27.875

Test of monotonicity: p = 0.06

> # Hosmer & Lemeshow birth data

> provide.data(birth)

Data file being loaded

Page 84: Regresión no paramétrica en R

2.5. LIBRO SM 81

> sm.monotonicity(Lwt[Smoke == "N"], Low[Smoke == "N"],

+ type = "binomial")

The smallest h which produces a decreasing curve is 36.495

Test of monotonicity: p = 0.35

5000 5200 5400 5600 5800 6000

4600

4800

5000

5200

cal.age

rc.a

ge

Figura 2.38: sm de sm-monotonicity1

100 150 200

0.0

0.2

0.4

0.6

0.8

1.0

Lwt[Smoke == "N"]

Low

[Sm

oke

==

"N

"]

Figura 2.39: sm de sm-monotonicity2

Page 85: Regresión no paramétrica en R

82 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Funcion sm.regression crea una estimacion de la regresion no parametricade los datos, que constan de una sola variable respuesta y una o dos covari-ables. En dos dimensiones se produce una perspectiva, una imagen (image),un contorno (slice) o una parcela rgl de la superficie de regresion estimada.

Uso de la funcion:

sm.regression(x, y, h, design.mat = NA, model = "none",

weights = NA, group = NA, ...)

donde:

• design.mat: es la matriz de diseno utilizada para producir y, cuando estosse suponen que son los residuos de un modelo lineal.

Valor devuelto por la funcion: esta funcion devuelve una lista que con-tiene los valores de la estimacion de los puntos de evaluacion, el parametro desuavizacion y los pesos del parametro de suavizacion. Si se ha especificado unmodelo de referencia y la prueba se establece en TRUE, entonces se devuelveel p-valor de la prueba.

Cuando solo hay una covariable, tambien se devuelven los pesos asociadoscon las diferentes observaciones, una estimacion de la desviacion del errorestandar y el error estandar de la estimacion. Si se ha especificado un modelode referencia, el error estandar se refiere a la comparacion entre la estimaciony el modelo de referencia y la definicion de los valores del modelo de referenciaque seran devueltos tambien.

Ejemplo de uso:

> provide.data(trawl)

Data file being loaded

> Zone92 <- (Year == 0 & Zone == 1)

> Position <- cbind(Longitude - 143, Latitude)

> dimnames(Position)[[2]][1] <- "Longitude - 143"

> par(mfrow = c(2, 2))

> sm.regression(Longitude, Score1, method = "aicc", col = "red",

+ model = "linear")

Page 86: Regresión no paramétrica en R

2.5. LIBRO SM 83

Test of linear model: significance = 0

> sm.regression(Position[Zone92, ], Score1[Zone92],

+ display = "image", theta = 120)

> sm.regression(Position[Zone92, ], Score1[Zone92], df = 12,

+ col = "se", theta = 120)

> sm.regression(Position[Zone92, ], Score1[Zone92], df = 12,

+ col = "se", model = "linear", theta = 120)

Test of linear model: significance = 0.031

> par(mfrow = c(1, 1))

> sm.regression(Position[Zone92, 2:1], Score1[Zone92],

+ display = "rgl", df = 12)

> sm.regression(Position[Zone92, 2:1], Score1[Zone92],

+ display = "rgl", df = 12, alpha = c(0.9, 1), col = "se",

+ model = "linear")

Test of linear model: significance = 0.031

> sm.regression(Position[Zone92, 1], Score1[Zone92],

+ panel = TRUE)

> sm.regression(Position[Zone92, ], Score1[Zone92],

+ panel = TRUE)

> sm.regression(Position[Zone92, ], Score1[Zone92],

+ panel = TRUE, display = "rgl")

Page 87: Regresión no paramétrica en R

84 CAPITULO 2. SOFTWARE DISPONIBLE EN R

142.8 143.2 143.6

0.0

1.0

2.0

LongitudeS

core

1

0.0 0.2 0.4 0.6 0.8

−11

.8−

11.6

−11

.4

Longitude − 143

Latit

ude

Long

itude

− 1

430.00.2

0.40.6

0.8Latitude

−11.8−11.7−11.6−11.5−11.4−11.3

Score1[Z

one92]

0.00.51.01.5

Long

itude

− 1

430.00.2

0.40.6

0.8Latitude

−11.8−11.7−11.6−11.5−11.4−11.3

Score1[Z

one92]

0.00.51.01.5

Figura 2.40: sm de sm-regression1

Figura 2.41: sm de sm-regression2

Figura 2.42: sm de sm-regression3

Page 88: Regresión no paramétrica en R

2.5. LIBRO SM 85

0.0 0.2 0.4 0.6 0.8

0.0

0.5

1.0

1.5

2.0

Position[Zone92, 1]

Sco

re1[

Zon

e92]

df = 6 h = 0.0948

Figura 2.43: sm de sm-regression4

Longitude − 143

0.00.2

0.40.6

0.8

Latitude

−11.8

−11.7

−11.6

−11.5−11.4

−11.3

Score1[Z

one92]

0.0

0.5

1.0

1.5

df = 12 h = ( 0.167 , 0.0863 )

Figura 2.44: sm de sm-regression5

Figura 2.45: sm de sm-regression6

Page 89: Regresión no paramétrica en R

86 CAPITULO 2. SOFTWARE DISPONIBLE EN R

Page 90: Regresión no paramétrica en R

Capıtulo 3

Aplicacion practica

3.1. Estudio con datos reales

En el siguiente estudio vamos a considerar los datos que se encuentran en ellibro ”MASS”, en concreto el objeto de tipo hoja de datos geyser. Estos datoscorresponden a un estudio sobre las erupciones de los geiseres del Old Faithful en elParque Nacional de Yellowstone, Wyoming.

La version que aquı consideramos se describe en el libro de Azzalini y Bow-man (1990) y corresponde a la medicion continua desde el 1 de Agosto hasta el15 de Agosto de 1985. Ademas, algunas mediciones de la duracion nocturna fueroncodificadas como 2, 3 o 4 minutos, tras haber sido inicialmente descrito como corto,mediano o largo.

Geyser es una hoja de datos con 299 observaciones y dos variables, las cualesson: duration que es el tiempo del numero de erupciones (en minutos) y waiting quees el tiempo de espera para la proxima erupcion.

Con los datos de la hoja de datos geyser, procederemos a ilustrar los metodos deregresion no parametrica univariantes descritos en el capıtulo 1 de este trabajo. Sibien ilustraremos otros metodos notables (en este caso consideraremos un suaviza-miento por Spline segun Heckman y Ramsay 1996), como ya se indico en dichocapıtulo, nuestro interes se centrara fundamentalmente en el estimador polinomicolocal. Para ello utilizaremos las funciones disponibles en los libros KernSmooth ylocpol, que fueron ampliamente descritos en el capıtulo 2.

Para ajustar el estimador polinomico local de grado p utilizaremos la funcionlocpoly del libro KernSmooth. El uso de dicha funcion lo haremos considerando enprimer lugar una eleccion arbitraria del parametro de suavizado o ancho de banda.En este caso hemos considerado h = 0,25, no obstante tal y como ilustraremosdespues, es posible utilizar elecciones automaticas, mas refinadas, como los criteriode seleccion cross-validation y plug-in discutidos en el capıtulo 1.

En cuanto a la funcion nucleo considerada, la funcion locpoly por defecto usa

87

Page 91: Regresión no paramétrica en R

88 CAPITULO 3. APLICACION PRACTICA

nucleos normales (argumento kernel =”normal”), y en este ejemplo hemos dejadodicha eleccion por defecto. De este modo compararemos el resultado usando difer-entes grados para lo cual hemos generado el siguiente codigo:

> data(geyser, package = "MASS")

> names(geyser)

[1] "waiting" "duration"

> x <- geyser$duration

> y <- geyser$waiting

> plot(x, y)

> fit <- locpoly(x, y, bandwidth = 0.25,degree=1)

> lines(fit,col="red")

> fit <- locpoly(x, y, bandwidth = 0.25,degree=0)

> lines(fit,col="blue")

> fit <- locpoly(x, y, bandwidth = 0.25,degree=2)

> lines(fit,col="green")

> fit <- locpoly(x, y, bandwidth = 0.25,degree=3)

> lines(fit,col="orange")

> legend(1,60,legend=c("p=1", "p=0", "p=2", "p=3"),lty=1,

+ col=c("red", "blue", "green", "orange"))

Page 92: Regresión no paramétrica en R

3.1. ESTUDIO CON DATOS REALES 89

1 2 3 4 5

5060

7080

9010

011

0

x

y

p=1p=0p=2p=3

Figura 3.1: Estimador polinomico local de grado p para los datos del geyser. Lavariable x es duracion y la variable y es tiempo de espera y el tamano de la hoja dedatos es n = 299

Como se puede observar en la Figura 3.1 conforme vamos aumentando el gradodel estimador polinomico local, las estimaciones son mas irregulares, intentandocapturar en mayor medida las observaciones consideradas. Notese que como ya sediscutio en el capıtulo 1, esto supone estimaciones que pagan la disminucion en elsesgo con un incremento notable de la variabilidad. Tambien es notable ver comoel incremento de p = 1 hasta p = 2 no supone una mejora del modelo (ni en sesgoni en variabilidad), de hecho como tambien se discutio al inicio de este trabajo espreferible usar grados impares frente a los inmediatamente consecutivos pares (ver ellibro de Fan y Gijbels 1996 para una discusion mas detallada y algunos resultadosnumericos).

Finalmente podemos ver como las diferencias entre el estimador de Nadaraya-Watson que considera ajustes locales constantes (p = 0) presenta las mayores difer-encias en la proximidades a las fronteras, esto es debido a que los ajustes linealeslocales (p = 1) permiten una correccion automatica de los efectos frontera (paramas detalles se puede ver el libro de Wand y Jones 1994 o Fan y Gijbels 1996).

A continuacion vamos a ilustrar otro metodo de suavizamiento para dichos datos,en concreto un estimador de tipo spline. Existen funciones para dicho proposito envarios libros de R (SemiPar, ssplines, esplines, etc.), ademas de la funcion smooth.splinedentro del libro base stats. En este caso hemos considerado esta ultima funcion yla hemos comparado con el resultado ofrecido por la funcion sm.spline, que imple-menta el estimador descrito en Heckman y Ramsay (1996), y que esta contenida

Page 93: Regresión no paramétrica en R

90 CAPITULO 3. APLICACION PRACTICA

en el libro pspline. Dicho estimador se define con un parametro de suavizado quepor defecto considera un criterio basado en validacion cruzada o validacion cruzadageneralizada.

Nosotros dejamos las definiciones por defecto que considera dicha funcion. Aefectos comparativos tambien hemos incluido el estimador lineal local con anchode banda plug-in (mas detalles sobre dicho procedimiento se daran en el ejemplosiguiente, Figura 3.3). De este modo, el codigo generado para dicho ajuste y losresultados ofrecidos son los siguientes:

data(geyser, package="MASS")

x <- geyser$duration

y <- geyser$waiting

plot(x,y,title=’Suavizado por Splines para los datos del geyser’,

+ xlab=’Duracion’,ylab=’Tiempo de espera’)

geyser.spl <- sm.spline(x,y)

geyser.spl

lines(geyser.spl, lty=1,lwd=2, col = "green")

geyser.sts<-smooth.spline(x,y)

geyser.sts

lines(geyser.spl, lty=2,lwd=2, col = "blue")

h1 <- dpill(x, y)

fit1 <- locpoly(x,y,bandwidth = h1, degree=1)

lines(fit1,col="red",lty=3,lwd=2)

legend(’topright’,legend=c("sm.spline", "smooth.spline",

+ "locpoly (plug-in)"), lwd=2,lty=1:3,

+ col=c("green","blue","red"))

1 2 3 4 5

5060

7080

9010

011

0

Duración

Tie

mpo

de

espe

ra

sm.splinesmooth.splinelocpoly (plug−in)

Figura 3.2: Estimador de tipo spline.

Page 94: Regresión no paramétrica en R

3.1. ESTUDIO CON DATOS REALES 91

La Figura 3.2 muestra los ajustes realizados. Podemos observar que los resultadosgraficos de las funciones smooth.spline y sm.spline son identicos, si bien los algo-ritmos implementos difieren ligeramente y los resultados de los objetos generadostambien. En concreto se obtiene:

> geyser.spl

Call:

smooth.Pspline(x = ux, y = tmp[, 1], w = tmp[, 2], method = method)

Smoothing Parameter (Spar): 5.388047e-05

Equivalent Degrees of Freedom (Df): 32.3831

GCV Criterion: 31.59988

CV Criterion: 60.01679

> geyser.sts

Call:

smooth.spline(x = x, y = y)

Smoothing Parameter spar= 1.044891 lambda= 0.05174406 (12 iterations)

Equivalent Degrees of Freedom (Df): 3.366694

Penalized Criterion: 9604.32

GCV: 110.0222

Con respecto a la bondad de los ajustes vemos que el estimador lineal local ofreceuna estimacion mas suavizada que los splines en este caso.

Nuestro siguiente objetivo sera comparar todos los procedimientos disponiblespara la seleccion del ancho de banda, asociado al estimador lineal local. Los proced-imientos para seleccionar el ancho de banda considerado son los metodos plug-in,validacion cruzada y la sencilla regla del pulgar.

La implementacion de dichos metodos se hace en diversas funciones disponiblesen los libros KernSmooth, Locpol y sm (si bien existen algunas versiones masdisponibles en otros libros de R que contienen posibilidades para metodos no parametri-cos, como por ejemplo el libro Locfit que implementa versiones del estimador quefijan el numero de observaciones en el entorno local en lugar del tamano del mismo).

Todas ellas fueron ampliamente descritas en el capıtulo 2 de este trabajo, porlo que aquı nos centraremos en su particular aplicacion a los datos con los queestamos trabajando. Agrupando las funciones segun la metodologıa de seleccion queimplementan, podemos enumerar las siguientes:

Page 95: Regresión no paramétrica en R

92 CAPITULO 3. APLICACION PRACTICA

Selectores de tipo plug-in: la funcion dpill que forma parte del libro KernS-mooth, implementando el metodo de Ruppert, Sheather y Wand (1995). Yla funcion pluginBw dentro del libro Locpol, que implementa el metododescrito en el libro de Fan y Gijbels (1996) paginas 110-112.

Selectores basados en Validacion Cruzada: la funcion regCVBwSelC, quese puede encontrar en el capıtulo 2 de este trabajo en el libro Locpol, y lafuncion h.select del libro sm.

Usando dichas funciones nuestro objetivo es el calcular el estimador lineal local,usando distintos parametros ancho de banda. En concreto parametros segun metodosplug-in y validacion cruzada. Ademas de ilustrar el resultado final, podremos discutirlas particularidades que conllevan la aplicacion de cada uno de ellos.

Dado que nuestro objetivo en este momento es el parametro de suavizado, volve-mos a fijar la eleccion de la funcion nucleo de tipo gausiano y, como ya hemoscomentado antes, fijamos ajustes de grado p = 1. El codigo generado para talespropositos es el siguiente:

data(geyser, package="MASS")

x <- geyser$duration

y <- geyser$waiting

plot(x,y,title=’Estimacion lineal local para los datos del geyser’,

+ xlab=’Duracion’,ylab=’Tiempo de espera’)

h1 <- dpill(x, y)

h1

fit1 <- locpoly(x,y,bandwidth = h1, degree=1)

lines(fit1,col="red",lty=1,lwd=2)

h2<- pluginBw(x,y, deg=1, kernel=gaussK)

h2

fit2 <- locpoly(x, y , bandwidth = h2, degree=1)

lines(fit2,col="yellow",lty=2,lwd=2)

h3<- regCVBwSelC(x,y, deg=1, kernel=gaussK)

h3

fit3 <- locpoly(x,y,bandwidth = h3, degree=1)

lines(fit3,col="green",lty=3,lwd=2)

h4<-h.select(x, y,method = "cv")

h4

fit4 <- locpoly(x,y,bandwidth = h4, degree=1)

lines(fit4,col="blue",lty=4,lwd=2)

legend(’topright’,legend=c("h1-dpill", "h2-pluginBw","h3-regCVBwSelC",

+ "h4-h.select"),lwd=2,lty=1:4,col=c("red", "yellow", "green","blue"))

Page 96: Regresión no paramétrica en R

3.1. ESTUDIO CON DATOS REALES 93

Los resultados obtenidos para los parametros de suavizado son los siguientes:

> h1

[1] 0.2342897

> h2

[1] 0.08805326

> h3

[1] 0.739138

> h4

[1] 0.6789217

En el calculo de h2, el parametro segun el metodo plug-in dentro del libro locpolresulta notorio el valor tan pequeno que se obtiene en comparacion con los otros.Habrıa que estudiar el procedimiento implementado puesto que si observamos la esti-macion resultante (Figura 3.3) la curva estimada sufre de regularidades inadmisiblesen las proximidades de la frontera inicial, debido a la escasez de observaciones.

El resultado correspondiente a los criterios basados en validacion cruzada (h3y h4) son analogos, observandose leves diferencias que tendra que ver con la im-plementacion concreta que se ha hecho del metodo (en concreto con la rejilla deminimizacion definida para el criterio).

En este caso el mejor ajuste viene desde el metodo plug-in que implementa lafuncion dpill del libro KernSmooth.

1 2 3 4 5

5060

7080

9010

011

0

Duración

Tie

mpo

de

espe

ra

h1−dpillh2−pluginBwh3−regCVBwSelCh4−h.select

Figura 3.3: Estimador lineal local con distintos h.

Page 97: Regresión no paramétrica en R

94 CAPITULO 3. APLICACION PRACTICA

3.2. Estudio con datos simulados

Ilustraremos ahora los metodos de regresion no parametrica y en concreto el es-timador polinomial local a partir de datos simulados. Nuestro objetivo ahora sera elde cuantificar la bondad de las estimaciones (dado que conocemos los modelos ex-actos) y ademas ilustrar aspectos interesantes del problema de regresion con sera eldel efecto del tamano muestral y la variabilidad de la muestra considerada.

De este modo estudiaremos el comportamiento de los estimadores con distintostamanos de muestra (n = 25, 50, 100y500) y con distintas desviaciones tıpicas paralos residuos del modelo (0,3, 0,4y0,1).

De esta forma lo que se pretende es observar la convergencia de la curva teoricay asimismo ver como el problema de estimacion se hace mas difıcil de resolver amedida que vamos aumentando el valor de la desviacion tıpica de los residuos delmodelo.

Para realizar lo anterior consideramos el siguiente modelo de regresion:

Y = m(x) + ε

donde

m(x) = sen(2x) + 2exp(−16x2)

y donde x se genera segun una distribucion uniforme continua en el intervalo (−2, 2)y los residuos se consideran normales con media 0 y desviacion tıpica σ.

En primer lugar, empezaremos comparando el estimador polinomico local (EPL)con con grados p = 0, 1, 3. El parametro ancho de banda lo fijamos en h = 0,15.

Y en segundo lugar, de forma similar al ejercicio que hicimos con los datos delgeyser, compararemos el EPL con los distintos metodos de seleccion para el anchode banda (plug-in, CV, regla del pulgar), fijando ajustes de grado p = 1.

Para cuantificar la precision de las estimaciones resultantes utilizaremos como cri-terio de error la suma residual de cuadrados sobre una rejilla de puntos de estimacion.De este modo evaluaremos el estimador sobre una red de puntos xl, l = 1, ..., ngrid

equiespaciada en (−2, 2) de tamano ngrid = 500. Una vez calculadas las estima-ciones sobre la rejilla calcularemos los errores con la formula:

1

500×

500∑

i=1

(m(xl) − mh(xl))2 (3.1)

y compararemos los resultados tomando la raız cuadrada.

Consideramos en primera lugar (caso 1) la estimacion considerando muestrasde tamano n = 100 y σ = 0,4. El codigo generado, ası como los resultados obtenidosson los siguientes:

Page 98: Regresión no paramétrica en R

3.2. ESTUDIO CON DATOS SIMULADOS 95

n<-100

sigma<-0.4

nucleo<-gaussK

regFun<-function(x) sin(2*x)+2*exp(-16*x^2)

x<-runif(n,-2,2)

mx<-regFun(x)

y<-mx+rnorm(n,mean=0,sd=sigma)

plot(x,y,main="Datos simulados")

curve(sin(2*x)+2*exp(-16*x^2),col="black",lwd=2,add=T)

h<- 0.15

fit0 <- locpoly(x,y,bandwidth = h,degree=0)

lines(fit0,col="orange",lty=2,lwd=2)

fit1 <- locpoly(x,y,bandwidth = h, degree=1)

lines(fit1,col="blue",lty=3,lwd=2)

fit3 <- locpoly(x,y,bandwidth = h, degree=3)

lines(fit3,col="green",lty=4,lwd=2)

legend(’topright’,legend=c("Curva teorica", "ajuste p=0",

"ajuste p=1","ajuste p=3"),lwd=2,lty=1:4,col=c("black",

"orange","blue","green"))

−2 −1 0 1 2

−1

01

2

Datos simulados

x

y

Curva teóricaajuste p=0ajuste p=1ajuste p=3

Figura 3.4: Estimacion polinomial local a partir de datos simulados. El tamanomuestral es 100 y la desviacion tıpica residual 0,4

Como se puede observar en la Figura 3.4, el grafico cuando p = 0 y p = 1 son muyparecidos los estimadores salvo en la frontera, debido a que p = 1 permite corregirde forma automatica los efectos frontera. Los resultados para p = 3 muestran unamayor irregularidad.

Page 99: Regresión no paramétrica en R

96 CAPITULO 3. APLICACION PRACTICA

Consideramos ahora una disminucion en el tamano muestral hasta n = 25 man-teniendo el mismo σ = 0,4 (caso 2). El codigo generado a tal efecto es analogo,cambiando n<-25, y los resultados obtenidos se muestran en la Figura 3.5.

−2.0 −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5

−1.

0−

0.5

0.0

0.5

1.0

1.5

2.0

Datos simulados

x

y

Curva teóricaajuste p=0ajuste p=1ajuste p=3

Figura 3.5: Estimacion polinomial local a partir de datos simulados. El tamanomuestral es 25 y la desviacion tıpica residual 0,4

Como se puede observar en el grafico cuando hemos disminuido el tamano mues-tral a 25 vemos que los estimadores presentan bastantes irregularidades, sobre todocuando intentamos ajustar un polinomio de grado alto (p = 3).

Considerando ahora un tamano de muestra intermedio de n = 50 (caso 3), yusando un codigo similar en R obtenemos los resultados que se muestran en la Figura3.6.

−2 −1 0 1 2

−1

01

2

Datos simulados

x

y

Curva teóricaajuste p=0ajuste p=1ajuste p=3

Figura 3.6: Estimacion polinomial local a partir de datos simulados. El tamanomuestral es 50 y la desviacion tıpica residual 0,4

Page 100: Regresión no paramétrica en R

3.2. ESTUDIO CON DATOS SIMULADOS 97

La convergencia a la curva teorica la podemos observar considerando un tamanode muestra elevado como n = 500 (caso 4).

−2 −1 0 1 2

−2

−1

01

2

Datos simulados

x

y

Curva teóricaajuste p=0ajuste p=1ajuste p=3

Figura 3.7: Estimacion polinomial local a partir de datos simulados. El tamanomuestral es 500 y la desviacion tıpica residual 0,4

A continuacion ilustraremos el comportamiento de los estimadores lineales localescon diferentes metodos de seleccion del parametro de suavizado. Nos centramosen el caso 1 en el que se simularon n = 100 datos con σ = 0,4. Los metodosconsiderados son el selector basado en validacion cruzada calculado usando la funcionregCVBwSelC, el de tipo plug-in calculado usando pluginBw y el calculado segunla simple regla del pulgar, ofrecido por la funcion thumbBw, todas ellas contenidasen el libro locpol. La comparacion de los metodos la haremos vıa la raız cuadradadel error definido en 3.1. El codigo generado para ello se muestra a continuacion:

n<-100

sigma<-0.4

ngrid<-500

nucleo<-gaussK

xgrid<-runif(ngrid,-2,2)

regFun<-function(x) sin(2*x)+2*exp(-16*x^2)

x<-runif(n,-2,2)

mx<-regFun(x)

y<-mx+rnorm(n,mean=0,sd=sigma)

p<-1

est <- function(h, x,y, xgrid,p,nucleo) return(locPolSmootherC(x,y,

xgrid, h, deg=p,kernel=nucleo)$beta0)

error<-function(val,est)return(sqrt(mean((val-est)^2)))

Page 101: Regresión no paramétrica en R

98 CAPITULO 3. APLICACION PRACTICA

cvBwSel <- regCVBwSelC(x,y, deg=p, kernel=nucleo)

teoricos <- regFun(xgrid)

estimados <- est(cvBwSel, x,y,xgrid,p,nucleo)

cvError <- error(teoricos, estimados)

thBwSel <- thumbBw(x, y, deg=p, kernel=nucleo)

estimados <- est(thBwSel, x,y,xgrid,p,nucleo)

thError <- error(teoricos, estimados)

piBwSel <- pluginBw(x, y, deg=p, kernel=nucleo)

estimados <- est(piBwSel, x,y,xgrid,p,nucleo)

piError <- error(teoricos, estimados)

resultado <- list(n=n,cv=cvError,th=thError,pi=piError)

resultado

Los resultado obtenidos comparando con los tamanos muestrales n = 25, 50, 100, 500se muestran de forma resumida en la siguiente tabla:

cv th pi

n= 25 0.3238807 0.2492679 NA

n= 50 0.2768001 0.2395432 0.2738346

n=100 0.2140991 0.2080944 0.2093302

n=500 0.07953835 0.09508265 0.08881742

De dichos resultados se puede observar que el comportamiento de los metodosplug-in es ligeramente superior a validacion cruzada. No obstante la diferencia sehace menos patente en tamanos de muestra lımite. Tambien es de destacar quecuando se consideran pocos datos n = 25 no es posible el calculo del selector de tipoplug-in. Esto es debido a que dichos metodos requieren estimaciones de las derivadasque no son posibles en este caso.

Finalmente, repetiremos el ejercicio de comparacion de los selectores variando ladificultad del problema de estimacion. Esto lo haremos variando la desviacion tıpicade los residuos del modelo, considerando σ = 0,001, 0,1, 0,5. El tamano de muestrallo mantenemos en n = 100.

cv th pi

sigma= 0.001 0.01265973 0.08732214 0.03904589

sigma= 0.1 0.06306383 0.0912005 0.06364838

sigma= 0.5 0.2278124 0.1755693 0.1888333

Page 102: Regresión no paramétrica en R

Bibliografıa 99

Desde la tabla de resultados obtenidos se observa un paralelismo entre aumentarel tamano muestral y reducir la variabilidad residual. Cuando hay alta variabilidadmuetral σ = 0,5 validacion cruzada ofrece resultados pobres. En este caso son losselectores de tipo plug-in y en particular la sencilla regla del pulgar.

Page 103: Regresión no paramétrica en R

100 Bibliografıa

Page 104: Regresión no paramétrica en R

Bibliografıa

[1] Wand, M. P. and Jones, M. C. (1995). Kernel Smoothing. Chapman andHall, London.

[2] Wand, M. P. (1994). Fast Computation of Multivariate Kernel Estimators.Journal of Computational and Graphical Statistics, 3, 433-445.

[3] Sheather, S. J. and Jones, M. C. (1991). A reliable data-based bandwidth

selection method for kernel density estimation. Journal of the Royal StatisticalSociety, Series B, 53, 683–690.

[4] Scott, D. W. (1979). On optimal and data-based histograms. Biometrika, 66,605–610.

[5] Wand, M. P. (1995). Data-based choice of histogram binwidth. University ofNew South Wales, Australian Graduate School of Management Working PaperSeries No. 95–011.

[6] Ruppert, D., Sheather, S. J. and Wand, M. P. (1995). An effective band-width selector for local least squares regression. Journal of the American Statis-tical Association, 90, 1257–1270.

[7] John Fox, 2002. Nonparametric Regression. Appendix to An R and S-PLUSCompanion to Applied Regression.

[8] Fan, J. and Gijbels, I. Local polynomial modelling and its applications. Chap-man and Hall, London (1996).

[9] Wand, M. P. and Jones, M. C. Kernel smoothing. Chapman and Hall Ltd.,London (1995).

[10] Cristobal, J. A. and Alcala, J. T. (2000). Nonparametric regression esti-mators for length biased data. J. Statist. Plann. Inference, 89, pp. 145-168.

[11] Ahmad, Ibrahim A. (1995). On multivariate kernel estimation for samplesfrom weighted distributions. Statistics and Probability Letters, 22, num. 2, pp.121-129

101

Page 105: Regresión no paramétrica en R

102 Bibliografıa

[12] Hardle W. (1990). Smoothing techniques. Springer Series in Statistics, NewYork (1991).

[13] Loader, C. (1999). Local Regression and Likelihood. Springer, New York.

[14] Consult the Web page http://www.locfit.info/.

[15] Cleveland, W. and Grosse, E. (1991). Computational Methods for LocalRegression. Statistics and Computing 1.

[16] Sheather, S. J. and Jones, M. C. (1991). A reliable data-based bandwidthselection method for kernel density estimation. JRSS-B 53, 683-690.

[17] Bowman, A.W. and Azzalini, A. (1997). Applied Smoothing Techniques forData Analysis: the Kernel Approach with S-Plus Illustrations. Oxford UniversityPress, Oxford.

[18] Hurvich, C.M., Simonoff, J.S. and Tsai, C.-L. (1998). Smoothing parame-ter selection in nonparametric regression using an improved Akaike informationcriterion. J. R. Statistic. Soc., Series B, 60, 271-293.

[19] Bowman, A.W., Pope, A. and Ismail, B. (2006). Detecting discontinuitiesin nonparametric regression curves and surfaces. Statistics and Computing, 16,377–390.

[20] Bowman, A.W., Jones, M.C. and Gijbels, I. (1998). Testing monotonicityof regression. J.Comp.Graph.Stat. 7, 489-500.

[21] Bowman, A.W. (2006). Comparing nonparametric surfaces. Statistical Mod-elling, 6, 279-299.

[22] Hastie, T.J. and Tibshirani R.J. Generalized Additive Models. Chapmanand Hall. (2000).

[23] Fan, J., Gijbels, I. and Hu, T.-C. and Huang, L.-S. (1996). An asymp-totic study of variable bandwidth selection for local polynomial regression withapplication to density estimation. Statistica Sinica, Vol. 6, No. 1.

[24] Wand, M.P. and Jones, M.C. (1994). Multivariate Plug-in Bandwidth Se-lection. Computational Statistics, 9. pp. 97-116.

[25] Wand, M.P. and Jones, M.C. (1995). Kernel Smoothing. Monographs onStatistics and Applied Probability 60. Ed. Chapman and Hall.

[26] Azzalini, A. and Bowman, A. W. (1990). A look at some data on the OldFaithful geyser. Applied Statistics 39, 357-365.

Page 106: Regresión no paramétrica en R

Bibliografıa 103

[27] Venables, W. N. and Ripley, B. D. (2002). Modern Applied Statistics withS. Fourth edition. Springer.

[28] Heckman, N. and Ramsay, J. O. (1996). Spline smoothing with model basedpenalties. McGill University, unpublished manuscript.

[29] Martınez Miranda, M.D., Raya Miranda, R., Gonzalez Manteiga, W.and Gonzalez Carmona, A. (2008). A bootstrap local bandwidth selector foradditive models. Journal of Computational and Graphical Statistics, 17,38-55.

[30] Linton, O.B., and Nielsen, J.P. (1995). A Kernel Method of Esti-mating Structured Nonparametric Regression Based on Marginal Integration.Biometrika, 82, 93–100.

[31] Kim,W., Linton, O.B., and Hengartner, N.W. (1999). A ComputationallyEfficient Oracle Estimator for Additive Nonparametric Regression with Boot-strap Confidence Intervals. Journal of Computational and Graphical Statistics,8, 278–297.

[32] Kauermann, G., and Opsomer, J.D. (2003). Local Likelihood Estimation inGeneralized Additive Models. Scandinavian Journal of Statistics, 30, 317–337.

[33] Nielsen, J.P., and Sperlich, S. (2005). Smooth Backfitting in Practise. Jour-nal of the Royal Statistical Society, Ser. B, 67, 43–61.

[34] Mammen, E., and Park, C. (2005). Bandwidth Selection for Smooth Back-fitting in Additive Models. The Annals of Statistics, 33, 1260–1294.

[35] Severance-Lossin, E., and Sperlich, S. (1997). Estimation of Deriva-tives for Additive Separable Models. Discussion paper, SBF 373. Humboldt-University, Berlin.

[36] Opsomer, J.D., and Ruppert, D. (1997). Fitting a Bivariate Additive Modelby Local Polynomial Regression. The Annals of Statistics, 25, 186–211.

[37] Nadaraya, E.A. (1964). On estimating regression. Theory Probab. Appl, No.9,pp. 141-142.

[38] Watson, G.S. (1964). Smooth regression analysis. Sankhya Ser. A, No. 26, pp.101-116.

[39] Eubank, R.L. (1988). Spline Smoothing and Nonparametric Regression. Mar-cel Dekker, New York.

Page 107: Regresión no paramétrica en R

104 BIBLIOGRAFIA

[40] Cleveland, W.S. (1979). Robust Locally Weighted Regression and SmoothingScatterplots. Journal of the American Statistical Association, Vol. 74, No. 368.Theory and Methods, pp. 829-836.

[41] Ruppert,D. Wand, M.P. and Carroll, R.J. (2003). Semiparametric Regres-sion. Cambridge Series in Statistical and Probabilistic Mathematics. CambridgeUniversity Press.

[42] Ruppert, D. and Wand, M.P. (1994). Multivariate Locally Weighted LeastSquares Regression. The Annals of Statistics, Vol. 22, No. 3, pp. 1346-1370.

[43] Bellman, R.E. (1961). Adaptive control processes. Princeton University Press.

[44] Friedman, J.H. and Stuetzle, W. (1981). Projection pursuit regression.Journal of the American Statistical Association, Vol. 76, No. 376, pp. 817-823.

[45] Breiman, L. and Friedman, J.H. (1985). Estimating optimal transforma-tions for multiple regression and correlation (with discussion). Journal of theAmerican Statistical Association, Vol. 80, pp. 580-619.

[46] Hastie, T.J. and Tibshirani R. (1990). Generalized additive models. Wash-ington, D.C.;Chapman and Hall.

[47] Buja, A., Hastie, T.J. and Tibshirani, R. (1989). Linear smoothers andadditive models (with discussion). The Annals of Statistics, Vol. 17, No. 2, pp.453–555.

[48] Kim,W., Linton, O.B., and Hengartner, N.W. (1997). A nimblemethod of estimating additive nonparametric regression. Electronic article,http://www.stats.yale.edu.

[49] Hengartner, N.W. (1996). Rate optimal estimation of additive regression viathe integration method in the presence of many covariates. Preprint, Depart-ment of Statistics, Yale University.

[50] Cook and Weisberg (1994). An Introduction to Regression Graphics. Wiley,New York.