Introduction to R by David Lucy Cap 12-16

55
SURKY BONILLA,LUIS PONS ,JUAN FERREIRA

Transcript of Introduction to R by David Lucy Cap 12-16

Page 1: Introduction to R by David Lucy Cap 12-16

SURKY BONILLA,LUIS PONS ,JUAN

FERREIRA

Page 2: Introduction to R by David Lucy Cap 12-16
Page 3: Introduction to R by David Lucy Cap 12-16

R es un lenguaje muy usado para crear

modelos matematicos en base a data.

El comando lm ( en r) es usado para crear

modelos lineales. Tambien para buscar

regresion lineal, varianza y covarianza.

Provee ademas muchos recursos para

normalizar dispersion de valores en graficas

e identificar relaciones y patrones.

Page 4: Introduction to R by David Lucy Cap 12-16

Los pasos de un modelo lineal son:

1. Escribir el modelo matemático con todas sus

hipótesis.

2. Estimación de los parámetros del modelo.

3. Inferencias sobre los parámetros.

4. Diagnóstico del modelo.

Page 5: Introduction to R by David Lucy Cap 12-16

La función que realiza los modelos lineales

en R es lm "lineal model".

Este objeto puede ser utilizado para

cualquier función para realizar un análisis de

la varianza (medida de la dispersion) , un

modelo autoregresivo etc…

La función lm tiene la siguiente sintaxis:

lm(formula, data, subset, weights, method =

"qr", model = TRUE, x = FALSE, y = FALSE, qr

= TRUE, contrasts = NULL, ...)

Page 6: Introduction to R by David Lucy Cap 12-16

En “formula” ponemos el modelo expresado:

y ~ x1+ x2 + ...+ xn

En “data” especificamos el data frame que

contiene las variables del modelo en el caso

de que trabajemos con un data frame.

En “subset” especificamos un subconjunto de

observaciones para validar posteriormente el

modelo.

Page 7: Introduction to R by David Lucy Cap 12-16

En “weights” especificamos los pesos, es muy

útil si buscamos mínimos cuadrados

ponderados.

Con “method” especificamos el método. Si

no entramos ninguno , sólo es posible

obtener el modelo por mínimos cuadrados

ponderados.

Page 8: Introduction to R by David Lucy Cap 12-16

En “model” con “TRUE” decimos a R que ha

de guardarse en el objeto, la matriz del

modelo, el “frame”, etc.. En “contrast”

pode-mos especificar objetos con los que

realizar contrastes sobre los parámetros.

Tenemos múltiples opciones, para ver cuales

son empleamos la ayuda (?lm) y asi vemos la

documentación R sobre el procedimiento lm.

Page 9: Introduction to R by David Lucy Cap 12-16

El tiempo que tarda un sistema informático

en red en ejecutar una instrucción depende

del número de usuarios conectados a él. Si

no hay usuarios el tiempo es 0. Tenemos los

siguientes datos:

Page 10: Introduction to R by David Lucy Cap 12-16

Nº usuarios Tiempo de ejecución

10 1

15 1.2

20 2

20 2.1

25 2.2

30 2

30 1.9

Page 11: Introduction to R by David Lucy Cap 12-16

Se pretende ajustar un modelo lineal sin

término independiente, construir la tabla

ANOVA y comparar el modelo con el de

término independiente. Veamos las

instrucciones en R:

> tiempo <- c(1,1.2,2,2.1,2.2,2,1.9)

> usuarios <- c(10,15,20,20,25,30,30)

> ejemplo <-lm(tiempo~usuarios-1)

# El modelo se crea en un objeto.

Page 12: Introduction to R by David Lucy Cap 12-16

> summary (ejemplo)

Call: lm (formula = tiempo ~ usuarios - 1)

Residuals:

Min 1Q Median 3Q Max

-0.4831 -0.1873 0.2056 0 .3127 0.5113

Coefficients:

Estimate Std. Error t value Pr(>|t|)

