Está en la página 1de 76

Máster en Estadı́stica Aplicada

Departamento de Estadı́stica e I.O.


Universidad de Granada

Trabajo de Investigación
ESTIMACIÓN PENALIZADA
CON DATOS FUNCIONALES

Marı́a del Carmen Aguilera Morillo

Granada, Septiembre de 2009


Máster en Estadı́stica Aplicada
Departamento de Estadı́stica e I.O.
Universidad de Granada

ESTIMACIÓN PENALIZADA
CON DATOS FUNCIONALES

Trabajo de Investigación presentado por


Da Marı́a del Carmen Aguilera Morillo
y dirigido por la Profesora
Dr. Da Ana Marı́a Aguilera del Pino

Vo Bo V o Bo

Fdo. Ana Ma Aguilera del Pino Fdo. Ma del Carmen Aguilera Morillo
Prólogo

Este trabajo de investigación se ha desarrollado en la lı́nea de investi-


gación en Análisis de Datos Funcionales (FDA) del Departamento de Es-
tadı́stica e I.O. de la Universidad de Granada.
Las observaciones muestrales de una variable funcional son funciones
que en la mayorı́a de los casos proceden de la observación temporal de una
variable estadı́stica (realizaciones de un proceso estocástico). Los datos fun-
cionales aparecen en campos muy diversos de aplicación de la estadı́stica
como la economı́a, ciencias de la salud y medioambientales, entre otras.
En los últimos años han proliferado los trabajos de investigación en los
que se generalizan las técnicas multivariantes al caso de datos funcionales,
dando lugar a una parte de la estadı́stica conocida como Análisis de Datos
Funcionales (ADF). Las herramientas básicas del ADF han sido magistral-
mente recopiladas en los libros de Ramsay y Silverman (1997, 2005) y un
número considerable de aplicaciones en el libro de los mismos autores del
año 2002.
En la práctica las funciones muestrales son observadas en un conjunto
finito de puntos que pueden ser desigualmente espaciados y diferentes para
los individuos muestrales. Por ello el primer paso en FDA es reconstruir
la verdadera forma funcional de las curvas muestrales a partir de sus ob-
servaciones discretas. Uno de los métodos más usados en la práctica para
aproximar las funciones muestrales consiste en representarlas en términos
de bases de funciones y aproximar sus coeficientes mediante interpolación,
en el caso de datos observados sin error, o mediante mı́nimos cuadrados,
en el caso de datos ruidosos. Esta metodologı́a proporciona buenas apro-
ximaciones cuando las funciones básicas tienen esencialmente las mismas
caracterı́sticas que el proceso que genera los datos. En otro caso este méto-
do de aproximación no tiene control sobre el grado de suavización de la
curva y puede llevar a aproximaciones poco precisas.
El principal objetivo de este trabajo es el estudio de un método más
potente de aproximar una función a partir de datos discretos. Se trata del
método de regularización (regularization approach) o penalización de la
rugosidad (roughness penalty) que tiene las ventajas tanto de la aproxi-
mación mediante funciones básicas como de las técnicas de suavizamiento
local (kernel smoothing and local polynomial fitting).
El trabajo está dividido en cuatro capı́tulos. En el primero se hace una
introducción al ADF y se presentan ejemplos de aplicaciones con datos
funcionales desarrolladas recientemente en la literatura estadı́stica.
En el segundo capı́tulo se asume que las curvas muestrales pertenecen
a espacios de dimensión finita generados por una base de funciones y se
reconstruye su forma funcional mediante representaciones básicas. A lo
largo de este capı́tulo se presenta distintas bases (B-splines, trigonométri-
cas, wavelets, ....) que serán más o menos adecuadas dependiendo de la
naturaleza de los datos que se estén analizando (suaves, periódicos, fuerte
comportamiento local, ....). este trabajo se centrará básicamente en repre-
sentaciones básicas con B-splines.
El capı́tulo tercero está dedicado a los métodos más usuales de aproxi-
mación de los coeficientes básicos a partir de las observaciones discretas de
las funciones muestrales. Se hace una revisión exhaustiva de los métodos
de interpolación, proyección ortogonal, aproximación mı́nimo-cuadrática y
suavización núcleo más usados en las aplicaciones.
En el capı́tulo 4 se introduce la estimación penalizada en términos de
B-splines de las curvas muestrales cuyo estudio es el objetivo principal de
este trabajo. Se considerarán dos formas alternativas de estimación pena-
lizada, los splines de suavizado y los p-splines. En los primeros se penaliza
la integral del cuadrado de la derivada de cierto orden de las curvas mues-
trales mientras que en los segundos se hace una aproximación discreta de
dicha integral penalizando las diferencias del mismo orden entre coeficientes
adyacentes de la base de los B-splines. Merece resaltar la equivalencia en-
tre los P-splines y los modelos mixtos que hace más flexible la elección de
los nodos de la base de B-splines y permite, además, seleccionar de forma
automática el parámetro de suavizado.
Los métodos de suavizado estudiados en el trabajo se han implementado
en R y su comportamiento se ha analizado sobre distintos conjuntos de
datos simulados y reales. Los resultados de la comparación entre splines de
regresión, splines de suavizado y P-splines se han recogido en el capı́tulo
5. Se ha incluido también un apartado dedicado a lı́neas de investigación
abiertas puesto que este trabajo pretende ser el primer paso en el desarrollo
de una Tesis Doctoral que tendrı́a como objetivo la estimación penalizada
de distintos modelos estadı́sticos de ADF.
También se ha incluido una selección de las referencias bibliográficas
revisadas en el desarrollo del trabajo y un anexo con las funciones imple-
mentadas en R. La versión impresa del trabajova acompañada de un CD
que contiene el código R desarrollado para implementar las aplicaciones
realizadas y los ficheros de datos.
Finalmente, quiero agradecer a mi tutora, Ana Ma Aguilera del Pino, su
apoyo incondicional durante la realización de este trabajo, ası́ como su labor
docente durante todo curso académico del Máster. En general, agradecer a
todo el profesorado del Máster la formación y los conocimientos adquiridos.
No podı́a olvidarme de mi madre, que con su esfuerzo y ánimo constante
ha hecho posible la realización de mis estudios.

Granada, Septiembre de 2009


Índice general

1. Introducción 1
1.1. ¿Qué son los datos funcionales? . . . . . . . . . . . . . . . . 1
1.2. Ejemplos reales y aplicaciones con datos funcionales . . . . . 2
1.3. Objetivos del ADF . . . . . . . . . . . . . . . . . . . . . . . 7

2. Obtención de la forma funcional 9


2.1. Expansión básica de datos funcionales . . . . . . . . . . . . 9
2.2. Bases usuales . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3. Estimación aproximada de los coeficientes básicos 17


3.1. Interpolación Spline Cúbica con base de B-splines . . . . . . 17
3.2. Proyección ortogonal . . . . . . . . . . . . . . . . . . . . . . 19
3.3. Aproximación de mı́nimos cuadrados . . . . . . . . . . . . . 19
3.3.1. Ajuste por mı́nimos cuadrados ponderados . . . . . . 21
3.3.2. Cómo elegir el número de funciones base . . . . . . . 21
3.4. Mı́nimos cuadrados localizados . . . . . . . . . . . . . . . . . 22

4. Estimación por mı́nimos cuadrados penalizados 25


4.1. Penalización de la suavidad . . . . . . . . . . . . . . . . . . 27
4.2. Spline de suavizado . . . . . . . . . . . . . . . . . . . . . . . 29
4.3. P-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3.1. P-splines como modelos mixtos . . . . . . . . . . . . 32
4.4. Selección del parámetro de suavizado . . . . . . . . . . . . . 34

5. Aplicaciones con R 37
5.1. Ejemplo simulado . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1.1. Caso I (150 nodos de observación) . . . . . . . . . . . 38
5.1.2. Caso II (50 nodos de observación) . . . . . . . . . . . 41
5.2. Suavizado de las curvas de temperaturas en Andalucı́a . . . 42

i
ii Estimación penalizada con datos funcionales

5.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6. Lı́neas abiertas 49

7. Referencias bibliográficas 51

8. Anexo: Funciones implementadas en R 55


Capı́tulo 1

Introducción

En este capı́tulo se introducirá el concepto de dato funcional y se pre-


sentarán ejemplos y aplicaciones estadı́sticas con este tipo de datos en di-
ferentes áreas.

1.1. ¿Qué son los datos funcionales?


En Análisis de Datos Funcionales (ADF) los datos en lugar de ser un
conjunto de vectores, como en análisis multivariante clásico, son un con-
junto de curvas. En la mayorı́a de las aplicaciones, las curvas muestrales
proceden de la observación de un proceso estocástico en tiempo continuo.
Hay otras muchas aplicaciones como, por ejemplo la quimiometrı́a, en las
que el argumento de las curvas no tiene que ser necesariamente el tiem-
po. Normalmente, a pesar de su naturaleza continua, sólo disponemos de
observaciones discretas de las variables funcionales en un conjunto finito
de instantes de tiempo que pueden ser desigualmente espaciados e incluso
diferentes para los distintos individuos muestrales.
El gran desarrollo que está experimentando el análisis de datos fun-
cionales ha ocasionado que muchos estudios con datos longitudinales, plantea-
dos desde un punto de vista multivariante, ahora sean analizados en base a
su naturaleza funcional. Las técnicas estadı́sticas de ADF se han desarrolla-
do en los últimos 20 años como una generalización de las técnicas de análisis
multivariante y de regresión al caso en el que las observaciones son curvas
en lugar de vectores. Las técnicas de ADF más utilizadas son el Análisis
en Componentes Principales Funcional (ACPF) y los modelos de regresión
lineal funcional. Estos últimos presentan distintas variantes dependiendo

1
2 Estimación penalizada con datos funcionales

de que tanto la variable respuesta como la explicativa sean funcionales o


sólo una de ellas lo sea. Un estudio detallado de las principales técnicas
de ADF se puede ver en los libros pioneros de Ramsay y Silverman (1997,
2005).
El primer paso en ADF es obtener la verdadera forma funcional de
las curvas a partir de sus observaciones en tiempo discreto. Para ello, se
han aplicado muchas técnicas de aproximación, tales como la interpolación
o la proyección en un espacio finito-dimensional generado por una base
de funciones. En los últimos años se han utilizado también técnicas de
estimación no paramétrica de curvas. Recientemente se ha publicado un
libro que presenta una excelente recopilación de métodos no paramétricos
de Análisis de Datos Funcionales (Ferraty y View, 2006).
Una vez reconstruida la forma funcional de las curvas se procede a su
análisis estadı́stico dependiendo del objetivo del estudio. Teniendo en cuen-
ta la dimensión infinita del espacio funcional al que pertenecen las curvas,
se suele recurrir en primer lugar a una técnica de reducción de dimensión
como el ACPF que permita resumir la información en un conjunto finito
de variables escalares obtenidas como combinaciones lineales generalizadas
de las curvas con máxima varianza. El ACPF ha resultado ser también
muy útil para la estimación de los modelos de regresión funcional por dos
razones fundamentales. En primer lugar reduce la dimensión del espacio de
regresores, y en segundo lugar evita el problema de multicolinealidad que
afecta a la regresión sobre los coeficientes básicos de las curvas.
A continuación se resumen algunas aplicaciones interesantes con datos
funcionales desarrolladas en la literatura. El potencial del ADF para re-
solver problemas reales queda plasmado en la amplia variedad de aplica-
ciones y análisis estadı́sticos con datos de este tipo desarrollados en los
últimos años. Algunas de las más interesantes aparecen en el libro Applied
functional data analysis: Methods and case studies de Ramsay y Silverman
(2002).

1.2. Ejemplos reales y aplicaciones con datos


funcionales
Curvas de alturas de niñas
Un conjunto tı́pico de datos funcionales corresponde a las alturas en
cm de diez niñas medidas en 31 ocasiones (en distintas edades). Las
Introducción 3

edades no están igualmente espaciadas en el tiempo. En el primer


año se realizaron 4 mediciones, del cuarto al octavo año se hicieron
medidas anuales y posteriormente se tomaron dos medidas por año. Si
nos fijamos en una de las niñas, sus mediciones a lo largo de los 18 años
constituyen una observación funcional. De este modo, tendrı́amos una
muestra con 10 observaciones funcionales, es decir un conjunto de 10
curvas (ver más detalles en Ramsay J. y Silverman B., 2005).
25
20
temp

15
10
5

0 20 40 60 80 100 120

mes

Figura 1.1: Curvas de temperatura para diferentes zonas geográficas de


Andalucı́a, ajustadas mediante mı́nimos cuadrados penalizados y usando
P-splines como modelos mixtos.
4 Estimación penalizada con datos funcionales

Curvas de temperaturas para diferentes zonas geográficas de


Andalucı́a
En este caso se dispone de las temperaturas medias en cada uno de los
doce meses del año, y para cada una de las veinte zonas geográficas
de Andalucı́a consideradas, durante un periodo comprendido entre
1998 y 2007 (10 años). En este caso los tiempos están igualmente
espaciados (se dispone de una observación en cada uno de los meses).
Si nos centramos en una de las zonas, sus temperaturas a lo largo de
los meses y años forman una observación funcional. Ası́, se dispone de
una muestra con 20 observaciones funcionales, (20 curvas). Los datos
han sido obtenidos del anuario de la Consejerı́a de Medio Ambiente
(2008). Al final del trabajo se irán aplicando las diferentes técnicas
de suavizado en estudio a este conjunto de datos.

Porcentaje de células CD4 en portadores del virus VIH


En este estudio el conjunto de datos incluye medidas de reconocimien-
tos fı́sicos, resultados de laboratorio y porcentaje de células CD4 de
283 hombres homosexuales con VIH positivo, recogidas en un periodo
comprendido entre 1984 y 1991. Considerando uno de los hombres,
sus medidas a los largo de los años del periodo en estudio forman una
observación muestral. Ası́, tenemos una muestra de 283 curvas u ob-
servaciones muestrales. Numerosos autores han utilizado estos datos
como ejemplo de modelo lineal funcional (Wensheng G., 2004).

