M´etodos de suavizado eficientes con P-splines
Mar´ıa Durb´ an
Universidad Carlos III de Madrid
´ Indice general
1. Introducci´on 3
1. Modelos lineales generalizados . . . 6
1.1. La familia exponencial . . . 9
1.2. Estimaci´on de Modelos Lineales Generalizados . . . 10
2. M´etodos de suavizado 13 1. Regresi´on polinomial local: Lowess/Loess . . . 15
2. Suavizado con kernels . . . 17
3. Splines . . . 18
3.1. N´umero y posici´on de los nodos . . . 18
3.2. Splines de suavizado (smoothing splines) . . . 19
3. Splines con penalizaciones (P-splines) 23 1. Bases y Penalizaciones . . . 23
1.1. Bases y nodos . . . 25
1.2. Penalizaciones y coeficientes . . . 28
1.3. Estimaci´on de par´ametros y grados de libertad . . . 31
1.4. Selecci´on del par´ametro de suavizado . . . 32
2. P-splines como modelos mixtos . . . 33
3. P-splines para datos multidimensionales . . . 35
3.1. P-splines multidimensionales como modelos mixtos . . . 37
4. Modelos additivos generalizados . . . 40
4.1. Modelos aditivos generalizados con P-splines . . . 40
4.2. Inferencia sobre las funciones suaves . . . 40
4. Software 42 5. Aplicaciones 49 1. Modelos Aditivos . . . 49
1.1. Ejemplo: Calidad del aire . . . 49
2. Modelos Semiparam´etricos . . . 60
3. P-splines para datos longitudinales . . . 64
3.1. Modelo con ordenada en el origen aleatoria . . . 64
3.2. Modelo aditivo mixto . . . 66
3.3. Modelo con diferencias individuales lineales . . . 67
3.4. Interacci´on de curva por factor . . . 69
3.5. Curvas espec´ıficas para cada individuo . . . 71
4. Datos correlados . . . 75
5. Datos multidimensionales . . . 77
5.1. Ejemplo 1: Tendencias espaciales en experimentos de campo . . . 77
5.2. Ejemplo 2: An´alisis de datos de mortalidad . . . 79
5.3. Ejercicio: Infecci´on post-operatoria . . . 82
5.4. Ejercicio: Kiphosis data . . . 84
5.5. Ejemplo 3: Aplicaciones en disease mapping . . . 85
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: Calidad del aire
Los datos curresponden a medias de la calidad del aire en Nueva York de Mayo a Sep- tiembre de 1979, Las variables son:
Ozone: Cantidad de ozono media en partes por billon entre las 13:00 y las 15:00 horas en la Isla de Roosvelt
Solar.R: Radiaci´on solar (en Langleys) entre las 08:00 y las 12:00 en Central Park wind: Velocidad media del viento (en millas por hora) entre las 07:00 y las 10:00 en el aeropuerto de la Guardia
Temp: Temperatura m´axima (en grados Fahrenheit) en el aeropuerto de la Guardia Empezamos por ajustar el siguiente modelo:
Ozone = β0+ β1× T emp + β2× W ind + β3× Solar.R + ε aire.lm=lm(Ozone~Temp+Wind+Solar.R,data=airquality)
Coefficients:
Estimate Std. Error t value Pr(>|t|) (Intercept) -64.34208 23.05472 -2.791 0.00623
Temp 1.65209 0.25353 6.516 2.42e-09
Wind -3.33359 0.65441 -5.094 1.52e-06 Solar.R 0.05982 0.02319 2.580 0.01124 ---
Residual standard error: 21.18 on 107 degrees of freedom (42 observations deleted due to missingness)
Multiple R-squared: 0.6059, Adjusted R-squared: 0.5948 F-statistic: 54.83 on 3 and 107 DF, p-value: < 2.2e-16
4
En principio todas las variables son significativas, aunque el R2 es bajo. Hacemos un gr´afico de los efectos lineales parciales: Los resultados sin, aparentemente coherentes: a m´as tem-
60 70 80 90
−40−2002040
Temp
Partial for Temp
5 10 15 20
−40−2002040
Wind
Partial for Wind
0 100 250
−40−2002040
Solar.R
Partial for Solar.R
Figura 2: Gr´afico de efectos lineales parciales
peratura y m´as radiaci´on solar m´as ozono, y al contrario cuando aumenta la velocidad del viento. Pero algo no funciona ya que el R2 = 0,59. Si hacemos gr´aficos de residuos:
par(mfrow=c(1,2))
plot(aire.lm,which=1:2)
−20 0 20 40 60 80 100
−50050100
Fitted values
Residuals ●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●● ●
●
●
●
●
● ●
● ●
●
● ●
●
●
Residuals vs Fitted
117
3062
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●●
●
●
−2 −1 0 1 2
−2−1012345
Theoretical Quantiles
Standardized residuals
Normal Q−Q
117
3062
Figura 3: Gr´aficos de residuos
¿Qu´e nos dicen estos gr´aficos?.
Podemos ver de otra forma si los datos siguen una distribuci´on Normal:
hist(airquality$Ozone) hist(log(airquality$Ozone))
Histogram of airquality$Ozone
airquality$Ozone
Frequency
0 50 100 150
0102030
Histogram of log(airquality$Ozone)
log(airquality$Ozone)
Frequency
0 1 2 3 4 5
05101520
Figura 4: Histograma de datos originales y transformados
Podemos repetir el modelo con la variable transformada y analizar de nuevo los residuos:
aire2.lm=lm(log(Ozone)~Temp+Wind+Solar.R,data=airquality) summary(aire2.lm)
Coefficients:
Estimate Std. Error t value Pr(>|t|) (Intercept) -0.2621323 0.5535669 -0.474 0.636798 Temp 0.0491711 0.0060875 8.077 1.07e-12 Wind -0.0615625 0.0157130 -3.918 0.000158 Solar.R 0.0025152 0.0005567 4.518 1.62e-05 ---
Residual standard error: 0.5086 on 107 degrees of freedom Multiple R-squared: 0.6644, Adjusted R-squared: 0.655 F-statistic: 70.62 on 3 and 107 DF, p-value: < 2.2e-16 plot(aire2.lm,which=1:2)
A´un hay algo que no funciona.... ¿Qu´e pasa si hacemos un gr´afico entre el Ozono y el viento?.
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
1.5 2.0 2.5 3.0 3.5 4.0 4.5
−2−101
Fitted values
Residuals
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●●●
●
●
● ●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
Residuals vs Fitted
21 24
117
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
−2 −1 0 1 2
−4−3−2−10123
Theoretical Quantiles
Standardized residuals
Normal Q−Q
21
24 117
Figura 5: Gr´afico de residuos con los valores transformados
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 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 6, el modelo es claramente no-lineal
●
●
●
●
●
●
●
0.2 0.4 0.6 0.8
0.20.40.60.8
x
perc
Figura 6: 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β.
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 1−PP (logist´ıstica) Poisson η = ln(µ) (logar´ıtmica) Exponential η = µ (rec´ıproca)1 Gamma η = µ (rec´ıproca)1
Cuadro 2: Funciones link m´as usadas en los GLMs
DISTRIBUCIÓN RESPUESTA EJEMPLOS
• La respuesta es continua • Longitudes y pesos ( de peces, crustáceos, moluscos )
Gaussiana • La distribución de los datos es simétrica
moluscos...)
• Diámetros (árboles, erizo de mar)
• Temperatura, salinidad, altura de las olas,…
• La respuesta es continua (no
negativa) • Abundancias expresadas como porcentaje.
Gamma negativa)
• la distribución de los datos es asimétrica
• Porcentaje de percebe por unidad de muestreo, cobertura algal,…
• La respuesta es categórica (binaria) • Presencia de una especie Binomial • La respuesta es categórica (binaria)
• Presenta 2 niveles de respuesta (0/1)
(0=ausencia,1=presencia)
• Sexo (0=macho, 1=hembra),…
• La respuesta es discreta (0,1,2,…)
• Recuento de un suceso en el tiempo • Nº de capturas por mes.
Poisson • Recuento de un suceso en el tiempo, espacio, volumen.
• Varianza=Media.
• Nº de individuos por unidad de muestreo.
• Nº de individuos por hectárea,..
• La respuesta es discreta (0 1 2 ) Binomial Negativa
• La respuesta es discreta (0,1,2,…)
• Presencia de sobredispersión:
Varianza>Media
• Similares a Poisson, presentado sobredispersión.
ZIP • La respuesta es discreta (0 1 2 )
• Frecuencia de especies escasas, raras o difíciles de muestrear
ZIP (Zero‐Inflated Poisson)
• La respuesta es discreta (0,1,2,…)
• Exceso de ceros.
de muestrear
• Abundancia de especies en estudios multiespecíficos
• La respuesta es categórica
(multinomial) • índices de abundancia “cualitativos”
Multinomial (multinomial)
• Presenta K≥2 niveles de respuesta (0,..,K)
• índices de abundancia cualitativos 0=bajo, 1=medio, 2=alto, 3=muy alto.
Figura 7: Distribuciones m´as comunes
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.
Ejemplo : Riesgo de infecci´on post-quir´urgica
Utlizamos los datos del archivo POI.txt que contiene informaci´on de un estudio de sobre el riesgo de infecci´on postquir´urgica en pacientes con diabletes. Las variables son:
poi, presencia de infecci´on age, edad en a˜nos
gender, sexo
gluc, nivel de glucosa
Para este ejemplo vamos a utilizar solo el nivel de glucosa como variable predictora log
p
1− p
= β0+ β1gluc
POI=read.table("POI.txt", header=TRUE)
poi.glm=glm(poi~gluc, family=binomial,data=POI) summary(poi.glm)
Coefficients:
Estimate Std. Error z value Pr(>|z|) (Intercept) -2.514401 0.171859 -14.631 < 2e-16 ***
gluc 0.009592 0.001380 6.952 3.6e-12 ***
---
Null deviance: 2335.6 on 2350 degrees of freedom Residual deviance: 2289.5 on 2349 degrees of freedom AIC: 2293.5
50 100 150 200 250 300
−0.50.00.51.01.52.0
gluc
Partial for gluc
Para comprobar si el nivel de glucosa es significativo:
anova(poi.glm,test="Chi")
Df Deviance Resid. Df Resid. Dev Pr(>Chi)
NULL 2350 2335.6
gluc 1 46.13 2349 2289.5 1.107e-11 ***
El modelo nos dice:
ˆ p
1− ˆp= e−2,5+ e0,009
¿Cu´anto aumenta la posibilidad de tener una infecci´on al aumentar en 5 unidades la cantidad de glucosa?
Cap´ıtulo 2
M´ etodos de suavizado
Aunque los modelos GLM son bastante flexibles ya que pueden ajustarse para gran variedad de distribuciones, estos modelos asumen que la influencia de las variables continuas en la variable respuesta es lineal, es decir:
η = β0+ β1x
pero en muchas ocasiones el efecto de x puede tener una forma desconocida:
η = β0+ f (x)
Una primera aproximaci´on ser´ıa utilizar regresi´on polin´omica:
= β0+ β1x + β2x2+ . . . + βpxp 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)
Ejemplo : Prestigio
Podemos estar interesados en ajustar un polinomio a la relaci´on el salario medio y el pretigio, en el archivo poli.R
library(car)
plot(Prestige$income, Prestige$prestige,xlab="sueldo",ylab="Prestigio") prestigio1.fit<-lm(prestige~income,data=Prestige)
Prestige2 <- data.frame(income =seq(min(Prestige$income),max(Prestige$income),1)) lines(Prestige2$income,predict(prestigio1.fit,Prestige2),lty=1,col="black",lwd=2) prestigio2.fit<-lm(prestige~poly(income,2),data=Prestige)
lines(Prestige2$income,predict(prestigio2.fit,Prestige2),lty=2,col="blue",lwd=2) prestigio6.fit<-lm(prestige~poly(income,3),data=Prestige)
lines(Prestige2$income,predict(prestigio3.fit,Prestige2),lty=3, col="red",lwd=2) legend(17500,40,c("p=1", "p=2","p=3"),col=c("black","blue","red"), lty=c(1,2,3), lwd=2)
● ●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
● ●
● ●
●
●
●
●
●
●
● ●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
0 5000 10000 15000 20000 25000
20406080
sueldo
Prestigio
p=1 p=2 p=3
Una opci´on m´as flexible es el uso de 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/Loess
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)).
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
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 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) 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. En la funci´on loess(), el span por defecto es s = 0,5.
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
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
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 polinomio 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 polinomios a unirse de forma suave en estos puntos, ver Figura 3).
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.
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.
Figura 3: Una series de polinomios a trozos de orden 3, con ´ordenes de continuidad creciente
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, λ) =
n
X
i=1
(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.
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,
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
0 5000 10000 15000 20000 25000
20406080
Average Income
Prestige
Figura 4: Spline c´ubico natural con 4 nodos en los cuantiles de income.
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)