usuarios 0.079437 0.006496 12.23 1.82e-05 ***

---

Signif. codes: 0 „***‟ 0.001 „**‟ 0.01 „*‟ 0.05 „.‟ 0.1 „ ‟ 1

Residual standard error: 0.3871 on 6 degrees of freedom

Multiple R-squared: 0.9614, Adjusted R-squared: 0.955

F-statistic: 149.5 on 1 and 6 DF, p-value: 1.821e-05

Page 13: Introduction to R by David Lucy Cap 12-16

En este caso el modelo resultante sería:

tiempo de ejecución=0.0794 usuarios,

también vemos que es un excelente modelo

lineal ya que el Multiple R-Squared: 0.9614

(coeficiente de determinación ajustado) es

bastante próximo a 1 (el mejor valor

posible).

Para construir la tabla del análisis de la

varianza emplearemos „anova‟ como objeto.

> an. varianza<-anova (ejemplo)

> summary (an. varianza)

Page 14: Introduction to R by David Lucy Cap 12-16

Df Sum Sq Mean Sq F value Pr(>F)

Min.:1.00 Min.:0.8989 Min.:0.1498 Min.:149.5 Min. :1.821e-

05

1st Qu.:2.25 1st Qu.: 6.2744 1st Qu.: 5.7126 1st Qu.:149.5

1st Qu.:1.821e-05

Median :3.50 Median :11.6500 Median :11.2755 Median

:149.5 Median :1.821e-05

Mean :3.50 Mean :11.6500 Mean :11.2755 Mean :149.5

Mean :1.821e-05

3rd Qu.:4.75 3rd Qu.:17.0256 3rd Qu.:16.8383 3rd

Qu.:149.5 3rd Qu.:1.821e-05

Max. :6.00 Max. :22.4011 Max. :22.4011 Max. :149.5 Max.

:1.821e-05

NA's : 1.0 NA's :1.000e+00

Page 15: Introduction to R by David Lucy Cap 12-16
Page 16: Introduction to R by David Lucy Cap 12-16

Los modelos lineales (regresion, ANOVA,

ANCOVA), se basan en los siguientes

supuestos:

1. Los errores se distribuyen normalmente.

2. La varianza es constante.

3. La variable respuesta se relaciona

linealmente con la(s) variable(s)

independiente(s).

Page 17: Introduction to R by David Lucy Cap 12-16

Aunque existen diferentes tipos de

distribuciones, en general, las exponenciales

son las mas comunes y segun la aplicacion.

Asi por ejemplo la distribucion exponencial

ha ganado mucha importancia en

aplicaciones en diversas ciencias y

disciplinas, en particular en actuaria,

seguros de perdida , donde se hacen mas

realistas.

Page 18: Introduction to R by David Lucy Cap 12-16

Poisson, muy útiles para conteos (p.e.

numero de muertos por accidentes de

trafico; numero de dias con heladas en el

mes de enero; numero de colonias de

bacterias en una placa de agar; numero de

especies de plantas leñosas en un cuadrado

de muestreo de 10 m2).

Page 19: Introduction to R by David Lucy Cap 12-16

Binomiales, de gran utilidad para

proporciones y datos de presencia/ausencia