Predicción de las cotizaciones en bolsa de Madrid del grupo


banca
La evolución temporal de las cotizaciones bursátiles se puede mo-
delizar como una realización de un proceso estocástico en tiempo
continuo. De este modo la información muestral asociada al grupo
de bancos son un conjunto de curvas para las que se dispone de ob-
servaciones diarias. Aguilera et al. (1999) propusieron un modelo de
predicción en componentes principales (PCP model) para predecir la
curva de cotizaciones bursátiles en la primeras cinco semanas de 1997
(futuro) a partir de su evolución temporal desde 1992 (pasado). Para
estimar el modelo se utilizaron observaciones semanales de las coti-
zaciones en bolsa de Madrid de seis bancos españoles y se ajustó el
modelo a las tasas de retorno en lugar de a las cotizaciones brutas.
El modelo se basó en regresión lineal de las componentes principales
Introducción 5

más explicativas del proceso de cotizaciones en el futuro sobre un


subconjunto óptimo de componentes principales del pasado.

Estimación del riesgo de padecer sequı́a a partir de la evolu-


ción de las temperaturas
En este análisis de datos funcionales se dispone de datos de tem-
peraturas medias mensuales durante un año en distitas estaciones
canadienses y de la cantidad de lluvia diaria durnate el mismo año.
Asociada a estos datos se define una variable de respuesta binaria
que toma el valor uno en una estación cuando no hay sequı́a y el
valor cero en caso contrario. Se considera que hay sequı́a en una zona
cuando la cantidad anual de precipitaciones en esa zona es inferior al
percentil 25 de la cantidad anual de precipitaciones en todo el paı́s.
Para estimar el riesgo de sequı́a a partir de las curvas de temperat-
uras (interpolación spline cúbica quasi-natural) se estima un modelo
logit en términos de las componentes principales funcionales de las
curvas de temperatura anuales. Finalmente, de la interpretación de
la función parámetro se concluye que un aumento de un grado en la
temperatura en la primera mitad del año duplica la probabilidad de
padecer sequı́a (Escabias et al., 2005).
Para predecir la probabilidad de padecer sequı́a en un año futuro
para el que no se dispone de información sobre la evolución de las
temperaturas, Aguilera et al. (2008) han desarrolado un modelo mix-
to logit-ARIMA funcional basado en la modelización ARIMA de cada
una de las series temporales asociadas a las componentes principales
obtenidas al cortar anualmente la serie de las temperaturas. Este mo-
delo mixto ha sido aplicado con éxito para predecir la probabilidad
de padecer sequı́a a partir de las observaciones mensuales de las tem-
peraturas en la superficie del mar en el Océano Pacı́fico Ecuatorial
(serie TEPO del fenómeno El Niño).

Modelización de la relación entre estrés y el lupus


El Lupus Eritomatoso es una enfermedad autoinmune que psicólo-
gos y médicos consideran altamente relacionada con el nivel de es-
trés al que está sometido el individuo. Para estimar esta relación se
disponı́a de los datos proporcionados por la Sección de Enfermedades
Autoinmunes del Departamento de Medicina Interna del Hospital Vir-
gen de las Nieves y el Departamento de Personalidad, Diagnóstico y
6 Estimación penalizada con datos funcionales

Tratamiento Psicológico de la Universidad de Granada.


La muestra en estudio estaba formada por 44 pacientes de lupus para
los que se disponı́a de observaciones diarias de su nivel de estrés du-
rante un periodo de 18 dı́as. Transcurrido ese periodo a los pacientes
se les realizó un análisis de sangre para determinar si habı́an sufrido
un brote en la enfermedad. Como consecuencia se definió una variable
de respuesta binaria que toma el valor uno para aquellos pacientes con
brote y el valor cero para el resto. Para explicar esta variable a partir
de las curvas de estrés se ajustó un modelo logit funcional en base
al ACPF de las curvas muestrales. Para llevar a cabo el ajuste del
modelo se disponı́a de distinto número de observaciones de cada cur-
va de estrés y en distintos instantes ya que habı́a dı́as en que los
pacientes no respondı́an el test que mide el nivel de estrés. Por ello se
procedió en primer lugar a una aproximación mı́nimo-cuadrática de
las curvas con bases de B-splines y también con bases de Fourier. De
la interpretación del modelo ajustado se llegó a la conclusión de que
las consecuencias de un alto niver de estrés tiene un retardo de cinco
dı́as en el padecimiento de un brote de lupus (Aguilera et al., 2008).

Predicción de las curvas de concentración de polen a partir


de las curvas de temperatura
Se trata de un trabajo reciente (Valderrama et al., 2009) en el que
se predicen las curvas anuales de concentración de polen de ciprés
en granada a partir de las curvas anuales de temperatura. Para ello
se disponı́a de observaciones diarias tomadas en el Departamento de
Aerobiologı́a de la Facultad de Ciencias de la Universidad de Grana-
da durante los últimos años. El modelo utilizado ha sido un model
lineal funcional de respuesta funcional. Su estimación se llevó a cabo
mediante regresión lineal sobte las componentes principales de las
curvas de temperatura en una primera estapa. En una segunda etapa
se modelizaron los residuos de este primer modelo en función de la
evolución temporal del nivel de polen en un periodo anterior.

Estudios paleontológicos
Hay estudios paleontológicos, como el que se cita a continuación, en
los cuales es evidente la presencia de datos funcionales. La paleon-
tologı́a estudia enfermedades de la historia de la humanidad, tomando
información principalmente de los restos de esqueletos humanos.
Introducción 7

Consideremos un estudio en el que se investiga la forma de una gran


muestra de huesos con una antigüedad de cientos de años. El objetivo
es conseguir información sobre la ostheoartritis de la rodilla, ya que
este problema es muy difı́cil de investigar sobre pacientes vivos. Hay
evidencia de una relación casual entre la forma de la arteria y la
incidencia de la ostheoartritis, habiendo mecanismos biomecánicos
convincentes para esta relación.
Nos centramos en imágenes de la rodilla y del fémur. Una forma de
hueso tı́pica observada en paleontologı́a se puede ver en la figura (1.2).
Los datos funcionales a considerar son curvas cı́clicas que correspon-
den a la forma del contorno de los huesos. Hay puntos especı́ficos
sobre la forma del hueso, que se suelen identificar y los cuales pueden
ser o no de gran interés. Algunos de estos puntos muestran una suave
definición de la forma media del hueso. Esto facilita el estudio de
la variabilidad en la población, a través de métodos gráficos de la
estadı́stica convencional, pero no de la forma más apropiada. La mo-
tivación funcional conduce a plantear formas adecuadas de visualizar
esta variabilidad y de resaltar las diferencias entre los huesos que
muestran sı́ntomas de artritis y los que no (Ramsay, J. y Silverman,
B., 2002).

Figura 1.2: Imagen digital de un fémur en un estudio paleontológico.

1.3. Objetivos del ADF


De forma similar a lo que ocurre en cualquier análisis estadı́stico de
datos, los objetivos principales en ADF son
Representar los datos de manera que ayuden a análisis posteriores.
8 Estimación penalizada con datos funcionales

Presentar lo datos ası́ como resaltar sus caracterı́sticas.

Estudiar la presencia importante de patrones y variaciones entre los


datos.

Explicar la variación en una variable dependiente (output) en térmi-


nos de la información proporcionada por una variable independiente
(input).

Comparar dos o más series de datos con respecto a ciertos tipos de


variación, donde dos conjuntos de datos puedan tener distintas répli-
cas de las mismas funciones, o distintas funciones para un conjunto
de réplicas comunes.
Capı́tulo 2

Obtención de la forma
funcional

Como se ha dicho anteriormente el primer paso en ADF es reconstruir


la verdadera forma funcional de las curvas muestrales a partir de sus obser-
vaciones discretas. El modo más usual de resolver este problema consiste
en asumir una expansión de cada curva muestral en términos de una base
de funciones y aproximar los coeficientes básicos utilizando un suavizado o
una interpolación.

2.1. Expansión básica de datos funcionales


Sea x1 (t) , x2 (t) , . . . , xn (t) el conjunto de funciones que constituyen la
información muestral relacionada con una variable funcional. Podemos con-
siderarlas como observaciones de un proceso estocástico X = {X (t) : t ∈ T }.
Suponemos que este proceso es de segundo orden, continuo en media cuadrática,
y que las funciones muestrales pertenecen al espacio de Hilbert L2 (T ) de
funciones de cuadrado integrable con el usual producto interior
Z
hf, giu = f (t) g (t) dt, ∀f, g ∈ L2 (T ) .
T

Dada la dificultad de observar las funciones en tiempo continuo, en la prácti-


ca, se dispone de observaciones de tales funciones en un conjunto finito de
tiempos {ti0 , ti1 , . . . , timi ∈ T, i = 1, . . . , n}, que pueden ser diferentes para
cada individuo. Ası́ la información muestral viene dada por los siguientes

9
10 Estimación penalizada con datos funcionales

vectores xi = (xi0 , . . . , ximi )0 , con xik el valor observado para la i-ésima


trayectoria muestral, xi (tik ), en el tiempo tik (k = 0, . . . , mi ).
Para reconstruir la forma funcional de las trayectorias muestrales a par-
tir de los datos discretos observados, se pueden utilizar varios métodos de-
pendiendo de
El modo en que se han obtenido dichos datos en tiempo discreto.
La forma que esperamos que tengan las funciones.
En este apartado, asumimos que las trayectorias muestrales pertenecen
a un espacio finito-dimensional generado por una base {φ1 (t) , . . . , φp (t)},
y se expresan como
p
X
xi (t) = aij φj (t) , i = 1, . . . , n. (2.1)
j=1

2.2. Bases usuales


En general se trabaja con las bases de B-splines. No obstante, hay otros
sistemas base, que dependiendo de la naturaleza de los datos muestrales,
pueden ser más o menos adecuadas. A continuación se hace una lista con
algunos de los sistemas base más conocidos en la literatura sobre Datos
Funcionales.

1. Bases de B-splines

Las referencias básicas son De Boor (1977) y Ramsay y Silverman


(1997, 2005). Un B-spline está formado por trozos de polinomios
conectados entre sı́. Podemos ver un ejemplo en la parte superior
izquierda de la Figura (2.1), que corresponde a un B-spline de grado
1. Está formado por dos trozos de polinomio lineal que se unen en un
nodo.
En la parte derecha inferior aparece un B-spline de grado tres. Obser-
vamos que todas las funciones de la base tienen la misma forma, pero
están desplazadas horizontalmente (el desplazamiento es una función
de la distancia entre los nodos). En general, un B-splines de grado p
tiene las siguientes caracterı́sticas:
Obtención de la forma funcional 11

0.8

0.8
0.4

0.4
0.0

0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0

x x
0.8

0.8
0.4

0.4
0.0

0.0

0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0

x x

Figura 2.1: Bases de B-splines de orden 2 y 4.

Consiste en p + 1 trozos de polinomios de orden p que se unen


en p nodos internos.
Las derivadas hasta el orden p − 1 son continuas en los puntos
de unión.
El B-spline es positivo en el dominio expandido por p + 2 nodos
y 0 en el resto.
Excepto en los extremos, se solapa con 2p trozos de polinomios
de sus vecinos.
Para cada valor de x, p + 1 B-splines son no nulos.
Para construir un B-spline de grado p son necesarios p+2 nodos.

Los B-splines no ”padecen”de los efectos frontera comunes en otros


métodos de suavizado, como en algunos suavizados tipo núcleo, en
los que al extender la curva ajustada fuera del dominio de los datos
ésta tiende hacia cero. En De Boor (2001) se presenta un algoritmo
para el cálculo de B-splines. Este algoritmo es fácil de implementar
en R.
12 Estimación penalizada con datos funcionales

Denotemos por t0 < . . . < tm una partición de nodos del intervalo


de observación T . Extendiendo la partición como t−3 < t−2 < t−1 <
t0 < . . . < tm < tm+1 < tm+2 < tm+3 , la base de B-splines de orden
p + 1 (grado p) se define iterativamente de la siguiente forma:
½
1 tj−2 ≤ t < tj−1
Bj,1 (t) = , j = −1, 0, 1, . . . , m + 4
0 en otro caso
t − tj−2 tj+p−1 − t
Bj,p+1 (t) = Bj,p (t) + Bj+1,p (t)
tj+p−2 − tj−2 tj+p−1 − tj−1

p = 1, 2, . . . ; j = −1, 0, . . . , m − p + 4.

Cuando p = 3 estas funciones base son B-splines cúbicos, utilizados


para la aproximación de curvas muestrales regulares. A partir de aho-
ra, se omite el subı́ndice correspondiente al orden, de manera que los
B-splines cúbicos se denotarán como

Bj,4 (t) = Bj (t) , j = −1, 0, . . . , m − 1.

La base de los B-splines de grado p genera el espacio de los splines del


mismo grado definidos como curvas formadas por polinomios a trozos
de grado p (piecewise polynomial) con continuidad en las derivadas
hasta el orden p − 1.

2. Sistemas base de Fourier para datos periódicos


La expansión básica más conocida es proporcionada por las series de
Fourier

xi (tik ) = c0 +c1 sin(wtik )+c2 cos(wtik )+c3 sin(2wtik )+c4 cos(2wtik )+. . .

definida por la base

φ0 (tik ) = 1, φ2j−1 (tik ) = sin(jwtik ) y φ2j (tik ) = cos(jwtik )

con j = 1, 2, 3, . . . y k = 0, . . . , mi (mi : número de observaciones en


tiempo discreto para la i-ésima trayectoria muestral).
Esta base es periódica, y el parámetro w determina el periodo 2π/w.
Si los valores de tik son igualmente espaciados en el intervalo T y el
periodo es igual a la longitud de T , entonces la base es ortogonal en
Obtención de la forma funcional 13

el sentido de que la matriz del producto cruzado 1 Φ0i Φi es diagonal,


