Modelos Aditivos Generalizados con P-splines
Mar´ıa Durb´ an
Universidad Carlos III de Madrid
´ Indice general
1. Introducci´on 3
1. Modelos lineales generalizados . . . 4
1.1. La familia exponencial . . . 7
1.2. Estimaci´on de Modelos Lineales Generalizados . . . 8
2. M´etodos de suavizado 9 1. Regresi´on polinomial local: Lowess . . . 9
2. Suavizado con kernels . . . 12
3. Splines . . . 12
3.1. N´umero y posici´on de los nodos . . . 13
3.2. Splines de suavizado (smoothing splines) . . . 14
3. Splines con penalizaciones (P-splines) 18 1. Bases y Penalizaciones . . . 18
1.1. Bases y nodos . . . 20
1.2. Penalizaciones y coeficientes . . . 23
1.3. Estimaci´on de par´ametros y grados de libertad . . . 27
1.4. Selecci´on del par´ametro de suavizado . . . 27
2. P-splines Bayesianos . . . 28
3. P-splines como modelos mixtos . . . 29
3.1. Intervalos de confianza en modelos de suavizado . . . 31
3.2. Datos correlados . . . 32
4. P-splines para datos multidimensionales . . . 33
4.1. P-splines multidimensionales como modelos mixtos . . . 35
5. Modelos additivos generalizados . . . 36
5.1. Modelos aditivos generalizados con P-splines . . . 37
5.2. GLMM para datos de Poisson . . . 38
4. Software 39 5. Aplicaciones 46 1. Modelos Semiparam´etricos . . . 46
2. Modelos Aditivos . . . 50
2.1. Ejemplo 1: Mortalidad por enfermedades respiratorias . . . 50
3. P-splines para datos longitudinales . . . 51
3.1. Modelo con ordenada en el origen aleatoria . . . 53
3.2. Modelo aditivo mixto . . . 54
3.3. Modelo con diferencias individuales lineales . . . 56
3.4. Interacci´on de curva por factor . . . 58
3.5. Curvas espec´ıficas para cada individuo . . . 58
4. Datos correlados . . . 64
5. Datos multidimensionales . . . 66
5.1. Ejemplo 1: Tendencias espaciales en experimentos de campo . . . 66
5.2. Ejemplo 2: An´alisis de datos de mortalidad . . . 67
5.3. Ejercicio: Modelos aditivos para datos con respuesta binaria . . . 71
5.4. Ejemplo 3: Aplicaciones en disease mapping . . . 72
Cap´ıtulo 1 Introducci´ on
Un modelo lineal es deseable porque es simple de ajustar, se entiende f´acilmente, y exis- ten muchas t´ecnicas disponibles para contrastar las hip´otesis del modelo. Sin embargo, en muchos casos, los datos no est´an relacionados de forma lineal, por lo que no tiene sentido utilizar los modelos de regresi´on lineal.
Un modelo de regresi´on no-lineal cl´asico tendr´ıa la siguiente forma:
y = f (Xβ) +
donde β = (β1, . . . βp)0 es un vector de par´ametros, que han de ser estimados, y X es la matriz que contiene las variables predictoras. La funci´on f (.), relaciona el valor medio de la variable respuesta y con las variables predictoras, y su forma est´a especificada a priori . Por ejemplo, en muchos modelos biol´ogicos, existe una dependencia de tipo exponencial:
f (Xβ) = eβ0+β1x.
Pero en algunas situaciones, la estructura de los datos es tan complicada que es muy dif´ıcil encontrar una funci´on que estime la relaci´on existente de forma correcta (ver por ejemplo la siguiente figura):
Una posible soluci´on es: regressi´on no-param´etrica. El modelo general de regresi´on no-param´etrica ise escribe de forma similar al anterior, pero f no tiene una forma expl´ıcita:
y = f (X) + = f (x1, . . . xp) +
La mayor´ıa de los m´etodos de regresi´on no-param´etrica asumen que f (.) es una funci´on continua y suave, y que i ∼ NID(0, σ2) (aunque esto ´ultimo puede relajarse de forma sencilla).
Un caso importante de el modelo general, es la regresi´on no-param´etrica simple, donde s´olo hay una variable predictora
y = f (x) +
A la regresi´on no-param´etrica simple tambi´en se le llama Nonparametric simple regression is often called scatterplot smoothing, porque una aplicaci´on importante es dibujar una curva an un diagrama de y sobre x.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
−1
−0.5 0 0.5 1
Fixed weights of differences
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
−1
−0.5 0 0.5 1
Exponentially varying weights of differences
Figure 13: Smoothing of simulated data (dots) with and without exponentially varying weights on the differences in the penalty. Upper: uniform weights; lower:
varying weights. Parameters optimized with grid search and leave-one-out cross- validation. Full line: fitted curve (100 cubic B-splines, second order penalty); broken line: true curve.
position k. It follows, for large λ, ˆα will be a smooth series, except for a kink at position k. If both v
kand v
k−1are zero, ˆα will be smooth, except for a jump at α
k. Depending on the number of knots, the kink or jump will show up in a more or less smoothed way in the fitted curve. Of course, combinations of multiple kinks and jumps can be introduced this way.
In some application a gradually changing smoothness may be sufficient. This can be accomplished by taking v
k= e
γk. Both λ and γ are optimized by cross-validation or AIC. Of course, this applies equally well to TPF. An example of smoothing with an exponential change of the weights in the penalty is shown in Figure 13, using simulated data: a sine function with changing frequency and amplitude. If we use uniform weights and optimize λ with leave-one-out cross-validation (which gives optimal λ
?= 0.1), we get a result that gives rather strong fluctuations of the fitted curve in the low-frequency part and misses the data in the high-frequency part. If we introduce weights e
γkand optimize both γ and λ, we get a more reasonable result.
A grid search gave (approximate) optimal values γ
?= 0.2 and λ
?= 3 × 10
−4. This means that, with the 100 knots used here, the largest weight is about 5 × 10
8times larger than the smallest.
Sometimes it is fruitful to have multiple difference penalties, of different orders, or to add an extra ridge penalty. Marx and Eilers (2002) found, in the context of multivariate calibration by penalized signal regression, markedly improved cross- validation behavior. Aldrin (2006) investigated the use of both first and second order penalties in additive models based on P-splines, and found improved prediction.
Figura 1: Figura cortes´ıa de Paul Eilers (Splines, knots and penalties, 2011) Ejemplo: datos de pretigio
El siguiente conjunto de datos contiene datos sobre el nivel de prestigio que tienen 102 profesiones en Canada en los a˜nos 70. Las variables son:
prestige: prestigio medio, con rango de 0 a 100 income: salario medio de cada profesi´on, en d´olares.
education: N´umero medio de a˜nos de educaci´on.
type: Una variable categ´orica con tres niveles:
• bc (directivos)
• wc (obreros)
• prof (profesionales liberales)
Al ajustar un modelo lineal entre el salario y el pretigio, obtendr´ıa los resultados que se pre- sentan en la Figura 1. Un modelo lineal es claramente inapropiado para estos datos, adem´as, ser´ıa complicado encontrar un modelo no-lineal que ajustara los datos correctamente.
1. Modelos lineales generalizados
Los modelos lineales generalizados (GLMs) extienden el modelo lineal para acomodar las variables respuestas que no siguen una distribuci´on Normal, bajo un enfoque unificado. Es bastante com´un encontrarse en siatuaciones en las que la variable resuesta no cumple las hip´otesis est´andar del modelo lineal (datos Normales, varianza constante, etc.), por ejemplo:
datos de conteo, datos dicot´omicos, datos truncados, etc. Los GLMs se basan en la teor´ıa de Nelder and Wedderburn (1972) y McCullagh and Nelder (1989), desde entonces, con los
4
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
● ●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
0 5000 10000 15000 20000 25000
20406080100
Average Income
Prestige
Figura 2: Modelo lineal para datos de prestigio
avances del software estad´ıstico, estos modelos se han convertido en una herramienta b´asica para muchos investigadores.
Hay dos temas fundamentales en la noci´on de los modelos lineales generalizados: la distri- buci´on de la variable respuesta, y c´omo el modelo establece la relaci´on entre la media de la variable respuesta y las variables explicativas. variables.
Ejemplo de motivaci´on: Experimento de toxicidad
El experimento intenta establecer la relaci´on entre la concentraci´on de un agente t´oxico (nicotina) y el n´umero de insectos (mosca de la fruta) que mueren: Los datos siguen una
x
Concentraci´on n y
(g/100cc) N´umero de insectos N´umero de muertos Porcentaje de muertos
0.1 47 8 17.0
0.15 53 14 26.4
0.20 55 24 43.6
0.30 52 32 61.5
0.50 46 38 82.6
0.70 54 50 92.6
0.95 52 50 96.2
Cuadro 1: Datos del experimento de toxicidad distribuci´on Binomial
yi ∼ B(ni, pi) E[yi] = nipi(xi) V ar[yi] = nipi(1− pi)
Claramente, la varianza y la media est´an relacionadas entre s´ı, y tambi´en con las variables predictoras. Usando regresi´on lineal ordinaria para predecir el procentaje de moscas que
mueren, estar´ıamos asumiendo que los datos vienen de una distribuci´on Normal, lo que es falso, y adem´as, con este tipo de datos tenemos la siguiente restricci´on: 0 ≤ pi ≤ 1, la cual no es tenida en cuenta en el modelo de regresi´on. Ajustando el modelo pi = β0+ β1xi + εi obtenemos
(lm(perc~Concentration))$fitted
1 2 3 4 5 6
0.3066231 0.3532890 0.3999550 0.4932869 0.6799507 0.8666145 7
1.0999442
El valor ajustado del ´ultimo punto es mayor que 1!!!. Adem´as, como se ve en la Figura 1, el modelo es claramente no-lineal
●
●
●
●
●
●
●
0.2 0.4 0.6 0.8
0.20.40.60.8
x
perc
Figura 3: Gr´afico de la concentraci´on de nicotina frente al procentaje de animales muertos y la recta ajustada.
Aqu´ı hemos usado un modelo de regresi´on ordinario:
y(= π) = Xβ + ε E[y|x] = Xβ
Dado que la probabilidad s´olo toma valores en el intervalo (0, 1). Podemos buscar una nueva forma de representar E[y—x], de modo que la probabilidad est´e en (0, 1). Una forma de conseguirlo es utilizar la funci´on log´ıstica:
π = eXβ
1 + eXβ = 1 1 + e−Xβ y
Xβ = log
π
1− π
Es decir, Xβ = g(E[y|x]) 6= E[y|x]. La idea es relacionar una transformaci´on de la media de los datos, µ = E[y|x] con las variables explicatibas X.
1.1. La familia exponencial
Un concepto importante que unifica todos los GLms es la familia exponencial de distribuciones . Todas las distribuciones pertenecientes a la familia exponencial tiene una funci´on de densidad (o de probabilidad) que se puede expresar de la siguiente forma:
f (y; θ, φ) = exp yθ− b(θ)
a(φ) + c(y, φ)
(1.1) donde, en cada caso, a(.), b(.) y c(.) ser´an funciones espec´ıficas. El par´ametro θ es lo que se llama par´ametro can´onico de localizaci´on y φ es un par´ametro de dispersi´on. La distribucion Binomial, Poisson y Normal (entre otras) son miembros de la familia exponencial.
Componentes de un modelo lineal generalizado En un modelo de regresi´on est´andar:
y = Xβ + ε ε∼ N(0, σ2I) E(y) = µ = Xβ
donde Xβ es una combinaci´on lineal de las variables predictoras llamada predictor lineal (el cual se representa como η), en este caso la media µ est´a directamente relacionada con el predictor lineal, ya que en este caso µ = η. Usando este modelo sencillo, podemos ver que hay dos componentes en el modelo: la funci´on de probabilidad de la variable respuesta y la estructura lineal del modelo. En general, un modelo lineal generalizado tendra los siguientes componentes:
1. Componente aleatorio: y es un vector aleatorio procedente de una distribuci´on que pertenece a la familia exponencial y cuya media es µ.
2. Componente sistem´atico: es el predictor lineal η = Xβ. D
3. La funci´on link : es una funci´on mon´otona, derivable que establece la relaci´on entre la media y el predictor lineal
η = g(µ) E(y) = µ = g−1(η) (1.2)
En el caso del modelo de regresi´on ordinaria, µ = η, por lo tanto la funci´on link es la identidad. Hay muchas opciones par la funci´on link. La funci´on link canonica es una funci´on que transforma la media en el par´ametro can´onico θ
η = g(µ) = θ⇒ g es una funci´on link can´onica Hay muchas opciones par la funci´on link.
Distribuci´on Link
Normal η = µ (identidad) Binomial η = ln 1P
−P (logist´ıstica) Poisson η = ln(µ) (logar´ıtmica) Exponential η = µ (rec´ıproca)1 Gamma η = µ (rec´ıproca)1
Cuadro 2: Funciones link m´as usadas en los GLMs
1.2. Estimaci´ on de Modelos Lineales Generalizados
En el caso de la familia exponencial, dado un vector de observaciones y = (yi, y2, . . . , yn)0. El logaritmo de la verosimilitud es
l(θ|y) =
n
X
i=1
((yiθi− b(θi)/a(φ) + c(yi, φ)) (1.3)
Cuando usamos el link can´onico: θ = η = Xβ, de modo que podemos estimar los par´ametros de inter´es β: Por lo tanto, la funci´on score:
∂l
∂β = ∂l
∂θi
∂θi
∂β Es posible probar que:
∂l
∂β =
n
X
i=1
(yi− µi) g0(µi)Vi xi donde Vi = V ar(yi) = a(φ)b00(θi).
Necesitamos igualar esa ecuaci´on a cero, pero no existe una soluci´on exacta, y utlizamos una versi´on de algoritmo de Newton-Rapson, llamado Fisher Scoring Algorithm. Es un al- goritmo iterativo cuya soluci´on es:
βnew= (X0W X)−1X0W z
donde z = Xβold+ (y− µold)g0(µold) (llamado working vector ), y W es una matriz diagonal cuyos elementos wii = 1/g0(µi).
En la p´agina web: http://halweb.uc3m.es/esp/Personal/personas/durban/esp/web/
GLM/GLM.html se encuentra el material de mi curso sobre GLM.
Cap´ıtulo 2
M´ etodos de suavizado
Un suavizador o smoother es una herramienta que representa la tendencia de la variable respuesta y como funci´on de uno o m´as predictores lineales x. Ya que es una estimaci´on de la tendencia, tendr´a menos variabilidad que y, por eso se le llama suavizador (en este sentido, incluso la regresi´on lineal es una suavizador llevado al extremo).
Hay diversas formas de realizar la regresi´on no param´etrica, pero todas ellas tienen en com´un que se basan en los propios datos para especificar la forma que tiene el modelo: la curva en un punto dado s´olo depende de las observaciones en ese punto y de las observaciones vecinas.
Est´as son algunas de las t´ecnicas de regresi´on no-param´etrica existentes 1. Regresi´on polinomial local con pesos, lowess.
2. Kernels 3. Splines
4. Splines con penalizaciones (Psplines)
1. Regresi´ on polinomial local: Lowess
La idea de regresi´on local fue propuesta por Cleveland (1979). Intentamos ajustar el modelo,
yi = f (xi) + i siguiendo los siguientes pasos:
1. definimos el ancho de ventana (m): Incluye a los vecinos m´as cercanos. En este ejemplo utilizamos m = 50, es decir, para cada punto selecionamos los 50 vecinos m´as cercanos (una ventana que incluye a los 50 vecinos de x(80) se muestra en la Figura 2(a)).
2. Asignar pesos a los datos: Se utiliza una funci´on kernel para dar m´as peso a los puntos m´as cercanos a la observaci´on de inter´es x0. En la pr´actica se utiliza normalmente la
0 5000 15000 25000
20406080
(a)
Average Income
Prestige
●
●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
● ●
● ●
●
●●●●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
0 5000 15000 25000
0.00.40.8
(b)
Average Income
Tricube Weight
●●●●●●●●●
●●●●
●●●●●
●●●●●
●●●●●●●●●●●●●●●●●●●●●
●
●
●
●
●
●
0 5000 15000 25000
20406080
(c)
Average Income
Prestige ●●●●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
● ●
●
●
● ●
●
●
●●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●● ●
● ●●
●●
●
●
●
● ●
●●● ●
●
●
●
● ● ●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●●
●
●
0 5000 15000 25000
20406080
(d)
Average Income
Prestige
Figura 1: Lowess smoother funci´on de pesos tric´ubica:
W (z) = (1 − |z|3)3 for |z| < 1
0 for |z| ≥ 1
donde zi = (xi − x0)/h, y h es la mitad de la longitud de la ventana. Observaciones que est´an m´as lejos de la distancia h de x0 reciben peso 0. Lo normal es elegir h de modo que cada regresi´on local incluya a una proporci´on fija de puntos, s, y a esto se le llama el span del suavizador. La Figura 2(b) muestra los pesos de la funci´on tric´ubica para observaciones en una vecidad.
3. M´ınimos cuadrados poderados locales: Ahora, ajustamos una regresi´on polinomial usan- do m´ınimos cuadrados ponderados (con pesos) sobre x0, pero s´olo utilizando las obser- vaciones m´as cercanas para minimizar la suma de residuos al cuadrados ponderados.
Normalmente se utiliza regresi´on polin´omica de grado 1 (lineal) ´o 2 (cuadr´atica), pero se puede utilizar polinomios de cualquier orden.
yi+ bi(xi− x0) + b2(xi− x0)2+ . . . + bp(xi− x0)p+ ei
A partir de esta regresi´on, calculamos el valos ajustado correspondiente a x0 y lo dibujamos en el diagrama. La Figura 2 (c) muestra el ajuste lineal local para los datos en la vecindad de x0, el valor ajustado ˆy|x(80) se representa en el gr´afico por un punto en negrita.
4. Curva no-param´etrica:Los pasos 1-3 se repiten para cada observaci´on de los datos. Por lo que estamos haciendo un regresi´on local para cada valor de x, y los valores ajustados
de cada una de ellas se dibuja y se une (ver Figura 2 (d)).
En R podemos hacer esto de forma sencilla:
library(car) data(Prestige) attach(Prestige)
plot(income, prestige, xlab="Average Income", ylab="Prestige", main="(d)")
lines(lowess(income, prestige, f=0.5, iter=0), lwd=2)
En regresi´on no-param´etrica no tenemos par´ametros estimados, el inter´es est´a en la curva, por lo que el ´enfasis est´a en c´omo de bien la curva ajustada representa la curva poblacional.
Las hip´otesis bajo el modelo lowess son mucho menos restrictivas que las del modelo de regresi´on lineal, no hay ninguna hip´otesis restrictiva sobre model µ, sin embargo, asumimos que alrededor de cada punto x0, µ debe ser, aproximadamente, una funci´on local. Los errores
i se suponen independientes y con media 0. Finalmente, un cierto n´umero de decisiones han de ser tomadas: el span, el grado del polinomio, el tipo de funci´on de ponderaci´on; estas opciones afectar´an el equilibrio entre el sesgo y la varianza de la curva.
Ventana-span
Recordamos que el span s es el porcentaje de observaciones utilizadas dentro del rango de x. El valor de s tiene un efecto importante en la curva. Un span demasiado peque˜no (esto significa que muy pocas observaciones caen dentro de la ventana) da lugar a una curva con mucho ruido, y por lo tanto con mucha varianza. Si el span es muy grande la curva estar´a sobre-suavizada, por lo que puede que no ajuste bien los datos y haya una p´erdida de informaci´on y por lo tanto, el sesgo ser´a alto.
Podemos elegir la ventana de diferentes formas:
1. Constante: h es constante, por lo tanto una parte de rango de x es utilizado para elegir las observaciones para la regresi´on local. Este es un m´etodo apropiado si la distribuci´on de x es aproximadamente uniforme y/o el tama˜no muestral el grande. Sin embargo, si x tiene una distribuci´on no-uniforme, este m´etodo puede fallar, ya que habr´a casos en los que puede no haber vecinos o muy pocos. Esto es particularmente relevante en la frontera del rango de x.
2. Vecinos m´as pr´oximos: Este m´etodo resuelve el problema anterior. El span s se elige de modo que cada vez se est´e utilizadon una determinada proporci´on del total de los valores de x. La proporci´on se elige probando hasta que eliminamos el ruido de la curva. El span s = 0,5 el siempre el punto inicial. En la funci´on lowess(), el span por defecto es s = 0,75.
La Figura 3 muestra el efecto de 4 valores distintos del span en el ajuste de la curva para los datos de pretigio.
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
0 5000 10000 15000 20000 25000
20406080
Average Income
Prestige
s=0.1 s=0.37 s=0.63 s=0.9
Figura 2: Efecto del span en la curva ajustada
2. Suavizado con kernels
Un suavizador tipo kernel utiliza pesos que decrecen de forma suave cuando la l´ınea se aleja del punto de inter´es x0. El peso para la observaci´on j − th utilizada para el punto de inter´es x0 viene dado por:
S0j = c0 λd
x0− xj
λ
donde d(t) es una funci´on decreciente en|t|, λ es el ancho de ventana , y c0 es una constante elegida de modo que la suma de los pesos sea 1. T´ıpicamente d(.) es la funci´on de densidad de una Normal para el llamado kernel Gaussiano.
Estos suavizadores, en general, se comportan peor que el lowess en los puntos de frontera (ver Figura 3).
plot(income, prestige, xlab="Average Income", ylab="Prestige")
lines(ksmooth(income[ord], prestige[ord],x.points=unique(income[ord]),
"normal", bandwidth=6000))
3. Splines
Los splines son funciones polin´omicas a trozos sobre las que se imponen restricciones en los puntos de uni´on llamados nodos, estos puntos dividen el rango de x en regiones. Los splines dependen de tres elementos:
1. Grado del polinimio
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
● ●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
0 5000 10000 15000 20000 25000
20406080
Average Income
Prestige
Figura 3: Curva ajustada utilizando un kernel Gaussiano 2. N´umero de nodos
3. Localizaci´on de los nodos
Aunque hay muchas combinaciones posibles, una elecci´on popular consiste en polinomios a trozos de grado tres, continuos y con primera y segunda derivada continua en los nodos (esto fuerza a los polinimios a unirse de forma suave en estos puntos, ver Figura 4).
Un spline c´ubico con dos nodos c1 y c2 tiene la siguiente forma:
y = β0+ β1x + β2x2+ β3x3+ β4(x− c1)3++ β5(x− c1)3+,
donde (u)+ = u si u > 0 y 0 en otro caso. Si hay k nodos, la funci´on necesitar´a k + 4 coeficientes de regresi´on.
Splines c´ubicos naturales Restringen el spline de modo que es lineal m´as all´a de los nodos que est´an en la frontera, por lo tanto, necesita k + 2 par´ametros, esto es debido a que ahora no se impone que la derivada se a continua en c1 y ck , por lo que se eliminan 2 par´ametros al final de los datos
y = β0+ β1x + β2(x− c1)3++ β3(x− c1)3+,
3.1. N´ umero y posici´ on de los nodos
Los splines c´ubicos dependen de los nodos, por lo que es necesario seleccionar cu´antos y d´onde estar´an situados. Es m´as importante la elecci´on del n´umero que de la posici´on.
Figura 4: Una series de polinomios a trozos de orden 3, con ´ordenes de continuidad creciente
Siempre se pueden colocar en los cuantiles de x.
Una elecci´on t´ıpica es 3 ≤ k ≤ 7. En los casos en los que el tama˜no muestral es grande (n ≥ 100) y la variable respuesta es continua, k = 5 es un buen compromiso entre flexibi- lidad y precisi´on. Para tama˜nos muestrales peque˜nos (n≤ 30), k = 3 es una buena opci´on para empezar. El Akaike Information Criteria (AIC) puede ser utilizado para elegir k.
library(splines)
natspl=lm(prestige~ns(income,df=5))
plot(income, prestige, xlab="Average Income", ylab="Prestige") lines(income[ord],natspl$fitted[ord])
3.2. Splines de suavizado (smoothing splines)
Los smoothing splines son la soluci´on al problema de minimizar la suma de residuos al cuadrado penalizados:
RSS(f, λ) = X
i = 1n(yi− f(xi))2+ λ Z xn
x1
f00(x)2dx
El primer t´ermino mide la proximidad a los datos y el segundo penaliza la curvatura de la funci´on. Aqu´ı, λ es el par´ametro de suavizado , y controla el balance entre el sesgo y la varianza de la curva ajustada. Si λ = 0, la curva interpola los datos, y si λ→ ∞, la segunda derivada se hace 0, por lo que tenemos un ajuste lineal.
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
0 5000 10000 15000 20000 25000
20406080
Average Income
Prestige
Figura 5: Spline c´ubico natural con 4 nodos en los cuantiles de income.
Los splines de suavizado, son splines c´ubicos naturales en los que hay tantos nodos como observaciones ´unica de x. Esto podr´ıa parecer un modelo sobreparametrizado, sin embargo, el t´ermino de penalizaci´on asegura que los coeficientes se reduzcan hacia la linealidad, limi- tando el n´umero de grados de libertad utilizados.
El spline de suavizado es un suavizador lineal, en el sentido de que para cada valor ´unico xi, hay una base de funciones h(xi) tal que,
fλ(x) =
n
X
i=1
h(xi)yi Podemos reescribir la suma de cuadrados residuales como:
RSS(θ, λ) = (y− hθ)0(y− hθ) + λθ0Ωθ La soluci´on es,
θ = (hˆ 0h + λΩ)−1h0y
Es obvio el paralelismo con la regresi´on ridge, recordad que en este tipo de regresi´on, cuanto mayor era λ, m´as peque˜nos se hac´ıan los coeficientes; lo mismo ocurre en el caso de los splines de suavizado. El modelo ajustado viene dado por:
f (x) =ˆ
h
X
j=1
hj(x)ˆθj
Pero este tipo de suavizadores tiene un problema: ¿C´omo calculamos el valor apropiado del par´ametro de suavizado λ para un conjuto de datos determinado?
Elecci´on del par´ametro de suavizado
La elecci´on del par´ametro de suavizado utilizamos:
1. Validaci´on cruzada
La validaci´on cruzada deja cada vez un punto (xi, yi) fuera, y estima el valor de nuevo en xi basado en los restantes n1 puntos, y se construye la suma de cuadrados:
CV (λ) = n−1
n
X
i=1
(yi− ˆfλ−i(xi))2
donde ˆfλ−i(xi) indica el ajuste en xi calculado dejando la observaci´on i fuera. Utiliza- mos CV para la elecci´on del par´ametro de suavizado de la siguiente forma: calculamos CV (λ) para ciertos valores de λ y selecionamos aquel que minimiza CV (λ).
En el caso de un suavizador lineal,
CV (λ) = n−1
n
X
i=1
yi− ˆfλ(xi) 1− Sii(λ)
!2
donde S(λ) es la matriz de proyecci´on del modelo, es decir, ˆy = Sy.
spline1=smooth.spline(income,prestige,cv=TRUE)
> spline1$cv.crit [1] 127.4208
> spline1$lambda [1] 0.01474169 spline1$fit
lines(spline1$x,spline1$y,col=2) 2. Validaci´on cruzada generalizada
Hasta hace pocos a˜nos, no se sab´ıa c´omo calcular los elementos de las diagonal de S de una forma eficiente, y esto llev´o a introducir la validaci´on cruzada generalizada (GCV), la cual reemplaza Sii por su valor medio, T raza(S)/n, que es m´as f´acil de calcular,
GCV (λ) = n−1
n
X
i=1
yi− ˆfλ(xi) 1− T raza(S)/n
!2
En la mayor´ıa de los casos, CV y GCV se comportan de manera similar, sin embargo, en algunas ocasiones CV tiende a infra-suavizar los datos en comparaci´on con GCV.
spline2=smooth.spline(income,prestige) lines(spline2$x,spline2$y,col=4)
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
0 5000 10000 15000 20000 25000
20406080
Average Income
Prestige
Figura 6: Spline c´ubico natural con 4 nodos en los cuantiles de income (negro) y splines de suavizado con par´ametro de suavizado elegido mediante validaci´on cruzada (rojo).
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
0 5000 10000 15000 20000 25000
20406080
Average Income
Prestige
Figura 7: Spline c´ubico natural con 4 nodos en los cuantiles de income (negro) y splines de suavizado con par´aemtro de suavizado elegido mediante validaci´on cruzada (azul).
Cap´ıtulo 3
Splines con penalizaciones (P-splines)
En el cap´ıtulo anterior vimos que hay dos grandes enfoques en el tema de modelos de suavizado con splines: a) splines de suavizado (smoothing splines) y b) splines de regresi´on (regression splines). Los splines de suavizado (ver por ejemplo Green and Silverman (1994)) utilizan tantos par´ametros como observaciones, lo que hace que su implementaci´on no sea eficiente cuando el n´umero de datos es muy elevado. Los splines de regresi´on pueden ser ajustados mediante m´ınimos cuadrados una vez que se han seleccionado el n´umero de nodos, pero la selecci´on de los nodos se hace mediante algoritmos bastante complicados.
Los splines con penalizaciones combinan lo mejor de ambos enfoques: utilizan menos par´ame- tros que los splines de suavizado, pero la selecci´on de los nodos no es tan determinante como en los splines de regresi´on. Hay tres razones fundamentales para el uso de este tipo de splines:
1. Son splines de rango bajo, es decir, que el tama˜no de la base utilizada es mucho menor que la dimensi´on de los datos, al contrario de lo que ocurre en el caso de los splines de suavizado donde hay tantos nodos como datos, lo que hace que sea necesario trabajar con matrices de alta dimensi´on. El n´umero de nodos, en el caso de los P-splines, no supera los 40, lo que hace que sean computacionalmente eficientes, sobre todo cuando se trabaja con gran cantidad de datos.
2. La introducci´on de penalizaciones relaja la importancia de la elecci´on del n´umero y la localizaci´on de los nodos, cuesti´on que es de gran importancia en los splines de rango bajo sin penalizaciones (ver por ejemplo Rice and Wu (2001)).
3. La correspondencia entre los P-splines y el BLUP 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 como PROC MIXED en SAS y lme() en S-PLUS y R.
1. Bases y Penalizaciones
Supongamos que tenemos n pares de datos (xi, yi) y estamos interesados en ajustar el modelo
yi = f (xi) + i i ∼ N(0, σ2)
donde f (.) es una funci´on suave de los datos. Por ejemplo, simulamos los siguientes datos:
n = 200
x = seq(0,1,length=n)
y = sin(3*pi*x) + 0.5*rnorm(n) plot(x,y,pch=1,bty="l",col=12) lines(x,sin(3*pi*x),col=6)
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
0.0 0.2 0.4 0.6 0.8 1.0
−1012
x
y
Figura 1: Datos simulados, la l´ınea corresponde a f (x) = sin(3πx)
Nuestro objetivo es estimar la funci´on f (x) = sin(3πx) mediante splines con penalizaciones.
Los P-splines fueron introducidos por Eilers and Marx (1996), aunque han alcanzado gran popularidad recientemente (ver por ejemplo Ruppert et al. (2003)). La metodolog´ıa se puede resumir de la siguiente forma: (a) utilizar una base para la regresi´on, y (b) modificar la funci´on de verosimilitud introduciendo una penalizaci´on basada en diferencias entre coe- ficientes adyacentes. En el caso de datos normalmente distribuidos tenemos el modelo de regresi´on y = Ba + , donde ∼ N(0, σ2I), y B = B(x) es la base de regresi´on construida a partir de x. Para estimar los coeficientes de regresi´on se minimiza la funci´on de m´ınimos cuadrados penalizados:
S(a; y, λ) = (y− Ba)0(y− Ba) + λa0P a (3.1) donde P es es una matriz que penaliza los coeficientes de forma suave y λ es el par´ametro de suavizado. Fijado un valor de λ, minimizar (3.1) da lugar al sistema de ecuaciones
(B0B + λD0D)ˆa = B0y. (3.2)
Si λ = 0 se corresponde con las ecuaciones normales de regresi´on de y sobre B. Es impor- tante el hecho de que el tama˜no del sistema de ecuaciones anterior depende del tama˜no de
la base y no del n´umero de observaciones.
El par´ametro λ determina la influencia de la penalizaci´on: si es 0, estamos en un caso de re- gresi´on con B-splines, y si λ es muy grande, estar´ıamos ajustando un polinomio de grado p−1.
Es sencillo probar que:
ˆ
y = B(B0B + λD0D)−1B0y = Hy, (3.3) H no es una matriz de proyecci´on, ya que no es idempotente, pero su forma hace que el m´etodo de suavizado sea lineal. La traza de H corresponde a la dimensi´on del modelo (el n´umero equivalente de par´ametros que estar´ıamos estimando).
1.1. Bases y nodos
La base para la regresi´on se puede calcular de muchas maneras, y de hecho hay dos grandes grupos dentro de los estad´ısticos que utilizan los P-splines: los que utilizan las bases polinomios truncados y los que utilizan las bases de B-splines. Adem´as existen otras alternativas como thin plate regression splines.
Polinomios truncados
Supongamos de nuevo que tenemos pares (xi, yi), i = 1, . . . , n. Para simplificar, vamos a suponer que x est´a en [0, 1]. Tomamos k nodos equidistantes en ese intervalo tj = (j− 1)/k j = 2, . . . , k + 1. Una base de polinomios truncados de grado p viene dada por:
1, x, x2, . . . , xp,{(x − t1)+}p, . . . ,{(x − tk)p+}p
donde x+ = max(0, x) (por eso son truncados, ya que a partir de un cierto punto valen 0).
La funci´on {(x − t)+}p tienen p− 1 derivadas continuas, de modo que cuanto mayor sea p m´as suave son las funciones en la base. En lenguajes como Matlab, Splus o R es trivial el c´alculo de estas funciones:
tpoly= function{x,t,p){
#Polinomios truncados de grado p B=NULL
for(i in 1:length(t)){
B=cbind(B,(x-t[i])^p * (x>t[i])) }
}
Tomamos los nodos, por ejemplo, si queremos 10 nodos:
K=10
knots=seq(0,1,length=(K+2))[-c(1,K+2)]
entonces,
B0=tpoly(x,knots,0) B1=tpoly(x,knots,1) B2=tpoly(x,knots,2) B3=tpoly(x,knots,3)
son bases de polinomios truncados de grado 0, 1, 2 y 3 respectivamente (ver Figura 2)
0.0 0.2 0.4 0.6 0.8 1.0
0.00.40.8
x
Polinomios truncados de grado 0
0.0 0.2 0.4 0.6 0.8 1.0
0.00.40.8
x
Polinomios truncados de grado 1
0.0 0.2 0.4 0.6 0.8 1.0
0.00.40.8
x
Polinomios truncados de grado 2
0.0 0.2 0.4 0.6 0.8 1.0
0.00.40.8
x
Polinomios truncados de grado 3
Figura 2: Bases de polinimios truncados de grado 0, 1, 2 y 3
B-splines
Las referencias b´asicas son De Boor (1977) y Dierckx (1993). Un B-spline est´a formado por trozos de polinomios conectados entre si. Un ejemplo muy simple aparece en la parte superior izquierda de la Figura 3: un B-spline de grado 1. Est´a formado por dos trozos de polinomio lineal que se unen en un nodo, en la parte derecha aparecen m´as B-splines, cada uno de los cuales est´a basado en tres nodos. En la parte inferior aparece un B-spline de grado tres, est´a formado por 4 trozos de polinomios unidos entre si, de nuevo vemos que todas las funciones de la base tienen la misma forma, pero est´an desplazadas horizontalmente (el
0.0 0.2 0.4 0.6 0.8 1.0
0.00.40.8
x
●
●
●
● ● ●
0.0 0.2 0.4 0.6 0.8 1.0
0.00.40.8
x
0.0 0.2 0.4 0.6 0.8 1.0
0.00.40.8
x
●
●
●
●
●
● ● ● ● ●
0.0 0.2 0.4 0.6 0.8 1.0
0.00.40.8
x
Figura 3: Bases de B-splines de orden 1 y 3.
desplazamiento es una funci´on de la distancia entre los nodos). En general un B-spline de grado p :
Consiste en p + 1 trozos de polinomio de orden p.
Se unen en p nodos internos
En los puntos de uni´on las derivadas hasta el orden p− 1 son continuas.
El B-spline es positivo en el dominio expandido por p + 2 nodos y 0 en es 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.
Los B-splines no “padecen” los efectos de frontera comunes en otros m´etodos de suavizado, como algunos kernels, en los que al extender la curva ajustada fuera del dominio de los datos
´
esta tiende hacia cero. De Boor (2001) presenta un algoritmo para el c´alculo de los B- splines, este algoritmo se puede simplificar f´acilmente en software como MATLAB, S-PLUS y
R, por ejemplo, la funci´on para el c´alculo de una base de B-splines de orden bdeg con ndx nodos ser´ıa:
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}
Thin plate regression splines (tprs)
Los thin plate splines son funciones que minimizan la funci´on objetivo:
X(yi− f(xi))2+ λ
Z ∂2f
∂x2
2
dx Es posible reescribir la equaci´on anterior como:
ky − Eδ − T γk + λδ0Eδ
En Green and Silverman (1994) se pueden encontrar m´as detalles sobre este m´etodo de sua- vizado.
El principal problema es que el n´umero de nodos (y por lo tanto el n´umero de par´ame- tros) es igual al n´umero de datos, lo que hace que sea computacionalmente muy costoso, sobre todo cuando pasamos al caso multidimensional. Por ello, Wood (2003) desarroll´o los thin plate regression splines que son una versi´on de los anteriores en la que el n´umero de nodos es mucho menor al n´umero de datos. La Figura 4 muestra una base the thin plate regression splines.
1.2. Penalizaciones y coeficientes
Supongamos que tenemos una base B construida con k nodos. Si utilizamos m´ınimos cuadrados para ajustar el modelo, la funci´on objetivo ser´a:
S(a; y) = (y− Ba)0(y− Ba) ⇒ ˆa = (B0B)−1B0y
y la curva ajustada ˆf (x) = B ˆa depender´a del tama˜no de la base. En la Figura 5 vemos el efecto que tiene el tama˜no de la base en la curva, cuanto mayor sea la base menos suave es la curva, cuando el n´umero de nodos coincide con el n´umero de datos obtenemos una curva que interpola los datos.
Para solucionar esta situaci´on, O’Sullivan (1986) introdujo una penalizaci´on en la segunda derivada de la curva, de modo que la funci´on objetivo pas´o a ser:
S(a; y, λ) = (y− Ba)0(y− Ba) + λ Z
x(B00a)2dx