Documente Academic
Documente Profesional
Documente Cultură
4 Regresion No Parametrica
Regresion por Splines
Intervalos de confianza
Indice Introduccion
2 Regresion Lineal Simple En este caso, sera de interes disponer de tecnicas estadsticas que permitan
Estimacion y prediccion
establecer la posible relacion entre las variables, y en caso de que exista,
Bondad de ajuste. Coeficiente R2
Intervalos de confianza comprobar de que tipo es esta relacion:
lineal,
3 Otros modelos parametricos cuadratica,
Regresion polinomica
sinusoidal, ...
Modelos de linealizables
Dados los valores de algunas variables, efectuar predicciones sobre los valores
4 Regresion No Parametrica previsibles para las otras.
Regresion por Splines Seleccionar las variables que afectan el comportamiento de otra variable
Intervalos de confianza
....
tension = f (edad)
tension
donde f es una funcion que relaciona la edad con la tension.
Dicha funcion permitira determinar al valor de tension para cada edad. en la
anterior).
120
20 30 40 50 60 70
edad
Es claro que la relacion tension = f (edad) no puede ser exacta De forma general, los modelos de regresion relacionan una variable X (llamada variable
- es difcil pensar en una funcion f que pase precisamente por cada uno de los 69 independiente o covariable) con una variable Y (llamada variable dependiente o
puntos de la figura anterior. respuesta) a traves de la expresion matematica
Se dice que f (edad) es una funcion de regresion de tension sobre edad, y el objetivo etc.
es especificar su forma.
1 Introduccion
Es importante senalar que poner una variable Y al lado izquierdo y escribirla como
funcion de las otras covariables mas una perturbacion aleatoria 2 Regresion Lineal Simple
Estimacion y prediccion
Bondad de ajuste. Coeficiente R2
no prejuzga ninguna relacion de causalidad Intervalos de confianza
sino que solo se postula la existencia de una relacion cuya forma se pretende investigar. 3 Otros modelos parametricos
Regresion polinomica
En el ejemplo, el ajuste de un modelo del tipo tension = f (edad) + no implica que se Modelos de linealizables
considere que la edad sea la causa de la tension, sino solo que parece existir una relacion
entre ambas variables.
4 Regresion No Parametrica
Regresion por Splines
Intervalos de confianza
180
Una representacion adecuada de una muestra de n datos apareados
140 160
tension
(X1 , Y1 ), . . . , (Xn , Yn )
de un par de variables cuantitativas X e Y es el diagrama de dispersion.
120
Este tipo de grafico se construye representando en un plano los puntos de datos, y se
utiliza para comprobar visualmente si existe alguna relacion entre dos variables X e Y . 20 30 40 50 60 70
edad
En el grafico de arriba se aprecia que existe una relacion creciente y mas o menos lineal
entre la edad y la tension arterial de los pacientes.
4
Se ha visto que el coeficiente de correlacion es una medida resumen de la relacion lineal
3
entre dos variables cuantitativas.
nox
2
El objetivo de los estudios de regresion es determinar la funcion f que resume dicha
relacion a traves del modelo
1
Y = f (X) +
nox = f (etanol) +
los valores de la variable de error corresponden con las lneas verticales rojas.
b: Pendiente de la recta de regresion. Indica el aumento medio de Y cuando la
variable X aumenta en una unidad.
160
tension
Notese que b = 0 NO hay relacion entre las variables X e Y .
140
a: La constante a coindice con el valor medio de Y cuando X toma el valor cero.
120
20 30 40 50 60 70
edad
En el modelo anterior:
b: representa el incremento medio de tension arterial por ano de edad.
En el estudio de la tension arterial se pretende explicar la
a: representara la tension media para un individuo con edad de cero anos. Sin
tension arterial (Y ), en funcion de embargo, no tiene sentido considerar dicha edad, y por lo tanto, este coeficiente
la edad (X). no tendra una intepretacion directa.
Para ello se puede utilizar el modelo de regresion lineal: Es un valor de referencia necesario para un buen ajuste la recta.
tension = a + b edad +
: es la componente aleatoria del modelo, y representa las perturbaciones debidas a
otras variables no observadas, como p.ej.
consumo de tabaco, consumo de alcohol, habitos alimenticios, habitos
deportivos,...
Indice Estimacion
1 Introduccion
Los coeficientes a y b del modelo de regresion
2 Regresion Lineal Simple
Y = a + bX +
Estimacion y prediccion
Bondad de ajuste. Coeficiente R2 son desconocidos, y por lo tanto sera necesario obtener su estimacion a partir de una
Intervalos de confianza muestra de n datos apareados
(X1 , Y1 ), . . . , (Xn , Yn )
3 Otros modelos parametricos
Regresion polinomica de las variables (X, Y ).
Modelos de linealizables
Las estimaciones de a y b obtenidas con la muestra anterio seran denotadas por a y b.
Mas adelante sera explicado el procedimiento que permite obtener dichas estimaciones
4 Regresion No Parametrica
(metodo de mnimos cuadrados).
Regresion por Splines
Intervalos de confianza
Una vez obtenidos los estimadores a y b se obtendra, para cada respuesta Yi observada
en la muestra, la correspondiente prediccion Yi dada por la recta de regresion estimada.
Yi = a + bXi
Si ei <
> 0 el ajuste Yi esta por encima de la observacion Yi
Si ei >
< 0 Yi < Yi
160
= 0 Yi = Yi , situacion ideal, pero no ocurre casi nunca.
Si ei =
tension
140
Parece natural buscar estimadores a y b que cometan pocos errores de estimacion.
120
20 30 40 50 60 70
edad
180
SCR(a, b) = e21 + . . . + e2n = (Y1 a b X1 )2 + . . . + (Yn a b Xn )2
160
160
tension
tension
Derivando SCR(a, b) con respecto a a y a b
a, e igualando a 0, se obtienen dos
140
140
ecuaciones con solucion,
sXY
b = y a0 = Y bX.
120
120
s2X
b
20 30 40 50 60 70 20 30 40 50 60 70
Finalmente, la recta de regresion estimada de Y sobre X se obtiene como:
edad edad
sXY
Y = a + bX = Y + (X X).
s2X
Claramente, el ajuste en (a) es mucho mejor que el ajuste (b) como se aprecia en las
longitudes de las rectas verticales rojas correspondientes a los errores de estimacion.
En el estudio de la relacion entre la tension arterial (Y ) y la edad (X), se han A partir de la informacion anterior se obtienen los coeficientes estimados
obtenido las siguientes medidas muestrales:
223,76
b = = 0,98
227,50
edad tension
media 46.13 148.72
a = 148,72 0,98 46,13 = 103,51
cuasi-varianza 227.50 341.35
180
tension= 103.35 + 0.98 edad
La interpretacion de la recta ajustada es la que sigue:
160
tension
b = 0,98 el incremento de tension esperado por ano de edad es de 0,98.
140
a = 103,51 no tiene una interpretacion directa. No tiene sentido considerar
edades iguales a cero.
120
20 30 40 50 60 70
edad
Codigo R Codigo R
El calculo de los coeficientes de la recta de regresion se puede obtener con el siguient Alternativamente se puede utilizar la funcion lm()
codigo:
La recta de regresion puede servir para hacer predicciones: dado un nuevo valor de la Las predicciones anteriores se pueden obtener con el siguiente codigo:
covariable, x0 , se puede predecir que la variable respuesta estara alrededor de:
> edades=c(20,40,65)
Y (x0 ) = a + b x0 > pred=a+b*edades
> pred
[1] 123.0238 142.6950 167.2840
Ejemplo. Tension Arterial
La tensiones esperadas para pacientes de 20, 40 y 65 anos son, respectivamente, De forma alternativa se puede usar la funcion predict()
\
tension(edad = 20) = 103,35 + 0,98 20 = 123,02 > modelo=lm(tension~edad)
> pred=predict(modelo,type=response,
\
tension(edad = 40) = 103,35 + 0,98 40 = 142,70 + newdata=data.frame(edad=edades))
> pred
1 2 3
\
tension(edad = 65) = 103,35 + 0,98 65 = 167,28 123.0238 142.6950 167.2840
1 Introduccion
Los modelos de regresion
2 Regresion Lineal Simple
Estimacion y prediccion Y = m(X) +
Bondad de ajuste. Coeficiente R2 pretenden explicar la respuesta media de Y a traves de los valores de otra covariable o
Intervalos de confianza variable explicativa X.
e1 + . . . + en
e = .
n
R2 =1 R2 = 0.88
-0.2
-0.2
0.8
0.8
y
y
-0.6
-0.6
0.4
0.4
-1.0
-1.0
R2 =1 R2 = 0.88
0.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
x x x x
R2 = 0.64 R2 = 0.029
-0.2
-0.2
0.8
0.8
y
y
-0.6
-0.6
0.4
0.4
-1.0
-1.0
2 2
R = 0.64 R = 0.029
0.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
x x x x
Figura: Valores de R2 para distintas colecciones de datos Figura: Valores de R2 para distintas colecciones de datos
Coeficiente de determinacion en modelos lineales Ejemplo. Tension Arterial Diferenciada por Sexo
En un nuevo estudio se pretende estudiar la relacion entre la tension sistolica y la
Para los modelos de regresion lineal edad del paciente diferenciando por el sexo del paciente. Se han estudiado 69
pacientes, de los cuales, 29 son mujeres y 40 hombres.
Y =a+bX +
se cumple la relacion
R2 = rXY
2
= Corr(X, Y )2 . hombre
180
mujer
160
tension
En el ejemplo R2 tambien podra ser calculado directamente como
140
Corr(edad, tension)2 = 0,802 = 0,64
120
El coeficiente de determinacion lineal R2 se calcula con el codigo
hombre
180
mujer A continuacion se muestran los coeficientes correspondiente al ajuste
160
tension = a + b edad +
tension
a b R2
140
global 103.3 0.98 0.64
hombre 110.0 0.96 0.75
120
mujer 97.1 0.95 0.71
20 30 40 50 60 70
edad
>
> coefficients(modelo) # Representacion grafica
(Intercept) edad plot(edad,tension,pch=19,col=0,
103.3526585 0.9835585 cex.axis=1.75,cex.lab=1.75,cex=1.75)
> coefficients(modeloh) points(edadh,tensionh,pch=17,col=blue,cex=1.5)
(Intercept) edadh points(edadm,tensionm,pch=16,col=red,cex=1.5)
110.0154860 0.9623564 rug(edadh,col=blue)
> coefficients(modelom) rug(edadm,col=red)
(Intercept) edadm
97.0770843 0.9493225 pred=predict(modeloh,type=response)
> round(summary(modelo)$r.squared,2) lines(edadh,pred,lwd=2,col=blue)
[1] 0.64 pred=predict(modelom,type=response)
> round(summary(modeloh)$r.squared,2) lines(edadm,pred,lwd=2,col=red)
[1] 0.75 legend(18,190,c("hombre","mujer"),
> round(summary(modelom)$r.squared,2) col=c(blue,red),pch=c(17,16),box.lty=0,cex=1.5)
[1] 0.71
Indice Introduccion
> modelo=lm(tension~edad) y
> pred=predict(modelo,type=response)
> e=tension-pred # residuos b b
sX n tn2
> n=length(edad)
> sqrt(sum(e^2)/(n-2)) #estimacion de sigma resultando los IC
[1] 11.09421 s !
1 X 2
a0 =
IC a 0 tn2,1/2
1+ 2
> summary(modelo)$sigma # de forma equivalente n sX
[1] 11.09421
y
sR
b1 =
IC b1 tn2,1/2
sX n
En los datos de tension los coeficientes estimados (y sus correspondientes IC95 %) son
Uno de los motivos por los que se ajusta un modelo de regresion a una nube de datos es
los que siguen
utilizar el modelo de regresion ajustado para predecir el valor de la variable respuesta
Y sabiendo que la variable regresora toma un determinado valor x0 .
a 103.35 (94.72,111.99)
b 0.98 (0.81, 1.16)
Claramente, la prediccio de Y para X = x0 viene dada por
Notese el aumento de la longitud de los intervalos a medidas que los valores de edad se
distancian de la edad media de 46.1 anos.
180
> predict(modelo,newdata=data.frame(edad=edades),
160
+ type=response,interval="confidence")
tension
fit lwr upr
140
1 123.0238 117.6619 128.3857
2 132.8594 128.9410 136.7779
120
3 142.6950 139.8144 145.5756
4 152.5306 149.7772 155.2840
180
160
> predict(modelo,newdata=data.frame(edad=edades),
tension
+ type=response,interval="prediction")
140
fit lwr upr
1 123.0238 100.2398 145.8079
2 132.8594 110.3713 155.3476
120
3 142.6950 120.3643 165.0257
4 152.5306 130.2159 174.8452
5 162.3662 139.9259 184.8065 20 30 40 50 60 70
edad
6 172.2018 149.4965 194.9070
Codigo R
180
plot(edad,tension,pch=19,
cex.axis=1.75,cex.lab=1.75,cex=1.5,col=grey)
edades=seq(20,70,1)
160
pred=predict(modelo,newdata=data.frame(edad=edades),
tension
type=response,interval="confidence")
140
lines(edades,pred[,1],cex=2,col=blue,lwd=2)
lines(edades,pred[,2],cex=2,col=blue,lwd=2,lty=1)
120
lines(edades,pred[,3],cex=2,col=blue,lwd=2,lty=1)
20 30 40 50 60 70 pred=predict(modelo,newdata=data.frame(edad=edades),
edad type=response,interval="prediction")
lines(edades,pred[,1],cex=2,col=red,lwd=2)
Figura: IC para la tension media vs. IC para la prediccion de una nueva tension. lines(edades,pred[,2],cex=2,col=red,lwd=2,lty=2)
lines(edades,pred[,3],cex=2,col=red,lwd=2,lty=2)
Los modelos de regresion lineal permiten establecer una relacion lineal entre la variable
1 Introduccion explicatiba X y la variable respuesta Y .
3
Intervalos de confianza
nox
2
ajustar a la suposicion de
3 Otros modelos parametricos linealidad.
1
Regresion polinomica
Y = 0 + 1 X +
3 Otros modelos parametricos
Regresion polinomica Modelo cuadratico o parabola de regresion
Modelos de linealizables
Y = 0 + 1 X + 2 X 2 +
4 Regresion No Parametrica Modelo cubico
Regresion por Splines Y = 0 + 1 X + 2 X 2 + 3 X 3 +
Intervalos de confianza
- etc.
Los estimadores de los parametros 0 , . . . , p que definen el polinomio de regresion de
orden p
Y = 0 + 1 X + . . . + p X p +
(X1 , Y1 ), . . . , (Xn , Yn ), las estimaciones 0 , . . ., p se obtienen minimizando la
nox
nox
nox
2
siguiente suma de residuos al cuadrado:
(Y1 Y1 )2 + . . . + (Yn Yn )2
1
siendo
Yi = 0 + 1 Xi + . . . + p Xip
0.6 0.8 1.0 1.2 0.6 0.8 1.0 1.2 0.6 0.8 1.0 1.2
etanol etanol etanol
1 Introduccion
R2= 0.781
6
Se consideran los 10 datos de las variables X = cantidad demandada de una
precio
representados en el correspondiente grafico de dispersion
4
cantidad 7 15 16 32 60 64 67 73 84 100
2
precio 7.9 5.5 4.1 2 1 0.6 0.65 0.5 0.4 0.4
20 40 60 80 100
cantidad
Aunque el valor de R2 = 0,78 es relativamente alto, lo cierto es que una recta no es un cantidad=c(7,15,16,32,60 ,64 ,67 ,73 ,84 ,100)
modelo muy adecuado para estos datos. precio=c(7.9 ,5.5,4.1,2,1,0.6,0.65,0.5,0.4,0.4)
modelo=lm(precio~cantidad)
Por ejemplo la prediccion del precio para una demanda de 90 unidades es de
plot(cantidad,precio,pch=19,main=paste(" R2=",
6,07 0,07 90 = 0,23euros round(summary(modelo)$r.squared,3)),
cex.axis=1.75,cex.lab=1.75,cex=1.5,col=grey)
grid=seq(7,100,1)
Parece razonable considerar otra forma funcional (distinta de una recta) para explicar la pred=predict(modelo,type=response,
relacion entre el precio y la demanda. newdata=data.frame(cantidad=grid))
lines(grid,pred,cex=2,col=blue,lwd=2)
Se ajuste el modelo
La recta de regresion es un modelo de regresion lineal. Existen otros modelos de
regresion no lineales que pueden ser resueltos como una recta de regresion simplemente Y = a + b X + (1)
aplicando una transformacion a los datos a partir de la muestra transformada (X1 , Y1 ), . . . , (Xn , Yn ), obteniendose las
estimaciones a y b .
El Modelo Exponencial supone la relacion
Se obtienen las estamaciones del modelo inicial
Y = a ebX
R2= 0.948
A continuacion se presentan los datos de demanda, y de precio en su escala original y
en escala logartmica.
2.0
1.0
logprecio
2 15.00 5.50 1.70
3 16.00 4.10 1.41
4 32.00 2.00 0.69
0.0
5 60.00 1.00 0.00
6 64.00 0.60 -0.51
7 67.00 0.65 -0.43
1.0
8 73.00 0.50 -0.69
R2= 0.948
6
precio = 2,03 0,03demanda
log\
precio
con un coeficiente de determinacion R2 = 0,95
4
Deshaciendo la transformacion se obtiene el siguiente modelo exponencial ajustado
\ = 7,6042 e0,0345cantidad
precio
20 40 60 80 100
cantidad
logprecio=log(precio)
Modelo Logartmico
Modelo Y = b0 + b1 log X
Transformacion Z = log X
Modelo Inverso
Forma Lineal T = b0 + b1 Z
Modelo Y = b0 + b1 /X
Transformacion z = 1/X
Forma Lineal Y = b0 + b1 Z
Modelo Potencial
Modelo Y = b0 X b1
Transformacion T = log Y Z = log X
Forma Lineal T = log b0 + b1 Z
1 Introduccion
Como acabamos de ver los modelos de regresion permiten establecer la relacion entre la
2 Regresion Lineal Simple
covariable X y la respuesta Y de acuerdo a la relacion matematica
Estimacion y prediccion
Bondad de ajuste. Coeficiente R2
Y = f (X) +
Intervalos de confianza
Los modelos de regresion parametrica establecen una forma parametrica para f :
3 Otros modelos parametricos Modelo Lineal: f (x) = a + b x.
Regresion polinomica
Modelo Exponencial: f (x) = a bX
Modelos de linealizables
etc.
4 Regresion No Parametrica
Regresion por Splines
Intervalos de confianza
Los modelos de regresion parametricos son de gran utilidad ya que toda la informacion
> modelo=lm(nox~etanol) # ajuste lineal
se resume en los parametros de modelo, y la interpretacion de este tipos de modelos
> a=summary(modelo)
suele ser muy sencilla.
> a$r.squared #R2
Sin embargo, si la parametrizacion elegida es demasiado rgida, y no ajusta bien a los [1] 0.01049049
datos, entonces las conclusiones obtenidas pueden ser erroneas.
> a$coefficients # coeficientes del modelo
Para ver mas claramente el efecto de una mala especificacion del modelo consideremos Estimate Std. Error t value Pr(>|t|)
de nuevo los datos del fichero etanol.txt. Recordemos que este fichero estan los datos (Intercept) 2.4867089 0.5667850 4.3873937 3.239918e-05
de dos variables en un experimento de gases del motor de un automovil etanol -0.5702952 0.5972587 -0.9548544 3.423276e-01
nox: concentracion de oxido ntrico.
Notese que se obtiene un p-valor para etanol de 0.34 por lo que, bajo este modelo, se
etanol: valores de etanol.
concluye que no es significativo el efecto de etanol en nox.
Sin embargo esta conclusion es totalmente erronea como se puede ver a simple vista.en
el siguiente grafico.
relacion
Y = f (X) +
1
no sigue una forma parametrica fija, sino que depende de una funcion totalmente
0.6 0.7 0.8 0.9 1.0 1.1 1.2 desconocida a la que unicamente se le exige un cierto grado de suavidad.
etanol
Indice
Para la estimacion de la curva de regresion f sera necesario la utilizacion de algun
metodo de suavizacion. Entre otros, se pueden destacar:
1 Introduccion
suavizadores kernel (Nadaraya,1964; Watson,1964),
suavizadores polinomicos locales,
2 Regresion Lineal Simple
cubic smoothing splines (Wahba, 1990; Hastie e Tibshirani, 1990), o Estimacion y prediccion
splines de regresion penalizados (Ruppert et al., 2003; Wood, 2006). Bondad de ajuste. Coeficiente R2
Intervalos de confianza
Aqu consideraremos el marco metodologico de la Regresion Spline Penalizada
(P-Splines) desarrollado por Wood (2006) y utilizado en la rutina gam de la librera mgcv 3 Otros modelos parametricos
de R. Regresion polinomica
La regresion por splines 1 consiste en ajustar un polinomio de grado p (normalmente Modelos de linealizables
p = 3), que deben unirse suavemente en cada uno de los nodos interiores.
4 Regresion No Parametrica
Regresion por Splines
Intervalos de confianza
1
de Boor C. A practical guide to splines.Revised Edition. New York: Springer-Verlag,
2001
Modelos de Regresion 103 / 133 Modelos de Regresion 104 / 133
Regresion por Splines
Dependiendo del tipo de bases se obtendran distintos tipos de regresion. Normalmente
se consideran Natural Splines o B-Splines. En los dos tipos de bases sera necesario
En este contexto, la funcion parcial f sigue la siguiente estructura:
seleccionar M nodos interirores C1 , . . . , CM , de forma que
f (x) = a1 B1 (x) + . . . + aK BK (x) Xmin < C1 < . . . < CK <= Xmax
donde
K indica el numero bases, Natural Splines
a1 , . . . , aK son parametros desconocidos, y En la regresion basada en natural splines de orden p se considera la estructura
B1 , . . . , BK son funciones conocidas f (x) = 0 + 1 x + . . . + p xp + 1 (x C1 )p+ + . . . + K (x cK )p+
dependen unicamente de la posicion de los llamados nodos donde 0 , 1 , . . . , p , 1 , . . . , K son coeficientes a determinar, y
(comentaremos mas adelante).
(x t)p si t > x
(x t)p+ =
Por lo tanto, en la regresion spline se reduce un problema de regresion no parametric a 0 si t x
un problema parametrico. es la llamada funcion potencia truncada de orden p.
Unicamente sera necesario estimar los coeficientes a1 , . . . , aK ajustando un
modelo de regresion lineal.
Splines en R
Las funcion ns() de la librera splines de R calculan las bases de funciones para los
f (x) = a0 B0 (x) + . . . + ap Bp (x) + ap+1 Bp+1 (x) + . . . + ap+M Bp+M (x) splines naturales.
donde las funciones
Configuracion por defecto
B0 (x) = 1, B1 (x) = x, . . . , Bp (x) = xp
Bp+1 (x) = (x C1 )+ , . . . , Bp+M (x) = (x CM )+ los nodos son tomados como los cuantiles:
forman una base de funciones polinomicas del spline. Si hay 1 solo nodo este sera la mediana.
Si hay 2 nodos entonces estos son los percentiles 33 % y 66 %.
De este modo, un modelo de regresion no parametrico se convierte en un modelos de Si hay 3 nodos nodos estos son los cuartiles, y as sucesivamente.
regresion parametrica, y los coeficientes a0 , . . . , p+M +1 son obtenidos utilizando
mnimos cuadrados.
el grado de la parte polinomial es tomado como p=3.
22 6
4
22
datos=read.table("c:/datos/etanol.txt",header=T)
5 2 3333
33 33 4444 6
0.6
2
5 111 22 2
etanol=datos$etanol; nox=datos$nox
5 1 11 2 34 4
5 1 1 2
5 1 4
3 4 655
5 3
0.4
21
43 # ordenamos los valores
51 2 1 465
3
5 3
55
2 1 3 2 4
15 56
ii=order(etanol) ;etanol=etanol[ii]; nox=nox[ii]
3 2 4 4
55 2 24 35556
k=6
133
0.2
1 52 24
5 42 55
3 4
base
25 4 2 55 336
nox
1 1
22 555 3 11
44 2 5 6
par(mfcol=c(1,2))
3 11 52 63
2
5
2 55
2
2 35 5555 22 26
3 5 333
2 5 41 15 base=ns(etanol,df=k,intercept=T)
0.0
33 2
233
223132 333
233 45
33333333 444 44 5554
5 51 13
46
46
46 6 61
61
61111111 12
12
12
12
12
12
1213
213
21
2
1 44
4 6
matplot(etanol,base,col=1:6,type=b,cex=1.5,main=N Splines)
44 6
14444 66 4
plot(etanol,nox,main=paste("df=",k),col=1)
0.2
44 6
6
6 lines(etanol,fitted(lm(nox~ns(etanol,df=k))),col=2,lwd=2,lty=1)
1
6
1 6
6
6
0.4
66
6
0.6 0.7 0.8 0.9 1.0 1.1 1.2 0.6 0.7 0.8 0.9 1.0 1.1 1.2
etanol etanol
BSplines df= 6
1.0
1 6
0.8
1
3
1
Las base de natural splines tiende a crear problemas de multicolinealidad, por lo que es 1 555
0.6
44444444 55 5 6
2 333 3
recomendable la utilizacion de otro tipo de bases. 22 222
4
33 4 5
base
3
nox
2 2 33 33 4
1 2 4 4 5
6
2 43 5
2
3 4 3
Una alternativa a los natural splines son los B-splines cuya base de funciones es
0.4
1 32 4 5
2 5
4 4 6
2 3 2
3 55 4 6
3
calculada recursivamente (vease de Boor, 2001). 2 1 3
1 24
4
3
3 5 4
3 2 35 4
0.2
2 42 3
5 4
4
31 533 6
33 1144 22
225 3 6 4
configuracion por defecto de esta funcion es la misma que la utilizada para la funcion 233
3 44444111
15
52 633 4
3
0.0
55
3
66
445
655
5
44
466
644666
466
55555
56
656
56
5651
56616
56
5 55
165
16 5
55
1 66
6
1115
15
666
16
16
1 2
62
162
162
162
162
16
16
16
216
2216
16
212
2 12
123
123
13
1213
213
2214
13
215
3
23
1
2
4
ns(). 0.6 0.7 0.8 0.9 1.0 1.1 1.2 0.6 0.7 0.8 0.9 1.0 1.1 1.2
etanol etanol
k=6
base=bs(etanol,df=k,intercept=T)
matplot(etanol,base,col=1:6,type=b,cex=1.5,main=B-Splines)
plot(etanol,nox,main=paste("df=",k),col=1)
lines(etanol,fitted(lm(nox~bs(etanol,df=k))),col=2,lwd=2,lty=1)
plot(etanol,nox,main="",col=1)
lines(etanol,fitted(lm(nox~ns(etanol,df=k))),col=blue,
4 NSplines
lwd=2,lty=1)
BSplines
lines(etanol,fitted(lm(nox~bs(etanol,df=k))),col=red,
lwd=2,lty=2)
3
legend(.5,4,c(N-Splines,B-Splines),
nox
box.lty=0,lty=c(1,2),lwd=c(1.5,1.5)
2
,col=c(blue,red),merge=FALSE)
1
Como se puede ver en el grafico, las estimaciones obtenidas con los dos metodos son
muy similares.
Modelos de Regresion 113 / 133 Modelos de Regresion 114 / 133
3
df=6
df=20
Numero de nodos ??
nox
nodos: c1=0.6, c2=0.7, c3=1.2 nodos: c1=0.7, c2=0.9, c3=1.0 nodos: c1=0.9, c2=1.1, c3=1.2
4
plot(etanol,nox,main="",col=1)
lines(etanol,fitted(lm(nox~ns(etanol,df=1))),col=black,lwd=1,lty=1)
lines(etanol,fitted(lm(nox~ns(etanol,df=3))),col=blue,lwd=1,lty=1)
lines(etanol,fitted(lm(nox~bs(etanol,df=6))),col=red,lwd=2,lty=1)
lines(etanol,fitted(lm(nox~bs(etanol,df=20))),col=brown,lwd=3,lty=1)
nox
nox
nox
legend(.5,4,c(df=1,df=3,df=6,df=20),
box.lty=0,lty=c(1,1,1,1),lwd=c(1,1,2,3),
col=c(black,blue,red,brown),merge=FALSE,cex=2)
0.6 0.8 1.0 1.2 0.6 0.8 1.0 1.2 0.6 0.8 1.0 1.2
etanol etanol etanol
Penalizacion
nodos=c(0.6,0.7,1.2)
plot(etanol,nox,main="nodos: c1=0.6, c2=0.7, c3=1.2",col=1)
lines(etanol,fitted(lm(nox~bs(etanol, Una forma de evitar los problemas derivados de la seleccion del numero de nodos y de la
knots=nodos))),col=4,lwd=2,lty=1) ubicacion de los mismos consiste en:
abline(v=nodos,lty=2,col=red,lwd=2)
Aproximar la funcion f utilizando un numero grande de nodos que permitan
nodos=c(0.7,0.9,1.1) obtener una funcion estimada flexible.
plot(etanol,nox,main="nodos: c1=0.7, c2=0.9, c3=1.0",col=1) Penalizar la alta variabilidad de f con un termino de penalizacion que depende de
lines(etanol,fitted(lm(nox~bs(etanol, los coeficientes .
knots=nodos))),col=4,lwd=2,lty=1)
abline(v=nodos,lty=2,col=red,lwd=2)
Los P-Splines utilizan el siguiente termino de penalizacion relacionado
nodos=c(0.9,1.1,1.2) con la curvatura de la curva obtenenida:
plot(etanol,nox,main="nodos: c1=0.9, c2=1.1, c3=1.2",col=1) Z
lines(etanol,fitted(lm(nox~bs(etanol,
pen(f) = (f 00 (x))2 dx
knots=nodos))),col=4,lwd=2,lty=1)
abline(v=nodos,lty=2,col=red,lwd=2)
penalizada por los valores de (parametro de suavizado): Por tanto, deber ser aplicado algun criterio automatico, basado en la minimizacion de un
criterio de error, para equilibrar el sesgo frente a la varianza.
Valores de , hacen que df 0, y llevan a estimar f como una
La rutina gam en la librera mgcv elige de forma automatica los grado de libertad usando
recta.
En cambio valores de =0 , hacen que df = , dan lugar a una el creiterio de validacion cruzada generalizada (GCV), o
estimacion no penalizada y por lo tanto a la interpolacion de los datos. el criterio Un-Biased Risk Estimator (UBRE )
Para mas informacion sobre estos criterios vease la referencia
Wood, Simon. Generalized additive models: an introduction with R (2006). CRC
Statistics. Reino Unido.
Modelos de Regresion 121 / 133 Modelos de Regresion 122 / 133
Estimacion y prediccion
Bondad de ajuste. Coeficiente R2
3
Intervalos de confianza
nox
3 Otros modelos parametricos
Regresion polinomica
1
Modelos de linealizables
Ejemplo: Etanol
plot(etanol,nox,main="",col=1)
modelo=gam(nox~s(etanol))
3
muhat=predict.gam(modelo,type=response,se=T)
nox
lines(etanol,muhat$fit,lwd=2,col=red)
2
lines(etanol,muhat$fit-1.96*muhat$se.fit,lwd=2,col=red,lty=2)
lines(etanol,muhat$fit+1.96*muhat$se.fit,lwd=2,col=red,lty=2)
1
50
times: tiempo (en ms) transcurrido despues del impacto.
accel: aceleracion de la cabeza del motorista
aceleracion
50
50
100
0
accel
50
10 20 30 40 50
100
tiempo
plot(tiempo,aceleracion)
aceleracion
lines(tiempo,fitted(gam(aceleracion~s(tiempo))),col=red,lwd=2,lty=1)
0
ii=order(tiempo) # elementos ordenados
50
tiempo=tiempo[ii]
aceleracion=aceleracion[ii]
100
plot(tiempo,aceleracion,main="",col=1)
modelo=gam(aceleracion~s(tiempo))
muhat=predict.gam(modelo,type=response,se=T)
10 20 30 40 50 lines(tiempo,muhat$fit,lwd=2,col=red)
lines(tiempo,muhat$fit-1.96*muhat$se.fit,lwd=2,col=red,lty=2)
tiempo lines(tiempo,muhat$fit+1.96*muhat$se.fit,lwd=2,col=red,lty=2)