y puede ser igual a la identidad dividiendoplas funciones base por las

constantes adecuadas, mi para k = 0 y mi /2 para el resto de k.
La Transformada Rápida de Fourier (the Fast Fourier Transform -
FFT) permite encontrar eficientemente todos los coeficientes cuando
mi es potencia de 2 y los argumentos son igualmente espaciados, y
en este caso podemos encontrar los coeficientes cj y los mi valores
suavizados de xi (tik ) en O (mi log mi ) operaciones. Otras bases co-
mo los B-splines y las wavelets pueden igualar e incluso superar su
eficiencia computacional.
La versión ortonormal de la base de Fourier es conocida como base
ortonormal de funciones trigonométricas en L2 (T ) y viene dada por

1
T0 (t) =
T 1/2
µ ¶1/2 µ ¶
2 2πjt
T2j−1 (t) = sin
T T
µ ¶1/2 µ ¶
2 2πjt
T2j (t) = cos j = 1, . . . .
T T

3. Bases de Wavelets
Las wavelets se usan como funciones básicas para representar otras
funciones tal y como se hace con las funciones seno y coseno en la
transformada de Fourier. A diferencia de la transformada de Fourier,
en el análisis con wavelets no se asume que los datos sean periódicos,
por lo tanto es posible estudiar datos no periódicos utilizando muchas
menos funciones wavelets básicas que las que se necesitarı́an si se
utilizaran funciones seno y coseno para alcanzar una aproximación
adecuada de la forma funcional.
El análisis con wavelets permite definir una función prototipo o wavelet
madre que no siempre es la misma, es decir, las funciones base no
siempre son iguales a diferencia de lo que ocurre en la transformada
de Fourier, donde las funciones base son siempre el seno y el coseno.
Las wavelets madre se pueden diseñar dependiendo de los gustos y
1
Φi = (φj (tik ))mi ×p
14 Estimación penalizada con datos funcionales

las necesidades del diseñador, siempre y cuando cumplan algunas nor-


mas.
Se considera una función wavelet madre (mother wavelet), ψ, consi-
derándose las dilataciones y las translaciones de la forma
¡ ¢
ψkj (t) = 2k/2 ψ 2k t − j

con j y k enteros. Se construye la wavelet madre para asegurar que


la base es ortogonal, en el sentido de que la integral del producto de
cualesquiera dos funciones base distintas es cero.
La expansión wavelet de una función f proporciona un análisis de
multiresolución en el sentido de que los coeficientes de ψkj dan infor-
mación sobre f próxima a la posición 2−k j sobre la escala 2−k , esto
es, en frecuencias próximas a c2k , para alguna constante c.
Supongamos una función xi , i = 1, . . . , n, observada sin error en nodos
igualmente espaciados en el intervalo T . Igual que con la transforma-
da de Fourier, hay una transformación wavelet discreta (DWT) que
proporciona mi coeficientes estrechamente relacionados con los coefi-
cientes de la función xi . Ası́, podemos calcular la DWT y su inversa en
O (mi ) operaciones. Si suponemos que las observaciones de xi están
sujetas a un ruido, el hecho de que muchas clases de funciones tengan
expansiones wavelet económicas conduce a una simple aproximación
suave no lineal.

4. Bases de potencias y exponenciales


Los sistemas de base exponencial consisten en una serie de funciones
exponenciales,

eλ1 t , eλ2 t , . . . , eλj t , . . . j = 1, 2, . . .

donde, los parámetros λj son todos distintos, y a menudo λ1 = 0.


Las ecuaciones diferenciales lineales con coeficientes constantes tienen
como soluciones, expansiones en términos de bases exponenciales.
Las bases de potencias

tλ1 , tλ1 , . . . , tλj , . . . j = 1, 2, . . .

son importantes cuando t es estrictamente positivo, para que las po-


tencias negativas sean posibles.
Obtención de la forma funcional 15

5. Bases polinomiales
Sea una base polinomial

φj (tik ) = (tik − ω)j , j = 0, . . . , p, i = 1, . . . , n.

donde, p es el número de funciones base, n el número de observa-


ciones funcionales y ω es un parámetro que normalmente se elige en
el centro del intervalo de aproximación. Dicho parámetro se puede
tomar cuidadosamente pera evitar el error de redondeo en las com-
putaciones, ya que los valores están más altamente correlados cuando
el grado incrementa. Sin embargo, si los tik están igualmente espa-
ciados o se pueden elegir para mostrar algunos patrones estándar, las
extensiones polinomiales ortogonales se pueden obtener implementan-
do O ((mi + g) p) operaciones, llamando g al grado del polinomio.

6. Base de funciones constantes


Las trayectorias de procesos puntuales y de recuento son constantes
en intervalos aleatorios definidos por los instantes en los que se pro-
ducen nuevas llegadas. La base adecuada para reconstruir las fun-
ciones muestrales de este tipo de procesos es la base ortogonal de
funciones constantes sobre los intervalos de una partición fijada.
Dada una partición del intervalo de observación T definida por los
nodos 0 = a0 < a1 < . . . < ap , una base ortonormal del subes-
pacio de las funciones constantes sobre cada uno de los intervalos
(aj−1 , aj ] (j = 1, . . . , p) está definida como

δj (t) = (aj − aj−1 )−1/2 Ij (t),

donde Ij (t) es la función indicadora en el intervalo (tj−1 , tj ] que toma


el valor uno en dicho intervalo y el valor cero fuera de él.
16 Estimación penalizada con datos funcionales
Capı́tulo 3

Estimación aproximada de los


coeficientes básicos

Existen diferentes formas de aproximar los coeficientes básicos depen-


diendo del tipo de observaciones con que estemos trabajando.
Si el predictor funcional es observado con error

xik = xi (tik ) + εik k = 0, . . . , mi , , i = 1, . . . , n,

podemos utilizar una aproximación suave, como la aproximación de mı́ni-


mos cuadrados, después de elegir funciones base adecuadas.
Si consideramos que las curvas muestrales son observadas sin error

xik = xi (tik ) k = 0, . . . , mi , , i = 1, . . . , n,

utilizarı́amos algún método de interpolación, como por ejemplo la interpo-


lación Spline Cúbica.
Ambos métodos, suavizado e interpolación, nos permiten obtener la
forma funcional de trayectorias muestrales mediante la aproximación de
coeficientes base {aij } a partir de observaciones de las curvas muestrales en
tiempo discreto.

3.1. Interpolación Spline Cúbica con base de


B-splines
Las funciones base B-splines son muy usadas en la práctica dado su
buen comportamiento local.

17
18 Estimación penalizada con datos funcionales

Consideremos los mismos tiempos de observación t0 < . . . < tm para


todas las trayectorias muestrales (mi = m, ∀i). Entonces, la función spline
cúbico que interpola a cada una de las trayectorias muestrales xi (t) sobre
los nodos de observación, se puede expresar en términos de la base de B-
splines cúbicos {B−1 (t) , B0 (t) , . . . , Bm+1 (t)} en la forma
m+1
X
xi (t) = aij Bj (t) ,
j=−1

donde los coeficientes base se obtienen resolviendo el siguiente sistema de


ecuaciones lineal
m+1
X
xik = xi (tk ) = aij Bj (tk ) , k = 0, . . . , m. (3.1)
j=−1

Este es un sistema con (m + 1) ecuaciones y (m + 3) incógnitas, luego hay


que imponer dos condiciones adicionales para resolverlo. Dependiendo de
las condiciones que se impongan, la interpolación spline cúbica recibe dis-
tintos nombres. La más usada es la interpolación spline cúbica natural, la
cual impone que la segunda derivada del spline de interpolación sea cero
en los nodos extremos t0 y tm . En Aguilera et al (1996) se usa esta in-
terpolación para la estimación del Análisis de Componentes Principales
Funcional (ACPF) de un conjunto de funciones muestrales.
Si consideramos todas las trayectorias muestrales x1 (t) , . . . , xn (t) ob-
servadas en los nodos t0 , . . . , tm , el sistema lineal (3.1) nos lleva a XI = AB 0
donde A es una matriz cuyas filas son los coeficientes base de cada una de
las trayectorias muestrales xi (t) , XI = (0 | X | 0) con 0 = (0, . . . , 0)0 y
Xn×(m+1) = (xi (tk )) , i = 1, . . . , n, k = 0, . . . , m, con B definido por
 2) 2) 2) 
B−1 (t0 ) B0 (t0 ) · · · Bm+1 (t0 )
 B−1 (t0 ) B0 (t0 ) · · · Bm+1 (t0 ) 
 
B=
 ··· ··· ··· ··· 

 B−1 (tm ) B0 (tm ) · · · Bm+1 (tm ) 
2) 2) 2)
B−1 (tm ) B0 (tm ) · · · Bm+1 (tm ) (m+3)×(m+3)

2)
siendo Bj (t) la segunda derivada del j-ésimo B-spline en el tiempo t. Re-
solviendo esta ecuación matricial obtenemos la matriz A de coeficientes
base para todas las trayectorias muestrales, dada por A = XI (B 0 )−1 .
Estimación aproximada de los coeficientes básicos 19

Otro tipo de interpolación spline cúbica es la interpolación spline cúbi-


ca quasi-natural que utiliza valores generados uniformemente (próximos a
cero) como condiciones lı́mite. En este caso, la matriz de interpolación es
XI = (u1 | X | u2 ) con u1 y u2 vectores de valores uniformemente genera-
dos en el intervalo [0, 1]. Este tipo de interpolación ha sido introducida en
Escabias et al. (2005) para la estimación del modelo de regresión logı́stica
funcional.

3.2. Proyección ortogonal


Otra aproximación suave para estimar los coeficientes básicos consiste
en aproximar cada curva muestral por su proyección ortogonal sobre el
subespacio de L2 (T ) generado por una base ortonormal {φ1 (t) , . . . , φp (t)} .
La proyección ortonormal de cada curva muestral xi (t) en este subespa-
cio p-dimensional viene dado por
p ·Z ¸
X
Pp (xi (t)) = xi (t)φj (t)dt φj (t) i = 1, . . . , n j = 1, . . . , p.
j=1 T

El problema es estimar los coeficientes base


Z
aij = xi (t)φj (t)dt
T

a partir de observaciones en tiempo discreto de las trayectorias muestrales.


Una posible solución para calcular de forma aproximada estas integrales
consiste en aplicar métodos de cuadratura compuesta, como el método de
integración de Romberg. Para aplicar este método es necesario aproximar
los valores de las funciones muestrales en particiones cada vez más finas del
intervalo de observación. Estos valores pueden ser aproximados mediante
interpolación spline cúbica natural (Aguilera et al., 1995).

3.3. Aproximación de mı́nimos cuadrados


Nuestro objetivo es ajustar una curva a las observaciones discretas xik ,
con i = 1, . . . , n y k = 0, . . . , mi , usando el modelo

xik = xi (tik ) + εik


20 Estimación penalizada con datos funcionales

y una expansión en términos de funciones básicas para xi (tik ) dada por


p
X
xi (tik ) = aij φj (tik ) ,
j=1

en forma matricial
xi (tik ) = a0i φ (tik ) ,
donde ai = (ai1 , . . . , aip )0 y φ (t) = (φ1 (t) , . . . , φp (t))0 .
Como consecuencia y considerando

Φi = (φj (tik ))mi ×p

y
xi = (xi1 , xi2 , . . . , ximi )0 ,
los valores estimados por el modelo en los nodos de observación serán de la
forma
xi = Φai .
Los coeficientes de la expansión básica, aij , se determinan por el criterio
de mı́nimos cuadrados, y en forma matricial se tiene que

ECM (xi p ai ) = (xi − Φi ai )0 (xi − Φi ai ) . (3.2)

Derivando la ecuación (3.2) respecto a ai se tiene la ecuación

2Φi Φ0i ai − 2Φ0i xi = 0. (3.3)

De este modo, el estimador de ai que minimiza el error de mı́nimos cuadra-


dos es
−1
âi = (Φ0i Φi ) Φ0i xi . (3.4)
Los valores ajustados en los nodos de observación son
−1
x̂i = Φi âi = Φi (Φ0i Φi ) Φ0i xi .

Y la curva ajusta es
x̂i (t) = â0i φ (t) .
La aproximación por mı́nimos cuadrados es adecuada cuando asumimos
que los residuos sobre la verdadera curva son independientes e igualmente
distribuidos con media cero y varianza constante.
Estimación aproximada de los coeficientes básicos 21

3.3.1. Ajuste por mı́nimos cuadrados ponderados


Cuando tratamos con errores no estacionarios y/o autocorrelados, de-
berı́amos aportar un peso diferente a los distintos residuos. Ello se consigue
extendiendo el criterio de mı́nimos cuadrados de la forma

ECM (xi p ai ) = (xi − Φi ai )0 W (xi − Φi ai ) , (3.5)

donde W es una matriz simétrica, definida positiva. Si la matriz de varianzas-


covarianzas Σe es conocida, entonces

W = Σ−1
e .

En aplicaciones donde no es factible estimar Σe , se asume que las cova-


rianzas entre errores son cero, y en ese caso, W , preferiblemente, es diagonal
con recı́procos de la varianza del error asociadas con las xik en la diagonal.
De este modo, el estimador de mı́nimos cuadrados ponderados para los
coeficientes ai es
−1
âi = (Φ0i W Φi ) Φ0i W xi . (3.6)

3.3.2. Cómo elegir el número de funciones base


La literatura sobre regresión múltiple presenta muchas ideas para de-
cidir el número de funciones base a utilizar. Por ejemplo el método de
selección de variables stepwise. Este u otro método similar se puede usar
en este caso, pero siempre teniendo en cuenta sus limitaciones.
Cuando se suaviza una curva, la cantidad total de información de la que
se dispone no sirve para mucho más que para estimar una varianza con-
stante σ 2 , asumiendo un modelo estándar con error, o una función varianza
con valores σ 2 (t), con leves variaciones sobre t.
Asumiendo un modelo estándar con error, es más adecuado utilizar un
estimador para la varianza del tipo
m
1 X i

