Mar a Durb an Universidad Carlos III de Madrid
Transcript of Mar a Durb an Universidad Carlos III de Madrid
Metodos de suavizado eficientes con P-splines
Marıa Durban
Universidad Carlos III de Madrid
Indice general
1. Introduccion 31. Modelos lineales generalizados . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1. La familia exponencial . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2. Estimacion de Modelos Lineales Generalizados . . . . . . . . . . . . 10
2. Metodos de suavizado 131. Regresion polinomial local: Lowess/Loess . . . . . . . . . . . . . . . . . . . 152. Suavizado con kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173. Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1. Numero y posicion de los nodos . . . . . . . . . . . . . . . . . . . . . 183.2. Splines de suavizado (smoothing splines) . . . . . . . . . . . . . . . . 19
3. Splines con penalizaciones (P-splines) 231. Bases y Penalizaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.1. Bases y nodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.2. Penalizaciones y coeficientes . . . . . . . . . . . . . . . . . . . . . . . 281.3. Estimacion de parametros y grados de libertad . . . . . . . . . . . . . 311.4. Seleccion del parametro de suavizado . . . . . . . . . . . . . . . . . . 32
2. P-splines como modelos mixtos . . . . . . . . . . . . . . . . . . . . . . . . . 333. P-splines para datos multidimensionales . . . . . . . . . . . . . . . . . . . . 35
3.1. P-splines multidimensionales como modelos mixtos . . . . . . . . . . 374. Modelos additivos generalizados . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1. Modelos aditivos generalizados con P-splines . . . . . . . . . . . . . . 404.2. Inferencia sobre las funciones suaves . . . . . . . . . . . . . . . . . . . 40
4. Software 42
5. Aplicaciones 491. Modelos Aditivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.1. Ejemplo: Calidad del aire . . . . . . . . . . . . . . . . . . . . . . . . 492. Modelos Semiparametricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603. P-splines para datos longitudinales . . . . . . . . . . . . . . . . . . . . . . . 64
3.1. Modelo con ordenada en el origen aleatoria . . . . . . . . . . . . . . . 643.2. Modelo aditivo mixto . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.3. Modelo con diferencias individuales lineales . . . . . . . . . . . . . . . 67
1
3.4. Interaccion de curva por factor . . . . . . . . . . . . . . . . . . . . . 693.5. Curvas especıficas para cada individuo . . . . . . . . . . . . . . . . . 71
4. Datos correlados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755. Datos multidimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1. Ejemplo 1: Tendencias espaciales en experimentos de campo . . . . . 775.2. Ejemplo 2: Analisis de datos de mortalidad . . . . . . . . . . . . . . . 795.3. Ejercicio: Infeccion post-operatoria . . . . . . . . . . . . . . . . . . . 825.4. Ejercicio: Kiphosis data . . . . . . . . . . . . . . . . . . . . . . . . . 845.5. Ejemplo 3: Aplicaciones en disease mapping . . . . . . . . . . . . . . 85
2
Capıtulo 1
Introduccion
Un modelo lineal es deseable porque es simple de ajustar, se entiende facilmente, y exis-ten muchas tecnicas disponibles para contrastar las hipotesis del modelo. Sin embargo, enmuchos casos, los datos no estan relacionados de forma lineal, por lo que no tiene sentidoutilizar los modelos de regresion lineal.
Un modelo de regresion no-lineal clasico tendrıa la siguiente forma:
y = f(Xβ) + ε
donde β = (β1, . . . βp)′ es un vector de parametros, que han de ser estimados, y X es la
matriz que contiene las variables predictoras. La funcion f(.), relaciona el valor medio de lavariable respuesta y con las variables predictoras, y su forma esta especificada a priori . Porejemplo, en muchos modelos biologicos, 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ıcilencontrar una funcion que estime la relacion existente de forma correcta (ver por ejemplo lasiguiente figura):
Una posible solucion es: regression no-parametrica. El modelo general de regresionno-parametrica 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 metodos de regresion no-parametrica asumen que f(.) es una funcioncontinua y suave, y que εi ∼ NID(0, σ2) (aunque esto ultimo puede relajarse de formasencilla).Un caso importante de el modelo general, es la regresion no-parametrica simple, donde solohay una variable predictora
y = f(x) + ε
A la regresion no-parametrica simple tambien se le llama Nonparametric simple regressionis often called scatterplot smoothing, porque una aplicacion importante es dibujar una curvaan un diagrama de y sobre x.
3
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
1Fixed 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
1Exponentially varying weights of differences
Figure 13: Smoothing of simulated data (dots) with and without exponentiallyvarying 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); brokenline: true curve.
position k. It follows, for large λ, α will be a smooth series, except for a kink atposition k. If both vk and vk−1 are 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 moreor less smoothed way in the fitted curve. Of course, combinations of multiple kinksand jumps can be introduced this way.
In some application a gradually changing smoothness may be sufficient. This canbe accomplished by taking vk = eγk. Both λ and γ are optimized by cross-validationor AIC. Of course, this applies equally well to TPF. An example of smoothing withan exponential change of the weights in the penalty is shown in Figure 13, usingsimulated data: a sine function with changing frequency and amplitude. If we useuniform weights and optimize λ with leave-one-out cross-validation (which givesoptimal λ? = 0.1), we get a result that gives rather strong fluctuations of the fittedcurve in the low-frequency part and misses the data in the high-frequency part. If weintroduce weights eγk and optimize both γ and λ, we get a more reasonable result.A grid search gave (approximate) optimal values γ? = 0.2 and λ? = 3× 10−4. Thismeans that, with the 100 knots used here, the largest weight is about 5× 108 timeslarger 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 contextof multivariate calibration by penalized signal regression, markedly improved cross-validation behavior. Aldrin (2006) investigated the use of both first and second orderpenalties in additive models based on P-splines, and found improved prediction.
21
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 horasen la Isla de Roosvelt
Solar.R: Radiacion 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 elaeropuerto de la Guardia
Temp: Temperatura maxima (en grados Fahrenheit) en el aeropuerto de la Guardia
Empezamos por ajustar el siguiente modelo:
Ozone = β0 + β1 × Temp+ β2 ×Wind+ β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 graficode los efectos lineales parciales: Los resultados sin, aparentemente coherentes: a mas tem-
60 70 80 90
−40
−20
020
40
Temp
Partia
l for T
emp
5 10 15 20
−40
−20
020
40
Wind
Partia
l for W
ind
0 100 250
−40
−20
020
40
Solar.R
Partia
l for S
olar.R
Figura 2: Grafico de efectos lineales parciales
peratura y mas radiacion solar mas ozono, y al contrario cuando aumenta la velocidad delviento. Pero algo no funciona ya que el R2 = 0,59. Si hacemos graficos de residuos:
par(mfrow=c(1,2))
plot(aire.lm,which=1:2)
−20 0 20 40 60 80 100
−50
050
100
Fitted values
Res
idua
ls
Residuals vs Fitted
117
6230
−2 −1 0 1 2
−2−1
01
23
45
Theoretical Quantiles
Sta
ndar
dize
d re
sidu
als
Normal Q−Q
117
6230
Figura 3: Graficos de residuos
¿Que nos dicen estos graficos?.
Podemos ver de otra forma si los datos siguen una distribucion Normal:
5
hist(airquality$Ozone)
hist(log(airquality$Ozone))
Histogram of airquality$Ozone
airquality$Ozone
Freq
uenc
y
0 50 100 150
010
2030
Histogram of log(airquality$Ozone)
log(airquality$Ozone)
Freq
uenc
y
0 1 2 3 4 5
05
1015
20Figura 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)
Aun hay algo que no funciona.... ¿Que pasa si hacemos un grafico entre el Ozono y el viento?.
1. Modelos lineales generalizados
Los modelos lineales generalizados (GLMs) extienden el modelo lineal para acomodar lasvariables respuestas que no siguen una distribucion Normal, bajo un enfoque unificado. Es
6
1.5 2.0 2.5 3.0 3.5 4.0 4.5
−2−1
01
Fitted values
Res
idua
ls
Residuals vs Fitted
21
24
117
−2 −1 0 1 2
−4−3
−2−1
01
23
Theoretical Quantiles
Sta
ndar
dize
d re
sidu
als
Normal Q−Q
21
24
117
Figura 5: Grafico de residuos con los valores transformados
bastante comun encontrarse en siatuaciones en las que la variable resuesta no cumple lashipotesis estandar del modelo lineal (datos Normales, varianza constante, etc.), por ejemplo:datos de conteo, datos dicotomicos, datos truncados, etc. Los GLMs se basan en la teorıade Nelder and Wedderburn (1972) y McCullagh and Nelder (1989), desde entonces, con losavances del software estadıstico, estos modelos se han convertido en una herramienta basicapara muchos investigadores.Hay dos temas fundamentales en la nocion de los modelos lineales generalizados: la distri-bucion de la variable respuesta, y como el modelo establece la relacion entre la media de lavariable respuesta y las variables explicativas. variables.
Ejemplo de motivacion: Experimento de toxicidad
El experimento intenta establecer la relacion entre la concentracion de un agente toxico(nicotina) y el numero de insectos (mosca de la fruta) que mueren: Los datos siguen una
xConcentracion n y
(g/100cc) Numero de insectos Numero de muertos Porcentaje de muertos0.1 47 8 17.00.15 53 14 26.40.20 55 24 43.60.30 52 32 61.50.50 46 38 82.60.70 54 50 92.60.95 52 50 96.2
Cuadro 1: Datos del experimento de toxicidad
7
distribucion Binomial
yi ∼ B(ni, pi) E[yi] = nipi(xi) V ar[yi] = nipi(1− pi)
Claramente, la varianza y la media estan relacionadas entre sı, y tambien con las variablespredictoras. Usando regresion lineal ordinaria para predecir el procentaje de moscas quemueren, estarıamos asumiendo que los datos vienen de una distribucion Normal, lo que esfalso, y ademas, con este tipo de datos tenemos la siguiente restriccion: 0 ≤ pi ≤ 1, la cualno es tenida en cuenta en el modelo de regresion. Ajustando el modelo pi = β0 + β1xi + εiobtenemos
(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!!!. Ademas, como se ve en la Figura 6, elmodelo es claramente no-lineal
0.2 0.4 0.6 0.8
0.20.4
0.60.8
x
perc
Figura 6: Grafico de la concentracion de nicotina frente al procentaje de animales muertosy la recta ajustada.
Aquı hemos usado un modelo de regresion ordinario:
y(= π) = Xβ + ε E[y|x] = Xβ
8
Dado que la probabilidad solo toma valores en el intervalo (0, 1). Podemos buscar una nuevaforma de representar E[y—x], de modo que la probabilidad este en (0, 1). Una forma deconseguirlo es utilizar la funcion 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 transformacion de la media delos 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 dedistribuciones . Todas las distribuciones pertenecientes a la familia exponencial tiene unafuncion 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(.) seran funciones especıficas. El parametro θ es lo que sellama parametro canonico de localizacion y φ es un parametro de dispersion. La distribucionBinomial, Poisson y Normal (entre otras) son miembros de la familia exponencial.
Componentes de un modelo lineal generalizado
En un modelo de regresion estandar:
y = Xβ + ε ε ∼ N(0, σ2I) E(y) = µ = Xβ
donde Xβ es una combinacion lineal de las variables predictoras llamada predictor lineal(el cual se representa como η), en este caso la media µ esta directamente relacionada con elpredictor lineal, ya que en este caso µ = η. Usando este modelo sencillo, podemos ver quehay dos componentes en el modelo: la funcion de probabilidad de la variable respuesta y laestructura lineal del modelo. En general, un modelo lineal generalizado tendra los siguientescomponentes:
1. Componente aleatorio: y es un vector aleatorio procedente de una distribucion quepertenece a la familia exponencial y cuya media es µ.
2. Componente sistematico: es el predictor lineal η = Xβ.
3. La funcion link : es una funcion monotona, derivable que establece la relacion entrela media y el predictor lineal
η = g(µ) E(y) = µ = g−1(η) (1.2)
9
En el caso del modelo de regresion ordinaria, µ = η, por lo tanto la funcion link es laidentidad. Hay muchas opciones par la funcion link. La funcion link canonica es unafuncion que transforma la media en el parametro canonico θ
η = g(µ) = θ ⇒ g es una funcion link canonica
Hay muchas opciones par la funcion link.
Distribucion LinkNormal η = µ (identidad)Binomial η = ln
(P
1−P)
(logistıstica)
Poisson η = ln(µ) (logarıtmica)Exponential η = 1
µ (recıproca)
Gamma η = 1µ (recıproca)
Cuadro 2: Funciones link mas 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 muestrearZIP(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 cualitativos0=bajo, 1=medio, 2=alto, 3=muy alto.
Figura 7: Distribuciones mas comunes
10
1.2. Estimacion de Modelos Lineales Generalizados
En el caso de la familia exponencial, dado un vector de observaciones y = (yi, y2, . . . , yn)′.El logaritmo de la verosimilitud es
l(θ|y) =n∑i=1
((yiθi − b(θi)/a(φ) + c(yi, φ)) (1.3)
Cuando usamos el link canonico: θ = η = Xβ, de modo que podemos estimar losparametros de interes β: Por lo tanto, la funcion score:
∂l
∂β=
∂l
∂θi
∂θi∂β
Es posible probar que:∂l
∂β=
n∑i=1
(yi − µi)g′(µi)Vi
xi
donde Vi = V ar(yi) = a(φ)b′′(θi).
Necesitamos igualar esa ecuacion a cero, pero no existe una solucion exacta, y utlizamosuna version de algoritmo de Newton-Rapson, llamado Fisher Scoring Algorithm. Es un al-goritmo iterativo cuya solucion es:
βnew = (X ′WX)−1X ′Wz
donde z = Xβold+(y−µold)g′(µold) (llamado working vector), y W es una matriz diagonalcuyos elementos wii = 1/g′(µi).
En la pagina 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 infeccion post-quirurgica
Utlizamos los datos del archivo POI.txt que contiene informacion de un estudio de sobreel riesgo de infeccion postquirurgica en pacientes con diabletes. Las variables son:
poi, presencia de infeccion
age, edad en anos
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
11
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.5
0.0
0.5
1.0
1.5
2.0
gluc
Parti
al 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
¿Cuanto aumenta la posibilidad de tener una infeccion al aumentar en 5 unidades la cantidadde glucosa?
12
Capıtulo 2
Metodos de suavizado
Aunque los modelos GLM son bastante flexibles ya que pueden ajustarse para granvariedad de distribuciones, estos modelos asumen que la influencia de las variables continuasen 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 aproximacion serıa utilizar regresion polinomica:
= β0 + β1x+ β2x2 + . . .+ βpx
p
Ejemplo: datos de pretigio
El siguiente conjunto de datos contiene datos sobre el nivel de prestigio que tienen 102profesiones en Canada en los anos 70. Las variables son:
prestige: prestigio medio, con rango de 0 a 100
income: salario medio de cada profesion, en dolares.
education: Numero medio de anos de educacion.
type: Una variable categorica con tres niveles:
• bc (directivos)
• wc (obreros)
• prof (profesionales liberales)
13
Ejemplo : Prestigio
Podemos estar interesados en ajustar un polinomio a la relacion el salario medio y elpretigio, 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
2040
6080
sueldo
Pres
tigio
p=1p=2p=3
Una opcion mas flexible es el uso de un suavizador o smoother es una herramienta querepresenta la tendencia de la variable respuesta y como funcion de uno o mas predictoreslineales x. Ya que es una estimacion de la tendencia, tendra menos variabilidad que y, por esose le llama suavizador (en este sentido, incluso la regresion lineal es una suavizador llevadoal extremo).
Hay diversas formas de realizar la regresion no parametrica, pero todas ellas tienen en comunque se basan en los propios datos para especificar la forma que tiene el modelo: la curva enun punto dado solo depende de las observaciones en ese punto y de las observaciones vecinas.Estas son algunas de las tecnicas de regresion no-parametrica existentes
14
1. Regresion polinomial local con pesos, lowess.
2. Kernels
3. Splines
4. Splines con penalizaciones (Psplines)
1. Regresion polinomial local: Lowess/Loess
La idea de regresion local fue propuesta por Cleveland (1979). Intentamos ajustar elmodelo,
yi = f(xi) + εi
siguiendo los siguientes pasos:
1. definimos el ancho de ventana (m): Incluye a los vecinos mas cercanos. En este ejemploutilizamos m = 50, es decir, para cada punto selecionamos los 50 vecinos mas cercanos(una ventana que incluye a los 50 vecinos de x(80) se muestra en la Figura 2(a)).
0 5000 15000 25000
2040
6080
(a)
Average Income
Pres
tige
0 5000 15000 25000
0.00.4
0.8
(b)
Average Income
Tricu
be W
eight
0 5000 15000 25000
2040
6080
(c)
Average Income
Pres
tige
0 5000 15000 25000
2040
6080
(d)
Average Income
Pres
tige
Figura 1: Lowess smoother
2. Asignar pesos a los datos: Se utiliza una funcion kernel para dar mas peso a los puntosmas cercanos a la observacion de interes x0. En la practica se utiliza normalmente lafuncion de pesos tricubica:
W (z) =
(1− |z|3)3 for |z| < 10 for |z| ≥ 1
15
donde zi = (xi − x0)/h, y h es la mitad de la longitud de la ventana. Observacionesque estan mas lejos de la distancia h de x0 reciben peso 0. Lo normal es elegir h demodo que cada regresion local incluya a una proporcion fija de puntos, s, y a esto se lellama el span del suavizador. La Figura 2(b) muestra los pesos de la funcion tricubicapara observaciones en una vecidad.
3. Mınimos cuadrados poderados locales: Ahora, ajustamos una regresion polinomial usan-do mınimos cuadrados ponderados (con pesos) sobre x0, pero solo utilizando las obser-vaciones mas cercanas para minimizar la suma de residuos al cuadrados ponderados.Normalmente se utiliza regresion polinomica de grado 1 (lineal) o 2 (cuadratica), perose puede utilizar polinomios de cualquier orden.
yi + bi(xi − x0) + b2(xi − x0)2 + . . .+ bp(xi − x0)p + ei
A partir de esta regresion, calculamos el valos ajustado correspondiente a x0 y lodibujamos en el diagrama. La Figura 2 (c) muestra el ajuste lineal local para los datosen la vecindad de x0, el valor ajustado y|x(80) se representa en el grafico por un puntoen negrita.
4. Curva no-parametrica:Los pasos 1-3 se repiten para cada observacion de los datos. Porlo que estamos haciendo un regresion local para cada valor de x, y los valores ajustadosde 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 regresion no-parametrica no tenemos parametros estimados, el interes esta en la curva,por lo que el enfasis esta en como de bien la curva ajustada representa la curva poblacional.
Las hipotesis bajo el modelo lowess son mucho menos restrictivas que las del modelo deregresion lineal, no hay ninguna hipotesis restrictiva sobre model µ, sin embargo, asumimosque alrededor de cada punto x0, µ debe ser, aproximadamente, una funcion local. Los erroresεi se suponen independientes y con media 0. Finalmente, un cierto numero de decisiones hande ser tomadas: el span, el grado del polinomio, el tipo de funcion de ponderacion; estasopciones afectaran 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 rangode x. El valor de s tiene un efecto importante en la curva. Un span demasiado pequeno(esto significa que muy pocas observaciones caen dentro de la ventana) da lugar a una curvacon mucho ruido, y por lo tanto con mucha varianza. Si el span es muy grande la curva
16
estara sobre-suavizada, por lo que puede que no ajuste bien los datos y haya una perdida deinformacion y por lo tanto, el sesgo sera 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 elegirlas observaciones para la regresion local. Este es un metodo apropiado si la distribucionde x es aproximadamente uniforme y/o el tamano muestral el grande. Sin embargo, six tiene una distribucion no-uniforme, este metodo puede fallar, ya que habra casos enlos que puede no haber vecinos o muy pocos. Esto es particularmente relevante en lafrontera del rango de x.
2. Vecinos mas proximos: Este metodo resuelve el problema anterior. El span s seelige de modo que cada vez se este utilizadon una determinada proporcion del total delos valores de x. La proporcion se elige probando hasta que eliminamos el ruido de lacurva. En la funcion loess(), el span por defecto es s = 0,5.
0 5000 10000 15000 20000 25000
2040
6080
Average Income
Pres
tige
s=0.1s=0.37s=0.63s=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 sealeja del punto de interes x0. El peso para la observacion j − th utilizada para el punto de
17
interes x0 viene dado por:
S0j =c0λd
(∣∣∣∣x0 − xjλ
∣∣∣∣)donde d(t) es una funcion decreciente en |t|, λ es el ancho de ventana , y c0 es una constanteelegida de modo que la suma de los pesos sea 1. Tıpicamente d(.) es la funcion de densidadde 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 polinomicas a trozos sobre las que se imponen restricciones enlos puntos de union llamados nodos, estos puntos dividen el rango de x en regiones. Lossplines dependen de tres elementos:
1. Grado del polinomio
2. Numero de nodos
3. Localizacion de los nodos
Aunque hay muchas combinaciones posibles, una eleccion popular consiste en polinomios atrozos de grado tres, continuos y con primera y segunda derivada continua en los nodos (estofuerza a los polinomios a unirse de forma suave en estos puntos, ver Figura 3).
Un spline cubico con dos nodos c1 y c2 tiene la siguiente forma:
y = β0 + β1x+ β2x2 + β3x
3 + β4(x− c1)3+ + β5(x− c1)3+,donde (u)+ = u si u > 0 y 0 en otro caso. Si hay k nodos, la funcion necesitara k + 4coeficientes de regresion.
Splines cubicos naturales Restringen el spline de modo que es lineal mas alla de losnodos que estan en la frontera, por lo tanto, necesita k + 2 parametros, esto es debido aque ahora no se impone que la derivada se a continua en c1 y ck , por lo que se eliminan 2parametros al final de los datos
y = β0 + β1x+ β2(x− c1)3+ + β3(x− c1)3+,
3.1. Numero y posicion de los nodos
Los splines cubicos dependen de los nodos, por lo que es necesario seleccionar cuantosy donde estaran situados. Es mas importante la eleccion del numero que de la posicion.Siempre se pueden colocar en los cuantiles de x.
Una eleccion tıpica es 3 ≤ k ≤ 7. En los casos en los que el tamano muestral es grande(n ≥ 100) y la variable respuesta es continua, k = 5 es un buen compromiso entre flexibi-lidad y precision. Para tamanos muestrales pequenos (n ≤ 30), k = 3 es una buena opcionpara empezar. El Akaike Information Criteria (AIC) puede ser utilizado para elegir k.
18
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 solucion al problema de minimizar la suma de residuos alcuadrado penalizados :
RSS(f, λ) =n∑i=1
(yi − f(xi))2 + λ
∫ xn
x1
f′′(x)2dx
El primer termino mide la proximidad a los datos y el segundo penaliza la curvatura de lafuncion. Aquı, λ es el parametro de suavizado , y controla el balance entre el sesgo y lavarianza de la curva ajustada. Si λ = 0, la curva interpola los datos, y si λ→∞, la segundaderivada se hace 0, por lo que tenemos un ajuste lineal.
Los splines de suavizado, son splines cubicos naturales en los que hay tantos nodos comoobservaciones unica de x. Esto podrıa parecer un modelo sobreparametrizado, sin embargo,el termino de penalizacion asegura que los coeficientes se reduzcan hacia la linealidad, limi-tando el numero de grados de libertad utilizados.El spline de suavizado es un suavizador lineal, en el sentido de que para cada valor unico xi,
19
0 5000 10000 15000 20000 25000
2040
6080
Average Income
Pres
tige
Figura 4: Spline cubico natural con 4 nodos en los cuantiles de income.
hay una base de funciones h(xi) tal que,
fλ(x) =n∑i=1
h(xi)yi
Podemos reescribir la suma de cuadrados residuales como:
RSS(θ, λ) = (y − hθ)′(y − hθ) + λθ′Ωθ
La solucion es,θ = (h′h+ λΩ)−1h′y
Es obvio el paralelismo con la regresion ridge, recordad que en este tipo de regresion, cuantomayor era λ, mas pequenos se hacıan los coeficientes; lo mismo ocurre en el caso de los splinesde suavizado. El modelo ajustado viene dado por:
f(x) =h∑j=1
hj(x)θj
Pero este tipo de suavizadores tiene un problema: ¿Como calculamos el valor apropiadodel parametro de suavizado λ para un conjuto de datos determinado?
Eleccion del parametro de suavizado
La eleccion del parametro de suavizado utilizamos:
20
1. Validacion cruzadaLa validacion cruzada deja cada vez un punto (xi, yi) fuera, y estima el valor de nuevoen xi basado en los restantes n1 puntos, y se construye la suma de cuadrados:
CV (λ) = n−1n∑i=1
(yi − f−iλ (xi))2
donde f−iλ (xi) indica el ajuste en xi calculado dejando la observacion i fuera. Utiliza-mos CV para la eleccion del parametro de suavizado de la siguiente forma: calculamosCV (λ) para ciertos valores de λ y selecionamos aquel que minimiza CV (λ).
En el caso de un suavizador lineal,
CV (λ) = n−1n∑i=1
(yi − fλ(xi)1− Sii(λ)
)2
donde S(λ) es la matriz de proyeccion 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. Validacion cruzada generalizadaHasta hace pocos anos, no se sabıa como calcular los elementos de las diagonal de S deuna forma eficiente, y esto llevo a introducir la validacion cruzada generalizada (GCV),la cual reemplaza Sii por su valor medio, Traza(S)/n, que es mas facil de calcular,
GCV (λ) = n−1n∑i=1
(yi − fλ(xi)
1− Traza(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 comparacion con GCV.
spline2=smooth.spline(income,prestige)
lines(spline2$x,spline2$y,col=4)
21
0 5000 10000 15000 20000 25000
2040
6080
Average Income
Pres
tige
Figura 5: Spline cubico natural con 4 nodos en los cuantiles de income (negro) y splines desuavizado con parametro de suavizado elegido mediante validacion cruzada (rojo).
0 5000 10000 15000 20000 25000
2040
6080
Average Income
Pres
tige
Figura 6: Spline cubico natural con 4 nodos en los cuantiles de income (negro) y splines desuavizado con paraemtro de suavizado elegido mediante validacion cruzada (azul).
22
Capıtulo 3
Splines con penalizaciones (P-splines)
En el capıtulo anterior vimos que hay dos grandes enfoques en el tema de modelos desuavizado con splines: a) splines de suavizado (smoothing splines) y b) splines de regresion(regression splines). Los splines de suavizado (ver por ejemplo Green and Silverman (1994))utilizan tantos parametros como observaciones, lo que hace que su implementacion no seaeficiente cuando el numero de datos es muy elevado. Los splines de regresion pueden serajustados mediante mınimos cuadrados una vez que se han seleccionado el numero de nodos,pero la seleccion de los nodos se hace mediante algoritmos bastante complicados.Los splines con penalizaciones combinan lo mejor de ambos enfoques: utilizan menos parame-tros que los splines de suavizado, pero la seleccion de los nodos no es tan determinante comoen los splines de regresion. Hay tres razones fundamentales para el uso de este tipo de splines:
1. Son splines de rango bajo, es decir, que el tamano de la base utilizada es mucho menorque la dimension de los datos, al contrario de lo que ocurre en el caso de los splines desuavizado donde hay tantos nodos como datos, lo que hace que sea necesario trabajarcon matrices de alta dimension. El numero de nodos, en el caso de los P-splines, nosupera los 40, lo que hace que sean computacionalmente eficientes, sobre todo cuandose trabaja con gran cantidad de datos.
2. La introduccion de penalizaciones relaja la importancia de la eleccion del numero y lalocalizacion de los nodos, cuestion que es de gran importancia en los splines de rangobajo sin penalizaciones (ver por ejemplo Rice and Wu (2001)).
3. La correspondencia entre los P-splines y el BLUP en un modelo mixto permite, enalgunos casos, utilizar la metodologıa existente en el campo de los modelos mixtos yel 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 elmodelo
yi = f(xi) + εi εi ∼ N(0, σ2)
donde f(.) es una funcion suave de los datos. Por ejemplo, simulamos los siguientes datos:
23
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
−10
12
x
y
Figura 1: Datos simulados, la lınea corresponde a f(x) = sin(3πx)
Nuestro objetivo es estimar la funcion f(x) = sin(3πx) mediante splines con penalizaciones.Los P-splines fueron introducidos por Eilers and Marx (1996), aunque han alcanzado granpopularidad recientemente (ver por ejemplo Ruppert et al. (2003)). La metodologıa se puederesumir de la siguiente forma: (a) utilizar una base para la regresion, y (b) modificar lafuncion de verosimilitud introduciendo una penalizacion basada en diferencias entre coe-ficientes adyacentes. En el caso de datos normalmente distribuidos tenemos el modelo deregresion y = Ba+ ε, donde ε ∼ N(0, σ2I), y B = B(x) es la base de regresion construidaa partir de x. Para estimar los coeficientes de regresion se minimiza la funcion de mınimoscuadrados penalizados:
S(a;y, λ) = (y −Ba)′(y −Ba) + λa′Pa (3.1)
donde P es es una matriz que penaliza los coeficientes de forma suave y λ es el parametrode suavizado. Fijado un valor de λ, minimizar (3.1) da lugar al sistema de ecuaciones
(B′B + λD′D)a = B′y. (3.2)
Si λ = 0 se corresponde con las ecuaciones normales de regresion de y sobre B. Es impor-tante el hecho de que el tamano del sistema de ecuaciones anterior depende del tamano de
24
la base y no del numero de observaciones.El parametro λ determina la influencia de la penalizacion: si es 0, estamos en un caso de re-gresion con B-splines, y si λ es muy grande, estarıamos ajustando un polinomio de grado p−1.
Es sencillo probar que:y = B(B′B + λD′D)−1B′y = Hy, (3.3)
H no es una matriz de proyeccion, ya que no es idempotente, pero su forma hace que elmetodo de suavizado sea lineal. La traza de H corresponde a la dimension del modelo (elnumero equivalente de parametros que estarıamos estimando).
1.1. Bases y nodos
La base para la regresion se puede calcular de muchas maneras, y de hecho hay dosgrandes grupos dentro de los estadısticos que utilizan los P-splines: los que utilizan lasbases polinomios truncados y los que utilizan las bases de B-splines. Ademas existen otrasalternativas como thin plate regression splines.
Polinomios truncados
Supongamos de nuevo que tenemos pares (xi, yi), i = 1, . . . , n. Para simplificar, vamos asuponer que x esta en [0, 1]. Tomamos k nodos equidistantes en ese intervalo tj = (j − 1)/kj = 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 funcion (x− t)+p tienen p − 1 derivadas continuas, de modo que cuanto mayor sea pmas suave son las funciones en la base. En lenguajes como Matlab, Splus o R es trivial elcalculo de estas funciones:
tpoly= functionx,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,
25
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.0
0.4
0.8
x
Polinomios truncados de grado 0
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.4
0.8
x
Polinomios truncados de grado 1
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.4
0.8
x
Polinomios truncados de grado 2
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.4
0.8
x
Polinomios truncados de grado 3
Figura 2: Bases de polinimios truncados de grado 0, 1, 2 y 3
B-splines
Las referencias basicas son De Boor (1977) y Dierckx (1993). Un B-spline esta formadopor trozos de polinomios conectados entre si. Un ejemplo muy simple aparece en la partesuperior izquierda de la Figura 3: un B-spline de grado 1. Esta formado por dos trozos depolinomio lineal que se unen en un nodo, en la parte derecha aparecen mas B-splines, cadauno de los cuales esta basado en tres nodos. En la parte inferior aparece un B-spline de gradotres, esta formado por 4 trozos de polinomios unidos entre si, de nuevo vemos que todas lasfunciones de la base tienen la misma forma, pero estan desplazadas horizontalmente (el
26
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.4
0.8
x
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.4
0.8
x
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.4
0.8
x
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.4
0.8
x
Figura 3: Bases de B-splines de orden 1 y 3.
desplazamiento es una funcion de la distancia entre los nodos). En general un B-spline degrado p :
Consiste en p+ 1 trozos de polinomio de orden p.
Se unen en p nodos internos
En los puntos de union 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 metodos de suavizado,como algunos kernels, en los que al extender la curva ajustada fuera del dominio de los datosesta tiende hacia cero. De Boor (2001) presenta un algoritmo para el calculo de los B-splines, este algoritmo se puede simplificar facilmente en software como MATLAB, S-PLUS y
27
R, por ejemplo, la funcion para el calculo de una base de B-splines de orden bdeg con ndxnodos 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 funcion objetivo:
∑(yi − f(xi))
2 + λ
∫ (∂2f
∂x2
)2
dx
Es posible reescribir la equacion anterior como:
‖y −Eδ − Tγ‖+ λδ′Eδ
En Green and Silverman (1994) se pueden encontrar mas detalles sobre este metodo de sua-vizado.
El principal problema es que el numero de nodos (y por lo tanto el numero de parame-tros) es igual al numero de datos, lo que hace que sea computacionalmente muy costoso,sobre todo cuando pasamos al caso multidimensional. Por ello, Wood (2003) desarrollo losthin plate regression splines que son una version de los anteriores en la que el numero denodos es mucho menor al numero de datos. La Figura 4 muestra una base the thin plateregression splines.
1.2. Penalizaciones y coeficientes
Supongamos que tenemos una base B construida con k nodos. Si utilizamos mınimoscuadrados para ajustar el modelo, la funcion objetivo sera:
S(a;y) = (y −Ba)′(y −Ba)⇒ a = (B′B)−1B′y
y la curva ajustada f(x) = Ba dependera del tamano de la base. En la Figura 5 vemos elefecto que tiene el tamano de la base en la curva, cuanto mayor sea la base menos suave esla curva, cuando el numero de nodos coincide con el numero de datos obtenemos una curvaque interpola los datos.
Para solucionar esta situacion, O’Sullivan (1986) introdujo una penalizacion en la segundaderivada de la curva, de modo que la funcion objetivo paso a ser:
S(a;y, λ) = (y −Ba)′(y −Ba) + λ
∫x
(B′′a)2dx
28
0.0 0.2 0.4 0.6 0.8 1.0
−4−2
02
x
Figura 4: Bases de thin plate regression splines.
La integral de la segunda derivada de la curva ajustada al cuadrado es una penalizacion bas-tante comun (es la que se utiliza en los splines de suavizado), sin embargo, no hay nada departicular en la segunda derivada, se puede utilizar derivadas de cualquier orden. La novedadque introducen los P-splines es que la penalizacion es discreta y que se penalizan los coeficien-tes directamente, en vez de penalizar la curva, lo que reduce la dimensionalidad del problema.
El tipo de penalizacion dependera del tipo de base que se este utilizando. En el caso depolinomios truncados, se utiliza una penalizacion “ridge” independientemente del grado delos polinomios truncados, es decir:
S(a;y, λ) = (y −Ba)′(y −Ba) + λa′a
esto equivale a poner una penalizacion en la derivada p+ 1 de la curva.Por el contrario, Eilers and Marx (1996) utiliza una penalizacion basada en la diferencias deorden d entre los coeficientes adyacentes de la bases de B-splines, este tipo de penalizaciones mas flexible ya que es independiente del grado del polinomio utilizado para construir losB-splines. Esta es una buena aproximacion discreta a la integral de la d-esima derivada alcuadrado. La penalizacion se anade a la funcion de mınimos cuadrados, dando lugar a unafuncion de mınimos cuadrados penalizados,
S(a;y, λ) = (y −Ba)′(y −Ba) + λa′P da⇒ a = (B′B + λP d)−1B′y (3.4)
donde P d = (∆d)′∆d, si d = 0 tenemos una penalizacion ridge. En general se utiliza d = 2,aunque se puede utilizar ordenes superiores o inferiores, dependiendo de la variabilidad de la
29
0.0 0.2 0.4 0.6 0.8 1.0
−10
12
x
y
3 nodos10 nodos20 nodos
Figura 5: Curva estimada con 3, 10 y 20 nodos.
curva y de la cantidad de ruido en los datos. Por ejemplo, una penalizacion de orden d = 2equivale a
(a1 − 2a2 + a3)2 + . . .+ (ak−2 − 2ak−1 + ak)
2 = a′D′Da
donde
D =
1 −2 1 0 . . .0 1 −2 1 . . .0 0 1 −2 . . ....
......
.... . .
En el caso de thin plate regression splines, ya vimos anteriormente utilizan una penalizacioncuadratica que mide la complejidad de la curva y es una version truncada de la penalizacionde un thin plate splines.
La Figura 6 se muestra el ajuste de una curva mediante B-splines sin y con penalizacion,se muestran los funciones que forman las bases (las columnas de la matriz B) multiplicadaspor los coeficientes, ası como los coeficientes (en un cırculo), en la parte izquierda vemoscomo el patron erratico de los coeficientes da lugar a una curva poco suave, en cambio en laparte derecha, cuando se les impone que se pase de un coeficiente a otro de forma suave, lacurva tambien lo es. Este grafico muestra lo que esta haciendo la penalizacion: fuerza a loscoeficientes a que sigan un patron suave.
Entre las propiedades de los P-splines con bases de B-splines hay que destacar que no tienen
30
efecto de frontera (como le ocurre a los kernels), el efecto de frontera es el que hace que alextender la curva fuera del dominio de x la curva caiga rapidamente hacia 0, esto no pasacon los P-splines. Ademas, los P-splines ajustan de forma exacta los polinomios, es decir, sila curva es polinomica, un P-spline la recuperara exactamente. Por ultimo, se conservan losmomentos, es decir, que la media y la varianza de los valores ajustados sera la misma que lade los datos sea cual sea el parametro de suavizado, al contrario que los kernels que tiendena aumentar la varianza cuanto mayor es el suavizado.
La seleccion y localizacion de los nodos no esta hecha de antemano, como en el caso delos smoothing splines, si se elige un numero suficientemente grande de nodos es suficientecon elegirlos de forma equidistante; aunque autores como Ruppert (2002) aconsejan elegir losnodos K nodos en los K-quantiles de x, es decir que cada nodo tk serıa el cuantil k/(K + 1)de x. En cuanto al numero de nodos, la mayorıa de los autores utilizan como regla:
numero de nodos = min40, valores unicos de x/4
0.0 0.2 0.4 0.6 0.8 1.0
−1
01
2
x
y
0.0 0.2 0.4 0.6 0.8 1.0
−1
01
2
x
y
Figura 6: Curva estimada con 20 nodos, sin penalizar los coeficientes (izquierda) y penali-zando los coeficientes (derecha).
31
1.3. Estimacion de parametros y grados de libertad
Hemos visto en la seccion anterior, que dada una base B y una penalizacion P , buscamosestimar un conjunto de parametros a que optimiza la verosimilitud penalizada dada en (3.4),la solucion es:
a = (B′B + λP )−1B′y ⇒ f(x) = Ba
Es importante caer en la cuenta de que la equacion anterior depende de λ, el parametro desuavizado, el cual, por el momento vamos a suponer conocido (mas adelante abordaremos eltema de la estimacion de dicho parametro).El otro parametro que queda por estimar es la varianza residual, σ2, la estimacion de esteparametro depende de los grados de liberdad del modelo, por lo que hemos de introducir elconcepto de grados de libertad efectivos.
Grados de libertad efectivos
Si en un modelo con P-splines tomamos λ = 0, entonces los grados de libertad delmodelo se corresponden con la dimension de la base B menos el numero de restricciones delmodelo, por el contrario, si tomamos un valor grande de λ el modelo es muy poco flexibley tendra muy pocos grados de libertad. Para definir los grados de libertad en este tipo demodelos, la opcion mas logica es utilizar una definicion analoga a la que se utiliza en losmodelos de regresion parametricos:
d.f. = traza(H) donde y = Hy
En este caso:H = B(B′B + λP )−1B′
por lo qued.f. = traza(H) = traza(B′B + λP )−1B′B
y la traza de esa matriz variara dependiendo del parametro de suavizado.
Estimacion de la varianza residual
En el caso de errores gaussianos, nuevamente utilizamos la equivalencia con el caso deregresion lineal:
σ2 =‖y −Ba‖2n− traza(H)
,
aunque este estimador no es insesgado, ya que depende del sesgo introducido por el suavizado,es el que se utiliza normalmente.
1.4. Seleccion del parametro de suavizado
El papel del parametro de suavizado en los P-splines, es el mismo que tiene en cual-quier otro metodo de suavizado: controlar la suavidad de la curva, pero aquı lo que hace espenalizar los coeficientes que estan muy separados entre sı, y cuanto mayor sea λ, mas se
32
0.0 0.2 0.4 0.6 0.8 1.0
−10
12
x
y
Figura 7: Curvas ajustadas para distintos valores de λ.
aproximaran los coeficientes a cero, de modo que si λ→∞ nos aproximamos a un ajuste po-linomico. Por el contrario, cuando λ→ 0 estaremos utilizando mınimos cuadrados ordinarios.
Ahora, al igual que en otros metodos de suavizado, hemos de elegir un criterio para se-leccionar el parametro de suavizado, podemos utilizar AIC, GCV, BIC, etc. Por ejemplo:
GCV =n∑i=1
(yi − yi)2n− traza(H)
; H = B(B′B + λD′D)−1B′
AIC = 2log
(n∑i=1
(yi − yi)2)− 2log(n) + 2log (traza(H))
La ventaja de los P-splines es que es mucho mas rapido calcular la traza de esa matriz quecon otro tipo de suavizadores.
2. P-splines como modelos mixtos
La gran revolucion de los P-splines producida en los ultimos anos es debida a la posibi-lidad de escribir un modelo no-parametrico o semiparametrico donde se utilizan P-splinescomo un modelo mixto (o modelo con efectos aleatorios), la ventaja que tiene el utilizar esteenfoque es que nos permite: por un lado utilizar toda la metodologıa desarrollada para losmodelos mixtos, y por otro, utilizar el software para modelos mixtos que esta disponible en
33
la mayorıa de los programas estadısticos.
La conexion entre regresion no parametrica y los modelos mixtos se remonta a principiode los 90 (Speed, 1991). Mas tarde, otros autores como Verbyla et al. (1999) y Brumbackand Rice (1998) desarrollan en mas profundidad el tema del suavizado con modelos mix-tos (en el contexto de los splines cubicos) y mas tarde (Wand, 2003) en el contexto de losP-splines con polinomios truncados como bases. Sin embargo, no se habıa intentado buscaruna representacion de los P-splines con B-splines como bases como modelos mixtos, lo cual,entre otras cosas darıa lugar a bases mas estables.
El interes por la representacion de los P-splines como modelos mixtos surgio de las difi-cultades que surgen en el campo de los modelos aditivos de suavizado, ya que hay problemasde identificabilidad del modelo. El uso de los P-splines hace que no sea necesario un metodoiterativo (como el backfitting algorithm) para la estimacion de las curvas, pero era entoncesnecesario modificar las bases de forma que una curva se pueda descomponer como suma deun componente polinomico (del mismo orden que la penalizacion) y otro no polinomico, esdecir, dado el modelo:
y = Ba+ ε ε ∼ N(0, σ2I) lo reformulamos como
y = Xβ +Zu+ ε ε ∼ N(0, σ2I)
Segun la base que haya utilizado para los P-splines, X y Z tendran una forma diferente:
Polinomios truncados
X = [1,x, . . . ,xp] Z = [(xi − κk)p+, ] 1 ≤ i ≤ n1 ≤ k ≤ κ
B-splinesX = [1 : x] Z = BUΣ−1/2
donde U y Σ son matrices que forman parte de la descomposicion en valores singularesde la matriz de penalizacion D′D.
Una vez descrita esta nueva base, es inmediato establecer la conexion con un modelo mixto,donde:
y = Xβ +Zu+ ε u ∼ N(0, σ2uIc−2) ε ∼ N(0, σ2I), (3.5)
donde c el numero de columnas de la base original B, y el parametro de suavizado esλ = σ2/σ2
u, lo cual hace que sea posible estimar el parametro de suavizado junto con losotros parametros del modelo.
Uno de los conjuntos de datos con los que vamos a trabajar en el curso esta basado enun estudio llevado a cabo en la Universidad de Harvard con ninas afectadas por leucemialinfoblastica aguda (los datos han sido modificados por cuestiones de confidencialidad). Laobesidad y la corta estatura son efectos comunes en los adolescentes que padecen o han pade-cido esta enfermedad y los tratamientos que se aplican intentan reducir al maximo este tipode efectos secundarios sin comprometer su eficacia. En uno de los ensayos clınicos llevados a
34
cabo se estudiaron 618 ninos entre los anos 1987 y 1995 y se aplicaron tres terapias distintas:terapia intracraneal sin radiacion, terapia intracraneal con radiacion convencional y terapiaintracraneal con radiacion dos veces al dıa. Se midio la altura de los ninos aproximamda-mente cada 6 meses.Para cada nino, la altura aumenta de forma suave a lo largo de los anos, de modo que elmodelo anterior serıa apropiado para este tipo de datos.
10 12 14
age
135
140
145
150
155
160
heig
ht
Figura 8: Curva estimada para la altura de una nina en distintos instantes.
La Figura 8 muestra como la curva ajustada se descompone en una lınea recta (si utili-zamos una penalizacion de orden dos, o polinomios truncados de orden uno), mas una parteque no es lineal, en el contexto de los modelos mixtos esto corresponderıa al efecto aleatorio.
En el contexto de los modelos mixtos, el metodo estandar para la estimacion de los pa-rametros de la varianza es el metodo de maxima verosimilitud restringida (REML).
`R(σ2u, σ
2ε) = −1
2log |V | − 1
2log |X ′V −1X| − 1
2y′(V −1 − V −1X(X ′V −1X)−1X ′V −1)y,
(3.6)donde V = σ2
uZZ′ + σ2I. El vector de parametros β y el vector de coeficientes aleatorios u
son estimados como:
β = (X ′V−1X)−1X ′V
−1y (3.7)
u = σ2uZ′V−1
(y −Xβ) (3.8)
V −1 =1
σ2(I −Z(Z ′Z + (σ2/σ2
u)Ic−2)−1Z ′) (3.9)
35
Sin embargo, con los P-splines como modelos mixtos es inmediato el introducir una estructurade correlacion y estimarla simultaneamente a la curva suave. El modelo seguirıa siendo elmismo:
y = Xβ +Zu+ ε u ∼ N(0, σ2uIc−2) ε ∼ N(0, σ2Σ),
donde Σ representa la correlacion entre los datos, y la matriz V = σ2uZZ
′ + σ2Σ.
La Figura 9 muestra datos de temperatura de Nueva York tomados en 111 dıas conse-
0 20 40 60 80 100
6070
8090
Time
Tem
p
Figura 9: Curvas estimadas para los datos de temperatura
cutivos, la curva negra corresponde a la estimacion ignorando la estructura de correlacionen los datos y la verde se obtiene asumiendo un proceso AR(1).
3. P-splines para datos multidimensionales
Los modelos aditivos (Hastie and Tibshirani, 1987) son una clase importante dentro delos modelos multidimensionales. En 2 dimensiones, el modelo aditivo de suavizado serıay = f(x1) + f(x2) + ε, donde x1 y x2 son variables explicativas. Una de las razones porlas que este enfoque es tan popular es porque la hipotesis de aditividad controla los posi-bles problemas computacionales que surgen a la hora de estimar las curvas. Sin embargo,esta hipotesis es demasiado restrictiva cuando, por ejemplo, los datos estan situados en unarray y en vez de un modelo aditivo necesitemos suavizar los datos mediante un superficieno aditiva. En este contexto se han desarrollado varios enfoques: los basados en thin platesplines (ver, por ejemplo, Green and Silverman, 1994, o mas tarde Wood, 2003), o, dentro del
36
campo de los P-splines como modelos mixtos, los que utilizan bases radiales (Wand, 2003):en el primer caso, el problema que presentan es de tipo computacional, dado el tamano delas bases y la dificultad para seleccionar el parametro de suavizado, ademas es un metodo desuavizado isotropico, apropiado en el caso de datos espaciales, pero no cuando las variablesexplicativas estan medidas en diferentes unidades; en el caso de bases radiales, aunque losproblemas computacionales son menores, el modelo tambien es isotropico. Como alternativa,Durban et al. (2002) propuso el uso del producto tensorial de B-splines como bases para elsuavizado en dos o mas dimensiones.
Supongamos que tenemos datos yij, i = 1, . . . , n1, j = 1, . . . , n2, organizados en un arraycon n1 filas y n2 columnas, y dos variables explicativas, x′1 = (x11, . . . , x1n1) y x′2 =(x21, . . . , x2n2). Sea B1 una matriz n1 × c1 de B-splines para el suavizado a lo largo dex1, y B2 una matriz n1 × c2 de B-splines para el suavizado a lo largo de x2. Entoncesdefinimos la matriz de bases en 2 dimensiones como su producto tensorial,
B = B2 ⊗B1 (3.10)
La Figura 10 muestra un grafico analogo a la Figura 3, pero en el caso bidimensional.
5
1015
20
x12
46
810
1214
16
x2
00.
10.
20.
30.
40.
52-
d B-
splin
e
Figura 10: Base de B-splines en dos dimensiones.
El modelo a ajustar ahora es y = f(x1,x2) + ε, donde y es un vector de longitud n1n2;de nuevo E[y] = Ba, o escrito en forma matricial, E[Y ] = B1AB2, donde A es una matrizc1 × c2 que contiene a los coeficientes a. De esta representacion matricial del modelo sur-gio la idea de penalizar las filas y columnas de la matriz A. La penalizacion de las filas vienedada por a′(Ic2 ⊗D′1D1)a y la de las columnas, a′(D′2D2⊗ Ic1)a, con lo cual la matriz depenalizaciones viene dada por:
P = λ1Ic2 ⊗D′1D1 + λ2D′2D2 ⊗ Ic1 , (3.11)
37
λ1 y λ2 son generalmente diferentes, lo que hace que el modelo sea no-isotropico, lo quepermite la posibilidad de que el suavizado sea mayor en una dimension que en la otra(detalles y ejemplos en Durban et al., 2002 y Currie et al., 2004).
3.1. P-splines multidimensionales como modelos mixtos
Hasta el momento, no existıa una representacion de modelos de suavizado no-isotropicosen dos o mas dimensiones como modelos mixtos. El objetivo es encontrar una representacionsimilar a la dada en el caso de los datos unidimensionales. El hecho de que el modelo seano-isotropico, es decir, el utilizar el tipo de penalizacion que se propone en (3.11) puede, enun principio, dificultar la busqueda de una nueva base que permita establecer la equivalenciaentre modelos mixtos y P-splines con el producto tensorial de B-splines. Sin embargo, Currieet al. (2006) se muestra como en el caso de dos dimensiones o mas, tambien existe unarepresentacion como modelo mixto que viene dada por:
y = Xβ +Zα α ∼ N(0,G) ε ∼ N(0, σ2I), (3.12)
donde
X = X2 ⊗X1 = [1 : x2]⊗ [1 : x1]
Z = (Z2 ⊗X1 : X2 ⊗Z1 : Z2 ⊗Z1) .
G = σ2
λ2Σ2s ⊗ Iq1λ1Iq2 ⊗Σ1s
λ1Ic2−q2 ⊗Σ1s + λ2Σ2s ⊗ Ic1−q1
−1
Los resultados que se presentan aquı, se extienden de forma inmediata a tres o mas di-
Figura 11: Vista de los cultivos en SCRI, Dundee, Reino Unido
mensiones, utilizando el producto de kronecker para la base, y anadiendo mas terminos a lapenalizacion
Ademas, esta descomposicion de la base, hace que de forma sencilla se puedan ajustar mo-delos del tipo: y = f(x1) + f(x2) + f(x1,x2) + ε. Aunque los resultados aquı presentado son
38
para datos que estan en un enrejado, se pueden aplicar al caso de datos dispersos como ve-remos en algunos ejemplos mas adelante, la unica diferencia es que el producto de kroneckerde las bases se sustituye por el producto tensorial de las mismas.
Wood (2006b) propone el uso de producto tensorial de bases de thin plate regression splinescon penalizaciones similares a la la dada en (3.11). En el caso de P-splines bayesianos, seutilizarıa un paseo aleatorio bivariante (se pueden ver mas detalles en Kneib (2005)).
A modo de ilustracion, veamos un ejemplo en el que los datos que provienen de un en-sayo de campo llevado a cabo con cereales en el Scottish Crop Research Institute (SCRI,Reino Unido) con el objetivo de estudiar las tendencias espaciales que aparecen en los culti-vos debido a la situacion de los mismos. Los datos contenıan informacion sobre la produccionde grano de cada parcela y la posicion de las parcelas en el campo
En la Figura vemos a la izquierda el ajuste de un modelo aditivo y a la derecha el mo-delo con interaccion.
Fila
Colum
na
linear p
redicto
r
Fila
Colum
na
linear p
redicto
r
Figura 12: Superfices ajustadas para los datos del SCRI.
Se aprecia claramente que los ajustes son distintos y que en el primer caso, el modeloaditivo impone una estructura muy restrictiva a la superficie ajustada. Un manera graficade comprobar el ajuste del modelo aditivo es hacer un grafico de los residuos respecto de laposicion en las filas, para cada una de las columnas; en la siguiente figura podemos observarcomo hay una tendencia no explicada en los residuos que se va modificando a lo largo de lascolumnas.
39
Figura 13: Grafico de residuos del modelo aditivo.
4. Modelos additivos generalizados
Las ideas expuestas en las secciones anteriores se pueden aplicar al caso de modeloslineales generalizados con penalizaciones. Estos modelos fueron introducidos por Marx andEilers (1998), en el caso unidimensional , y por Durban et al. (2002) y Currie et al. (2004),en el caso bidimensional.
4.1. Modelos aditivos generalizados con P-splines
Sea µ = E[η], y suponemos que existe una funcion g() tal que η = g(µ) = f(x) = Ba.Minimizar la verosimilitud penalizada
`p(a) = `(a)− 1
2λa′D′Da, (3.13)
donde `(a) es la verosimilitud ordinaria, da lugar a la version penalizada del “scoring algo-rithm”:
(B′WB + λD′D)a = B′WBa+B′(y − µ). (3.14)
Aquı la matrizW es diagonal con elementos w−1ii = (∂ηi/∂µi)2var(yi), el sımbolo ˜ representa
una solucion aproximada, y ˆ representa la mejora de la aproximacion. De modo que:
a =(B′WB + λD′D
)−1B′W z
donde z = Ba+B′(y− µ) es el working response. El algoritmo se va actualizando hasta laconvergencia. Una vez alcanzada la convergencia, entonces:
H = B(B′W δB + λD′D
)−1B′W
f = Hz
40
La seleccion del parametro de suavizado y de manera similar al caso de datos Normales, ylos intervalos de confianza se hacen de forma similar a un GLM teniendo en cuenta que
z ≈ N(Ba,W−1)
4.2. Inferencia sobre las funciones suaves
Si nuestro interes es saber si existe una relacion estadısticamente significativa entre lavariable explicativa xj y la variable respuesta y, plantearemos el siguiente contraste:
H0 : fj = 0 (no efecto)
H1 : fj 6= 0 (efecto)
dado que las funciones fj dependen de los coeficientes que acompanan a las bases de B-splines, el contraste anterior es equivalente a :
H0 : βj = 0 βj = (βj1, . . . , βjKj)
H1 : βj 6= 0
En este contexto existen dos posibles aproximaciones para los contrastes anteriores (fre-cuentista/bayesiana), pero las metodologıa no esta aun completamente desarrollada, y losp-valores obtenidos son solo aproximados y hay que interpretarlos con cautela, ya que, engeneral, estos p-valores seran inferiores a lo que deberıan ser, por lo que se rechazara lahipotesis nula en mas ocasiones de las necesarias, es decir, se dara por significativa la rela-cion entre la covariable y la variable respuesta, cuando en realidad no es ası. En la practica,el problema aparece cuando los p-valores estan proximos al nivel de significacion (5 %), encuyo caso no deberıamos extraer conclusiones. Este comportamiento de los p-valores es si-milar independientemente de que criterio hayamos utilizado para la eleccion del parametrode suavizado, aunque el comportamiento es mejor si se utilizan metodos basados en maximaverosimilitud.
La distribucion del estadıstico de contraste dependera de si la variable respuesta sigue unadistribucion Normal o no:
Si los datos son Normales, el estadıstico de contraste sigue un distribucion F .
En otro caso sigue una distribucion χ2.
Comparacion de modelos
Modelos anidadosLa comparacion en modelos anidados se basa, al igual que en los GLM, en la diferenciaen el deviance residual. Si queremos comparar dos modelos m1 y m2 (donde m1 ⊂ m2),entonces:
• En el caso de datos Normales:
(DR(m1)−DR(m2))/(df2 − df1)DR(m2)/(n− df2)
≈ F(df3−df1),(n−df2)
41
donde DR es el deviance residual y df son los grados de libertad asociados concada modelo.
• En otro caso:DR∗(m1)−DR∗(m2) ≈ χ2
df2−df1
donde DR∗ el el deviance residual escalado.
Sin embargo, los modelos GAM no estan relmente anidados, ya que los grados de liber-tad asociados con una covariable, en general, cambiaran en presencia de otra variable.De modo que es preferible centrarse en el siguiente caso:
Modelos no anidadosEn este caso los contrastes anteriores no son validos y utilizaremos criterios basadosen el AIC.
42
Capıtulo 4
Software
Nos vamos a centrar en el uso de R. Dado que se puede ver un modelo con P-splinescomo un modelo mixto, lo mas inmediato es utilizar la funcion lme() para ajustar estetipo de modelos, esta funcion permite incluir efectos aleatorios, estructuras de covarianza ycorrelacion, permite ajustar modelos aditivos, analizar datos longitudinales, etc. Sin embargo,el uso de estas funciones puede ser menos atractivo para el usuario no experto, ya que implicala creacion de todas las matrices que intervienen en el modelo, aunque permite ver de formaclara lo que esta haciendo el programa. Ademas, se han escrito paquetes en R: mgcv y SemiPar,que permiten ajustar este tipo de modelos, todos ellos estan basados en las funciones lme() yglmmPQL() (para el caso de datos que no son normales). Ademas veremos funciones escritasespecıficamente para el caso de suavizado multidimensional.La idea es que os familiariceis con todas las herramientas disponibles para que podais elegiraquella que os sea mas util en cada caso.
La funcion lme
Para utilizar esta funcion es necesario cargar el paquete nlme.
La funcion admite que tanto la parte fija como la aleatoria se especifiquen mediantematrices, lo que hace que simplemente construyendo las matricesX yZ tal y como indicamosantes, podamos ajustar el modelo. El fichero MMbasis.R contine dos funciones:
mixel.model.B para el caso de B-splines.
mixed.model.T para el caso de polinomios truncados.
library(splines)
library(nlme)
girl=read.table("girl.txt",header=TRUE)
y=girl$height
x=girl$age
source("MMbasis.R")
#Con B-splines
43
R Help on 'lme' Page 1
lme package:nlme R Documentation
Linear Mixed-Effects Models
Description:
This generic function fits a linear mixed-effects model in the formulation described in Laird and Ware (1982) but allowing for nested random effects. The within-group errors are allowed to be correlated and/or have unequal variances.
Usage:
lme(fixed, data, random, correlation, weights, subset, method, na.action, control, contrasts = NULL) ## S3 method for class 'lme': update(object, fixed., ..., evaluate = TRUE)
Arguments:
object: an object inheriting from class 'lme', representing a fitted linear mixed-effects model.
fixed: a two-sided linear formula object describing the fixed-effects part of the model, with the response on the left of a '~' operator and the terms, separated by '+' operators, on the right, an 'lmList' object, or a 'groupedData' object. The method functions 'lme.lmList' and 'lme.groupedData' are documented separately.
fixed.: Changes to the fixed-effects formula - see 'update.formula' for details.
data: an optional data frame containing the variables named in 'fixed', 'random', 'correlation', 'weights', and 'subset'. By default the variables are taken from the environment from which 'lme' is called.
random: optionally, any of the following: (i) a one-sided formula of the form '~x1+...+xn | g1/.../gm', with 'x1+...+xn' specifying the model for the random effects and 'g1/.../gm' the grouping structure ('m' may be equal to 1, in which case no '/' is required). The random effects formula will be repeated for all levels of grouping, in the case of multiple levels of grouping; (ii) a list of one-sided formulas of the form '~x1+...+xn | g', with possibly different random effects models for each grouping level. The order of nesting will be assumed the same as the order of the elements in the list; (iii) a one-sided formula of the form '~x1+...+xn', or a 'pdMat' object with a formula (i.e. a non-'NULL' value for 'formula(object)'), or a list of such formulas or 'pdMat' objects. In this case, the grouping structure formula will be derived from the data used to fit the linear mixed-effects model, which should inherit from class 'groupedData'; (iv) a named list of formulas or 'pdMat' objects as in (iii), with the grouping factors as names. The order of nesting will be assumed the same as the order of the order of the elements in the list; (v) an 'reStruct' object. See the documentation on 'pdClasses' for a description of the available 'pdMat' classes. Defaults to a formula consisting of the right hand side of 'fixed'.
correlation: an optional 'corStruct' object describing the within-group correlation structure. See the documentation of 'corClasses' for a description of the available 'corStruct' classes. Defaults to 'NULL', corresponding to no within-group correlations.
weights: an optional 'varFunc' object or one-sided formula describing the within-group heteroscedasticity structure. If given as a formula, it is used as the argument to 'varFixed', corresponding to fixed variance weights. See the documentation on 'varClasses' for a description of the
MM=mixed.model.B(x,min(x)-0.5,max(x)+0.5,5,3,2)
X=MM[[1]]
Z=MM[[2]]
#Con polinomios truncados
MM=mixed.model.T(x,5,2)
X=MM[[1]]
Z=MM[[2]]
Una vez contruidas las matrices, hemos de darle a la funcion lme() la informacion necesariapara que ajuste la curva como el resultado de un modelo mixto:
n = length(y)
Id = factor(rep(1,length(y)))
#Que Id sea un vector de unos significa que no hay datos anidados
Z.block=list(list(Id=pdIdent(~Z-1)))
#pdIdent indica que la estructura de covarianza de la parte aleatoria
# es multiplo de la identidad
Z.block=unlist(Z.block,recursive=FALSE)
data.fr = groupedData( y ~ X[,-1] | Id,data = data.frame(y,X,Z))
#es necesario crear esta estructura ya que estamos trabajando con matrices,
#no con variables
fit = lme(y~X[,-1],data=data.fr,random=Z.block)
44
¿Que informacion podemos obtener de fit?:
σ2:
sigma.2 = fit$sigma^2
σ2u
sigma.2.alpha = sigma.2*exp(2*unlist(fit$modelStruct))
REML
REML = fit$logLik
β
beta.hat = fit$coeff$fixed
u
alpha.hat = unlist(fit$coeff$random)
f
f.hat=c(X%*%beta.hat+Z%*%alpha.hat[1:ncol(Z)])
#o
d = ncol(fit$fitted)
f.hat = fit$fitted[,d]
Intervalo de confianza para f
IC=Int.Conf(X,Z,f.hat,sigma.2,sigma.2.alpha)
El resultado es aparece en la Figura 1.
La funcion spm()
Para utilizar esta funcion es necesario cargar el paquete SemiPar que esta basado en ellibro Semiparametric Regression de Ruppert et al. (2003)).La funcion spm() es similar a la funcion gam(), con la ventaja de que el parametro desuavizado se puede especificar o elegir mediante REML. La base que utiliza por defecto, sonlos splines cubicos, sin embargo, es posible utilizar polinomios truncados, eligiendo el gradodel polinomio y/o los nodos.
library(SemiPar)
girl=read.table("girl.txt",header=TRUE)
y=girl$height
x=girl$age
fit = spm(y~f(x,basis="trunc.poly",degree=3))
El resultado de la funcion spm es una lista con tres componentes:
45
9 10 11 12 13 14 15
135
140
145
150
155
160
x
y
Figura 1: Curva estimada para la altura de una nina a distintas edades e intervalo deconfianza.
1. fit:que contiene la misma informacion que se obtiene de la funcion lme().
2. info:Contiene informacion sobre el modelo, las bases, los nodos, el grado del polinomio, etc.
3. aux:Contiene las matrices de covarianza de los efectos fijo y aleatorios ($cov.mat), la varian-za estimada de los efectos aleatorios, σ2
u ($random.var) y la residual, σ2 ($error.var);ası como los grados de libertad (aproximados) de cada componente ($cdf).
Se pueden encontrar mas detalles en Ngo and Wand (2004).
plot(fit,shade=FALSE,se.lwd=1,se.col=3)
points(x,y)
da lugar a la figura que aparece en la pagina siguiente.
Un inconveniente de esta funcion, es que permite dibujar los intervalos de confianza, perono da la opcion de obtener los valores numericos que constituyen esos intervalos de confianza.
46
9 10 11 12 13 14 15
135
140
145
150
155
160
165
x
La funcion gamm y gam
Para utilizar esta funcion es necesario cargar el paquete mgcv de Wood (2006a). Enrealidad, este paquete contiene dos funciones que permiten utilizar P-splines: gam y gamm,la diferencia entre las dos es que la segunda permite incluir efectos aleatorios, correlacion, etc.
La base que utiliza por defecto, son los thin plate regression splines, sin embargo, es po-sible utilizar otras bases como splines cubicos, o B-splines y se puede elegir el numero denodos y el orden de la penalizacion. Los argumentos principales de esta funcion son lossiguientes:
gamm(formula,random=NULL,correlation=NULL,family=gaussian())
gam(formula,method="",select="",family=gaussian())
Los dos primeros son similares a los de la funcion lme, aunque la formula permite especificarla parte no-parametrica del modelo de forma mas sencilla. Esta funcion permite incluirestructuras de correlacion en el modelo, ademas de distribuciones no Gaussianas.Para especificar los terminos de suavizado se utiliza la funcion s(), sus argumentos son:
k= Tamano de la base, nunca debe ser menor que el orden de la penalizacion.
fx= indica si estamos utilizando un spline de regresion con grados de libertad fijos(TRUE), o si estamos utilizando P-splines (FALSE)
bs= Tipo de base que estamos utilizando, tiene las siguientes opciones:
• cr: cubic regression splines
47
• cc: periodic splines
• tp: thin plate regression splines
• ps: P-splines con bases de B-splines
m= orden de la penalizacion by= permite multiplicar curvas por factores
El resultado de la funcion gamm tiene dos componentes: $lme y $gam, cada uno de elloscontiene los objetos propios de cada una de esas dos funciones.
library(mgcv)
girl=read.table("girl.txt",header=TRUE)
y=girl$height
x=girl$age
fit = gam(y~s(x,k=5,m=2)) # elige el parametro de suavizado con GCV
fit1 = gamm(y~s(x)) # elige el parametro de suavizado con REML
fit1$lme
?gamm
?gam
fit1$gam
fit1$gam$sp
[1] 0.001957235
fit$sp
[1] 0.0003579374
Utilizando las bases bsplines
fit2=gamm(y~s(x,bs="ps",m=2))
en este caso es imprescindible especificar el orden de la penalizacion m=2.
plot(x,y)
lines(x,fit$fitted,col=1)
lines(x,fit1$gam$fitted,col=2)
lines(x,fit2$gam$fitted,col=3)
48
9 10 11 12 13 14 15
135
140
145
150
155
160
x
y
GCVREML+tprsREML+ B−splines
La figura muestra como los tres ajustes son casi identicos.
En el ultimo capıtulo veremos como utilizar estas funciones segun el tipo de datos queestemos analizando.
49
Capıtulo 5
Aplicaciones
El objetivo de este capıtulo es ver como es posible incluir metodos de suavizado conP-splines a los modelos que se utilizan mas frecuentemente.
1. Modelos Aditivos
1.1. Ejemplo: Calidad del aire
En esta seccion vamos a utilizar datos sobre la relacion entre la calidad del aire y distintasvariables medidas en Nueva York entre Mayo y Septiembre de 1973. Las variable son:
Ozone: Media de ozono, en partes por millon
Temp: Temperatura maxima diaria en grados Fahrenheit
Wind: Velocidad media del viento, en millas por hora
Solar.R: Radiacion solar
y buscamos establecer la relacion entre las variables meteorologicas y la cantidad de ozonoen la atmosfera. Primero hacemos un grafico con todas las variables:
pairs(airquality[,1:4])
Aunque en el grafico vemos que hay relaciones que no son lineales, empezamos por ajustarun modelo lineal:
Ozome = β0 + β1Temp + Wind + Solar.R + ε
aire.lm<-lm(Ozone ~Temp+Wind+Solar.R, data=airquality)
summary(aire.lm)
oefficients:
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 *
50
Ozone
0 100 250
60 80
050
100
010
025
0
Solar.R
Wind
510
1520
0 50 100
6080
5 10 15 20
Temp
Figura 1: Graficos de las variable del modelo dos a dos
---
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
Hacemos un grafico de los resultados:
par(mfrow=c(1 3))
termplot(air.lm,se=T)
Hacemos graficos de residuos para comprobar las hipotesis del modelo:
par(mfrow=c(1,2))
plot(air.lm, which = 1:2)
La ausencia de normalidad es debida a que la variable Ozone no es simetrica (ver Figura 4)por lo que podemos aplicar alguna transformacion, por ejemplo el logaritmo:
par(mfrow=c(1,2))
hist(airquality$Ozone)
hist(log(airquality$Ozone))
Repetimos el modelo anterior con la variable transformada y hacemos de nuevo los graficosde residuos (Figura 5):
51
60 70 80 90
−40
−20
020
40
Temp
Partia
l for T
emp
5 10 15 20
−40
−20
020
40
Wind
Partia
l for W
ind
0 100 250
−40
−20
020
40
Solar.R
Partia
l for S
olar.R
Figura 2: Efectos parciales centrados y bandas de confianza al 95 %
−20 0 20 40 60 80 100
−50
050
100
Fitted values
Res
idua
ls
Residuals vs Fitted
117
6230
−2 −1 0 1 2
−2−1
01
23
45
Theoretical Quantiles
Sta
ndar
dize
d re
sidu
als
Normal Q−Q
117
6230
Figura 3: Graficos de residuos
aire.lm2<-lm(log(Ozone) ~Temp+Wind+Solar.R, data=airquality)
summary(aire.lm2)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
52
Histogram of airquality$Ozone
airquality$Ozone
Freq
uenc
y
0 50 100 150
010
2030
Histogram of log(airquality$Ozone)
log(airquality$Ozone)Fr
eque
ncy
0 1 2 3 4 5
05
1015
20
Figura 4: Histogranma de la variable Ozone
(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
par(mfrow=c(1,2))
plot(aire.lm2, which = 1:2)
Vemos que a el la normalidad se satisface pero que puede que haya heterocedasticidad, una delas posibles causas es que la verdadera reclacion entre la variable respuesta y las covariablesno sea lineal, por lo que vamos a ajustar un modelo GAM. Em pezamos por ajustar unaunica variable:
library(mgcv)
aire.gam1=gam(log(Ozone)~s(Wind,bs="ps",m=2,k=10),method="REML",select=TRUE,
data=airquality)
summary(aire.gam1)
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.4185 0.0655 52.19 <2e-16 ***
---
53
1.5 2.0 2.5 3.0 3.5 4.0 4.5
−2−1
01
Fitted values
Res
idua
ls
Residuals vs Fitted
21
24
117
−2 −1 0 1 2
−4−3
−2−1
01
23
Theoretical QuantilesS
tand
ardi
zed
resi
dual
s
Normal Q−Q
21
24
117
Figura 5: Grafico de residuos con la variable transformada
Approximate significance of smooth terms:
edf Ref.df F p-value
s(Wind) 2.565 9 6.453 2.76e-12 ***
---
R-sq.(adj) = 0.336 Deviance explained = 35%
REML score = 128.69 Scale est. = 0.49769 n = 116
plot(aire.gam1,residuals=TRUE)
Vemos que el termino suave es signifcativo (aunque el p-valor es una aproximacion, esta muylejor del valor crıtico), y los grados de libertad asociados son 2.5. La Figura 6 muestra elgrafico de la relacion entre el nivel de ozono y la velocidad del viento, junto con las bandas deconfianza (mas anchas en los extremos al haber menos datos. El aumento de la velocidad delviento disminuye los niveles de ozono, y esta dispinucion es mas acusada hasta las 10mph,reduciendose este efecto a partir de ese valor. Los puntos del grafico son los residuos parciales(en este caso quitando la ordenada en el origen).
La funcion gam.check permite hacer graficos de residuos (qq-plot, residuos frente alpredictor lineal, histograma de residuos y graficos de valores ajustados frente a residuos, verFigura 7).
par(mfrow=c(2,2))
gam.check(aire.gam1)
En el modelo anterior, he usado 10 nodos, ya que el numero de valores unicos de lavariable Wind es 31, por lo que 10 son mas que suficientes, si no estamos seguros de si el
54
5 10 15 20
−3−2
−10
12
Wind
s(W
ind,
2.56
)
Figura 6: Efecto estimado de Wind sobre log(Ozone)
−2 −1 0 1 2
−3−1
1
theoretical quantiles
devi
ance
resi
dual
s
3.0 3.5 4.0 4.5
−3−1
1
Resids vs. linear pred.
linear predictor
resi
dual
s
Histogram of residuals
Residuals
Freq
uenc
y
−3 −2 −1 0 1
010
2030
3.0 3.5 4.0 4.5
01
23
45
Response vs. Fitted Values
Fitted Values
Res
pons
e
Figura 7: Graficos de residuos
numero de nodos utilizados es suficiente, podemos hacer una comprobacion sencilla utilizandolos residuos:
residuos=residuals(aire.gam1)
55
residuos.gam=gam(residuos~s(Wind, k=20),method="REML", select=TRUE,
data=aire.gam1$model)
summary(residuos.gam)
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.428e-16 6.477e-02 0 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(Wind) 8.516e-05 9 0 0.894
R-sq.(adj) = -6.99e-07 Deviance explained = 4.16e-06%
REML score = 124.14 Scale est. = 0.48659 n = 116
par(mfrow=c(1,1))
plot(residuos.gam)
Lo que estamos haciendo es ver si queda alguna relacion no explicada entre las dos varia-bles, para eso ajustamos un modelo GAM a los residuos y aumentamos el numero de nodos.Vemos que no hay relacion entre los residuos y el viento, por lo que podemos confirmarque el modelo original era correcto. La Figura 8 nos muestra como efectivamente no exisiterelaccion entre los residuos y el viento.
5 10 15 20
−0.0
020.
000
0.00
2
Wind
s(W
ind,
0)
Figura 8: Grafico del efecto del viento sobre los residuos del modelo aire.gam1
56
En algunas situaciones nos interesara predecir el valor ajustado por el modelo para nuevosvalores del viento, para poder obtenerlo utilizados la funcion predict.
aire.pred<-data.frame(Wind=seq(min(airquality$Wind),max(airquality$Wind),
length.out=200))
p<-predict(aire.gam1, newdata=aire.pred, type="response", se.fit=TRUE)
plot(aire.pred$Wind,p$fit, xlab="Viento(mph)",ylab="log(Ozono)(ppb)",
type="l",ylim=c(0,6))
lines(aire.pred$Wind,p$fit + 1.96*p$se.fit, lty=2)
lines(aire.pred$Wind,p$fit - 1.96*p$se.fit, lty=2)
5 10 15 20
01
23
45
6
Viento(mph)
log(
Ozo
no)(
ppb)
Figura 9: Valores predicho de log(Ozone) y bandas de confianza
A continuacion anadimos la variable Temp:
aire.gam2=gam(log(Ozone)~s(Wind,bs="ps",m=2,k=10)+s(Temp,bs="ps",m=2,k=10),
method="REML",select=TRUE,data=airquality)
summary(aire.gam2)
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.41852 0.05134 66.59 <2e-16 ***
---
Approximate significance of smooth terms:
edf Ref.df F p-value
s(Wind) 2.054 9 1.451 0.000633 ***
s(Temp) 1.312 9 8.839 < 2e-16 ***
---
57
R-sq.(adj) = 0.592 Deviance explained = 60.4%
REML score = 101.88 Scale est. = 0.30574 n = 116
par(mfrow=c(1,2))
plot(aire.gam2,residuals=TRUE)
El efecto de Temp es significativo. La Figura 10 muestra el efecto estimado de las dos variables.
Para comparar los modelos anteriores utilizamos es estadıstico F en la funcion anova():
5 10 15 20
−3−2
−10
1
Wind
s(W
ind,
2.05
)
60 70 80 90
−3−2
−10
1
Temp
s(Te
mp,
1.31
)
Figura 10: efecto estimado de la velocidad del viento y la temperatura junto con los residuosparciales
anova(aire.gam1,aire.gam2,test="F")
Model 1: log(Ozone) ~ s(Wind, bs = "ps", m = 2, k = 10)
Model 2: log(Ozone) ~ s(Wind, bs = "ps", m = 2, k = 10) + s(Temp, bs = "ps",
m = 2, k = 10)
Resid. Df Resid. Dev Df Deviance F Pr(>F)
1 112.44 55.958
2 111.63 34.131 0.80053 21.827 89.181 7.231e-14 ***
AIC(aire.gam1)
253.7601
AIC(aire.gam2)
198.0106
A la vista del resultado, podemos concluir que el modelo con las dos variables es mejor. Es-trictamente, los modelos anteriores no estan aidados, ya que los grados de libretad de Wind
58
son distintos dependiendo de si Temp esta presente o no, por lo que podemos usar el AICpara confirmar los resultados.
Los grados de libertad de Temp estan proximos a 1, ¿como comprobarıas si el efecto eslineal o no?.
Por ultimo, introducimos la variable Solar.R. Pero esta variable tiene valores faltantes,de modo que el modelo que incluye esta variable no esta anidado en el modelo aire.gam2,ya que ambos no se estimarıan sobre el mismo conjunto de datos. Por lo que vamos a eliminarlos datos faltantes y re-ajustamos el modelo aire.gam2 antes de introducir Solar.R:
new.airquality=na.omit(airquality)
aire.gam22=gam(log(Ozone)~s(Wind,bs="ps",m=2,k=10)+s(Temp,bs="ps",m=2,k=10),
method="REML",select=TRUE,data=new.airquality)
aire.gam3=gam(log(Ozone)~s(Wind,bs="ps",m=2,k=10)+s(Temp,bs="ps",m=2,k=10)+
s(Solar.R,bs="ps",m=2,k=20),method="REML",select=TRUE,data=new.airquality)
summary(aire.gam3)
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.41593 0.04586 74.49 <2e-16 ***
---
Approximate significance of smooth terms:
edf Ref.df F p-value
s(Wind) 2.318 9 2.255 2.44e-05 ***
s(Temp) 1.852 9 6.128 1.12e-12 ***
s(Solar.R) 2.145 19 1.397 1.23e-06 ***
---
R-sq.(adj) = 0.689 Deviance explained = 70.7%
REML score = 86.106 Scale est. = 0.23342 n = 111
par(mfrow=c(2,2))
plot(aire.gam3,residuals=TRUE)
anova(aire.gam22,aire.gam3,test="F")
Resid. Df Resid. Dev Df Deviance F Pr(>F)
1 106.82 31.186
2 103.69 24.202 3.1389 6.9841 9.5321 9.284e-06 ***
AIC(aire.gam22)
184.4354
AIC(aire.gam3)
162.5712
¿Que podemos concluir?
59
Figura 11: Grafico del efecto del viento, la temperatura y la radiacion solar junto con losresiduos parciales
Ejemplo: simulacion para seleccion de variables
Vamos a simular unos datos (archivo simulacion.R), para ver como es posible identificarcuando una funcion suave no es necesaria:
set.seed(666)
data=gamSim(1,n=400,dist="normal")
fit=gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=data,method="REML",select=TRUE)
summary(fit)
Approximate significance of smooth terms:
edf Ref.df F p-value
s(x0) 2.5881064 9 2.633 5.67e-06 ***
s(x1) 2.4364679 9 39.163 < 2e-16 ***
s(x2) 7.7346613 9 87.971 < 2e-16 ***
s(x3) 0.0002624 9 0.000 1
par(mfrow=c(2,2))
plot(fit,residuals=TRUE)
Los grados de libertad correspondientes a la variable x3 son casi 0, y el p-valor 1. En laFigura 12, se observa claramente como el efecto de esta variable es nulo.
60
0.0 0.4 0.8
−50
5
x0
s(x0,2
.59)
0.0 0.4 0.8
−50
5
x1
s(x1,2
.44)
0.0 0.2 0.4 0.6 0.8 1.0
−50
5
x2
s(x2,7
.73)
0.0 0.4 0.8
−50
5
x3s(x
3,0)
Figura 12: Efecto estimado de las variables
2. Modelos Semiparametricos
Cuando en un modelo de regresion hay componentes parametricos y no-parametricos,tenemos un modelo semiparametrico,
y = β0 + β1x1 + . . .+ βj−1xj−1 + f(xj) + ε
La forma de ajustar el modelo es exactamente igual a la que hemos visto anteriormente, sim-plemente construımos la matriz X de forma que incluya todas las variables independientes.Sin embargo, hay un caso que merece especial interes y es cuando en la parte parametricaincluımos un factor con dos o mas niveles. Al igual que en el caso de regresion lineal nospodemos plantear si queremos ajustar dos rectas paralelas (modelo aditivo) o no paralelas(modelo con interaccion). Ademas, nos podemos preguntar si la cantidad de suavizado es lamisma en el caso de que las curvas no sean paralelas.
Para ilustrar este caso utilizamos los datos que estan en el fichero onions.txt. Los da-tos se recogieron en un estudio cuyo objetivo era establecer la relacion entre la produccionde una planta de cebolla y la densidad de plantas cultivadas. Hay tres variables:
Densidad (plantas/m2)
Produccion (gramos/planta)
Localidad
Los datos fueron recogidos por I.S.Rogers (South Australian Dept. of Agriculture & Fishe-ries).
61
50 100 150
3.54.0
4.55.0
5.5
Densidad
log(P
roduc
cion)
Figura 13: Grafico de los datos sobre produccion de cebollas en dos localidades, en azulcorresponden a Virginia y en verde a Purnong Landing.
La Figura 13 muestra claramente que las cebollas cultivadas en Purnong Landing produ-cen mas que las cultivadas en Virginia, es interesante ver si la relacion es lineal y en caso deno serlo, si las curvas son paralelas o no. El modelo lineal serıa el siguiente:
log(Produccioni) = β0 + β1Localidadi + β2Densidadi + εi
donde
Localidadi =
0 si el i-esimo dato fue recogido en Purnong Landing1 si el i-esimo dato fue recogido en Virginia
La Figura 11 muestra cierta curvatura en cada una de las localidades, lo que sugerirıa elmodelo:
log(Produccioni) = β1Localidadi + f(Densidadi) + εi
Para ajustar este modelo el codigo serıa:
L=factor(Localidad)
fit1=gam(log(Produccion)~L+s(Densidad,k=20, bs="ps",m=2),method="REML", select=TRUE)
summary(fit1)
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.85011 0.01688 287.39 <2e-16 ***
62
L1 -0.33284 0.02409 -13.82 <2e-16 ***
---
Approximate significance of smooth terms:
edf Ref.df F p-value
s(Densidad) 4.568 19 72.76 <2e-16 ***
---
R-sq.(adj) = 0.946 Deviance explained = 94.9%
REML score = -54.242 Scale est. = 0.011737 n = 84
Preguntas:
1. ¿Cuanto se ha reducido el error estandar de la variable Localidad ?
2. ¿Como harıas el grafico de las dos curvas que aparecen en la Figura 14?
50 100 150
3.54.0
4.55.0
5.5
Densidad
log(P
roduc
cion)
Figura 14: Grafico de curvas ajustadas para las dos localidades.
En este caso ambas curvas son paralelas, pero no tenemos por que asumir este modelo; aligual que en el caso de regresion lineal podemos plantearnos la interaccion entre Localidad
y Densidad, es decir, no tenemos por que suponer que el descenso de la produccion cuandoaumenta la densidad es el mismo en las dos localidades. En vez de ajustar un modelo aditivo,podemos ajustar un modelo con interaccion:
log(Produccioni) = f(Densidadi)L(i) + εi
donde
L(i) =
0 si el i-esimo dato fue recogido en Purnong Landing1 si el i-esimo dato fue recogido en Virginia
63
fit2=gam(log(Produccion)~L+s(Densidad,k=20,bs="ps",m=2,by=L),method="REML",
select=TRUE)
summary(fit2)
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.84407 0.01603 302.12 <2e-16 ***
L1 -0.33003 0.02271 -14.54 <2e-16 ***
---
Approximate significance of smooth terms:
edf Ref.df F p-value
s(Densidad):L0 3.097 18 37.62 <2e-16 ***
s(Densidad):L1 4.728 17 52.10 <2e-16 ***
---
R-sq.(adj) = 0.952 Deviance explained = 95.7%
REML score = -53.616 Scale est. = 0.01045 n = 84
fit2$gam$sp
Pregunta:
1. ¿Que modelo es mejor de los dos?
50 100 150
3.54.0
4.55.0
5.5
Densidad
log(P
roduc
cion)
Figura 15: Grafico de curvas ajustadas para las dos localidades utilizando interaccion en elmodelo (la lınea discontinua corresponde a un modelo sin interaccion)
64
3. P-splines para datos longitudinales
Los datos longitudinales son frecuentes en aplicaciones medicas y biologicas. En general,este tipo de datos corresponden a medidas tomadas a varios individuos en distintos instantesde tiempo, y se caracterizan por la dependencia que hay entre las medidas repetidas hechas aun mismo individuo. Los modelos mixtos mas sencillos para datos longitudinales representana cada individuo como la suma de la media de la poblacion (que varıa con el tiempo) y quese modela como un efecto fijo, y un polinomio de grado bajo (generalmente una lınea) en laque los coeficientes son aleatorios y sirve para modelar la variabilidad individual (Laird andWare, 1982). Sin embargo, estos modelos pueden no ser apropiados en algunas situaciones,por ejemplo, cuando las trayectorias individuales sean una funcion no-lineal del tiempo.
Para ilustrar esta metodologıa vamos a utilizar los datos sobre el estudio de distintas te-rapias para la leucemia infantil de los que hablamos en la seccion 3. Estos datos han sidomodificados para preservar la confidencialidad de los mismos y se encuentran en el ficheroleucemia.txt. El fichero tiene 4 columnas:
caso: Indica a que nina corresponden los datos
tratamiento: Toma valores 1, 2 o 3 segun el tipo de tratamiento que reciben.
altura: Altura en centımetros
edad: Edad en anos.
En este ejemplo, tomamos 197 ninas que fueron diagnosticadas de leucemia linfoblasticaaguda entre los 2 y los 9 anos. La altura de esta ninas se midio en diferentes momentos y entotal se recogieron 1988 observaiones. El numero de observaciones por nina varıa entre 1 y 21.
La Figura 16 muestra la altura de las ninas en funcion de la edad, podemos ver claramentecomo cuando llega la pubertad, la relacion deja de ser lineal. El codigo de los modelos quevamos a ajustar se puede encontrar en los ficheros longitudinal.R y longitudinal2.R.
3.1. Modelo con ordenada en el origen aleatoria
Este es el modelo mas sencillo que podemos proponer para estos datos:
yij = β0 + β1xij +L∑l=2
γltril +Ui + εij Ui ∼ N(0, σ2U) εij ∼ N(0, σε)
1 ≤ i ≤ 1971 ≤ j ≤ ni
(5.1)
donde
tril =
1 si la nina i-esima recibe el tratamiento l0 en otro caso
Este modelo lo que supone es que todas las ninas tiene una tasa de crecimiento lineal e igualpara todas, y la variabilidad entre las ninas se tiene en cuenta mediante un efecto aleatorioUi. En forma matricial:
y = Xβ +Zu+ ε
65
age (years)
heig
ht (c
m)
80
100
120
140
160
5 10 15 20
hyperfractionated radiation
NO radiation
5 10 15 20
5 10 15 20
standard radiation
Figura 16: Altura de las ninas a lo largo del tiempo para cada uno de los tres tratamientos.
donde
X =
X1 T 1...Xm Tm
, X i =
1 xi1...
...1 xini
, β =
β0β1γ1γ2γ3
, Z =
11 0 . . . 00 12 . . . 0...
.... . .
...0 0 . . . 1m
1i =
11...1
ni×1
y T i la matriz que indica si la nina i-esima recibe el tratamiento 1, 2 o 3.
El codigo serıa:
library(nlme)
leucemia=read.table("leucemia.txt",header=TRUE)
attach(leucemia)
model1 = lme(altura~Xfactor(tratamiento)+edad,random=list(caso=pdIdent(~1)))
La Figura 17 muestra como el modelo (5.1) no explica de forma adecuada la trayectoriaindividual de las ninas.
66
5 10 15
8010
012
014
016
018
0
edad
altu
ra
Figura 17: Rectas ajustadas para las ninas que reciben el radiacion hiperfraccionada.
3.2. Modelo aditivo mixto
Una extension natural del modelo anterior serıa:
yij =L∑l=2
γltril + f(xij) + Ui + εij Ui ∼ N(0, σ2U) εij ∼ N(0, σε) (5.2)
donde f es una funcion suave que refleja la tendencia de crecimiento de las ninas. Estimamosf mediante P-splines y utilizamos su representacion como modelos mixtos para unificar laestructura del modelo, ahora
Z =
Z1 11 0 . . . 0Z2 0 12 . . . 0...
......
. . ....
Zm...
... . . . 1m
, Zi = definida en la pag. 13,
u = [u1, . . . , uK , U1, . . . , Um] and G = Cov(u) =
[σ2uI 00 σ2
UI
].
67
En vez de lıneas, ajustamos curvas, pero todas son similares, solo se diferencian en la orde-nada en el origen.
En R:
Utilizando la funcion gamm():
library(mgcv)
fit2.gamm=gamm(altura~factor(tratamiento)+s(edad,k=40,bs="ps",m=2),
random=list(caso=pdIdent(~1)))
Utilizando la funcion lme():
library(splines)
Id=factor(rep(1,length(altura)))
X=model.matrix(altura~factor(tratamiento)+edad)
#Con B-splines
source("MMbasis.R")
MM=mixed.model.B(edad,min(edad)-0.5,max(edad)+0.5,40,3,2)
Z=MM[[2]]
Z.block2=list(list(Id=pdIdent(~Z-1)),list(caso=pdIdent(~1)))
Z.block2=unlist(Z.block2,recursive=FALSE)
data.fr = groupedData( altura ~ X[,-1] | Id,data = data.frame( altura,X,Z,caso))
model2 = lme(altura~X[,-1],data=data.fr,random=Z.block2)
La Figura 18 muestra como el modelo (5.2) es demasiado simplista y que asumir que lascurvas sean paralelas y con la misma forma no permite explicar las trayectorias individualesde forma correcta.
3.3. Modelo con diferencias individuales lineales
Es una extension simple del modelo anterior en la cual se asume que las diferencia in-dividuales vienen dadas no solo mediante la ordenada en el origen, sino tambien por lapendiente:
yij =L∑l=2
γltril + f(xij) + ai1 + ai2xij + εij εij ∼ N(0, σε) (ai1, ai2)T ∼ N(0,Σ) (5.3)
que en notacion matricial pasa a ser
Y = Xβ +Zu+ ε,
68
5 10 15
8010
012
014
016
0
edad
altu
ra
Figura 18: Curvas ajustadas para las ninas que reciben el radiacion convencional.
Z =
Z1 X1 0 . . . 0Z2 0 X2 . . . 0...
......
. . ....
Zm 0 0 . . . Xm
, u = [u1, . . . , uK , a11, a12, . . . , am1, am2]T ,
G = Cov(u) =
[σ2uI 00 blockdiagonal
1≤i≤mΣ
].
En R:
Utilizando la funcion gamm():
fit3.gamm=gamm(altura~factor(tratamiento)+s(edad,k=40,bs="ps",m=2),
random=list(caso=pdSymm(~edad)))
Utilizando la funcion lme():
69
5 10 15
8010
012
014
016
0
edad
altur
a
Figura 19: Curvas ajustadas para las ninas que reciben el radiacion convencional, la lıneasolida corresponde al modelo con pendiente aleatoria.
X=model.matrix(altura~factor(tratamiento)+edad)
Z.block3=list(list(Id=pdIdent(~Z-1)),list(caso=pdSymm(~edad)))
Z.block3=unlist(Z.block3,recursive=FALSE)
data.fr = groupedData( altura ~ X[,-1]|Id,data =data.frame(altura,X,Z,caso,edad))
model3 = lme(altura~X[,-1],data=data.fr,random=Z.block3)
La Figura 19 muestra como el modelo (5.3) permite que las curvas no solo se muevan endireccion vertical, sino que tambien oscilen, aun ası es posible relajar aun mas el modelo.
3.4. Interaccion de curva por factor
Uno de los objetivos del estudio llevado a cabo con las ninas que padecıan leucemia eracomparar los efectos a largo plazo de las tres terapias, de modo que serıa interesante ajustaruna curva distinta para cada tratamiento. Para hacerlo utilizamos una interaccion entre un
70
factor y un predictor contınuo, de modo que el modelo (5.3) se puede extender a:
yij = fzi(xij) + ai1 + ai2xij + εij
yij = β0 + β1xij + Ziuk∑L
l=2 tril(γ0l + γ1lxij) +∑L
l=2 trilZiwlk + ai1 + ai2xij + εij
wlk ∼ N(0, σ2wl), (ai1, ai2)
T ∼ N(0,Σ) εij ∼ N(0, σ2ε),
(5.4)
donde tril = 1 si tri = l y 0 en otro caso.En un modelo en el que aparecen factores, es necesario imponer alguna restriccion paraasegurar que el modelo es identificables, en este caso, la restriccion que imponemos es: γ01 =γ11 = 0, lo que significa que β0 +β1xij +Ziuk es la curva ajustada para l = 1, y γ0l +γ1lxij +Ziw
lk es la diferencia en las curvas ajustadas entre la terapia 2 (radiacion convencional) y 3
(radiacion hiperfraccionada) y la terapia 1 (no radiacion). En R:
Utilizando la funcion gamm():
fit4.gamm=gamm(altura~factor(tratamiento)+s(edad,k=40,bs="ps",m=2,by=factor(tratamiento)),random=list(caso=pdSymm(~edad)))
summary(fit4.gamm$gam)Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 125.8952 0.4606 273.357 < 2e-16 ***
factor(tratamiento)2 -3.6383 1.0508 -3.463 0.000547 ***
factor(tratamiento)3 -2.2342 1.0605 -2.107 0.035272 *
---
Approximate significance of smooth terms:
edf Ref.df F p-value
s(edad):factor(tratamiento)1 11.589 11.589 954.8 <2e-16 ***
s(edad):factor(tratamiento)2 8.986 8.986 250.8 <2e-16 ***
s(edad):factor(tratamiento)3 9.251 9.251 268.3 <2e-16 ***
---
R-sq.(adj) = 0.918 Scale est. = 3.41 n = 1988
Utilizando la funcion lme():
X=model.matrix(altura~factor(tratamiento)*edad)
tratamiento=factor(tratamiento)
Z.block4=list(list(tratamiento=pdIdent(~Z-1)),list(caso=pdSymm(~edad))
Z.block4=unlist(Z.block4,recursive=FALSE)
data.fr = groupedData(altura ~ X[,-1]|Id,data=data.frame(altura,X,Z,caso,edad))
model4 = lme(altura~X[,-1],data=data.fr,random=Z.block4)
71
5 10 15
100
120
140
160
edad
altu
ra
tratamiento 1tratamiento 2tratamiento 3
Figura 20: Curvas ajustadas para los distintos tratamientos
3.5. Curvas especıficas para cada individuo
Los modelos mas flexibles son aquellos que permiten que las diferencias especıficas indi-viduales sean una funcion no-parametrica (ver por ejemplo, Ruppert et al. (2003)). Esto essencillo de hacer mediante los P-splines:
yij =L∑l=2
γltril + f(xij) + gi(xij) + εij εij ∼ N(0, σε) (5.5)
g(xij) = ai1 + ai2xij + Zivk (ai1, ai2)T ∼ N(0,Σ) vk ∼ N(0, σ2
v)
Cada curva individual gi() tiene dos componentes: uno lineal y otro no-parametrico, peroambos componentes son aleatorios, a diferencia de lo que hacen otros autores como Brumbackand Rice (1998), este nuevo enfoque soluciona los problemas computacionales a los que dabalugar el hecho de tener que estimar 2m parametros para la parte lineal.Aunque el modelo (5.5) es complejo, se puede describir de forma sencilla en el contexto de
72
los modelos mixtos:
Y = Xβ +Zu+ ε with
Z =
Z1 X1 0 . . . 0 Z1 0 . . . 0Z2 0 X2 . . . 0 0 Z2 . . . 0...
......
. . ....
......
. . ....
Zm 0 0 . . . Xm 0 0 . . . Zm
,u = [u1, . . . , uK , a11, a12, . . . , am1, am2, v1, . . . , vK ]′ ,
G = Cov(u) =
σ2uI 0 00 blockdiagonal
1≤i≤mΣ
0 0 σ2vI
.En este caso serıa muy complejo el uso de la funcion gamm(), ya que tendrıamos que definir197 variables (tantas como ninas) para poder obtener una curva individual para cada nina,sin embargo, esto es bastante sencillo con la funcion lme():
MM.caso=mixed.model.B(edad,min(edad)-0.5,max(edad)+0.5,10,3,2)
tratamiento=factor(tratamiento)
Z.caso=MM.caso[[2]]
Z.block5=list(list(tratamiento=pdIdent(~Z-1)),list(caso=pdSymm(~edad)),
list(caso=pdIdent(~Z.caso-1)))
Z.block5=unlist(Z.block5,recursive=FALSE)
data.fr=groupedData(altura~X[,-1]|Id,data = data.frame(altura,X,Z,Z.caso,caso,edad))
model5=lme(altura~X[,-1],data=data.fr,random=Z.block5)
Comparacion de modelos
Anteriormente, vimos que en el contexto de los modelos mixtos, el metodo estandar parala estimacion de los parametros de la varianza era REML. Pero ademas de ser capaces deestimar los parametros, nos va a interesar contrastar si necesitamos un modelo parametricoo no. Realizar este tipo de contrastes no es inmediato. Por ejemplo, en el modelo (5.2),podemos estar interesados en saber si la funcion que describe la media de la poblacion deninas es una lınea o tiene algun grado de no-linealidad. Esto serıa equivalente a contrastar:
H0 : σ2u = 0 vs. H1 : σ2
u > 0.
El primer problema al que nos enfrentamos es que el parametro de interes esta en la fronteradel espacio de parametros, [0,∞), por lo que el test de la razon de verosimilitud
RLRT = supH1
REL(β, σ2ε , σ
2U , σ
2u)− sup
H0
REL(β, σ2ε , σ
2U , σ
2u) (5.6)
no se puede comparar con una χ21. Self and Liang (1987) y Stram and Lee (1994) vieron
que si y se puede particionar en subvectores independientes, y el numero de subvectores
73
5 10 15
Edad
100
120
140
160
Altu
ra (
en c
m)
terapia 1terapia 2terapia 3
5 10 15
Edad
-20
-15
-10
-50
5
Dife
renc
ia
terapia 3 vs 1terapia 2 vs 1
Figura 21: Curvas estimadas para las medias poblacionales (izquierda) y curvas de contrastecon intervalos de confianza (derecha)
tiende a infinito, (5.6) se distribuye asintoticamente como 12χ2q + 1
2χ2q+1, donde q es el numero
de efectos bajo la hipotesis nula. Sin embargo, esta suposicion no es cierta en este tipo demodelos semiparametricos y en algunos casos esta aproximacion puede no ser buena. Crai-niceanu et al. (2003b) (Crainiceanu et al. (2002)). Crainiceanu et al. (2003b) derivo el casoen el que se contrasta una regresion polinomica frente a una alternativa modelada medianteP-splines con un unico parametro para la varianza, y Crainiceanu et al. (2003a) estudio elcaso en el que hay varios componentes de la varianza. Estos autores tambien sugieren el usode simulaciones para determinar la distribucion del estadıstico del test bajo la hipotesis nula.La idea es la siguiente: se estiman los parametros del modelo bajo la hipotesis nula, entoncesse simula la distribucion del test de la razon de verosimilitud bajo la hipotesis nula para esosparametros. Crainiceanu et al. (2003a) da un metodo rapido para las simulaciones en algunoscasos, sin embargo, la complejidad de estos algoritmos aumenta linealmente con el numero deindividuos y con la complejidad del modelo, lo que hace que sea computacionalmente inviable.
Vamos a justar dos modelos anidados con 5 y 6 parametros de la varianza a los datos
74
de leucemia, son los modelos (5.3) y (5.5) pero incluyendo interaccion entre curva y factor:
yij = fzi(xij) + ai1 + ai2xij + εij,
yij = fzi(xij) + gi(xij) + εij,
donce yij es la altura de la i-esima nina a la edad j, para i = 1, . . . , 197 y j entre 1 y21, f1 es la curva media del grupo de ninas que recibieron terapia intracraal sin radiacion,f2 para las ninas que recibieron radiacion convencional y f3 para ninas que recibieron ra-diacion hiperfraccionada, ai1 y ai2 las ordenadas en el origen y las pendientes aleatorias, ygi(xij) es la desviacion especıfica de la i-esima nina con respecto a la curva media de su grupo.
Nuestro interes en el analisis de estos datos son los efectos de los tratamientos en la al-tura a lo largo del tiempo y las respuestas individuales al tratamiento.La Figura 21 muestra las curvas estimadas para la media poblacional de los tres grupos. Sepuede apreciar que todos los grupos siguen el mismo patron, pero la ninas que no recibieronradiacion (tratamiento 1) son mas altas que las de los otros dos grupos. En particular, estegrupo es significativamente mas alto que los demas cuando las ninas llegan a la adolescencia.Para comparar las tres curvas, reajustamos el modelo con una sola curva para la media; lahipotesis nula serıa:
H0 : γjl = 0 j = 0, 1 l = 1, 2, 3 and σ2w = 0
para γjl y σ2w definidas en (5.5). Comparamos −2 log(RLRT)=34.62 con el percentil 90 de
12χ22 + 1
2χ23, 5.528. Los resultados son claramente significativos, lo que indica que la altura
media de la ninas se ve afectada por la terapia recibida.El panel derecho de la Figura 21 muestra f2(xij) − f1(xij) y f3(xij) − f1(xij) e indica quela altura de las ninas que reciben radiacion convencional (terapia 2) es menor, a cualquieredad, que la de la ninas que no reciben radiacion (terapia 1).
Para contrastar si la respuesta individual a las terapias es lineal, compararemos los mo-delos :
yij = fzi(xij) + ai1 + ai2xij + εij
yij = fzi(xij) + gi(xij) + εij
lo que equivale aH0 : σ2
v = 0 vs. H1 : σ2v > 0.
De nuevo, serıa preferible utilizar simulaciones , sin embargo, dada la complejidad del mo-delo comparamos el valor de −2 log(RLRT)=453.004, en este caso con el percentil 90 de12χ20 + 1
2χ21, 1.642. Los resultados indican claramente que la desviacion de cada nina respecto
de la media de la poblacion necesita ser explicada de forma no-parametrica.
La Figura 22 muestra los efectos aleatorios estimados correspondientes a las curvas indi-viduales del modelo (5.5), donde se aprecia que los efectos para algunas ninas son claramenteno-lineales.
75
5 10 15
−20
−10
010
20
edad
Efec
tos al
eator
ios
Figura 22: Efectos aleatorios estimados para cada nina.
La Figura 23 muestra como las curvas medias de las terapias no representan de forma ade-cuada la altura individual de las ninas, mostrando la perdida de informacion que tendrıamossobre las trayectorias individuales si no hubieramos incluido las curvas individuales en elmodelo.
Otra posibilidad es utilizar la funcion anova, aunque no debemos tener en cuenta el p-valorya que el test es aproximado. Por ejemplo:
anova(model4,model5)
esta funcion nos da tambien el valor del AIC o BIC que podemos utilizar para elegir elmodelo.
4. Datos correlados
En esta seccion vamos a utilizar los datos que aparecen en Pandit and Wu (1983) y queestan en el fichero madera.txt, corresponden a 320 medidas tomadas en la superficie de unbloque de madera, las medidas corresponden a la profundidad de las muescas que aparecenen la madera cuando se pule con una piedra circular. La Figura 13 muestra como cambia eltamano de la muesca con relacion al radio de la piedra.
76
5 10 15
Edad
100
120
140
160
Altu
ra (
en c
m)
5 10 15
Edad
100
120
140
160
Altu
ra (
en c
m)
5 10 15
Edad
100
120
140
160
Altu
ra (
en c
m)
5 10 15
Edad
100
120
140
160
Altu
ra (
en c
m)
5 10 15
Edad
100
120
140
160
Altu
ra (
en c
m)
5 10 15
Edad
100
120
140
160
Altu
ra (
en c
m)
Figura 23: Graficos de curvas individuales de 6 ninas (lınea continua) con I.C. al 95 % juntocon la curva media del grupo (lınea discontinua).
Pandit and Wu (1983) asumieron que la tendencia era a priori circular y utilizaron 3 parame-tros (dos para el centro y uno para el radio) para ajustarla, e iteraron entre la estimacion deesta tendencia y la estructura de los errores. Con el uso de los P-splines es posible flexibilizarla estructura de la tendencia y estimar simultaneamente ambos efectos (algo que es muydifıcil si no se utiliza la representacion de los P-splines como modelos mixtos). Comenzamospor ajustar un modelo de suavizado, ignorando la estructura de correlacion en los datos:
cor.gamm=gamm(profundidad~s(distancia, k=40, bs="ps",m=2))
La Figura 24 muestra como el ignorar la estructura de correlacion tiene dos efectos: unacurva que no es suave y unos residuos que no son incorrelados. Para solucionar el problemapodemos introducir una estructura de autocorrelacion en el modelo, por ejemplo un AR(1)y un AR(2).
Id=factor(rep(1,320))
cor1.gamm=gamm(profundidad~s(distancia, k=40, bs="ps",m=2),
correlation=corARMA(form=~distancia|Id,p=1,q=0))
cor2.gamm=gamm(profundidad~s(distancia, k=40, bs="ps",m=2),
correlation=corARMA(form=~distancia|Id,p=2,q=0))
Ahora vemos en la Figura 15, como al asumir un proceso AR(2) para el termino de error,es posible separar la correlacion a corto plazo y la tendencia global, y no hay restos de
77
0 50 100 150 200 250 300
7080
9010
011
012
0
distancia
prof
undi
dad
Figura 24: Efecto del lijado en un trozo de madera.
correlacion en los residuos.Podemos comparar los modelos ajustados mediante el test de maxima verosimilitud para
confirmar que es necesario un modelo AR(2) para el termino de error:
anova(cor.gamm$lme,cor1.gamm$lme,cor2.gamm$lme)
Model df AIC BIC logLik Test L.Ratio p-value
cor.gamm$lme 1 4 1853.437 1868.510 -922.7185
cor1.gamm$lme 2 5 1660.112 1678.954 -825.0561 1 vs 2 195.32478 <.0001
cor2.gamm$lme 3 6 1643.742 1666.352 -815.8711 2 vs 3 18.37015 <.0001
Pregunta:
1. A¿Cuanto vale el parametro de suavizado en el modelo inicial y en el final? A¿Tienesentido?
5. Datos multidimensionales
5.1. Ejemplo 1: Tendencias espaciales en experimentos de campo
Las funciones spm y gamm de las que hablamos en el capıtulo anterior, permiten ajustarmodelos bidimensionales, sin embargo spm asume un mismo parametro de suavizado en
78
0 50 100 150 200 250 300
−30
−20
−10
010
20
distancia
s(di
stan
cia,
27.0
2)
0 5 10 15 20 25
−0.2
0.0
0.2
0.4
0.6
0.8
1.0
Lag
AC
F
Series cor1.gamm$gam$resid
Figura 25: Curva ajustada (izquierda) y autocorrelacion de los residuos del modelo (derecha).
ambas direcciones, lo cual puede dar problemas en algunas situaciones. Vamos a ver comose pueden ajustar con R los datos sobre los experimentos de campo llevados a cabo en elScottish Crop Reserach Institute. En el fichero SCRI.txt se encuentran los datos, y en elfichero SCRI.R se ajustan, primero un modelo aditivo, y un modelo bidimensional:
fit.SCRI=gamm(Produccion~s(Fila,bs="ps",m=2)+s(Columna,bs="ps",m=2))
fit.SCRI2=gamm(Produccion~te(Fila,Columna,bs=c("ps","ps"),m=2))
En el caso bidimensional, la especificacion del modelo cambia, en este caso utilizamos lafuncion te(), que indica que vamos a hacer el producto tensorial de las bases, ademas bs=
sera un vector de longitud igual a la dimension del modelo. Las Figuras 12 y 13 del capıtuloanterior muestran las diferencias que hay entre el ajuste de ambos modelos y como el modeloaditivo no es apropiado.
> anova(fit.SCRI$lme,fit.SCRI2$lme)
Model df AIC BIC logLik Test L.Ratio p-value
fit.SCRI$lme 1 6 73.70450 99.67212 -30.852248
fit.SCRI2$lme 2 7 20.12908 50.42464 -3.064541 1 vs 2 55.57541 <.0001
Tanto el AIC como el BIC confirman claramente que el modelo bidimensional es mas apro-piado.
79
0 50 100 150 200 250 300
70
80
90
10
01
10
12
0
distancia
pro
fun
did
ad
0 5 10 15 20 25
0.0
0.2
0.4
0.6
0.8
1.0
Lag
AC
F
Series residuos
Figura 26: Curva ajustada (izquierda) y autocorrelacion de los residuos del modelo conautocorrelacion (derecha).
Este tipo de modelos bidimensionales tambien se pueden ajustar sin necesidad de recurrir lafuncion gamm(), simplemente, se calculan las matrices correspondientes al modelo mixto, seprograma la funcion de verosimilitud (REML) y se utiliza la funcion optim() para estimarlos parametros de suavizado, sin embargo, la matriz que corresponde la parte aleatoria delmodelo es de dimensiones elevadas (al ser producto de Kronecker de dos matrices), por loque es necesario utilizar algoritmos que usan la estructura de enrejado de los datos parareducir los calculos (ver Currie et al. (2006)).
5.2. Ejemplo 2: Analisis de datos de mortalidad
Los datos que vamos a analizar han sido cedidos por el Continuous Mortality InvestigationBureau (CMIB) del Reino Unido. Para cada ano entre 1947 y 1999 y cada edad (entre 11y 100 anos) se dispone del numero de polizas cobradas (muertes) y del numero de polizasque hay (exposicion o multiplicador de la tasa). Los datos se organizan en matrices Y yE cuyas filas estan indexadas por edad y las columnas por anos, y definimos la mortalidadcomo: R = Y /E. El fichero mortalidad.txt contiene los datos, y el codigo se encuentra enmortalidad.R.
mortalidad=read.table("mortalidad.txt",header=TRUE)
80
Figura 27: Datos sobre mortalidad en el Reino Unido
attach(mortalidad)
library(mgcv)
off=log(exposicion)
Como los datos corresponden al numero de muertes, estamos en el caso de un modelo linealgeneralizado con distribucion de Poisson, por lo tanto, estarıamos utilizando los resultadosde la seccion 4.1; ademas hemos de tener en cuenta el numero de polizas existentes en esemomento, es decir, buscamos un modelo para la tasa de mortalidad:
log(y/e) = f(x, y)⇒ log(y) = log(e)︸ ︷︷ ︸offset
+f(x, y)
Nos podemos plantear dos modelos:
Modelo aditivo suave para Edad-Periodo
fit=gam(muertes~s(edad,k=20,bs="ps",m=2)+s(periodo,k=20,bs="ps",m=2)+offset(off),
select=TRUE,method="REML",family="poisson")
summary(fit)
Parametric coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.771085 0.008522 -559.9 <2e-16 ***
---
Approximate significance of smooth terms:
edf Ref.df Chi.sq p-value
s(edad) 17.97 19 2361941 <2e-16 ***
s(periodo) 18.50 19 65936 <2e-16 ***
81
Este modelo ajusta la misma curva para todas las edades y la misma para todos losanos. La Figura 28 muestra la superfice (aditiva) a la que da lugar este modelo.
edad
perio
do
linear predictor
Figura 28: Curvas ajustadas para edad y periodo con un modelo aditivo.
En la Figura 29 se muestra la curva ajustada para el periodo para dos edades distin-tas, vemos claramente que no es apropiado asumir que el descenso en la mortalidada lo largo de los anos es el mismo para todas las edades. En el caso de los 34 anos,el modelo no es capaz de ajustar correctamente el hecho de que en los ultimos anosel comportamiento de los jovenes haya ralentizado el descenso de la mortalidad. En elcaso de los 60 anos, el modelo tiende a subestimar la mortalidad en los primeros anosy a sobrestimarla recientemente.
En las secciones 1 y 2 de este capıtulo, vimos como podıamos ajustar los modelosutilizando la funcion lme(), en el caso de datos no Gaussianos, lo equivalente es uti-lizar la funcion glmmPQL(), cuya estructura es similar a la anterior, en este caso laestimacion de los parametros esta basada en Penalized Quasi-Likelihood. En el ficheromortalidad2.R se encuentra el codigo que ajusta el modelo anterior mediante estafuncion.
Modelo de suavizado bidimensional
fit2=gam(muertes~te(edad,periodo,k=c(10,10),bs=c("ps","ps"),m=2)+offset(off),
select=TRUE,method="REML" ,family="poisson")
summary(fit2)
Parametric coefficients:
Estimate Std. Error z value Pr(>|z|)
82
Periodo
log
(mu
)
1950 1960 1970 1980 1990 2000
-7.8
-7.6
-7.4
-7.2
-7.0
-6.8
-6.6
-6.4
Periodolo
g(m
u)
1950 1960 1970 1980 1990 2000
-5.0
-4.8
-4.6
-4.4
-4.2
Edad: 34 Edad: 60
Figura 29: Curva ajustada periodo con un modelo aditivo para dos grupos de edad.
(Intercept) -4.754175 0.008175 -581.6 <2e-16 ***
---
Approximate significance of smooth terms:
edf Ref.df Chi.sq p-value
te(edad,periodo) 64.88 99 2443299 <2e-16 ***
vis.gam(fit2,view=c("edad","periodo"), phi=15)
La Figura 30, muestra la superfice ajustada en este caso, se pueden apreciar las dife-rencias sobre todo en las edades tempranas y en los ancianos. En la Figura 31 vemoscomo ahora el modelo ajusta correctamente las curvas para las distintas edades.
Por ultimo, la Figura 32 nos da una idea sobre el ajuste del modelo. La figura de laizquierda muestra la relacion entre el numero de muertes y los valores ajustados, y lafigura de la derecha muestra el grafico de los valores ajustados frente a los residuos dePearson: vemos como hay unos cuantos residuos elevados que corresponden a valorespredichos proximos a cero, pero en general el ajuste es bastante bueno.
5.3. Ejercicio: Infeccion post-operatoria
Vamos a trabajar con los datos POI.txt (cortesıa de M. Xose Rodrıguez Alvarez, Univer-sidad de Vigo). Los datos correponden a pacientes sometidos a una intervencion quirurgica,y contienen los registros relativos a factores preoperatorios y operatorios relacionados con lainfeccion postoperatoria (POI). Las variables son:
83
edad
perio
do
linear predictor
Figura 30: Curva ajustada periodo con un modelo bidimensional para dos grupos de edad.
Periodo
log(m
u)
1950 1960 1970 1980 1990 2000
-7.6
-7.4
-7.2
-7.0
-6.8
-6.6
-6.4
Periodo
log(m
u)
1950 1960 1970 1980 1990 2000
-5.0
-4.8
-4.6
-4.4
-4.2
Edad: 34 Edad: 60
Figura 31: Curva ajustada con un modelo bidimensional para dos grupos de edad.
age: Edad del paciente en anos
gender: 0: Mujer71: Hombre
gluc: Nivel de glucosa pre-operatoria
diab: Presencia de diabetes (0/1)
84
0 200 400 600 800 1000
020
040
060
080
010
0012
00
valores ajustados
mue
rtes
0 5 10 15 20 25 30
−4−2
02
46
valores ajustados^0.5
resi
duos
Figura 32: Graficos de valores ajustados y residuos.
poi: Infeccion postoperatoria (0/1)
El objetivo es evaluar los factores preoperatorios sobre la presencia de infeccion.
1. Evaluar el posible efecto de la glucosa preoperatoria sobre la presencia de infeccion:
Resumen del ajuste y grafico del efecto
Contrastar si el efecto es lineal
2. Incluye tambien la presencia de diabetes
Resumen del ajuste y graficos de efectos
¿es el efecto de diabetes significativo?. ¿Que modelo es mejor, con o sin diabetes?
Ajusta el modelo incorporando la interseccion entre glucosa y diabetes
Compara este modelo con el modelo sin interaccion, ¿con cual te quedas?
3. En base al mehor modelo anterior, vamos a evaluar el efecto de las variables gender yedad
Incorpora la variable edad y compara el nuevo modelo con el anterior
Incluye ead y sexo. ¿Que conclusiones extraes?
Ajusta el modelo incorporando la la interaccion entre edad y sexo. ¿Hay interac-cion?. ¿Mejora el modelo?
Ajusta un modelo incorporando la interaccion entre la glucosa y la edad. ¿Hayevidencias de interaccion?. Dibuja los efectos
85
5.4. Ejercicio: Kiphosis data
Los datos (kiphosis.txt) corresponden a 81 ninos que han tenido cirugıa correctora deespalda para eliminar la cifosis (kyphosis). Las variables son:
kyphosis: Es la variable respuesta, binaria, que indica la presencia o ausencia dekyphosis despues de la operacion.
Age: Edad en meses del nino
Numero: El numero de vertebras implicadas en la operacion.
Start:El numero de la vertebra donde empizan las vertebras implicadas.
1. Ajusta un modelo lineal generalizado. ¿Que variables son significativas?
2. Utiliza la funcion mmps de la librerıa car para hacer graficos marginales. Estos graficosrepresentan la probabilidad de presencia de kyphosis para cada una de las covariables.
3. Ajusta un modelo gam para las variables.
4. A¿Hay interaccion entre ellas?
5.5. Ejemplo 3: Aplicaciones en disease mapping
Los datos corresponden al numero observado y esperado de casos de cancer de labio re-gistrado en 54 municipios de Escocia, junto con la proporcion de la poblacion que trabaja enagricultura, bosques y pesca. Estos datos han sido analizados utilizando diversos enfoques,generalmente basados en modelos espaciales jerarquicos donde los efectos aleatorios asocia-dos a cada municipio estan modelizados mediante diferentes distribuciones a priori (modelosautoregresivos condicionales).Nuestra propuesta es utilizar, no el hecho de que los municipios sean vecinos, sino las coorde-nadas de los centroides de cada municipio para modelizar el efecto espacial y ademas anadirun efecto aleatorio para cada municipio con el objetivo de controlar la posible sobredisper-sion de los datos.
En este caso, los datos no estan en un enrejado, por lo que la base de b-splines no es elproducto de Kronecker de las bases en cada dimension sino llamado producto de Kroneckerpor filas : B = B2B1, donde cada fila de la matriz B es el producto de Kronecker de lasfilas correspondientes de las bases individuales. Utilizamos nuevamente los resultados de laseccion 4 y utilizamos la representacion de los Psplines como modelos mixtos:
η = Xβ +Zα α ∼ N (0,G)
Para modelizar la posible sobredispersion de los datos y tener en cuenta la posibilidad deque una superficie suave no capture la variabilidad de los datos, anadimos un efecto aleatoriopara cada municipio, por tanto el modelo serıa:
Xβ +Zα+ γI α ∼ N (0,G), γ ∼ N (0, σ2γI)
86
Este modelo recibe el nombre de PRIDE (“Penalized Random Individual Dispersion Ef-fects”).
Los datos se encuentran en el fichero lipcancer.txt y el codigo en lipcancer.R. Se hanajustado dos modelos, sin efectos aleatorios individuales y otro con efectos aleatorios:
fit.lip=gam(y~AFF+te(lat,lon,bs=c("ps","ps"),k=c(6,8),m=2)+offset(off),
family="poisson")
fit.lip2=gam(y~AFF+te(lat,lon,bs=c("ps","ps"),m=2)+offset(off),
random=list(dist=~1),family="poisson")
Suavizado Espacial :: Xββ ++ Zα
−1.0
−0.5
0.0
0.5
1.0
1.5Suavizado espacial ++ Efecto aleatorio :: Xββ ++ Zαα ++ γγI
−1.0
−0.5
0.0
0.5
1.0
1.5
Figura 33: Ajuste de los dos modelos propuestos (en la escala del predictor lineal)
Para comparar ambos modelos vamos a utilizar el AIC:
AIC = Dev + 2Df Dev =∑i
yi log
(yiµi
)− (yi − µi)
y.new=y
y.new[y==0]=10^-4
ajustados=fit.lip$lme$fitted
ajustados=ajustados[,2]
mu=exp(ajustados)*exp(off)
Dev=sum(2*y.new*log(y.new/mu)-(y.new-mu))
Df=sum(fit.lip$gam$edf)
AIC=Dev+2*Df
87
El valor de AIC es 98.68 en el modelos sin efectos aleatorios individuales y 40.64 en el modelocon efectos aleatorios para cada municipio y el valor de σ2
γ = 0,125.
En la Figura 33 vemos la diferencia entre el ajuste, sin y con los efectos aleatorios individua-les, la introduccion de estos efectos permiten tener en cuenta las caracterısticas individualesde cada municipio; estas caracterıticas pueden ser bastantes distintas a las de sus municipiosvecinos, y por tanto no se captarıan en un modelo donde solo hubiera suavizado.
88
Bibliografıa
Brumback, B. and Rice, J. (1998). Smoothing spline models for the analysis of nested andcrossed samples of curves. Journal of the American Statistical Association, 93:961–994.
Cleveland, W. (1979). Robust locally-weighted regression and smoothing scatterplots. Jour-nal of the American Statistical Association, 74:829–836.
Crainiceanu, C., Ruppert, D., Claeskens, G., and Wand, M. (2003a). Likelihood ratio testof polynomial regression against a general non-parametric alternative. submitted.
Crainiceanu, C., Ruppert, D., and Vogelsang, T. (2002). Probabilty that the mle of a variancecomponent is zero with applications to likelihood ratio tests. submitted.
Crainiceanu, C. M., Ruppert, D., Claeskens, G., and Wand, M. (2003b). Likelihood ratiotest of polynomial regression againts a general nonparametric alternative. submitted.
Currie, I., Durban, M., and Eilers, P. (2004). Smoothing and forecasting mortality rates.Statistical Modelling (en prensa).
Currie, I., Durban, M., and Eilers, P. (2006). Generalized linear array models with applica-tions to multidimensional smoothing. Journal of the Royal Statististical Society, Series B,68:1–22.
De Boor, C. (1977). Package for calculating with B-splines. Journal of Numerical Analysis,14:441–472.
De Boor, C. (2001). A practical guide to splines. Applied Mathematical Sciences. Springer-Verlag, New York.
Dierckx, P. (1993). Curve and surface fitting with splines. Clarendon, Oxford.
Durban, M., Currie, I., and Eilers, P. (2002). Using P -splines to smooth two-dimensionalPoisson data. In Stasinopoulos, M. and Toulouimi, G., editors, Proceedings of the 17thInternational Workshop on Statistical Modelling, pages 207–214, Crete, Greece.
Eilers, P. and Marx, B. (1996). Flexible smoothing with B-splines and penalties. StatisticalScience, 11:89–121.
Green, P. and Silverman, B. (1994). Nonparametric Regression and Generalized LinearModels. Monographs on Statistics and Applied Probability. Chapman & Hall, London.
89
Hastie, T. and Tibshirani, R. (1987). Generalized additive models: Some applications. Jour-nal of the American Statistical Association, 82:371–386.
Kneib, T. (2005). Mixed Model Based Inference in Structured Additive Regression. PhDthesis, Department of Statistics, Ludwig-Maximilians University, Munich.
Laird, N. and Ware, J. (1982). Random-effects models for longitudinal data. Biometrics,38:963–974.
Marx, B. and Eilers, P. (1998). Direct generalized additive modeling with penalized like-lihood. Computational Statistics and Data Analysis, 28:193–209.
McCullagh, P. and Nelder, J. (1989). Generalized Linear Models. Chapman & Hall, NewYork.
Nelder, J. and Wedderburn, R. (1972). Generalized linear models. Journal of the RoyalStatistical Society, Series A, 135:370–385.
Ngo, L. and Wand, M. (2004). Smoothing with mixed model software. Journal of StatisticalSoftware, 9(1).
O’Sullivan, F. (1986). A statistical perspective on ill-posed inverse problems. StatisticalSciences, 1:505–527.
Pandit, S. and Wu, S.-M. (1983). Time series and system analysis with applications. Wiley,New York.
Rice, J. and Wu, C. O. (2001). Nonparametric mixed effects models for unequally samplednoisy curves. Biometrics, 57:253–259.
Ruppert, D. (2002). Selecting the number of knots for penalized splines. Journal of compu-tational and Graphical Statistics, 11:735–757.
Ruppert, D., Wand, M., and Carroll, R. (2003). Semiparametric Regression. CambridgeSeries in Statistical and Probabilistic Mathematics. Cambridge University Press.
Self, S. and Liang, K. (1987). Asymptotic properties of maximum likelihood estimators andlikelihood ratio tests under nonstandard conditions. Journal of the American StatisticalAssociation, 82:605–610.
Speed, T. (1991). Comment on ”BLUP is a good thing: The estimation of random effects”,by robinson, g.k. Statistical Science, 6:15–51.
Stram, D. and Lee, J. (1994). Variance components testing in the longitudinal mixed effectsmodel. Biometrics, 50:1171–1177.
Verbyla, A., Cullis, B., Kenward, M., and Welham, S. (1999). The analysis of designedexperiments and longitudinal data using smoothing splines. Applied Statistics, 48:269–312.
90
Wand, M. (2003). Smoothing and mixed models. Computational Statistics, 18:223–249.
Wood, N. (2003). Thin plate splines regression. Journal of the Royal Statistical Society,65(1):95–114.
Wood, S. (2006a). mgcv 1.3. r package. cran.r-project.org.
Wood, S. (2006b). On confidence intervals for gams based on penalized regression splines.Australian and New Zealand Journal of Statistics, 48:445–464.
91