(p.e. tasas de mortalidad; tasas de infección;

porcentaje de parasitismo; porcentaje de

éxito reproductivo; presencia o ausencia de

una determinada especie.

Page 20: Introduction to R by David Lucy Cap 12-16

Muy útiles con datos que muestran un

coeficiente de variación constante, esto es,

en donde la varianza aumenta según

aumenta la media de la muestra de manera

constante (p.e. numero de presas comidas

por un predador en función del numero de

presas disponibles).

Page 21: Introduction to R by David Lucy Cap 12-16

glm (formula, family = gaussian, data,

weights, subset, na.action, start = NULL,

etastart, mustart, offset, control = list(...),

model = TRUE, method = "glm.fit", x = FALSE,

y = TRUE, contrasts = NULL, ...)

Formula: descripcion del modelo ; Family :

tipo de funcion, binomial ,gausiana etc. ;

cada subcomando permite mas detalle, segun

las necesidades . ( ver R)

Page 22: Introduction to R by David Lucy Cap 12-16

> library (MASS)

> data (menarche) ( primer periodo )

> head (menarche)

Age Total Menarche

1 9.21 376 0

2 10.21 200 0

3 10.58 93 0

4 10.83 120 2

5 11.08 90 2

6 11.33 88 5

Page 23: Introduction to R by David Lucy Cap 12-16

Para modelar estos datos usando glm convertimoslos datos en una matriz de numeros de quienes hanalcanzado la menarquia y quienes no.

> yes <- menarche $ Menarche

> no <- menarche Total - menarche$Menarche

> y <- c bind(yes, no)

> head(y)

yes no

[1,] 0 376

[2,] 0 200

[3,] 0 93

[4,] 2 118

[5,] 2 88

[6,] 5 83

Page 24: Introduction to R by David Lucy Cap 12-16

Usando este comando en R

> mod.6 <- glm (y menarche$Age, family=

binomial(link="logit")) donde se puede ver

que la respuesta es binaria. Donde la

funcion “logit” su uso tipico es en casos 1,0

; si ,no; vivo,muerto; continuo,discreto,etc.

lineariza el modelo y permite una mejor

interpretacion ; recordemos a mayor

dispersion de los datos, usualmente es mu-

cho mas dificil ponerlos en una ecuacion,

que podamos utilizar para predicciones etc.

Page 25: Introduction to R by David Lucy Cap 12-16

Call: glm(formula = y 1 + menarche$Age, family = binomial(link = "logit"))

Deviance Residuals:

Min 1Q Median 3Q Max

-2.0363 -0.9953 -0.4900 0.7780 1.3675

Coefficients:

Estimate Std. Error z value Pr(>|z|)

(Intercept) -21.22639 0.77068 -27.54 <2e-16 ***

Menarche $ Age 1.63197 0.05895 27.68 <2e-16 ***

---

Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 3693.884 on 24 degrees of freedom

Residual deviance: 26.703 on 23 degrees of freedom

AIC: 114.76

Page 26: Introduction to R by David Lucy Cap 12-16

> anova(mod.6, test="Chisq")

Analysis of Deviance Table

Model: binomial, link: logit

Response: y

Terms added sequentially (first to last)

Df Deviance Resid. Df Resid. Dev P(>|Chi|)

NULL 24 3693.9

menarche$Age 1 3667.2 23 26.7 0.0

which in this case is 26.7, and is still highly

significant.

Page 27: Introduction to R by David Lucy Cap 12-16

En muchas ocasiones, sin embargo,

encontramos con que uno o varios de estos

supuestos no se cumplen. Estos problemas

se pueden llegar a solucionar mediante la

transformación de la variable respuesta (por

ejemplo tomando logaritmos).

Sin embargo estas transformaciones no

siempre consiguen corregir la falta de

normalidad, la heterocedasticidad (varianza

no constante) o la no linealidad de nuestros

datos.

Page 28: Introduction to R by David Lucy Cap 12-16

Muchas veces es difícil interpretar los resultados

obtenidos y a veces se complica aun mas cuando

utilizamos otro tipo de transformaciones, como

las exponenciales, las potencias, etc..

Una alternativa a la transformación de la

variable respuesta y a la falta de normalidad es

el uso de los modelos lineales generalizados.

GLM son una extensión de los modelos lineales

que permiten utilizar distribuciones no normales

de los errores (Binomiales, Poisson, Gamma,

etc.) y varianzas no constantes.

Page 29: Introduction to R by David Lucy Cap 12-16

Específicamente, podemos considerar utilizar

GLM cuando la variable respuesta es:

un conteo de casos (p.e. abundancia de una

especie);

un conteo de casos expresados como

proporciones (p.e. porcentaje de plantas

muertas en un experimento de vivero);

una respuesta binaria (p.e. vivo o muerto,

infectado o no infectado, etc.)

Area de seguros en general, perdida y

desastres.

Page 30: Introduction to R by David Lucy Cap 12-16
Page 31: Introduction to R by David Lucy Cap 12-16

R es muy util para analizar data sobre

supervivencia ; los datos se convierten en

formato “data frame” primero ; luego se

pueden usar comandos para hacer

inferencias sobre ratas de eventos (EVENT

RATES).

En R usualmente se pueden ademas crear

funciones especificas, o caracteristicas

adicionales que nos facilite analizar

cualquier “data frame”. La biblioteca de R

,como es “open source” crece cada vez mas.

Page 32: Introduction to R by David Lucy Cap 12-16

El análisis formal y detallado de las

curvas de sobrevivencia (“análisis de

sobrevivencia”) trata del estudio de la

distribución de los tiempos de vida.

Usualmente se aplica a poblaciones

humanas pero puede ser igualmente

utilizado con cualquier población donde

se sigan los individuos, uno a uno, hasta la

ocurrencia de un evento (usualmente la

muerte).

Page 33: Introduction to R by David Lucy Cap 12-16

También puede usarse con procesos,

fenomenos ,maquinarias o cualquier caso en

donde la respuesta individual en el tiempo

sea binaria : ocurre – no ocurre; 1,0 ; si,no;

Mas aun la funcion survreg() ,puede ser

usada para analizar ,distribuciones

parametricas incluyendo, Weibull,

exponencial, lognormal, and loglogistic

distribuciones. Un listado mas completo

puedes ser encontrado bajo

survreg.distributions.

Page 34: Introduction to R by David Lucy Cap 12-16

En general, los análisis de sobrevivienciapresentan las siguientes características:

1. Los tiempos (de respuesta) no estánusualmente distribuidos normalmente.

2. Usualmente tampoco se puede esperar aque todos los individuos de una poblaciónproduzcan “el evento” que se está estudiando.Por ejemplo, en pacientes humanos que están enun protocolo experimental de drogas específicas,no todos de ellos continúan con el protocolo oalgunos de ellos abandonan antes de que finaliceel experimento.

Page 35: Introduction to R by David Lucy Cap 12-16

Supongamos que T denota el tiempo de vida deuna variable aleatoria. Este tomará valores entre(0, ∞) y su distribución continua puede serexpresada por una función de distribuciónacumulada F con una función de densidad f.

Para describir los tiempos de vida es usualtrabajar con las siguientes funciones:

Función de sobrevivencia, que es la probabilidadde que un individuo esté vivo (o sin presentar elevento) en un tiempo dado:

S(t) = 1 - F (t) = P(T > t)

Page 36: Introduction to R by David Lucy Cap 12-16
Page 37: Introduction to R by David Lucy Cap 12-16

Y la función acumulada de riesgo, que define la

probabilidad acumulada de que el sujeto

presente el evento en el tiempo t considerando

que ha estado libre de el en los tiempos

anteriores:

H (t) = ∫ h(s) ds donde la integral se calcula

entre 0 y s.

Todas ellas están relacionadas de la forma:

h(t) = f (t)/S(t) , H (t) =- log S (t)

Page 38: Introduction to R by David Lucy Cap 12-16

Ahora bien, es necesario considerar los individuos que no alcanzan el evento durante el tiempo del análisis (“censored” en inglés).

El método mas comúnmente utilizado es el de Kaplan-Meier, donde la

función de sobreviviencia S(t) se estima mediante la fórmula:

S (t) = r(ti ) – di / r(ti)

donde r(ti) es el número de casos vivos (que no han presentado el

evento), es decir el número de individuos “a riesgo” y di el número

de muertos (eventos) ocurridos en el intervalo Ii= [ti, ti+1).

La función de riesgo es estimada por:

H (t) = d j / r(t j )

Page 39: Introduction to R by David Lucy Cap 12-16

Aqui analizaremos un Data Base de las

muertes de un cementerio , para obtener

diversos resultados que nos ayuden a ilustrar

los usos de algunas funciones de R.

Lo mas facil es tomar la data y llevarla a

Excel para ir creando un “data frame ” y

facilitar su interface con R via la funcion

.csv.

Es importante crear columnas con nombres

sobre ellas que faciliten manipularlas en R.

Page 40: Introduction to R by David Lucy Cap 12-16

Importaremos la data via excel usando :

Tumbas <- read.csv (file=”todos_all.csv”,

header=TRUE)

Luego aplicamos la funcion “summary” para

obtener algunos datos iniciales.

Note que se han construido 6 columnas con

nacimiento (year) ,muerte(year) ,

cementerio (1 o 2) , sexo, edad, status.

Page 41: Introduction to R by David Lucy Cap 12-16
Page 42: Introduction to R by David Lucy Cap 12-16

El paso siguiente consiste en importar los

datos a R . Para ello y suponiendo que estos

se encuentran registrados en Excel, lo mas

fácil es grabar la matriz de datos mediante la

opción (en Excel) “grabar como archivo

separado por comas (csv)”. El archivo de

datos debe estar ordenado con las variables

en las columnas y los casos en las filas. El

nombre de las variables debe estar en la

primera fila y deben ser claros .

Page 43: Introduction to R by David Lucy Cap 12-16

Este archivo contiene las siguientes

variables:

Cem : cementerio. 1 = Sur, 2 = Este ; Sexo : 1

= masculino, 2 = femenino Nacimiento : año

de nacimiento Muerte : año de muerte

Edad : Edad de muerte

Status : 1 = muerto, 2 = vivo (¿Cuántos casos

vivos hay en estos datos?)

Page 44: Introduction to R by David Lucy Cap 12-16

El archivo csv puede ser leído en R

utilizando la función read.csv(). Por

ejemplo

suponiendo que el archivo de datos se llama

“todos_all.csv” y queremos ingresarlo a una

tabla de datos (“data frame”) llamado

“tumbas”, debemos ejecutar el siguiente

comando:

Page 45: Introduction to R by David Lucy Cap 12-16

Tumbas <- read.csv(file=”todos_all.csv”,

header=TRUE)

La opción header=TRUE indica que los

nombres de las variables se encuentran en la

primera línea.

Page 46: Introduction to R by David Lucy Cap 12-16

> summary(tumbas)

cem sexo nacimiento muerte edad

Min. :1.000 Min. :1.000 Min. :1806 Min. :1868 Min. : 0.00

1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1907 1st Qu.:1979 1st Qu.: 50.00

Median :2.000 Median :1.000 Median :1920 Median :1990 Median : 69.00

Mean :1.530 Mean :1.444 Mean :1922 Mean :1985 Mean : 62.54

3rd Qu.:2.000 3rd Qu.:2.000 3rd Qu.:1936 3rd Qu.:1997 3rd Qu.: 79.00

Max. :2.000 Max. :2.000 Max. :2004 Max. :2006 Max. :101.00

status

Min. :1

1st Qu.:1

Median :1

Mean :1

3rd Qu.:1

Max. :1

Page 47: Introduction to R by David Lucy Cap 12-16

La función “summary” aplicada a una tabla

de datos nos muestra, para cada variable, el

valor mínimo, máximo, la media, la mediana

y el primer y tercer cuartil. Si queremos ver

la tabla por cementerio, por ejemplo,

podemos utilizar un subconjunto de datos

mediante la función

summary(tumbas[cem==1]), en este caso

para el Cementerio del Sur solamente.

Page 48: Introduction to R by David Lucy Cap 12-16

Histogram of edad

40

0

300

Fre

que

ncy

200

10

0

0

0 20 40 60 80 100

edad

Page 49: Introduction to R by David Lucy Cap 12-16

Las rutinas de sobrevivencia funcionan

con objetos de la clase Surv, que es una

estructura de datos que combina el tiempo

y los eventos.

Esta función toma dos argumentos: el

tiempo y el código que indica el evento.

Así:

> attach(tumbas)

> tumbas.surv <- Surv(edad, status)

Page 50: Introduction to R by David Lucy Cap 12-16

Asi se crea un objeto de sobrevivencia contodos los datos del archivo, utilizando lavariable edad como indicador del tiempo ystatus como indicador del evento. NOTA: elprograma asume que el evento ocurre si lavariable que lo define toma valor de 1. En casodiferente, este valor debe ser indicadoexplícitamente (ejemplo Surv(edad,status==3), el código 3 indica que lapersona murió). Usaremos Kaplan –Mier si haydatos perdidos.

Page 51: Introduction to R by David Lucy Cap 12-16

Si hay datos perdidos se puede usar K-M para la función de sobrevivencia y se logra con función survfit().

> survfit(tumbas.surv)

Call: survfit(formula = tumbas.surv)

n events median 0.95LCL 0.95UCL

1675 1675 69 67 70

Podemos así identificar el tiempo mediano de sobrevivencia y los intervalos de confianza de 95% para este valor. En este caso y como todos los individuos presentaron el evento, la mediana de la sobrevivencia coincide con la mediana de tiempo de vida.

Page 52: Introduction to R by David Lucy Cap 12-16

> summary(surv.all, cedad)

Call: survfit(formula= tumbas.surv)

time n.risk n.event survival std.err lower 95% CI upper 95% CI

0 1675 26 0.98448 0.00302 0.978575 0.99042

5 1625 26 0.96896 0.00424 0.960685 0.97730

10 1618 9 0.96358 0.00458 0.954653 0.97260

15 1599 23 0.94985 0.00533 0.939456 0.96036

20 1569 26 0.93433 0.00605 0.922541 0.94627

30 1469 100 0.87463 0.00809 0.858912 0.89063

40 1371 101 0.81433 0.00950 0.795918 0.83316

50 1269 109 0.74925 0.01059 0.728781 0.77030

60 1102 183 0.64000 0.01173 0.617421 0.66340

70 809 305 0.45791 0.01217 0.434662 0.48240

80 411 388 0.22627 0.01022 0.207093 0.24722

90 112 289 0.05373 0.00551 0.043949 0.06569

100 6 86 0.00239 0.00119 0.000897 0.00636

Page 53: Introduction to R by David Lucy Cap 12-16

La tabla presenta los valores de la función de

sobrevivencia para los tiempo especificados.

Así, la probabilidad de que un individuo se

encuentre libre de evento (vivo) a los 5 años

es de 0.96996 y para los 80 años de 0.22627.

Page 54: Introduction to R by David Lucy Cap 12-16

R es un lenguaje gratuito, muy flexible que

permite construir modelos y manipular data

de diversas maneras y tipos .

En el caso de la ACTUARIA su uso se ha

extendido en campos como :

la teoria de la utilidad ; los seguros; los

modelos individuales y colectivos; teoria

del riesgo; teoria de la ruina; premiums

(costo de polizas) ; modelos generalizados

etc. ,ecologia,ciencias,otras disciplinas etc.

Page 55: Introduction to R by David Lucy Cap 12-16

http://127.0.0.1:26705/library/stats/html/l

m.html : Fitting Linear Models.

Modern Actuarial Risk Theory , J. Dhaene, S.

Vanduffel, MJ Goovaerts, R. Kaas, D. Vyncke

– 2005.

http://www.maths.lancs.ac.uk/~lucy/course

s/CFAS404/notes/mathematics-for-

statistics.pdf.

http://www.maths.lancs.ac.uk/~lucy/course

s/CFAS422/notes/course-notes-pink.pdf.