s2 = (xik − x̂ik )2 , i = 1, . . . , n.
n − p k=0

que utilizar el estimador de máxima verosimilitud, el cual implica dividir


por n. Esta estimación se considera en un método más general denomina-
do validación cruzada generalizada, el cual es utilizado en la elección del
parámetro de suavizado.
22 Estimación penalizada con datos funcionales

Un posible método para elegir p, el número de funciones base adecua-


do, es añadir funciones base hasta que el valor de s2 tienda a disminuir
considerablemente. Hay que destacar la carencia de rigor de esta técnica,
debiendo tener especial cuidado si se emplea, ya que a veces se puede dar
lugar a un sobre-ajuste de los datos si se consideran más funciones base de
las necesarias.

3.4. Mı́nimos cuadrados localizados


Para un método de suavizado, el valor de la función estimada en un pun-
to t puede estar influenciada por las observaciones próximas a t. Este rasgo
es una propiedad implı́cita de los estimadores que hemos considerado hasta
ahora. En este apartado, se consideran estimadores donde la dependencia
local se hace más explı́cita mediante funciones de peso local.
De acuerdo con el dominio del suavizado lineal, el estimador de la fun-
ción x (tik ) es de la forma
mi
X
x (tij ) = wik xik ,
k

de modo que los pesos wik serán relativamente grandes para valores mues-
trales tik próximos al valor fijado tij .
Ahora buscamos métodos de suavizado que hagan explı́cito este prin-
cipio de ponderación localizada. Las ponderaciones wik se construyen me-
diante un cambio de origen y escala de una función núcleo con valores
kern (u) . Esta función kernel está diseñada para tener la mayorı́a de su
masa concentrada próxima a cero, y o decaer rápidamente, o desaparece
por completo para p u p> 1. Algunos de los kernels más usados son

U nif orme : Kern (u) = 0,5 para p u p6 1, 0 en otro caso.

Cuadrático : Kern (u) = 0,75 (1 − u2 ) para p u p6 1, 0 en otro caso.


−1
Gaussiano : Kern (u) = (2π) 2 exp (−u2 /2) .

Si definimos los valores de los pesos o ponderaciones como


µ ¶
tik − tij
wik (t) = Kern , (3.7)
h
Estimación aproximada de los coeficientes básicos 23

se tiene que valores grandes de wik (t) se concentran en los tik próximos a tij .
El grado de concentración se controla mediante el parámetro h (conocido
con el nombre de ancho de ventana bandwidth). Valores pequeños de h
implican que sólo las observaciones cercanas a t (punto en el que se estima)
tiene peso significativo en la estimación.
Para un estudio más detallado de distintos estimadores núcleo ver Ram-
say y Silverman (2005).
24 Estimación penalizada con datos funcionales
Capı́tulo 4

Estimación por mı́nimos


cuadrados penalizados

En la actualidad, las técnicas de suavizado tienen un papel muy rele-


vante debido a la complejidad de los datos con los que se trabaja. Además,
los avances informáticos han reducido el coste computacional que supone
ajustar modelos de suavizado.
En el ajuste de curvas como expansiones básicas por mı́nimos cuadrados
no es fácil controlar el grado de suavidad de la curva ajustada. Por otro lado,
técnicas como el suavizado núcleo (kernel smoothing) y el ajuste polinomial
local (local polynomial fitting) se basan en algoritmos que son simples
modificaciones de técnicas estadı́sticas clásicas. Estos ofrecen un control
continuo de la suavidad de las aproximaciones, pero rara vez son soluciones
óptimas a un problema estadı́stico, como por ejemplo, la minimización del
error cuadrático medio.
En el suavizado con splines hay varios enfoques. Los splines de regresión
(regression splines) estudiados en el capı́tulo anterior se obtienen mediante
el ajuste por mı́nimos cuadrados sin penalizar con base de B-splines. Y los
splines de suavizado (Green y Silverman, 1994) que utilizan tantos parámet-
ros como observaciones y se obtienen penalizando la integral del cuadrado
de la derivada de cierto orden. Este hecho provoca que su implementación
no sea eficiente cuando el número de datos es muy elevado. Los splines de
regresión se pueden ajustar utilizando el método de mı́nimos cuadrados una
vez que se ha seleccionado el número de nodos. Sin embargo, la selección
de los nodos se hace mediante algoritmos bastante complicados.
Recordemos el estimador de mı́nimos cuadrados de los coeficientes de la
expansión básica, âi = (Φ0i Φi )−1 Φ0i xi . Es evidente que las curvas ajustadas

25
26 Estimación penalizada con datos funcionales

usando splines de regresión, x̂i (t) = â0i φ (t), dependen del tamaño de la
base (φ (t)). Cuanto mayor es la base, menos suave es la curva. Cuando
el número de nodos es igual al número de datos se obtiene una curva que
interpola los datos.
En la figura ( 4.1) vemos el efecto que tiene el tamaño de la base en la
curva ajustada.

Splines de regresión

f(t)
5 nodos
15 nodos
2

25 nodos
1
f(t)=cos(2*pi*t)

0
−1
−2

0.0 0.2 0.4 0.6 0.8 1.0

Figura 4.1: Curva ajustada (utilizando splines de regresión) con 5, 15 y


25 nodos básicos. Se parte de 50 datos simulados para la función f (t) =
cos (2 ∗ π ∗ t).

Para solucionar esta situación, O’Sullivan (1986) introdujo una penal-


ización en la segunda derivada de la curva (método de penalización de la
rugosidad o regularización).
Los splines con penalizaciones basadas en diferencias entre coeficientes
adyacentes (a los que denominamos P-splines) combinan lo mejor de am-
bos enfoques: utilizan menos parámetros que los splines de suavizado, pero
la selección de los nodos no es tan determinante como en los splines de
regresión. Los P-splines fueron introducidos por Eilers y Marx (1996), al-
canzando su máxima popularidad en la actualidad (Ruppert et al., 2003).
Dentro de los usuarios de P-splines hay dos variantes: los que utilizan
Estimación por mı́nimos cuadrados penalizados 27

las bases de polinomios truncados y los que utilizan los B-splines. De ahora
en adelante, y al igual que en el ajuste sin penalización, nos centraremos
en los últimos.
A continuación se enumeran algunas de las razones por las que utilizar
los P-splines:

1. Son splines de rango bajo, es decir, el tamaño de la base utilizada


es mucho menor que la dimensión de los datos. Esto contrasta con
lo que ocurre con los splines de suavizado, donde hay tantos nodos
como datos, lo que provoca que haya que trabajar con matrices de
grandes dimensiones. En el caso de los P-splines, el número de nodos
no supera los 40, con lo cual son computacionalmente eficientes, sobre
todo si se trabaja con gran cantidad de datos.

2. La introducción de penalizaciones relaja la importancia de la elección


del número y la localización de los nodos (Rice y Wu, 2001).

3. La correspondencia entre los P-splines y el BLUP (mejor predictor


lineal e insesgado) en un modelo mixto permite, en algunos casos,
utilizar la metodologı́a existente en el campo de los modelos mixtos y
el uso de software estadı́stico como la librerı́a nlme en S-PLUS y R.

4.1. Penalización de la suavidad


La integral de la segunda derivada de la curva ajustada xi (t) = a0i φ (t) al
cuadrado en un instante t, [D2 xi (t)]2 , es una penalización bastante común
(es la que se utiliza en los splines de suavizado), y es considerada como la
curvatura de dicha función en t. Sin embargo, no hay nada de particular
en la segunda derivada, se pueden utilizar derivadas de cualquier orden.
Con objeto de cuantificar la suavidad (roughness) de cada una de las
curvas, xi (t), se define la función
Z Z
P ENm (xi ) = [D xi (s)] ds = [Dm a0i φ (s)]2 ds
m 2

Z
= a0i Dm φ (s) Dm φ0 (s) ai ds
Z
= a0i [ Dm φ (s) Dm φ0 (s) ds]ai
28 Estimación penalizada con datos funcionales

= a0i Rai , (4.1)

donde R es una matriz que contiene integrales de productos externos de


vectores de funciones, y se define como
Z
R= Dm φ (s) Dm φ (s)0 ds. (4.2)

con φ (s) = (φ1 (s) , . . . , φp (s))0 .


A la hora de calcular la matriz R se suele aproximar la integral, dada
en (4.2), por fórmulas de cuadratura numérica, aunque si se utilizan bases
de B-splines y bases de fourier se pueden obtener expresiones exactas. La
precisión a la hora de aproximar es muy importante. Una muestra de ello es
que si reemplazamos R por una matriz de operadores de diferencia de orden
m aplicados a sus propios coeficientes, parece funcionar tan bien como una
técnica de suavizado para puntos muestrales igualmente espaciados (Eilers
y Marx, 1996).
Del mismo modo que en el caso de la estimación por mı́nimos cuadra-
dos sin penalizar, podemos utilizar bases de B-splines, bases de fourier,
wavelets, etc. En la práctica, cuando apliquemos la penalización de la ru-
gosidad vamos a trabajar con bases de B-splines. El planteamiento que se
presenta a continuación motiva y corrobora esta decisión.
Considérese la función xi con la única condición de que la integral de la
derivada de segundo orden al cuadrado es finita. Además, se asume que los
puntos muestrales {tik k = 0, . . . , mi } son distintos. La cuestión que nos
planteamos es encontrar la función minimiza el error de mı́nimos cuadrados
penalizado

ECM P ENλi (x|xi ) = (xi − wi )0 (xi − wi )2 + λi P EN2 (x)

donde wi = (wi1 , . . . , wimi ) es el vector que resulta de evaluar wik = xi (tik ).


Un teorema que podemos encontrar en de Boor (2002) llega a la con-
clusión de que la curva xi que minimiza la ecuación de mı́nimos cuadrados
penalizados es un spline cúbico cuyos nodos coinciden con los puntos tik .
Esto justifica que la técnica computacional más común dentro de los
splines de suavizado es utilizar expansiones de funciones básicas de B-
splines de orden 4. (B-splines cúbicos).
Estimación por mı́nimos cuadrados penalizados 29

4.2. Spline de suavizado


Asumiendo una representación básica de cada curva muestral en térmi-
nos de B-splines, el spline de suavizado se obtiene minimizando la siguiente
función objetivo:

ECM P ENm (xi , λi |ai ) = (xi − Φi ai )0 (xi − Φi ai ) + λi a0i Rai . (4.3)

Tomando la derivada con respecto al vector de parámetros ai , tenemos

−2Φ0i xi + 2Φ0i Φi ai + 2λi Rai = 0,

A partir de lo cual se obtiene la expresión del vector de coeficientes


estimados
−1
âi = (Φ0i Φi + λi R) Φ0i xi (4.4)
La aportación de O’Sullivan (1986) no es más que reducir lo anterior al
caso en que m = 2, de modo que

Z
0
ECM P EN2 (xi , λi |ai ) = (xi − Φi ai ) (xi − Φi ai )+λi a0i ( D2 φ (s) D2 φ0 (s) ds)ai ,
(4.5)
y el vector de coeficientes estimados es
µ Z ¶−1
0 2 2 0
âi = Φi Φi + λi ( D φ (s) D φ (s) ds) Φ0i xi (4.6)

A continuación abordaremos el problema de suavizado spline como un


problema de mı́nimos cuadrados generalizados. Es decir, la expresión ( 4.3)
se puede expresar como un problema de mı́nimos cuadrados generalizados.
En primer lugar, dado que R es una matriz semidefinida positiva, debido a
su estructura de producto cruzado, se puede expresar como

R = L0 L

aplicando la descomposición de Choleski, entre otras posibles.


Consideremos ahora

· ¸
x
x̃i = i
0
30 Estimación penalizada con datos funcionales

donde el vector 0 tiene la misma longitud que ai . Ası́, podemos igualar este
vector respuesta generalizado con la matriz de diseño generalizada

· ¸
Φ
Φ̃i = √ i
λi L

Finalmente, expresamos la matriz de pesos W con la matriz identidad I


sobre la diagonal y ceros en el resto para conseguir la matriz de pesos
generalizada W̃ .
Ahora, podemos expresar el vector de coeficientes ai utilizando la pena-
lización de la rugosidad como solución del problema de mı́nimos cuadrados
ponderados
³ ´0 ³ ´
ECM (x̃i |ai ) = x̃i − Φ̃i ai W̃ x̃i − Φ̃i ai (4.7)

En definitiva, hemos convertido un problema de penalización de la ru-


gosidad en un problema de mı́nimos cuadrados, donde los xi se han √ am-
pliado con un vector de ceros, con matriz de diseño generalizada λi L.
Es preferible usar la descomposición QR para minimizar (4.7), en lugar de
usar (4.4) directamente, desde el punto de vista del error de redondeo en
el cálculo de ai .

4.3. P-splines
La novedad que introducen los P-splines es que la penalización es discre-
ta y que se penalizan los coeficientes básicos de las curvas directamente, en
lugar de penalizar la curva, lo que reduce la dimensionalidad del problema.
El tipo de penalización depende del tipo de base que se utilice. Eilers y
Marx (1996) utilizan una penalización basada en las diferencias de orden d
entre los coeficientes adyacentes de la base de B-splines. Este tipo de pe-
nalización es más flexible, ya que es independiente del grado del polinomio
utilizado para construir los B-splines. Además, es una buena aproximación
discreta de la integral de la d-ésima derivada al cuadrado. La penalización
se añade a la función de mı́nimos cuadrados, dando lugar a una función de
mı́nimos cuadrados penalizados

S (xi , λi |ai ) = (xi − Φi ai )0 (xi − Φi ai ) + λi a0i Pd ai ,


Estimación por mı́nimos cuadrados penalizados 31

cuya solución es
−1
âi = (Φ0i Φi + λi Pd ) Φ0i xi , (4.8)
¡ ¢0
con Pd = 4d 4d . Si d = 0 obtenemos una penalización ridge.
En general, se utiliza d = 2, aunque se pueden utilizar órdenes superiores
o inferiores, dependiendo de la variabiliad de la curva y de la cantidad de
ruido en los datos. Una penalización de orden dos equivale a

(ai1 − 2ai2 + ai3 )2 + · · · + (aip−2 − 2aip−1 + aip )2 = a0i D0 Dai

donde

 
1 −2 1 0 ···
0 1 −2 1 · · ·
 
D = 0 0 1 −2 · · ·
 
.. .. .. .. . .
. . . . .

En la Figura (4.2) se muestran los ajustes de una curva mediante B-


splines, sin penalización y con penalización los (mediante splines de suaviza-
do y P-splines). Para el ajuste con Splines de regresión podemos ver como
el patrón errático de los coeficientes da lugar a una curva poco suave. En
cambio, en el ajuste con P-splines, cuando se impone a los coeficientes
que se pase de uno a otro de forma suave, la curva resultante también es
suave. En este caso, podemos apreciar, que dada la igualdad de parámetros
(número de nodos y λi , este último en el caso de penalización) el P-spline
da lugar a una curva más suave que el Spline de suavizado.
En las propiedades de los P-splines con bases de B-splines hay que
destacar que no padecen de efecto frontera. El efecto frontera es el que hace
que al extender la curva fuera del dominio de x la curva decrezca rápida-
mente hacia 0. Además los P-splines ajustan de forma exacta los polinomios,
es decir, si la curva es polinómica, un P-spline la recuperará exactamente.
Por último, se conservan los momentos, es decir, que la media y la varianza
de los valores ajustados es la misma que la de los datos, sea cual sea el
parámetro de suavizado.
La selección y localización de los nodos no está hecha de antemano,
como en el caso de los splines de suavizado (smoothing splines). Si se elige
un número de nodos suficientemente grande basta con elegirlos de forma
equidistante.
32 Estimación penalizada con datos funcionales

Diferentes ajustes con 50 observaciones

f(t)
Splines de regresión
2

Splines de suavizado
P−splines
1
f(t)=cos(2*pi*t)

0
−1
−2

0.0 0.2 0.4 0.6 0.8 1.0

Figura 4.2: Curva ajustada sin penalización (mediante un Spline de Regre-


sión), penalizando la curva (mediante Splines de suavizado) y penalizando
los coeficientes (mediante P-splines), utilizando 5 nodos para las bases de
B-splines. Para la penalización se ha considerado λ = 1. (Se parte de 50
datos simulados para la función f (t) = cos (2 ∗ π ∗ t).)

4.3.1. P-splines como modelos mixtos


La gran revolución de los P-splines producida en los últimos años se
debe en gran parte a la posibilidad de escribir un modelo no paramétrico o
semiparamétrico como un modelo mixto (o modelo con efectos aleatorios).
La ventaja que tiene utilizar este enfoque es doble. Por un lado, se puede
utilizar todo la metodologı́a desarrollada para los modelos mixtos, y por
otro, es posible utilizar el software para modelos mixtos que está disponible
en la mayorı́a de los paquetes estadı́sticos.
Las primeras relaciones entre regresión no paramétrica y modelos mixtos
se remonta a principios de los 90 (Speed, 1991). Autores como Brumback
Estimación por mı́nimos cuadrados penalizados 33

y Rice (1998) y Verbyla et al (1999) desarrollaron con más profundidad


el tema del suavizado con modelos mixtos (en el contexto de los splines
cúbicos) y más tarde Wand (2003) en el contexto de los P-splines con poli-
nomios truncados como bases. Sin embargo, no se habı́a intentado buscar
una representación de los P-splines con bases de B-splines como modelos
mixtos, lo cual, entre otras cosas, darı́a lugar a bases más estables.
El interés de los P-splines como modelos mixtos nace por los proble-
mas de identificación del modelo que presentaban los modelos aditivos de
suavizado. El uso de P-splines hace que no sea necesario un método itera-
tivo (como el backfitting algorithm) para la estimación de las curvas. Sin
embargo, es necesario modificar las bases de forma que una curva se pueda
descomponer como suma de un componente polinómico (del mismo orden
que la penalización) y otro no polinómico. Es decir, dado el modelo
¡ ¢
xi = ai Φi + ²i ²i ∼ N 0, σi2 I

se puede reformular como


¡ ¢
xi = Xi βi + Zi ui + ²i , ui ∼ N 0, σu2i Ip−2 ,

con p el número de columnas de la base original Φi .


Si utilizamos como bases los B-splines, Xi y Zi tendrán la siguiente
forma
Xi = [1 : ti ] , Zi = φi U Σ1/2
donde U y Σ son matrices que forman parte de la descomposición en valores
singulares de la matriz de penalización P = D0 D, es decir, D0 D = U ΣU 0
El parámetro de suavizado es λi = σi2 /σu2i . Utilizando el modelo mixto es
posible estimar el parámetro de suavizado junto con el resto de parámetros
del modelo, en lugar de emplear los criterios comentados en el apartado
4.4.
El método estándar para la estimación de las componentes de varian-
za en modelos mixtos es el método de máxima verosimilitud restringida
(REML)

¡ ¢
`R σu2i , σε2i =
1 1 ³ ¡ ¢−1 0 −1 ´
= − log |Xi0 Vi−1 Xi | − x0i Vi−1 − Vi−1 Xi Xi0 Vi−1 Xi Xi Vi xi ,
2 2
donde Vi = σu2i Zi Zi0 + σi2 I.
34 Estimación penalizada con datos funcionales

El vector de parámetros βi y el vector de coeficientes aleatorios ui se


estiman como
³ ´−1
0 −1
β̂i = Xi V̂i Xi Xi0 V̂i−1 xi
³ ´
ûi = σ̂u2i Zi0 V̂i−1 xi − Xi β̂i ,

donde
1 ³ ¡ 0 ¡ 2 2¢ ¢−1 0 ´
V̂i−1 = 2 I − Zi Zi Zi σ̂i /σ̂ui Ip−2 Zi .
σi

4.4. Selección del parámetro de suavizado


El papel del parámetro de suavizado en los P-splines es el mismo que
tiene cualquier otro método de suavizado: controlar la suavidad de la curva.
Los P-splines penalizan los coeficientes que están muy separados entre sı́.
Cuanto mayor el λi , más se aproximan los coeficientes a cero de modo
que si λi → ∞ obtenemos un ajuste polinómico. Por el contrario, cuando
λi → 0 estaremos utilizando mı́nimos cuadrados ordinarios y por tanto
nos aproximamos a un ajuste lineal. El la figura (4.3) se muestran curvas
ajustadas usando diversos valores del parámetro de suavizado.
En los criterios disponibles para elegir λi se encuentran los criterios
clásicos de selección de modelos como el AIC o criterio de información de
Akaike (Akaike information criterium), CV o criterio de validación cruza-
da (cross validation), GCV o criterio de validación cruzada generalizado
(genelalized cross validation).
El método de validación cruzada (leave one out) consiste en seleccionar,
para cada curva, el parámetro de suavizado λi que minimiza la expresión
mi ³
X ´2
−k)
ECM CV (λi ) = xik − x̂ik
k=0

−k)
donde x̂ik son los valores de la i-ésima trayectoria muestral estimados en
el instante de tiempo tik siguiendo los siguientes pasos

Se extrae el primer nodo de observación xi0 = xi (ti1 ) y se ajusta la


curva, x̂i (t), con los mi nodos restantes.
−1)
A continuación, se obtiene x̂i0 = x̂i (ti0 ).
Estimación por mı́nimos cuadrados penalizados 35

P−splines con diferentes lambdas

2
1
f(t)=cos(2*pi*t)

0
−1

f(t)
lamba=0.005
−2

lamba=5
lamba=50
lamba=300
−3

lamba=3000

0.0 0.2 0.4 0.6 0.8 1.0

Figura 4.3: Curva estimada mediante P-splines para distintos valores de λi .


(Se parte de datos simulados para la función f (t) = cos (2 ∗ π ∗ t)).

Se repite el procedimiento con las mi observaciones restantes de ma-


−k)
nera, que se obtienen todas las xik , con k = 0, . . . , mi .

Este método presenta varios problemas. El primero es que para grandes


volúmenes de datos, supone un gran coste computacional. El segundo es
que minimizando CV podemos provocar un sobre suavizado de los datos.
La medida GCV (genelalized cross validation) es muy utilizada en la
literatura sobre splines de suavizado. Fue desarrollada por Craven y Wahba
(1979). Se ha comprobado que es más efectiva que la validación cruzada,
ya que presenta menor tendencia al sobre suavizado.
Para el caso de un suavizado spline se tiene que

mi −1 ECM
GCV (λi ) =
[mi −1 traza (I − Sφ,λi )]2

donde Sφi ,λi = Φi (Φ0i Φi + λi R)−1 Φ0i , R viene dada por la expresión (4.2) y
36 Estimación penalizada con datos funcionales

ECM es el error cuadrático medio definido por


mi
X
ECM = (xik − x̂ik )2 = kxi − Φi âi k2 .
k=0

Puede resultar más interpretable usar la siguiente expresión equivalente


µ ¶µ ¶
mi ECM
GCV (λi ) = ,
mi − df (λi ) mi − df (λi )

donde df (λi ) = traza(Sφ,λi ).


Observemos que en el caso de errores Gaussianos, de forma análoga al
modelo de regresión lineal, la varianza residual se estima en la forma

kxi − Φi âi k2
σ̂i2 = ,
mi − df (λi )

aunque este estimador no es insesgado, ya que depende del sesgo introduci-


do por el suavizado.
Si se trabaja con P-splines, se tiene que df (λi ) = traza(Hi ) con Hi dada
por
−1
Hi = Φi (Φ0i Φi + λi Pd ) Φ0i , (4.9)
¡ d ¢0 d
con Pd = 4 4 .
Los criterios de validación cruzada no tienen en cuenta la dimensiona-
lidad del modelo y a veces seleccionan valores de λi que dan lugar a curvas
más suaves de lo que deberı́an. La ventaja de los P-splines respecto de otro
tipo de suavizadores es que es mucho más rápido el cálculo de la traza de
Hi .
Finalmente, el criterio de información de Akaike, consiste en elegir para
cada curva el valor de λi que minimice la siguiente expresión para los P-
splines
Ãm !
X i

AIC = 2log (xik − x̂ik )2 − 2 log (mi ) + 2 log (traza (Hi ))


k=0

donde
−1
Hi = Φi (Φ0i Φi + λi Pd ) Φ0i .
Para los splines de suavizado la matriz Hi se sustituye por la matriz Sφ,λi .
Capı́tulo 5

Aplicaciones con R

Uno de los objetivos de este trabajo es la implementación en el entorno


de programación R de todos los métodos de suavizado con bases de B-
splines estudiados. Para ilustrar el comportamiento de cada uno de ellos
en la práctica se ha desarrollado un estudio de simulación y una aplicación
con datos reales.

5.1. Ejemplo simulado


El objetivo de este estudio de simulación es aproximar la función

x (t) = cos (2 ∗ π ∗ t)

a partir de observaciones discretas contaminadas por un ruido gaussiano.


En primer lugar, se ha recurrido a la simulación de m (Caso I con
m=150 y Caso II con m=50) observaciones comprendidas en el intervalo
[0,1] (rango fijo de valores de t). A continuación se evalua la función f (t)
en cada uno de esos valores y se les suma a cada uno de ellos un error
(valor simulado de una Normal(0,1)). De este modo se han generado las
observaciones correspondientes a una trayectoria muestral. El proceso se
repite n = 100 veces con la intención de obtener una muestra de 100 datos
funcionales. Por lo tanto, los datos simulados son de ls forma

xik = x(tk ) + ²ik k = 1, . . . , m; i = 1, . . . , 100,

con ²k → N (0, 1).

37
38 Estimación penalizada con datos funcionales

En principio se va a estudiar una sola curva. Posteriormente, se verá el


comportamiento de las curvas medias ajustadas y el error cuadrático-medio
(ECM) de las mismas respecto de los nodos de observación..
Comenzamos con el ajuste de la curva correspondiente a una trayectoria
muestral mediante una expansión básica, tomando como base los B-splines.
Paralelamente se realiza el ajuste de la curva utilizando Splines de regresión,
Splines de suavizado, P-splines y P-splines como modelos mixtos. Se toman
diferentes número de nodos básicos con objeto de ver el comportamiento
de las curvas.
Para el ajuste de Splines de regresión se ha implementado una función en
R partiendo de la fórmula de de Boor(2001) para el cálculo de los B-splines.
Del mismo modo se ha procedido para el ajuste con P-splines. Para estos
últimos ha sido necesario implementar el método de validación cruzada
(cross validation: leave-one-out) que nos informara del valor λi idóneo (en
el sentido de que minimiza el ECMCV de la curva) para la penalización de la
curva (la tabla con los ECMCV obtenidos se pueden ver en el fichero Cross-
Validation ejemplo.txt del CD adjunto a este trabajo de investigación). En
el ajuste de Splines de suavizado se ha empleado una función disponible
en las librerı́as de R, llamada smooth.splines. Esta función internamente
ejecuta una validación cruzada generalizada, la cual aporta el parámetro
λ más adecuado para dicho ajuste. Para el ajuste de curvas mediante P-
splines como modelos mixtos, se han utilizado herramientas sobre modelos
mixtos disponibles en la librerı́a ”nlme”de R. El código R de las funciones
implementadas figura en el Anexo de este trabajo de investigación.
A continuación se presentan los resultados obtenidos para m = 150 y
para m = 50.

5.1.1. Caso I (150 nodos de observación)


En la figura (5.1) se representan las curvas obtenidas por cada método
y para diferentes número de nodos de la base de B-splines. Es evidente que
los métodos de penalización mejoran el ajuste. Como se puede observar, el
ajuste mediante P-splines como modelos mixtos es muy preciso, indepen-
dientemente del número de nodos básicos utilizados.
Para poder comparar de una forma más completa las diferentes metodolo-
gı́as, se han calculado las curvas medias ajustadas por cada método con 5
nodos básicos, considerando el mismo λi para todas las curvas. (lambda = 2
Aplicaciones con R 39

Splines de regresión Splines de suavizado


3

3
f(t) f(t)
5 nodos 5 nodos y lambda=0.01
15 nodos y lambda=0.013
2

2
15 nodos
25 nodos 25 nodos y lambda=0.013
1

1
f(t)=cos(2*pi*t)

f(t)=cos(2*pi*t)
0

0
−1

−1
−2

−2
−3

−3
−4

−4
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0

t t

P−splines P−splines con Modelos mixtos


4
3

f(t) f(t)
5 nodos y lambda=2 5 nodos
15 nodos y lambda=0.70
2

15 nodos
25 nodos y lambda=1.20 25 nodos
2
1
f(t)=cos(2*pi*t)

f(t)=cos(2*pi*t)
0

0
−1
−2

−2
−3
−4

0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0

t t

Figura 5.1: Caso I (m=150). Curva ajustada mediante Splines de regresión,


Splines de suavizado, P-splines y P-splines como modelos mixtos, para los
distintos número de nodos de la base (5, 15, 25) y diferentes valores de λi .
40 Estimación penalizada con datos funcionales

Splines de regresión Splines de suavizado

f(t) f(t)
5 nodos 5 nodos y lambda=0.004
15 nodos 15 nodos y lambda=0.005
2

2
25 nodos 25 nodos y lambda=0.006
1

1
f(t)=cos(2*pi*t)

f(t)=cos(2*pi*t)
0

0
−1

−1
−2

−2
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0

t t

P−splines P−splines con Modelos mixtos

f(t)
5 nodos y lambda=2 f(t)
15 nodos y lambda=0.10 5 nodos
2

25 nodos y lambda=1.20 15 nodos


25 nodos
1

1
f(t)=cos(2*pi*t)

f(t)=cos(2*pi*t)
0

0
−1

−1
−2

−2

0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0

t t

Figura 5.2: Caso II (m=50). Curva ajustada mediante Splines de regresión,


Splines de suavizado, P-splines y P-splines como modelos mixtos, para los
distintos número de nodos de la base (5, 15, 25) y diferentes valores de λi .
Aplicaciones con R 41

para el caso de los P-splines y lambda = 0,01 en el caso de Splines de


suavizado). En la gráfica (5.3) se representan las curvas medias. Pode-
mos ver que las cuatro curvas medias correspondientes a las diferentes
metodologı́as se aproximan bastante bien a la función x(t) = cos(2 ∗ pi ∗ t).
Sin embargo, si se aumenta el número de nodos básicos el spline de regresión
presenta muchas oscilaciones con respecto a la función original.
También se ha calculado el error cuadrático medio respecto de la función
en los instantes de observación
m
1 X
ECM = (xi (tk ) − x̂i (tk ))2 ,
m k=0
para cada curva y método. En la figura (5.4) se presentan los diferentes
diagramas de cajas y bigotes para estos errores. Se puede ver como las
metodologı́as con Splines de suavizado y P-splines tienen distribuciones
muy similares.

5.1.2. Caso II (50 nodos de observación)


En la figura (5.2) se representan las curvas obtenidas por cada método y
para diferentes número de nodos de la base de B-splines. De una forma más
clara que en el caso anterior, se observa que los métodos de penalización
mejoran el ajuste. El ajuste mediante P-splines como modelos mixtos, en
la lı́nea del caso anterior, es muy preciso, independientemente del número
de nodos básicos utilizados.
Se han calculado las curvas medias ajustadas por cada método con 5
nodos básicos, considerando el mismo λi para todas las curvas. (lambda = 2
para el caso de los P-splines y lambda = 0,004 en el caso de Splines de
suavizado). En la gráfica (5.3) se representan las curvas medias. Podemos
ver que las cuatro curvas medias se aproximan bastante bien a la función
x(t) = cos(2 ∗ pi ∗ t). Si se utiliza un número de nodos básicos mayor que 5
el spline de regresión presenta muchas oscilaciones con respecto a la función
original (ver figura (5.1), gráfico correspondiente a Splines de regresión).
De nuevo se ha calculado el error cuadrático medio respecto de la función
en los instantes de observación para cada curva y método. En la figura (5.4)
se presentan los diferentes diagramas de cajas y bigotes para estos errores.
Las metodologı́as con Splines de suavizado y P-splines tienen distribuciones
muy similares, aunque en este caso, los P-splines presentan una distribución
más adecuada que los Splines de suavizado, en el sentido de que los ECM
son menores.
42 Estimación penalizada con datos funcionales

Funciones medias Funciones medias


1.0

1.0
Curva Media Curva Media
C.Media de Splines Regresión C.Media de Splines Regresión
C.Media Splines de suavizado C.Media Splines de suavizado
C.Media de P−splines C.Media de P−splines
0.5

0.5
C. Media Modelos Mixtos C. Media Modelos Mixtos
f(t)=cos(2*pi*t)

f(t)=cos(2*pi*t)
0.0

0.0
−0.5

−0.5
−1.0

−1.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0

t t

m=150 m= 50
Figura 5.3: Comparación de la función original con las curvas medias de
las curvas ajustadas mediante Splines de regresión, Splines de suavizado, P-
splines y P-splines como modelos mixtos, usando 5 nodos en la construcción
de las bases.

5.2. Suavizado de las curvas de temperat-


uras en Andalucı́a
Se dispone de las temperaturas medias para 13 zonas geográficas de
Andalucı́a, en un periodo de 120 meses. Dado el comportamiento cı́clico de
las mismas, y con objeto de apreciar las diferencias con más claridad, se ha
trabajado con 13 trayectorias muestrales de 24 observaciones cada una.
En primer lugar se trabaja sólo con las observaciones correspondientes
a la zona del Alto Guadalquivir.
En la figura (5.5) se representan las curvas obtenidas por cada método y
para diferentes número de nodos básicos, con bases de B-splines. También
se muestra el gráfico con las funciones medias.
Se ha fijado el número de nodos básicos en 5, y λ = 0,001 para los P-
splines y para los Splines de suavizado se han elegido mediante el procedi-
miento interno de validación cruzada generalizada que contiene la función
smooth.splines. Con ello, se ha trabajado con las 13 curvas, calculando
los errores cuadráticos medios respecto de la función en los instantes de
observación para cada curva y método. En la figura (5.6) se presentan los di-
Aplicaciones con R 43

Diagrama de cajas y bigotes Diagrama de cajas y bigotes


0.35

0.6
0.30

0.5
0.25

0.4
ECM

ECM
0.20

0.3
0.15

0.2
0.10

0.1
0.05

S.Regresión S.Suavizado P−splines Modelos.Mixtos S.Regresión S.Suavizado P−splines Modelos.Mixtos

m=150 m= 50
Figura 5.4: Diagramas de cajas con bigotes para el ECM de las curvas
ajustadas con Splines de regresión, Splines de suavizado, P-splines y P-
splines como modelos mixtos, usando 5 nodos para las bases y λi = 2, 0,01
respectivamente para P-splines y Splines de suavizado.

ferentes diagramas de cajas y bigotes para estos errores. Se puede ver como
las metodologı́as con Splines de regresión y P-splines tienen distribuciones
muy similares. Es de destacar que en esta aplicación los ajustes con splines
de suavizado presentan mayores errores cuadráticos medios.
Finalmente, en la figura (5.7) se presentan las 13 curvas ajustadas me-
diante P-splines como modelos mixtos, para las trayectorias muestrales con
120 observaciones, utilizando 40 nodos para las bases de B-splines.
44 Estimación penalizada con datos funcionales

Splines de regresión Splines de suavizado


40

40
xi(t) xi(t)
5 nodos 5 nodos
15 nodos 15 nodos
20 nodos 20 nodos
30

30
Temperatura

Temperatura
20

20
10

10
0

0
5 10 15 20 5 10 15 20

Mes Mes

P−splines Funciones medias


40

30

xi(t)
xi(t) C.Media de Splines Regresión
5 nodos C.Media Splines de suavizado
15 nodos C.Media de P−splines
20 nodos
30

25
f(t)=cos(2*pi*t)
Temperatura

20

20
10

15
10
0

5 10 15 20 5 10 15 20

Mes t

Figura 5.5: Curva ajustada mediante Splines de regresión, Splines de


suavizado y P-splines para los distintos número de nodos de la base (5,
15, 20) y diferentes valores de λi . El último gráfico corresponde a las curvas
medias para los distintos ajustes.
Aplicaciones con R 45

Diagrama de cajas y bigotes

10.0
9.5
9.0
8.5
ECM

8.0
7.5
7.0
6.5

S.Regresión S.Suavizado P−splines

Figura 5.6: Diagramas de cajas con bigotes para el ECM de las curvas
ajustadas con Splines de regresión, Splines de suavizado y P-splines, usando
5 nodos para las bases y λi = 0,001, 0,000014 respectivamente para P-
splines y Splines de suavizado.

5.3. Conclusiones
El objetivo principal de este trabajo era comprobar la efectividad de
los ajustes con penalización. En la teorı́a se han expuesto diferentes formas
de penalizar motivando su uso en referencia a algunas de sus ventajas. En
los ejemplo simulados, sobre todo en la simulación con 50 observaciones, se
puede ver como mejoran los ajustes cuando utilizamos P-splines, Splines de
suavizado o P-splines como modelos mixtos. En el caso de las temperaturas
para las diferentes zonas geográficas de Andalucı́a, como se observa en la
distribución de los ECM, los splines de regresión parecen hacer un ajuste
adecuado, pero hay que tener en cuenta que las observaciones de temper-
46 Estimación penalizada con datos funcionales

aturas no tienen mucho error y tal vez por eso no sea necesario utilizar
un suavizado. Otra cuestión a tener en cuenta es que dada la periodici-
dad de estos datos, lo más adecuado serı́a trabajar con bases de fourier,
cuestión que se considera para posteriores estudios. No obstante, hay que
destacar que el ajuste de los P-splines como modelos mixtos proporciona
buenos ajustes tanto para los datos simulados como para las observaciones
reales(caso con m = 120). Además, esta forma de ajuste de los P-splines
no depende del número de nodos básicos y selecciona de forma automática
el parámetro de suavizado óptimo.
En conclusión, se comprueba que en los casos en que se dispone de datos
con ruido, el uso de suavizado mejora el ajuste de las curvas. Además, se
han observado mejoras en los ajuste cuando se utilizan las metodologı́as de
ajuste de P-splines, es decir usando una penalización discreta basada en las
diferencias entre los coeficientes básicos adyacentes.
La metodologı́a sobre P-splines como modelos mixtos presenta muchas
ventajas desde el punto de vista computacional. En trabajos como Wen-
sheng, G. (2004) se ha comprobado la efectividad de estos modelos en el
terreno de los datos longitudinales. No obstante, queda como objetivo para
próximos trabajos el estudio de dicha técnica con mayor profundidad.
Aplicaciones con R 47

Modelos Mixtos para 13 zonas geográficas de Andalucía


25
20
Temperatura

15
10
5

0 20 40 60 80 100 120

Mes

Figura 5.7: Suavizado mediante P-splines ajustados como modelos mixtos


con 40 nodos para las 13 curvas de temperaturas estudiadas
48 Estimación penalizada con datos funcionales
Capı́tulo 6

Lı́neas abiertas

Este trabajo ha sido el primer paso para el desarrollo de una Tesis


Doctoral sobre Estimación Penalizada de Modelos para Datos Funcionales
en la que se abordarán principalmente las siguientes lı́neas de investigación:

1. Estimación del ACP funcional mediante penalización de la rugosidad


de los factores principales (ACP funcional regularizado).

2. Estimación penalizada de modelos lineales de regresión funcional.

3. Estimación penalizada de modelos lineales generalizados funcionales,


como por ejemplo los modelos logit funcionales.

4. Implementación computacional con el software estadı́stico R de los


métodos de estimación penalizada estudiados.

5. Aplicaciones con datos reales y simulados. Comparación de resultados


con los métodos de estimación no penalizada.

49
50 Estimación penalizada con datos funcionales
Capı́tulo 7

Referencias bibliográficas

Aguilera, A.M., Ocaña, F.A. y Valderrama, M.J. (1995). Computa-


tional approaches to estimation in the Principal Component Analysis
of a stochastic process. Applied Stochastic Models and Data Analysis,
11, 279-299.

Aguilera A.M., Gutiérrez, R. and Valderrama, M.J. (1996) Approx-


imation of estimators of the PCA of a stochastic process using B-
splines. Communications in Statistics. Simulation and Computation,
25(3), 671-691.

Aguilera, A.M., Ocaña, F.A. y Valderrama, M.J. (1999). Stochastic


modelling for evolution of stock prices by means of functional PCA.
Applied Stochastic Models in Business and Industry, 15(4), 227-234.

Aguilera, A.M., Escabias, M. y Valderrama, M.J. (2008). Discus-


sion of different logistic models with functional data. Application to
Systemic Lupus Erythematosus. Computational Statistics and Data
Analysis, 53(1), 151-163.

Aguilera, A.M., Escabias, M. y Valderrama, M.J. (2008). Forecasting


binary longitudinal data by a functional PC-ARIMA model. Compu-
tational Statistics and Data Analysis, 52(6), 3187-3197.

Bouzas, P.R., Valderrama, M.J., Aguilera, A.M. y Ruiz-Fuentes, N.


(2006). On the structure of the stochastic process of mortgages in
Spain. Computational Statistics, 21(1), 73-89.

51
52 Estimación penalizada con datos funcionales

Brumback, B. y Rice, J. (1998). Smoothing spline models for the anal-


ysis of nested and crossed samples of curves. Journal of the American
Statistical Association, 93, 961-994.
Consejerı́a de Medioambiente (2007). Estadı́stica de climatologı́a medioam-
biental en Andalucı́a.
Craven, P. y wahba, G. (1979) Smoothing noisy data with splines
functions: estimating the correct degree of smoothing by the method
of generalized cross-validation, Numerische Mathematik, 31, 377-403.
De Boor, C. (1977). Package for calculating with B-splines. Journal
of Numerical Analysis, 14, 441-472.
Durban, M. y Dae-Jin, L. (2008). Splines con penalizaciones (P-
Splines). Teorı́a y aplicaciones. Universidad Pública de Navarra.
Eilers, P. y Marx, B. (1996). Flexible smoothing with B-splines and
penalties. Statistical Science, 11, 89-121.
Escabias, M., Aguilera, A. M. y Valderrama, M. J. (2005). Modeling
environmental data by functional principal component logistic regres-
sion. Environmetrics, 16 (1), 95-107.
Ferraty, F. y Vieu, P. (2006). Nonparametric functional data analysis.
Springer-Verlag.
Green, P. y Silverman, B. (1994). Nonparametric regression and gen-
eralized linear models. Monographs on Statistics and applied proba-
bility. Chapman & Hall, London.
Julio, J. M. et al. (2002). La curva spot (cero cupón) estimación con
splines cúbicos suavizados, usos y ejemplos. Banco de la República
de Colombia.
Laird, N. M. y Ware, J. H. (1982). Random-effects models for longi-
tudinal data. Biometrics, 38, 963-974.
OSullivan, F. (1986). A stastical perspective on ill-posed inverse prob-
lems. Statistical Science, 1, 505-527.
Ramsay, J. O. y Silverman, B. W. (1997, 2005). Functional data anal-
ysis (First and Second editions). Springer-Verlag.
Referencias bibliográficas 53

Ramsay, J. O. y Silverman, B. W. (2002). Applied functional data


analysis: Methods and case studies. Springer-Verlag.

Rice, J. A. y Wu, C. O. (2001). Nonparametric mixed effects models


for unequally sampled noisy curves. Biometrics, 57, 253-259.

Ruppert, D., Wand, M. P. y Carroll, R. J. (2003). Semiparametric


Regression. Cambridge Series in Statistical and Probabilistic Mathe-
matics. Cambridge University Press.

Verbyla, A., Cullis, B., Kenward, M. y Welham, S. (1999). The anal-


ysis of designed experiments and longitudinal data using smoothing
splines. Applied Statistics, 48, 269-312.

Wand, M. P. (2003). Smoothing and mixed models. Computational


Statistics, 18, 223-249.

Valderrama, M.J., Ocaña, F.A. y Aguilera, A.M. (2009). Forecasting


Pollen Concentration by a Two-Step Functional Model. Biometrics,
en prensa (DOI: 10.1111/j.1541-0420.2009.01293.x).

Wensheng, G. (2004). Functional data analysis in longitudinal set-


tings using smoothing splines. Statistical Methods in Medical Re-
search.
54 Estimación penalizada con datos funcionales
Capı́tulo 8

Anexo: Funciones
implementadas en R

En este apartado se muestra el código R programado para la realización


de la parte práctica de este trabajo. Se han utilizado tanto funciones ya im-
plementadas en R como nuevas funciones que se han ido creando y adaptan-
do a los requisitos necesarios para cumplir nuestro objetivo que no es otro
que la comparación de las diferentes metodologı́a expuestas en la teorı́a.
A continuación se muestra un resumen comentado de las principales
funciones utilizadas.

• Función para crear un B-spline (Propuesto por De Boor (2001))

library(splines)

bspline <- function(x, xl, xr, ndx, bdeg){


dx <- (xr-xl)/ndx
knots <- seq(xl-bdeg*dx, xr+bdeg*dx, by=dx)
B <- spline.des(knots,x,bdeg+1,0*x,outer.ok=TRUE)$design
B}

Parámetros de la función

x: dominio de estudio

xl: valor próximo a ”x”, pero fuera del dominio por la izquierda

55
56 Estimación penalizada con datos funcionales

xr: valor próximo a ”x”, pero fuera del dominio por la derecha

bdeg: grado del spline

ndx: número de nodos (si el spline es de grado p, son necesarios p+2


nodos)
• Función para ajustar un spline de suavizado (smoothing spline)

smooth.spline(x, y, spar=0, cv=FALSE, all.knots=TRUE, nknots=NULL)

Parámetros de la función
y: vector de temperaturas medias mensuales recogidas para una de
las zonas geográficas.

x: vector con el mes al que corresponden cada una de las temperaturas


medias de y.

spar: parámetro de suavizado empleado en esta función. El coeficiente


lambda de la integral de la derivada de segundo orden de la función
al cuadrado, en el criterio de ajuste de los coeficientes básicos, es una
función monótona de ”spar”.

Si spar=NULL y df= (es decir, se omite en la función), automática-


mente se aplica el criterio de Validación cruzada (leave-one-out).

cv: si cv=FALSE -¿se aplica Validación Cruzada Generalizada (VCG).


En otro caso, se aplicará V. C. Ordinaria.

all.knots=TRUE:indica que hay tantos nodos como datos distintos


observados.

nknots: permite fijar el número de nodos (sólo toma valor DISTINTO


DE null si all.knots=FALSE).
• Método de Validación cruzada (leave-one-out)

library(splines)
bspline <- function(x, xl, xr, ndx, bdeg){
dx <- (xr-xl)/ndx
knots <- seq(xl-bdeg*dx, xr+bdeg*dx, by=dx)
B <- spline.des(knots,x,bdeg+1,0*x)$design
Funciones implementadas en R 57

B
}

datos <-read.table(file="datos_ejemplo.txt", header=TRUE)

Variables
te <- datos[,1]
y<- datos[,2]

Las trayectorias xi(te)muestrales van desde datos[,3] hasta datos[,102]

Fijamos una trayectoria

w <- datos[,30]
bdeg<-3
m<-150
lambda<-c(0.1,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,
0.80,0.85,0.90,0.95,1,1.1,1.15,1.20,1.25,1.30,1.35,1.40,1.45,1.50,1.55,1.60,
1.65,1.70,1.75,1.80,1.85,1.90,1.95,2)
valor<-matrix(0,ncol=1,nrow=m)
ECM<-matrix(0,ncol=35,nrow=length(lambda))

for (i in 3:35){
for (p in 1: length(lambda)){
suma=0
for(k in 1:m){
x<-te[-k]
xl<-min(x)-0.0001
xr<-max(x)+0.0001
z<-w[-k]
B=bspline(x,xl,xr,i,bdeg) Base de splines cbicos
d=ncol(B)
D1=diff(diff(diag(d)))
P=t(D1)%*%D1
lam=lambda[p]
a=solve(t(B)%*%B+lam*P)%*%t(B)%*%z
curva<- B%*%a
58 Estimación penalizada con datos funcionales

B2<-bspline(te[k],te[k]-0.0001,te[k]+0.0001,i,bdeg)
valor[k]<-B2%*%a
suma<-suma+(y[k] - valor[k])^2
}
ECM[p,i]<- sqrt(suma/m)
}
}
CV<-data.frame(ECM)

write.table(CV,file="CrossValidation_ejemplo.txt",sep=" ",col.names=TRUE,
row.names=FALSE)

• Simulación de los n=100 trayectorias muestrales. Ajuste de las


curvas usando las diferentes metodologı́as.

n <- 100 m <- 150 te <- seq(0,1,length=m) #secuencia ordenada de


valores entre (0,1) y <- cos(2*pi*te) #Funci\’{o}n original f <-
matrix(0,ncol=n,nrow=m) #Cada columna es una trayectoria muestral
for (i in 1:n) {
f[,i] <- cos(2*pi*te) + rnorm(m) #Funci\’{o}n de partida con ruido
}

Guardamos los datos simulados.

datos<-data.frame(te,y,f) write.table(datos,
file="datos_ejemplo.txt", sep=" ", col.names=TRUE, row.names=FALSE)
Cargamos los datos datos <-read.table(file="datos_ejemplo.txt",
header=TRUE)

Variables
z<-seq(0,1,length=200)
x <- datos[,1] y <- datos[,2]

Fijamos una trayectoria

w <- datos[,30] #Trayectoria 28

xl <- min(x)-0.00001 xr <- max(x)+0.00001 bdeg <-3 #Grado del spline


Funciones implementadas en R 59

library(splines)
bspline <- function(x, xl, xr, ndx, bdeg){
dx <- (xr-xl)/ndx
knots <- seq(xl-bdeg*dx, xr+bdeg*dx, by=dx)
B <- spline.des(knots,x,bdeg+1,0*x,outer.ok=TRUE)$design
B}

#-------------------------------------------------------------------------------

#Ajuste de la curva mediante regression splines para 5, 15 y 25


nodos.

#Curva con 5 nodos


BBB1=bspline(x,xl,xr,5,bdeg) #Base de cubic splines
a1=solve(t(BBB1)%*%BBB1)%*%t(BBB1)%*%w #a1 son los coeficientes estimados(a^)
B<- bspline(z,xl,xr,5,bdeg)
curva1<- B%*%a1

#Plot
plot(x,w,pch=".",cex=3, main=paste("Splines de regresi\’{o}n"), xlab="t",
ylab="f(t)=cos(2*pi*t)", col.main="black")
lines(x,y,col=1,lwd=2) # f(t)=cos(2*pi*t).
lines(z,curva1,col=2,lwd=2) #Curva ajustada con 5 nodos.

#Curva con 15 nodos


BBB2=bspline(x,xl,xr,15,bdeg)
a2=solve(t(BBB2)%*%BBB2)%*%t(BBB2)%*%w
B<- bspline(z,xl,xr,15,bdeg)
curva2<- B%*%a2
#Plot
lines(z,curva2,col=3,lwd=2) #Curva ajustada con 15 nodos.

#Curva con 25 nodos


BBB3=bspline(x,xl,xr,25,bdeg)
a3=solve(t(BBB3)%*%BBB3)%*%t(BBB3)%*%w
B<- bspline(z,xl,xr,25,bdeg)
curva3<- B%*%a3
#Plot
60 Estimación penalizada con datos funcionales

lines(z,curva3,col=4,lwd=2) #Curva ajustada con 25 nodos.


legend(0.3,2.9, c("f(t)","5 nodos","15 nodos","25 nodos"),col=c(1,2,3,4)
,bty="n",lty = c(1, 1, 1))
#-------------------------------------------------------------------------------

#Ajuste de la curva mediante spline de suavizado (smoothing spline)

#Curva con 5 nodos


curva4<- smooth.spline(x, w, spar=NULL, cv=FALSE, all.knots=FALSE,
nknots=5)
#Plot
plot(x,w,pch=".",cex=3, main=paste("Splines de suavizado"), xlab="t",
ylab="f(t)=cos(2*pi*t)", col.main="black")
lines(x,y,col=1, lwd=2) # f(x)=cos(2*pi*x).
lines(predict(curva4, z),col = 2,lwd=2)

#Curva con 15 nodos


curva5<- smooth.spline(x, w, spar=NULL, cv=FALSE, all.knots=FALSE,
nknots=15)
#Plot
lines(predict(curva5, z),col = 3,lwd=2)

#Curva con 25 nodos


curva6<- smooth.spline(x, w, spar=NULL, cv=FALSE, all.knots=FALSE,
nknots=25)
#Plot
lines(predict(curva6, z),col = 4,lwd=1)
legend(0.2,3, c("f(t)","5 nodos y lambda=0.01","15 nodos y lambda=0.013",
"25 nodos y lambda=0.013"),col=c(1,2,3,4),bty="n",lty = c(1, 1, 1))
#-------------------------------------------------------------------------------

#Ajuste de la curva mediante P-splines

#Curva con 5 nodos


BBB7=bspline(x,xl,xr,5,bdeg) #Base de cubic splines
d7=ncol(BBB7)
D7=diff(diff(diag(d7)))
P7=t(D7)%*%D7 #matriz de penalizaci\’{o}n
Funciones implementadas en R 61

lambda=2
a7=solve(t(BBB7)%*%BBB7+lambda*P7)%*%t(BBB7)%*%w #coeficientes estimados
B<- bspline(z,xl,xr,5,bdeg)
curva7<- B%*%a7
#Plot
plot(x,w,pch=".",cex=3, main=paste("P-splines"), xlab="t",
ylab="f(t)=cos(2*pi*t)", col.main="black")
lines(x,y,col=1,lwd=2) #f(x)=cos(2*pi*x).
lines(z,curva7,col=2,lwd=2) #Curva ajustada con 15 nodos.

#Curva con 15 nodos


BBB8=bspline(x,xl,xr,15,bdeg) #Base de cubic splines
d8=ncol(BBB8)
D8=diff(diff(diag(d8)))
P8=t(D8)%*%D8 #penalized matrix
lambda=0.70
a8=solve(t(BBB8)%*%BBB8+lambda*P8)%*%t(BBB8)%*%w #coeficientes estimados
B<- bspline(z,xl,xr,15,bdeg)
curva8<- B%*%a8
#Plot
lines(z,curva8,col=3,lwd=2) #Curva ajustada con 15 nodos.

#Curva con 25 nodos


BBB9=bspline(x,xl,xr,25,bdeg) #Base de cubic splines
d9=ncol(BBB9)
D9=diff(diff(diag(d9)))
P9=t(D9)%*%D9 #penalized matrix
lambda= 1.2
a9=solve(t(BBB9)%*%BBB9+lambda*P9)%*%t(BBB9)%*%w #coeficientes estimados
B<- bspline(z,xl,xr,25,bdeg)
curva9<- B%*%a9
#Plot
lines(z,curva9,col=4,lwd=2) #Curva ajustada con 25 nodos.
legend(0.2,3, c("f(t)","5 nodos y lambda=2","15 nodos y lambda=0.70",
"25 nodos y lambda=1.20"),col=c(1,2,3,4),bty="n",lty = c(1, 1, 1))
#-------------------------------------------------------------------------------

#Ajuste de las curvas mediante P-splines como modelos mixtos


62 Estimación penalizada con datos funcionales

#Guardamos los datos con el formato adecuado


x_mxm<-matrix(x,ncol=1,nrow=m*n)
trayectorias <- datos[,-c(1,2)]#Elimino las columnas correspondientes a x e y
#para quedarme con las trayectorias.
trayectorias_mxm<- matrix(0,ncol=1,nrow=m*n)
cual_tray_mxm<- matrix(0,ncol=1,nrow=m*n)
k<-1
while (k<=n*m){
for (i in 1:n){
for (j in 1:m){
trayectorias_mxm[k,1]=trayectorias[j,i]
cual_tray_mxm[k,1]=i
k=k+1
}
}
}
datos_mxm<-data.frame(x_mxm,trayectorias_mxm,cual_tray_mxm)
#Guardamos los datos en el formato adecuado para la funci\’{o}n de modelos mix
write.table(datos_mxm, file="datos_mxm_ejemplo.txt", sep=" ", col.names=TRUE,
row.names=FALSE)
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------

#Cargamos los datos


datos_mxm <-read.table(file="datos_mxm_ejemplo.txt",header=TRUE)

#Par\’{a}metros
n=100
m=150
x<- datos_mxm$x_mxm
y<- datos_mxm$trayectorias_mxm
zona<- datos_mxm$cual_tray_mxm
ndx<-25
bdeg<-3
xl <- min(x)-0.00001
xr <- max(x)+0.00001
#-------------------------------------------------------------------------------
Funciones implementadas en R 63

#Funciones para ajustar un P-spline como un Modelo Mixto.

library(splines)
bspline <- function(x, xl, xr, ndx, bdeg){
dx <- (xr-xl)/ndx
knots <- seq(xl-bdeg*dx, xr+bdeg*dx, by=dx)
B <- spline.des(knots,x,bdeg+1,0*x)$design
B
}
library(nlme)
#Con B-splines
mixed.model.B<-function (x,xl,xr,ndx,bdeg)
{B=bspline(x,xl,xr,ndx,bdeg)
pord<-bdeg-1
m=ncol(B)
D=diff(diag(m),differences=pord)
#svd: descomposici\’{o}n en valores singulares
P.svd=svd(t(D)%*%D)
U=(P.svd$u)[,1:(m-pord)]
d=(P.svd$d)[1:(m-pord)]
Delta=diag(1/sqrt(d))
Z=B%*%U%*%Delta
X=NULL
for(i in 0:(pord-1)){X=cbind(X,x^i)}
list(X,Z)}

#Ajuste con 5 nodos para la base


MM=mixed.model.B(x,min(x)-0.00001,max(x)+0.00001,5,3)
Z=MM[[2]]
X=model.matrix(y~x)
Id=factor(rep(1,length(y)))
Z.block<-list(Id=pdIdent(~Z-1), zona=pdSymm(~x))
data.fr<- groupedData( y ~ X[,-1] | Id,data =data.frame(y,X,Z,zona,x))

model<- lme(y~X[,-1],data=data.fr,random=Z.block)

d=ncol(model$fitted)
fit.model=model$fitted[,d]
64 Estimación penalizada con datos funcionales

#Creamos una matriz "Y" cuyas columnas son las curvas ajustadas

Y<-matrix(0,nrow=m,ncol=n)
for(i in 1:n){
Y[,i]=fit.model[zona==i]
}
curvas1_mxm<-data.frame(Y)

#Curva correspondiente a la trayectoria muestral 28 ajustada con 5 nodos


curva1<-curvas1_mxm[,28]
#Guardamos los datos en el formato adecuado para la funci\’{o}n de modelos mix
write.table(curvas1_mxm, file="curvas_5_nodos_mxm_ejemplo.txt", sep=" ",
col.names=TRUE, row.names=FALSE)

#Ajuste con 15 nodos para la base

MM=mixed.model.B(x,min(x)-0.00001,max(x)+0.00001,15,3)
Z=MM[[2]]
X=model.matrix(y~x)
Id=factor(rep(1,length(y)))
Z.block<-list(Id=pdIdent(~Z-1), zona=pdSymm(~x))
data.fr<- groupedData( y ~ X[,-1] | Id,data =data.frame(y,X,Z,zona,x))

model<- lme(y~X[,-1],data=data.fr,random=Z.block)

d=ncol(model$fitted)
fit.model=model$fitted[,d]

Q<-matrix(0,nrow=m,ncol=n)
for(i in 1:n){
Q[,i]=fit.model[zona==i]
}
curvas2_mxm<-data.frame(Q)
write.table(curvas2_mxm, file="curvas_15_nodos_mxm_ejemplo.txt", sep=" ",
col.names=TRUE, row.names=FALSE)
#Curva correspondiente a la trayectoria muestral 28 ajustada con 15 nodos
curva1_2<-curvas2_mxm[,28]
Funciones implementadas en R 65

#Ajuste con 25 nodos para la base

MM=mixed.model.B(x,min(x)-0.00001,max(x)+0.00001,25,3)
Z=MM[[2]]
X=model.matrix(y~x)
Id=factor(rep(1,length(y)))
Z.block<-list(Id=pdIdent(~Z-1), zona=pdSymm(~x))
data.fr<- groupedData( y ~ X[,-1] | Id,data =data.frame(y,X,Z,zona,x))

model<- lme(y~X[,-1],data=data.fr,random=Z.block)

d=ncol(model$fitted)
fit.model=model$fitted[,d]

G<-matrix(0,nrow=m,ncol=n)
for(i in 1:n){
G[,i]=fit.model[zona==i]
}
curvas3_mxm<-data.frame(G)
write.table(curvas3_mxm, file="curvas_25_nodos_mxm_ejemplo.txt", sep=" ",
col.names=TRUE, row.names=FALSE)
#Curva correspondiente a la trayectoria muestral 28 ajustada con 25 nodos
curva1_3<-curvas3_mxm[,28]

#Cargamos los datos de partida datos


<-read.table(file="datos_ejemplo.txt", header=TRUE) #Variables x <-
datos[,1] y <- datos[,2] w <- datos[,30]

#Plot plot(x,w,pch=".",cex=3, main=paste("P-splines con Modelos


mixtos"), xlab="t",
ylab="f(t)=cos(2*pi*t)", col.main="black")
lines(x,y,col=1,lwd=2) #Funci\’{o}n original_ f(x)=cos(2*pi*x).
lines(x,curva1,col=2,lwd=2) #Curva ajustada con 5 nodos.
lines(x,curva1_2,col=3,lwd=2) #Curva ajustada con 15 nodos.
lines(x,curva1_3,col=4,lwd=2) #Curva ajustada con 25 nodos.
legend(0.4,3.9, c("f(t)","5 nodos","15 nodos","25 nodos"),col=c(1,2,3,4)
,lty = c(1, 1, 1))
66 Estimación penalizada con datos funcionales

#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#Guardamos las curvas ajustadas por diferentes m\’{e}todos

#Cargamos los datos de partida datos


<-read.table(file="datos_ejemplo.txt", header=TRUE) n=100 m=150 x <-
datos[,1] y <- datos[,2] w<-datos[,-c(1,2)] xl <- min(x)-0.00001 xr
<- max(x)+0.00001 bdeg <-3 nodos=5 lambda=2 #Fijada mediante la C.V.
#-------------------------------------------------------------------------------

ajuste_n_curvas<-function (n,m,bdeg,x,y,w,nodos,lambda){

#simulaci\’{o}n de las curvas

curva_reg<-matrix(0,ncol=n,nrow=m) #Matriz con columnas las curvas


ajustadas
#mediante spline de regresi\’{o}n.
curva_smth<-matrix(0,ncol=n,nrow=m) #Matriz con columnas las curvas
ajustadas
#mediante spline de suavizado.
curva_P<-matrix(0,ncol=n,nrow=m) #Matriz con columnas las curvas
ajustadas
#mediante spline de suavizado.

for (i in 1:n) {

pord=bdeg-1

#Spline de regresi\’{o}n
BBB2=bspline(x,xl,xr,nodos,bdeg)
a2=solve(t(BBB2)%*%BBB2)%*%t(BBB2)%*%w[,i]
curva_reg[,i]<- BBB2%*%a2

#Spline de suavizado
curva5<- smooth.spline(x, w[,i], spar=NULL,cv=FALSE, all.knots=FALSE,
nknots=nodos)
pred<-predict(curva5, x)
curva_smth[,i]<-pred$y
Funciones implementadas en R 67

#P-spline
BBB8=bspline(x,xl,xr,nodos,bdeg)
d8=ncol(BBB8)
D8=diff(diff(diag(d8)))
P8=t(D8)%*%D8
a8=solve(t(BBB8)%*%BBB8+lambda*P8)%*%t(BBB8)%*%w[,i]
curva_P[,i]<- BBB8%*%a8
}
return(curva_reg,curva_P,curva_smth) } #Guardamos las trayectorias
para cada ajuste #Llamamos a la funci\’{o}n
n_curvas<-ajuste_n_curvas(n,m,bdeg,x,y,w,nodos,lambda) #Curvas
ajustadas por splines.Reg
write.table(data.frame(n_curvas$curva_reg),
file="ncurvas_5_nodos_reg_ejemplo.txt",sep=" ",col.names=TRUE,
row.names=FALSE)

#Curvas ajustadas por splines.Suav


write.table(data.frame(n_curvas$curva_smth),
file="ncurvas_5_nodos_smth_ejemplo.txt",sep="
",col.names=TRUE,row.names=FALSE)

#Curvas ajustadas por P-splines


write.table(data.frame(n_curvas$curva_P),
file="ncurvas_5_nodos_P_spl_ejemplo.txt",sep="
",col.names=TRUE,row.names=FALSE)
#-------------------------------------------------------------------------------

• ECM y curvas medias para las diferentes curvas y metodologı́as

#Cargamos los datos datos <-read.table(file="datos_ejemplo.txt",


header=TRUE) n=100 m=150 x <- datos[,1] y <- datos[,2]
curv_regresion<-read.table(file="ncurvas_5_nodos_reg_ejemplo.txt",header=TRUE)
curv_suavizado<-read.table(file="ncurvas_5_nodos_smth_ejemplo.txt",header=TRUE)
curv_P<-read.table(file="ncurvas_5_nodos_P_spl_ejemplo.txt",header=TRUE)
curv_P_mxm<-read.table(file="curvas_15_nodos_mxm_ejemplo.txt",header=TRUE)

suma_reg<-matrix(0,ncol=1,nrow=m) suma_suav<-matrix(0,ncol=1,nrow=m)
68 Estimación penalizada con datos funcionales

suma_p<-matrix(0,ncol=1,nrow=m) suma_p_mxm<-matrix(0,ncol=1,nrow=m)
media_reg<-matrix(0,ncol=1,nrow=m)
media_suav<-matrix(0,ncol=1,nrow=m) media_p<-matrix(0,ncol=1,nrow=m)
media_mxm<-matrix(0,ncol=1,nrow=m) ECM_reg<-matrix(0,ncol=1,nrow=n)
ECM_suav<-matrix(0,ncol=1,nrow=n) ECM_p<-matrix(0,ncol=1,nrow=n)
ECM_p_mxm<-matrix(0,ncol=1,nrow=n)

for (i in 1:n){
suma_reg<-suma_reg+curv_regresion[,i]
suma_suav<-suma_suav+curv_suavizado[,i]
suma_p<-suma_p+curv_P[,i]
suma_p_mxm<-suma_p_mxm+curv_P_mxm[,i]
}

media_reg<-suma_reg/n media_suav<-suma_suav/n media_p<-suma_p/n


media_p_mxm<-suma_p_mxm/n

#Guardamos las funciones medias


MEDIAS<-data.frame(media_reg,media_suav,media_p,media_p_mxm)
write.table(MEDIAS,file="MEDIAS_5_nodos_ejemplo.txt",sep="
",col.names=TRUE, row.names=FALSE)

#Plot: Func. media media


<-read.table(file="MEDIAS_5_nodos_ejemplo.txt", header=TRUE) datos
<-read.table(file="datos_ejemplo.txt", header=TRUE)

#Variables x <- datos[,1] y <- datos[,2]

plot(x,y,pch="",ylab="f(t)=cos(2*pi*t)",xlab="t",
main="Funciones medias")
lines(x, y, col=1,lwd=2)
lines(x, media[,1],col=2,lwd=2)
lines(x, media[,2],col=3,lwd=2)
lines(x, media[,3],col=4,lwd=2)
lines(x, media[,4],col=6,lwd=2)
legend(0.2,0.7, c("Curva Media","C.Media de Splines Regresi\’{o}n",
"C.Media Splines de suavizado","C.Media de P-splines",
"C. Media Modelos Mixtos"),col=c(1,2,3,4,6) ,lty = c(1, 1, 1,1),yjust=0.5,
Funciones implementadas en R 69

bty="n")

#ECM for (i in 1:n){


ecm_reg<-0
ecm_suav<-0
ecm_p<-0
ecm_p_mxm<-0
for(j in 1:m){
ecm_reg<-ecm_reg+(y[j]-curv_regresion[j,i])^2
ecm_suav<-ecm_suav+(y[j]-curv_suavizado[j,i])^2
ecm_p<-ecm_p+(y[j]-curv_P[j,i])^2
ecm_p_mxm<-ecm_p_mxm+(y[j]-curv_P_mxm[j,i])^2
}
ECM_reg[i,]<-sqrt(ecm_reg/m)
ECM_suav[i,]<-sqrt(ecm_suav/m)
ECM_p[i,]<-sqrt(ecm_p/m)
ECM_p_mxm[i,]<-sqrt(ecm_p_mxm/m)
} #Guardamos los ECM
ECM<-data.frame(ECM_reg,ECM_suav,ECM_p,ECM_p_mxm)
write.table(ECM,file="sqrt_ECM_15_nodos_ejemplo.txt",sep="
",col.names=TRUE, row.names=FALSE)

#Box-plot ECM <- read.table(file="sqrtECM_15_nodos_ejemplo.txt",


header=TRUE)
boxplot(ECM,use.cols=TRUE,names=c("S.Regresi\’{o}n","S.Suavizado",
"P-splines","Modelos.Mixtos"),notch=TRUE,ylab="ECM",col=c(2,3,4,7)
,main="Diagrama de cajas y bigotes")

También podría gustarte