+ All Categories
Home > Documents > An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material...

An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material...

Date post: 26-Sep-2018
Category:
Upload: lamnguyet
View: 226 times
Download: 2 times
Share this document with a friend
180
An´alisis de datos con R Guillermo Ayala Gallego 1 4 de febrero de 2010 1 Departamento de Estad´ ıstica e Investigaci´on Operativa. Universidadde Valencia. Gui- [email protected] P´agina personal, P´agina de grupo
Transcript
Page 1: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Analisis de datos con R

Guillermo Ayala Gallego1

4 de febrero de 2010

1Departamento de Estadıstica e Investigacion Operativa. Universidad de Valencia. Gui-

[email protected] Pagina personal, Pagina de grupo

Page 2: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

2

Page 3: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Indice general

1. Probabilidad: lo bueno si . . . 1

1.1. Experimento y probabilidad . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Variable aleatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1. Funcion de distribucion . . . . . . . . . . . . . . . . . . . . . 3

1.2.2. Media y varianza . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.3. Teorema de Bayes . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3. Vectores aleatorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.4. Distribucion normal multivariante . . . . . . . . . . . . . . . . . . . 14

2. Un muy breve repaso a la Estadıstica 1

2.1. Algo de Estadıstica Descriptiva, poco . . . . . . . . . . . . . . . . . 1

2.2. Verosimilitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3. Estimacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.1. Estimacion insesgada de media y varianza . . . . . . . . . . . 10

2.3.2. Estimacion insesgada del vector de medias y la matriz de covarianzas 11

2.4. Estimador maximo verosımil . . . . . . . . . . . . . . . . . . . . . . 13

2.5. Contraste de hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.5.1. Test del cociente de verosimilitudes . . . . . . . . . . . . . . 16

2.5.2. Test de Wald . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5.3. Intervalos de confianza . . . . . . . . . . . . . . . . . . . . . 17

3. Componentes principales 1

4. Regresion 1

4.1. Regresion lineal simple . . . . . . . . . . . . . . . . . . . . . . . . . . 3

4.2. Regresion lineal multiple . . . . . . . . . . . . . . . . . . . . . . . . . 5

4.3. Estimacion de β . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4.4. Algunos casos particulares . . . . . . . . . . . . . . . . . . . . . . . . 7

4.5. Verosimilitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.6. Algunos ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.7. Distribucion muestral de β . . . . . . . . . . . . . . . . . . . . . . . 11

4.8. Bondad de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.9. Valoracion de las hipotesis del modelo . . . . . . . . . . . . . . . . . 13

4.10. Inferencia sobre el modelo . . . . . . . . . . . . . . . . . . . . . . . . 30

4.11. Seleccion de variables . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.11.1. Procedimientos que comparan modelos . . . . . . . . . . . . . 36

4.11.2. Procedimientos basados en criterios . . . . . . . . . . . . . . 39

4.12. Algunos ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3

Page 4: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

5. Analisis cluster 15.1. Disimilaridades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

5.1.1. Disimilaridades entre observaciones . . . . . . . . . . . . . . 35.1.2. Disimilaridades entre grupos de observaciones . . . . . . . . 6

5.2. Cluster jerarquico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65.3. Metodos de particionamiento . . . . . . . . . . . . . . . . . . . . . . 10

5.3.1. Metodo de las k-medias . . . . . . . . . . . . . . . . . . . . . 105.3.2. Particionamiento alrededor de los mediodes . . . . . . . . . . 11

5.4. Silueta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125.5. Algunos ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

6. Analisis discriminante o de como clasificar con muestra de entrenamiento 16.1. Un problema de probabilidad sencillo . . . . . . . . . . . . . . . . . 36.2. Dos poblaciones normales . . . . . . . . . . . . . . . . . . . . . . . . 56.3. Dos normales multivariantes . . . . . . . . . . . . . . . . . . . . . . 66.4. Dos poblaciones normales multivariantes con parametros desconocidos 66.5. Analisis discriminante con mas de dos poblaciones normales . . . . 106.6. Valoracion del procedimiento de clasificacion . . . . . . . . . . . . . 126.7. Variables discriminantes canonicas o discriminantes lineales . . . . . 166.8. Algunos ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

7. Analisis de datos categoricos 17.1. Variables respuesta categoricas . . . . . . . . . . . . . . . . . . . . . 17.2. Inferencia con la distribucion binomial . . . . . . . . . . . . . . . . . 3

7.2.1. Contraste de hipotesis simples . . . . . . . . . . . . . . . . . 47.2.2. Intervalo de confianza . . . . . . . . . . . . . . . . . . . . . . 5

7.3. Inferencia para la multinomial . . . . . . . . . . . . . . . . . . . . . . 67.3.1. Contraste de una multinomial dada . . . . . . . . . . . . . . 7

7.4. Tablas de contingencia . . . . . . . . . . . . . . . . . . . . . . . . . 87.4.1. Tablas de contingencia: distribucion conjunta, distribucion condicionada e independencia 87.4.2. Tipo de muestreo . . . . . . . . . . . . . . . . . . . . . . . . . 117.4.3. Comparacion de dos proporciones . . . . . . . . . . . . . . . 127.4.4. Odds y odds ratio . . . . . . . . . . . . . . . . . . . . . . . . 12

7.5. Asociacion parcial en tablas 2 × 2 estratificadas . . . . . . . . . . . . 147.6. Inferencia en tablas de contingencia . . . . . . . . . . . . . . . . . . 16

7.6.1. Intervalos de confianza para parametros de asociacion . . . . 167.6.2. Contraste de independencia en tablas de doble entrada . . . . 18

7.7. Mas alla del test ji-cuadrado . . . . . . . . . . . . . . . . . . . . . . . 187.7.1. Residuos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

7.8. Test de independencia con muestras pequenas . . . . . . . . . . . . . 197.8.1. Test exacto de Fisher para tablas 2 × 2 . . . . . . . . . . . . 19

7.9. Test exacto de Fisher y alternativa bilateral . . . . . . . . . . . . . . 19

8. Modelos lineales generalizados 18.1. Componentes de un modelo lineal generalizado . . . . . . . . . . . . 1

8.1.1. Modelos logit binomiales para datos binarios . . . . . . . . . 28.1.2. Modelo loglineal de Poisson para conteos . . . . . . . . . . . 28.1.3. Desviacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

8.2. GLM para datos binarios . . . . . . . . . . . . . . . . . . . . . . . . 38.2.1. Funcion link identidad . . . . . . . . . . . . . . . . . . . . . 48.2.2. Ejemplo: Ronquido y enfermedad cardAaca . . . . . . . . . . 4

8.3. GLM para conteos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48.3.1. Apareamiento de cangrejos herradura . . . . . . . . . . . . . 4

8.4. Respuesta ordinal: modelos logit acumulados . . . . . . . . . . . . . 8

4

Page 5: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

8.5. Sobre la interpretacion de los coeficientes β . . . . . . . . . . . . . . 108.6. Verosimilitud de un modelo lineal generalizado . . . . . . . . . . . . 10

9. De como usar R en un tiempo razonable (no facil, no) 119.1. Instalacion y como trabajar con R . . . . . . . . . . . . . . . . . . . 12

9.1.1. R y Windows . . . . . . . . . . . . . . . . . . . . . . . . . . 129.1.2. R y Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

9.2. ¿Como fijar el directorio de trabajo? . . . . . . . . . . . . . . . . . . 139.3. Etiquetas de valor y de variable . . . . . . . . . . . . . . . . . . . . . 13

9.3.1. ¿Como etiquetar una variable? . . . . . . . . . . . . . . . . . 139.4. Elaboracion de un informe a partir del codigo R . . . . . . . . . . . 13

9.4.1. Sweave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139.5. R y Octave/Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

10.Datos 1510.1. scoremaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1510.2. Avispa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1610.3. Datos wbca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5

Page 6: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

6

Page 7: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Prologo

Cada vez hay mas datos. Tenemos mas datos introducidos en ficheros. Y estoes lo peor. Si los datos estuvieran en hojas sueltas y perdidas pues no pasa nada.Se archivan los papeles y los datos no molestan. No, ahora los propios ordenadoreso bien muchas personas accediendo desde distintos lugares, tienen el mal gusto decrear unas bancos de datos cada vez mayores. Cada vez con mas casos y con masvariables. El problema no es conseguir datos. Los tienes a precio de saldo. Te los dansin que los pidas. Si tienes conocidos biologos, medicos, quımicos, psicologos seguroque tienen datos para analizar. Si trabajais en un hospital, tendreis una legion demedicos (y cada vez mas enfermeros) con datos. Todo el mundo tiene datos. A losque tienen carino. Que creen que tienen mucho valor. Pero que no saben que hacercon ellos. En el mejor de los casos algun dibujo estilo pastel (bueno, se le llamadiagrama de sectores pero es un pastel) o histograma. ¡Que Dios nos libre de tantodibujo que solo sirve para gastar papel y tinta!

En estas notas se pretende (solo se pretende) partiendo de unos conocimientosinformaticos que no sean basicos y de unos conocimientos probabilısticos y estadıs-ticos mas bien basicos, llegar a poder hacer algo decente con un banco de datos.

La parte de analisis descriptivo de datos se obvia. Simplemente a lo largo delcurso se va utilizando y recordando. Ya esta bien de perder el tiempo explicandocomo hacer un histograma si luego lo hace un programa.

Este documento contiene unas notas de clase para la asignatura de Analisis deDatos de Ingenierıa Informatica de la Universidad de Valencia. Pretende en cadatema empezar desde un nivel basico de contenidos para llegar al uso de la tecnicacorrespondiente. Es una realidad que el informatico acaba realizando analisis dedatos. Entre otras cosas porque suele ser la persona mas a mano o bien porque ya haprogramado el resto de la aplicacion que tambien incorporar algun tipo de analisismas o menos sencillo. Y es una pena ver como se desaprovecha la informacion.Por ello en estas notas pretendo tratar rapidamente muchos temas y, ademas, quepodamos utilizarlas. Por ello se recurre a R. Por su potencia y por su disponibilidad.Incluso en su propia casa y con una conexion a Internet no demasiado rapida puedeel estudiante instalarse R y cualquier paquete que se necesite. Esto ya es bastantedesde el punto de vista docente. Ademas, cualquier procedimiento estadıstico estaen R. Casi se puede decir, que si no lo esta, no merece la pena de utilizarse.

Se proponen distintos apendices como apoyo a conceptos anteriores necesarios.Se hace un repaso rapido de los conceptos basicos de la Probabilidad en el tema1. Las ideas basicas de la Estadıstica que utilizamos en el resto del curso aparecenen el tema 2. Ambos capıtulos con meros resumenes que no sustituyen el repasode muchos de los conceptos en algunos de los textos que se citan en los capıtuloscorrespondientes.

Estas notas estan orientadas para estudiantes de Ingenierıa Informatica y porello en muchas ocasiones se incluyen definiciones y conceptos basicos que dichoestudiante no tiene. Una introduccion generica a la Probabilidad y la Estadısticaque es adecuado hojear pues cubre los conceptos previos es el libro de texto de [4].

El interes fundamental de estas notas es dar una vision muy amplia sin perder

7

Page 8: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

demasiado tiempo en detalles de cada tecnica. En este sentido se intenta ir directoal grano con lo que eso supone de dificultad anadida. Sin embargo, tiene la com-pensacion de ver como muchos de los conceptos que se estudian son reescritura unode otro.

Sin duda, unas notas como las que siguen solo se pueden hacer utilizando LATEXpara escribir y el programa R [16] 1 para realizar el analisis de los datos. Son dosherramientas imprescindibles que se complementan perfectamente. Un tratamientoestadıstico no acaba con un codigo o con unos dibujos aislados. Acaba con uninforme. Con frecuencia, se dedica mas tiempo a explicar lo que se ha hecho, aescribir el informe, que a la preparacion y tratamiento de los datos, al analisis delos datos. En este sentido, creo que una herramienta como LATEX es fundamentalutilizada con R. En este texto hablamos de analisis de datos. No de LATEX. Sinembargo, uno aprende a veces cosas importantes mientras estudia otras que creeque lo son mas. En este sentido, habra referencias a LATEX.

Finalmente veamos una guıa de lectura del documento. Es muy habitual quesi uno empieza a leer un texto por el principio nunca pase mas alla del primer osegundo capıtulo, y eso con suerte. Las notas estan escritas de manera que se leancada tema por separado sin mas conexiones entre ellos. De modo que si quieres unpequeno repaso de Probabilidad consulta el tema 1. Si patinas un poco en lo basicode la Estadıstica pues entonces hay que leer el tema 2. Son los unicos temas decaracter basico. Los demas van al grano. En particular si te interesa como reducirla dimension del banco de datos lee el tema 3. Si el problema que te quita el suenoes como dadas unas variables sobre un individuo clasificarlo en uno de g posiblesgrupos conocidos a priori y de los cuales tienes ejemplos entonces no lo dudes y lee eltema 6. Si tienes datos y no saben si se disponen formando grupos y ni tan siquieradel numero de grupos que tienes entonces has de acudir sin remision al tema 5.Finalmente en los temas 4, 7 y 8 viene la artillerıa pesada. Como todos sabemos losmodelos lineales son el corazon de la Estadıstica, sin ellos, otras tecnicas de analisisde datos se la hubieran ventilado. Los modelos lineales es un esfuerzo colectivo que haconstruido una teorıa redonda, util, facil de aprender y aplicar. Parece que casi todoesta previsto y bien resuelto. Los modelos lineales generalizados surgen de la envidiaque todo lo corroe. Cuando la variable respuesta, en lugar de ser continua, comoen los modelos lineales, es una respuesta binaria, o multinomial, o bien un conteo.¿Que hacer? La teorıa de modelos lineales no se puede aplicar ni con calzadores.Sin embargo, con unos cuantos cambios tecnicamente simples surgen unos modelosprobabilısticos para analizar estos datos que son absolutamente preciosos.

Un detalle practico de enorme interes. Para programar con R en el sistema opera-tiva Windows lo mas comodo es utilizar RWinEdt ([11]) mientras que si trabajamosen Linux la opcion mas comoda es utilizar emacs con el paquete ESS. Se puedenencontrar detalles adicionales R.

R es libre. ¿Esto significa que es malo? ¿Tiene pocas funciones? ¿Lo que tieneno es de fiar? Hay una idea muy extendida de que el precio de las cosas esta ınti-mamente relacionado con la calidad. No se si en general es cierto. En el caso de Rno lo es. Algunos artıculos de prensa que apoyan el comentario son NYT.06.01.09,NYT.07.01.09, The New York Times, 16 de febrero de 2009.

Tambien podeis encontrar algunas empresas que, basandose en R, desarrollanproductos comerciales como Revolution Computing.

1La primera leccion sobre R es como citar el programa. En la lınea de comandos escribimoscitation y nos devuelve la referencia bibliografica. Del mismo modo lo podemos hacer si utilizamosotro paquete. Por ejemplo tecleando citation(“cluster”) nos indica como citar el paquete cluster

que utilizamos en el tema 5.

8

Page 9: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 1

Probabilidad: lo bueno si . . .

Empezamos por donde hay que empezar. Con la Probabilidad. Temida, odiada.Despreciada porque habla de juegos. Por encima de todo, util, de una utilidadextrana. Da verguenza hablar de Estadıstica sin citar algo de Probabilidad. 1 Yno lo vamos a hacer. Vamos a cumplir con la papeleta. En cualquier caso, si note manejas bien con los conceptos basicos probabilısticos (variable aleatoria, vectoraleatorio, distribucion conjunta y marginal, . . .) hay que leer algun texto. Uno muybueno, pero no facil de encontrar, es [15].

1.1. Experimento y probabilidad

Dadas un conjunto de condiciones, un experimento, no siempre podemos predecirexactamente lo que va a ocurrir. La Probabilidad es la disciplina matematica queestudia estos experimentos.

En primer lugar determinamos el conjunto de posibles resultados que se puedeproducir en la experiencia, es el espacio muestral, Ω. Los posibles subconjuntosde A ⊂ Ω son los sucesos aleatorios y la probabilidad no nos dice si cada sucesosi va a producir o no sino que se limita a cuantificar para cada experimento lamayor o menor certidumbre que tenemos en la ocurrencia de A antes de realizar laexperiencia. P (A) es como se suele denotar habitualmente la probabilidad del sucesoA. Obviamente cada suceso tiene asignada una probabilidad. Han de darse unascondiciones de consistencia mınimas que han de verificar las distintas probabilidadesde los sucesos aleatorios. Son las siguientes

Definition 1 (Medida de probabilidad) P funcion de conjunto definida sobrelos sucesos es una medida de probabilidad si:

1. (No negativa) P (A) ≥ 0 para todo A ⊂ Ω.

2. (La probabilidad del espacio muestral es uno) P (Ω) = 1.

3. (Numerablemente aditiva o σ aditiva) Si Ann≥1 es una sucesion de sucesosdisjuntos entonces

P (∪n≥1An) =∑

n≥1

P (An).

1De hecho, hay una teorıa muy extendida que dice que podemos saber Estadıstica sin ningunconocimiento de Probabilidad. Esta creencia se considera un nuevo tipo de enfermedad mental. Sibien en una version leve de dicha enfermedad.

1

Page 10: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Ejemplo 1 Si el espacio muestral es finito y consideramos que todos los elementosque lo componen son equiprobables entonces la probabilidad de un suceso A vendrıadada como

P (A) =#(A)

#(Ω)(1.1)

siendo # el cardinal del conjunto. Se comprueba con facilidad que es una medidade probabilidad que verifica la axiomatica previa. Es el modelo que corresponde alconcepto intuitivo de resultados equiprobables. Practicamente todos los juegos deazar siguen un modelo como este donde varıan los resultados posibles.

Nota de R 1 (notaR544) Consideramos un conjunto finito y numeramos sus ele-mentos de 1 a n. Nuestro espacio muestral es 1, . . . , n. Veamos como extraer kelementos (con k ≤ n) sin reemplazamiento de este conjunto. La funcion sample esla funcion basica. En el siguiente codigo tenemos k = 6.

> n = 30

> omega = 1:n

> sample(omega, size = 6, replace = FALSE)

[1] 18 8 28 3 27 29

Ahora lo repetimos con reemplazamiento.

> sample(omega, size = 6, replace = TRUE)

[1] 21 19 21 14 8 26

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR544.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR544_wc. R

1.2. Variable aleatoria

Supongamos el experimento consistente en elegir a una individuo al azar de laComunidad Valenciana. Obviamente el espacio muestral esta formado por los dis-tintos individuos. Si los numeramos tendrıamos Ω = ωiN

i=i donde N es el numerototal de personas de la Comunidad. Eleccion al azar supone que cada individuotiene la misma probabilidad de ser elegido y viene dada por P (ωi) = 1

N . Obvia-mente cuando se elige una muestra de personas pensamos en alguna caracterısticanumerica de la misma por ejemplo su edad. Denotemos por X → R la aplicaciontal que X(ω) es la edad de la persona ω. Puesto que el individuo ω es seleccionadode un modo aleatorio, tambien sera aleatoria la cantidad X(ω). La aplicacion Xrecibe el nombre de variable aleatoria. Si B es un subconjunto arbitrario de nu-meros reales entonces cualquier afirmacion de interes sobre la variable aleatoria Xsuele poderse expresar como P (ω : X(ω) ∈ B). Por ejemplo, si nos interesa laproporcion de personas que tienen 37 o mas anos esto supone plantearse el valor deP (ω : X(ω) ∈ [37, +∞)).

Dos son los tipos de variables de mayor interes practico, las variables aleatoriasdiscretas y las continuas. Una variable aleatoria se dice discreta si toma un conjuntode valores discreto, esto es, finito o si infinito numerable. Si el conjunto de valoresque puede tomar lo denotamos por D entonces se define la funcion de probabilidadde X como P (X = x). En estas variables se tiene que

P (a ≤ X ≤ b) =∑

a≤x≤b

P (X = x), (1.2)

2

Page 11: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

para cualesquiera valores reales a ≤ b.Una variable aleatoria se dice continua cuando

P (a ≤ X ≤ b) =

∫ b

a

f(x)dx, (1.3)

para cualesquiera valores reales a ≤ b. La funcion f recibe el nombre de funcionde densidad (de probabilidad) de la variable X .

De un modo generico cuando se habla de la distribucion de una variable aleatoriaX hablamos de las probabilidades P (X ∈ B) para cualquier subconjunto B de R.Obviamente, para variables discretas,

P (X ∈ B) =∑

x∈B

P (X = x) (1.4)

y para variables continuas

P (X ∈ B) =

A

f(x)dx. (1.5)

En resumen, si conocemos la funcion de probabilidad o la de densidad conocemosla distribucion de la variable.

1.2.1. Funcion de distribucion

Se define la funcion de distribucion de una variable aleatoria X como la funcionreal de variable real dada por

F (x) = P (X ≤ x) con x ∈ R. (1.6)

1.2.2. Media y varianza

Una variable suele describirse de un modo simple mediante su media y su va-rianza. La media nos da una idea de alrededor de que valor se producen los va-lores aleatorios de la variable mientras que la varianza cuantifica la dispersionde estos valores alrededor de la media. Se definen para variables discretas co-mo: la media es EX = µ =

∑x∈D xP (X = x); mientras que la varianza es

var(X) = σ2 = E(X − µ)2 =∑

x∈D(x − µ)2P (X = x). Habitualmente ademasde la varianza se suele utilizar para medir variabilidad la desviacion tıpica dada porσ =

√var(X).

En variables continuas las definiciones de media y varianza son las analogas susti-tuyendo sumatorios por integrales, de modo que la media se define como EX = µ =∫ +∞−∞ xf(x)dx mientras que la varianza sera var(X) = σ2 =

∫ +∞−∞ (x − µ)2f(x)dx.

En tablas 1.1 y 1.2 presentamos un breve resumen de las distribuciones quevamos a utilizar en este curso.

Nota de R 2 (notaR545) En R se trabaja con las distribuciones de probabilidadmediante grupos de cuatro funciones. Por ejemplo, supongamos que estamos traba-jando con la binomial. Entonces la funcion de probabilidad es dbinom, la funcionde distribucion es pbinom, la inversa de la funcion de distribucion que nos da lospercentiles es qbinom y, finalmente, podemos generar datos con distribucion bino-mial mediante la funcion rbinom. Consideramos una binomial con 10 pruebas y unaprobabilidad de exito en cada prueba de 0,23.

> dbinom(0:10, size = 10, prob = 0.23)

3

Page 12: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Cuadro 1.1: Distribuciones discretas

Distribucion Funcion de probabilidad Media VarianzaBernoulli f(x|p) = px(1 − p)1−x si x = 0, 1 p p(1 − p)

Binomial f(x|n, p) =

(nx

)px(1 − p)n−x si x = 0, 1, . . . , n np np(1 − p)

Hipergeometrica f(x|A, B, n) =

0

@

Ax

1

A

0

@

Bn − x

1

A

0

@

A + Bn

1

A

si x = 0, . . . , n. nAA+B

nAB(A+B−n)(A+B)2(A+B−1)

Geometrica f(x|p) = p(1 − p)x si x = 0, 1, 2, . . . 1−pp

1−pp2

Binomial Negativa f(x|r, p) =

(r + x − 1

x

)pr(1 − p)x si x = 0, 1, 2, . . . r(1−p)

pr(1−p)

p2

Poisson f(x|λ) = e−λλx

x! si x = 0, 1, . . . λ λ

4

Page 13: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Cuadro 1.2: Distribuciones continuas

Distribucion Funcion de densidad Media Varianza

Uniforme f(x|α, β) = 1β−α si α < x < β α+β

2(β−α)2

12

Normal, N(µ, σ2) f(x|µ, σ2) = 1σ√

2πe−

12 (

x−µσ )2

x ∈ R µ σ2

Gamma Ga(α, β) f(x|α, β) = βα

Γ(α)xα−1e−βx si x > 0 a α

βαβ2

Exponencial Expo(λ) f(x | λ) = 1λ exp− x

λ si x ≥ 0 λ λ2

Ji-Cuadrado χ2(ν) X ∼ χ2(ν) si X ∼ Ga(ν2 , 1

2 ) ν 2ν

Beta Be(α, β) f(x|α, β) = Γ(α+β)Γ(α)Γ(β)x

α−1(1 − x)β−1 si 0 < x < 1 αα+β

αβ(α+β)2(α+β+1)

t-Student t(ν) f(x) =Γ( ν+1

2 )√νπΓ( ν

2 )

(1 + x2

ν

)− ν+12 ∀x ∈ R 0 si ν > 1 ν

ν−2 si ν > 2

F-Snedecor F (m, n) f(x) =Γ( m+n

2 )

Γ( m2 )Γ( n

2 )mm/2nn/2 xm/2−1

(mx+n)(m+n)/2 si x > 0 n(n−2) si n > 2 2n2(m+n−2)

m(n−2)2(n−4) si n > 4

Weibull(α, β) f(x | α, β) = αβ−αxα−1 exp−(xβ )α si x > 0 β

αΓ( 1α ) β2

α (2Γ( 2α ) − 1

αΓ2( 1α ))

Lognormal X ∼ N(µ, σ2) → eX ∼ LN(µ, σ2)

aLa funcion gamma se define como Γ(α) =R +∞

0xα−1 exp−xdx, que existe y es finita ∀α > 0

5

Page 14: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

[1] 7.326680e-02 2.188489e-01 2.941670e-01 2.343149e-01 1.224828e-01

[6] 4.390291e-02 1.092821e-02 1.865298e-03 2.089376e-04 1.386888e-05

[11] 4.142651e-07

De hecho podemos ver la forma que tiene esta funcion de probabilidad para todoslos valores posibles.

> plot(dbinom(0:10, size = 10, prob = 0.23), xlab = "")

2 4 6 8 10

0.00

0.05

0.10

0.15

0.20

0.25

0.30

dbin

om(0

:10,

siz

e =

10,

pro

b =

0.2

3)

Es interesante ver como se modifica la forma de la funcion de probabilidad cuan-do modificamos la probabilidad de exito manteniendo constante el numero de pruebasque realizamos. Indicamos con 1 y 2 la primera y segunda funciones de probabilidad.

> plot(dbinom(0:10, size = 10, prob = 0.23), xlab = "", pch = "1")

> points(dbinom(0:10, size = 10, prob = 0.77), xlab = "", pch = "2")

6

Page 15: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

1

1

1

1

1

1

11 1 1 1

2 4 6 8 10

0.00

0.05

0.10

0.15

0.20

0.25

0.30

dbin

om(0

:10,

siz

e =

10,

pro

b =

0.2

3)

2 2 2 22

2

2

2

2

2

2

La funcion de distribucion la podemos conseguir con pbinom.

> pbinom(0:10, size = 10, prob = 0.23)

[1] 0.0732668 0.2921157 0.5862827 0.8205976 0.9430804 0.9869833 0.9979115

[8] 0.9997768 0.9999857 0.9999996 1.0000000

> plot(stepfun(0:10, c(pbinom(0:10, size = 10, prob = 0.23), 1)),

+ verticals = F)

7

Page 16: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

0 2 4 6 8 10

0.2

0.4

0.6

0.8

1.0

stepfun(0:10, c(pbinom(0:10, size = 10, prob = 0.23), 1))

x

f(x)

La inversa de la funcion de distribucion, esto es, los cuantiles nos la darıa qbi-nom.

> qbinom(0.3, size = 10, prob = 0.23)

[1] 2

Podemos simular valores de la distribucion binomial con rbinom.

> rbinom(5, size = 10, prob = 0.23)

[1] 4 4 3 3 0

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR545.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR545_wc. R

Nota de R 3 (notaR546) La funcion de densidad y de distribucion las obtene-mos con dpois y ppois.

> dpois(0:60, lambda = 12)

[1] 6.144212e-06 7.373055e-05 4.423833e-04 1.769533e-03 5.308599e-03

[6] 1.274064e-02 2.548128e-02 4.368219e-02 6.552328e-02 8.736438e-02

[11] 1.048373e-01 1.143679e-01 1.143679e-01 1.055704e-01 9.048890e-02

[16] 7.239112e-02 5.429334e-02 3.832471e-02 2.554981e-02 1.613672e-02

[21] 9.682032e-03 5.532590e-03 3.017776e-03 1.574492e-03 7.872460e-04

[26] 3.778781e-04 1.744053e-04 7.751345e-05 3.322005e-05 1.374623e-05

[31] 5.498491e-06 2.128448e-06 7.981681e-07 2.902429e-07 1.024387e-07

[36] 3.512183e-08 1.170728e-08 3.796955e-09 1.199038e-09 3.689349e-10

[41] 1.106805e-10 3.239428e-11 9.255510e-12 2.582933e-12 7.044362e-13

[46] 1.878497e-13 4.900426e-14 1.251173e-14 3.127932e-15 7.660241e-16

[51] 1.838458e-16 4.325783e-17 9.982576e-18 2.260206e-18 5.022680e-19

[56] 1.095857e-19 2.348266e-20 4.943718e-21 1.022838e-21 2.080349e-22

[61] 4.160697e-23

8

Page 17: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Representamos las funciones de probabilidad de dos distribuciones Poisson mo-dificando el valor de λ que es su media y varianza de modo que un valor de λ mayorse traduce en una densidad que toma valores mayores y mas dispersa.

> plot(0:60, dpois(0:60, lambda = 12), xlab = "", pch = "1")

> points(0:60, dpois(0:60, lambda = 24), xlab = "", pch = "2")

11111

1

1

1

1

1

1

11

1

1

1

1

1

1

111111111111111111111111111111111111111111

0 10 20 30 40 50 60

0.00

0.02

0.04

0.06

0.08

0.10

dpoi

s(0:

60, l

ambd

a =

12)

2222222222222222

2

2

2

2

2

2222

22

2

2

2

2

222222222222222222222222222222

Los cuantiles obtenidos como inversa de la funcion de distribucion se obtienencon qpois.

> qpois(seq(0.1, 0.9, 0.1), lambda = 12)

[1] 8 9 10 11 12 13 14 15 17

Y finalmente podemos generar valores con esta distribucion con rpois.

> rpois(50, lambda = 12)

[1] 16 13 17 8 14 14 8 10 9 18 7 14 14 12 13 15 14 16 17 14 9 13 7 8 17

[26] 14 12 17 7 13 13 11 16 7 9 7 18 12 6 8 23 10 14 14 12 12 14 13 7 17

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR546.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR546_wc. R

Nota de R 4 (notaR547) Las funciones para trabajar con la distribucion normalson dnorm, pnorm, qnorm y rnorm. Por ejemplo, en el siguiente grafico podemosver las densidades de dos distribuciones normales, con medias µi y varianzas σ2

i coni = 1, 2 donde podemos ver el efecto de modificar la media y las varianzas (observadque le pasamos la desviacion tıpica.

> x = seq(-10, 20, 0.01)

> plot(x, dnorm(x, mean = -3, sd = 2), type = "l")

> lines(x, dnorm(x, mean = 4, sd = 4), lty = 2)

9

Page 18: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−10 −5 0 5 10 15 20

0.00

0.05

0.10

0.15

0.20

x

dnor

m(x

, mea

n =

−3,

sd

= 2

)

La funcion de distribucion de la normal estandar o tıpica vendrıa la podemosrepresentar como sigue.

> x = seq(-3, 3, 0.01)

> plot(x, pnorm(x, mean = 0, sd = 1), type = "l")

−3 −2 −1 0 1 2 3

0.0

0.2

0.4

0.6

0.8

1.0

x

pnor

m(x

, mea

n =

0, s

d =

1)

10

Page 19: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Veamos el efecto que tiene modificar media y varianza sobre la forma de lascorrespondientes funciones de distribucion.

> x = seq(-10, 20, 0.01)

> plot(x, pnorm(x, mean = -3, sd = 2), type = "l")

> lines(x, pnorm(x, mean = 4, sd = 4), lty = 2)

−10 −5 0 5 10 15 20

0.0

0.2

0.4

0.6

0.8

1.0

x

pnor

m(x

, mea

n =

−3,

sd

= 2

)

Podemos representar los percentiles de dos distribuciones normales con distintasmedias y varianzas. La primera opcion es poner en abscisas la probabilidad y enordenadas el percentil correspondiente. Es lo que aparece en el siguiente grafico.

> x = seq(0, 1, 0.01)

> plot(x, qnorm(x, mean = -3, sd = 2), type = "l", ylim = c(-8,

+ 15))

> lines(x, qnorm(x, mean = 4, sd = 4), lty = 2)

11

Page 20: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

0.0 0.2 0.4 0.6 0.8 1.0

−5

05

1015

x

qnor

m(x

, mea

n =

−3,

sd

= 2

)

La segunda opcion, mas facil de interpretar, es mostrar los percentiles de unafrente a los percentiles de la otra.

> plot(qnorm(x, mean = -3, sd = 2), qnorm(x, mean = 4, sd = 4),

+ type = "l")

−8 −6 −4 −2 0 2

−5

05

10

qnorm(x, mean = −3, sd = 2)

qnor

m(x

, mea

n =

4, s

d =

4)

12

Page 21: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

No es casual que salga una lınea recta. Unos son funcion lineal de los otros. Perono son iguales.

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR547.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR547_wc. R

1.2.3. Teorema de Bayes

Tenemos el espacio muestral Ω y una particion de dicho espacio, B1, . . . , Bk, estoes, sucesos disjuntos dos a dos y tales que su union cubren todo el espacio muestral.Entonces se tiene que, para cualquier suceso A,

P (Bi | A) =P (A | Bi)P (Bi)∑k

j=1 P (A | Bj)P (Bj)(1.7)

1.3. Vectores aleatorios

Supongamos X = (X1, . . . , Xd) un vector aleatorio con d componentes. Tantosi el vector es discreto (todas sus variables aleatorias componentes son discretas)como si es continuo denotaremos la correspondiente funcion de probabilidad o dedensidad conjunta mediante f(x1, . . . , xn). Si X es discreto entonces f(x1, . . . , xn) =P (X1 = x1, . . . , Xn = xn) y hablamos de funcion de probabilidad. En lo que siguehablamos del caso continuo. Todas las expresiones son analogas en el caso discretosustituyendo la integral por el sumatorio correspondiente.

Si X = (X1, . . . , Xd) es un vector continuo entonces

P (a1 ≤ X1 ≤ b1, . . . , ad ≤ X1 ≤ bd) =

∫ b1

a1

. . .

∫ bd

ad

f(x1, . . . , xd)dx1 . . . dxn, (1.8)

para cualesquiera ai ≤ bi con i = 1, . . . , d.En particular la distribucion del vector suele venir descrita mediante el vector

de medias y por la matriz de covarianzas.Si para la i-esima variable Xi consideramos la media µi = EXi entonces el

vector de medias µ viene dado por

µX =

µ1

...µd

Si no hace falta indicar el vector X entonces denotaremos simplemente µ en lugarde µX .

Para cada par de variables Xi y Xj podemos considerar su covarianza definidacomo σij = cov(Xi, Xj) = E(Xi − EXi)(Xj − EXj) = E(XiXj) − EXiEXj .

Obviamente si Xi = Xj entonces cov(Xi, Xi) = var(Xi), es decir, la covarianzade una variable consigo misma es la varianza de la variable, es decir, σii = var(Xi).Dado el vector aleatorio X podemos consider la covarianza de cada par de variablesy construir la matriz que en la posicion (i, j) tiene dicha covarianza. Es la matrizde covarianzas, tambien llamada en la literatura matriz de varianzas, matriz devarianzas-covarianzas o matriz de dispersion. La denotaremos por Σ, es decir,

Σ =

σ11 . . . σ1d

......

...σd1 . . . σdd

13

Page 22: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

En general si consideramos dos vectores aleatorios X = (X1, . . . , Xd)′ e Y =

(Y1, . . . , Yp) denotaremos

cov(X, Y ) =

cov(X1, Y1) . . . cov(X1, Yp)...

......

cov(Xd, Y1) . . . cov(Xd, Yp)

y sera la matriz de covarianzas entre dichos vectores.Si los vectores X e Y son independientes se verifica que cov(X, Y ) = 0.Dado el vector X = (X1, . . . , Xd)

′ podemos considerar la matriz de correla-ciones que en la posicion (j, k) tiene el coeficiente de correlacion entre las variablesXi y Xj , ρjk =

σjk√σjjσkk

, es decir,

Pρ =

1 ρ12 . . . ρ1d

......

......

ρd1 ρd2 . . . 1

Obviamente, como la matriz de covarianzas, la matriz de correlaciones es simetricaya que ρjk = ρkj . Si denotamos por Dσ = diag(σ11, . . . , σdd) entonces tenemos que

Pρ = D− 1

2σ ΣD

− 12

σ . (1.9)

Propiedades del vector de medias y la matriz de covarianzas

Supongamos que tenemos una matriz A de dimensiones p×d con p ≤ d y de rangop (tiene pues p filas y p columnas que son linealmente independientes). Tenemos unvector aleatorio X con d componentes y consideramos el vector Y = Ax, esto es,consideramos la transformacion lineal del vector X asociada a la matriz A. Entoncesse tiene que

µY = E[Y ] = AE[X ] = AµX . (1.10)

ycov(Y ) = cov(AX) = Acov(X)A′. (1.11)

1.4. Distribucion normal multivariante

Veamos dos definiciones equivalentes.

Definition 2 Sea Y = (Y1, . . . , Yd)′ un vector aleatorio d-dimensional. Se dice que

el vector Y tiene una distribucion normal multivariante si tiene por funcion dedensidad conjunta

f(y|µ, Σ) =1

(2π)d2 |Σ| 12

exp

(− 1

2(y − µ)′Σ−1(y − µ)

), (1.12)

donde −∞ < yj < +∞, j = 1, . . . , d y Σ = [σjk ] es una matriz definida positiva(Σ > 0).

Se puede probar que EY = µ y var(Y ) = Σ y por ello se suele denotar

Y ∼ Nd(µ, Σ). (1.13)

Se tiene que si Y1, . . . , Yd son variables aleatorias con distribucion normal indepen-dientes con medias nulas y varianza comun σ2 entonces se tiene que Y ∼ Nd(0, σ2Id).

14

Page 23: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Teorema 1 Supongamos Y ∼ Nd(µ, Σ) y sea

Y =

[Y (1)

Y (2)

], µ =

[µ(1)

µ(2)

], Σ =

[Σ11 Σ12

Σ21 Σ22

],

donde Y (i) y µ(i) son vectores di × 1 y Σii es una matriz di × di (con d1 + d2 = d).Se verifican las siguientes propiedades:

1. Si C es una matriz q × d de rango q entonces CY ∼ Nq(Cµ, CΣC′).

2. Cualquier subvector de Y tiene una distribucion normal multivariante. Enparticular, se tiene que Y (1) ∼ Nd1(µ

(1), Σ11).

3. Y (1) e Y (2) son independientes si cov(Y (1), Y (2)) = 0.

4. Si Ui = AiY (i = 1, . . . , m) y cov(Ui, Uj) = 0 para i 6= j entonces los distintosvectores Ui son independientes.

5. (Y − µ)′Σ−1(Y − µ) ∼ χ2d.

6. La distribucion condicionada de Y (2), dado Y (1) = y(1) es Nd2(µ(2)+Σ21Σ

−111 [y(1)−

µ(1)], Σ22,1) donde Σ22,1 = Σ22 − Σ21Σ−111 Σ12.

Una segunda manera en que podemos definir la distribucion normal multivarian-te es del siguiente modo.

Definition 3 Y tiene una distribucion normal multivariante si a′Y =∑d

i=1 aiYi

tiene una distribucion normal univariante para cualquier vector a = (a1, . . . , ad)′.

Si EY = µ and cov(Y ) = Σ > 0 entonces Y ∼ Nd(µ, Σ).

Nota de R 5 (notaR106) Uno de los paquetes o librerıas para trabajar con lanormal multivariante es el paquete mvtnorm [7].

> library(mvtnorm)

Fijamos el vector de medias y la matriz de covarianzas de una normal bivariante.

> mu = c(4.5, 7.3)

> Sigma = matrix(c(7.097258, 3.885963, 3.885963, 3.371314), 2,

+ 2)

Fijamos los puntos en los que vamos evaluar dicha funcion de densidad conjunta

> npuntos = 50

> x = seq(mu[1] - 3 * sqrt(Sigma[1, 1]), mu[1] + 3 * sqrt(Sigma[1,

+ 1]), len = npuntos)

> y = seq(mu[2] - 3 * sqrt(Sigma[2, 2]), mu[2] + 3 * sqrt(Sigma[2,

+ 2]), len = npuntos)

y la evaluamos.

> z = NULL

> for (i in 1:npuntos)

+ for (j in 1:npuntos)

+ z = rbind(z, c(x[i], y[j], dmvnorm(c(x[i], y[j]), mean = mu,

+ sigma = Sigma)))

+

+

> persp(z)

> contour(z)

15

Page 24: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Vamos a generar datos de una normal multivariante. Consideremos un vector demedias generado al azar con valores entre 0 y 1. La matriz de covarianzas la ge-neramos tambien aleatoriamente. Para ello, generamos en primer lugar una matrizcuyos elementos son uniformes en el intervalo unitario. El producto de esta matrizpor su traspuesta es definida positiva y la podemos utilizar como matriz de cova-rianzas.

> mu = runif(5)

> A = matrix(runif(5 * 5), ncol = 5, nrow = 5)

> Sigma = t(A) %*% A

Generamos datos con el vector de medias µ y matriz de covarianzas Σ.

> (x = rmvnorm(10, mean = mu, sigma = Sigma))

[,1] [,2] [,3] [,4] [,5]

[1,] 0.9986059 1.1114691 0.8932409 2.1586397 -0.1835196

[2,] 2.3743241 1.8755369 1.0526133 2.2077608 0.6827118

[3,] 1.0052324 1.7233823 2.9435796 2.6516484 1.9674919

[4,] 0.2593893 -0.9946879 -1.6908681 -1.0778964 -1.3494510

[5,] 1.3214797 1.3258561 2.8261025 1.5767922 2.9693848

[6,] 1.5855865 0.9323904 -0.2159605 1.6055011 -0.9496808

[7,] 0.1679134 0.4573060 -1.3220569 0.3094725 -1.3691624

[8,] 0.7805149 1.4019038 1.1549795 1.0948881 1.5623721

[9,] -0.3307193 0.2823573 0.8296087 0.4109420 0.9508994

[10,] 1.6093706 1.3874531 2.1365803 1.9340163 1.6408187

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR106.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR106_wc. R

NA

16

Page 25: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 2

Un muy breve repaso a laEstadıstica

Solo pretendemos fijar notacion y recordar algunos de los conceptos basicos. Esmas que recomendable consultar algun texto de introduccion a la Estadıstica. Haytantos y, muchos, tan buenos que es casi un pecado recomendar alguno. El que setenga a mano sera bueno. Teniendo en cuenta que este texto esta muy orientado aluso de la Estadıstica con R [16] serıa bueno consultar [19] en donde se presenta laestadıstica basica con el programa.

2.1. Algo de Estadıstica Descriptiva, poco

Cuando tenemos un banco de datos lo primero y conveniente es describir de unmodo sencillo dichos datos, bien mediante unos resumenes numericos o bien median-te unos resumenes graficos. Esto es lo que se conoce como Estadıstica descriptiva.Veamos algun ejemplo para recordar estos conceptos.

Nota de R 6 (notaR150) Vamos a realizar un analisis descriptivo de unos datosrelativos a hospitalizacion ambulatoria. Empezamos cargando el fichero de datos.

> load("../data/scoremaster")

Lo que acabamos de cargar es un data frame cuyo nombre es scoremaster. Hemosde saber cuales son las variables que lo componen.

> names(scoremaster)

[1] "score" "eg1" "d1" "t1" "s1"

[6] "score2" "eg2" "d2" "t2" "s2"

[11] "score3" "eg3" "d3" "t3" "s3"

[16] "score4" "score5" "especialidad" "intensidad" "tipoanes"

[21] "asa" "sexo" "T.TOTALP" "T.QUIRUR" "edad"

Para poder trabajar con los nombres de las variables hemos de adjuntar el bancode datos

> attach(scoremaster)

Podemos ver los primeros diez valores de la variable score

> score[1:10]

1

Page 26: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

[1] 6 4 5 6 7 6 7 8 6 5

Levels: 3 < 4 < 5 < 6 < 7 < 8

De las variables consideradas algunas son categoricas como puede ser la especia-lidad o tipoanes (tipo de anestesia), otras son ordinales como score, score2, score3,. . . mientras que otras son continuas como T.TOTALP o T.QUIRUR.

Es interesante utilizar la funcion extractora summary sobre un data frame.

> summary(scoremaster)

score eg1 d1 t1 s1 score2 eg2 d2

3: 13 0: 18 0: 18 0: 50 0: 17 3 : 7 0 : 27 0 : 36

4: 89 1:545 1:360 1:359 1:307 4 : 33 1 :377 1 :359

5:199 2:359 2:544 2:513 2:598 5 :133 2 :359 2 :366

6:276 6 :234 NA's:159 NA's:1617:219 7 :192

8:126 8 :162

NA's:161t2 s2 score3 eg3 d3 t3 s3

0 : 11 0 : 3 3 : 2 0 : 9 0 : 10 0 : 0 0 : 0

1 : 59 1 :237 4 : 3 1 : 78 1 : 76 1 : 9 1 : 45

2 :691 2 :522 5 : 34 2 : 51 2 : 51 2 :127 2 : 92

NA's:161 NA's:160 6 : 45 NA's:784 NA's:785 NA's:786 NA's:7857 : 34

8 : 20

NA's:784score4 score5 especialidad intensidad tipoanes asa

Min. : 5.0 Min. : 4.0 1 :325 1:168 General:746 1:555

1st Qu.: 6.0 1st Qu.: 5.5 2 :163 2:426 Plexo :108 2:332

Median : 6.5 Median : 6.5 4 :136 3:328 CAM : 65 3: 35

Mean : 6.4 Mean : 6.0 5 : 55 NA's : 3

3rd Qu.: 7.0 3rd Qu.: 7.0 7 :157

Max. : 8.0 Max. : 7.0 8 : 74

NA's :902.0 NA's :918.0 NA's: 12

sexo T.TOTALP T.QUIRUR edad

0 :329 Min. : 900 Min. : 600 Min. : 4.00

1 :590 1st Qu.: 6060 1st Qu.: 2640 1st Qu.: 31.00

NA's: 3 Median : 8790 Median : 3600 Median : 43.00

Mean : 9881 Mean : 3903 Mean : 43.48

3rd Qu.:12420 3rd Qu.: 4860 3rd Qu.: 56.00

Max. :35160 Max. :16200 Max. : 84.00

NA's :194.00

En el resumen anterior vemos que cuando se trata de una variable categoricanos muestra los conteos asociados a cada uno de los valores posibles (si hay muchascategorıas solo pone algunas y las demas las agrupa en una ultima categorıa). Enlas variables numericas saca unas descriptivas numericas. Observemos la descriptivanumerica de T.TOTALP

> summary(T.TOTALP)

Min. 1st Qu. Median Mean 3rd Qu. Max.

900 6060 8790 9881 12420 35160

Nos aparece el mınimo, el primer cuartil (o percentil 0,25), la mediana, la media,el tercer cuartil (o percentil 0,75) y el maximo de las observaciones.

Para una variable categorica podemos pedirle una tabla de frecuencias.

2

Page 27: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> table(tipoanes)

tipoanes

General Plexo CAM

746 108 65

La tabla anterior es algo parca en su presentacion. Si queremos un diagrama debarras (que es lo mismo pero en dibujo) lo podemos conseguir haciendo

> barplot(table(tipoanes))

General Plexo CAM

010

020

030

040

050

060

070

0

Repetimos las tablas y los diagramas de barras para el resto de variables catego-ricas.

> table(intensidad)

intensidad

1 2 3

168 426 328

> barplot(table(intensidad))

3

Page 28: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

1 2 3

010

020

030

040

0

> table(especialidad)

especialidad

1 2 4 5 7 8

325 163 136 55 157 74

> barplot(table(especialidad), names.arg = c("Gine", "Cir. Gen.",

+ "ORL", "Estoma", "COT", "Uro"))

4

Page 29: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Gine Cir. Gen. ORL Estoma COT Uro

050

100

150

200

250

300

En la variable asa (y para no aburrirnos mas con los diagramas de barras) sus-tituimos un diagrama de barras por un diagrama de sectores.

> table(asa)

asa

1 2 3

555 332 35

> pie(table(asa), labels = c("I", "II", "III"))

5

Page 30: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

I

II

III

Cuando consideramos una variable numerica hay dos tipos de representacionesque son robustas y sencillas de interpretar. Son el diagrama de cajas y el diagramade tallo y hojas. El primero de ellos se obtiene con

> boxplot(T.QUIRUR/60)

050

100

150

200

250

6

Page 31: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Observemos que en el diagrama de cajas hemos expresado los tiempos quirurgicosen minutos. La variable intensidad es una variable ordinal que expresa el grado deagresion que supone la intervencion quirurgica. Para logico comparar graficamentelos tiempos quirurgicos teniendo en consideracion la intensidad de la intervencion.

> boxplot(T.QUIRUR/60 ~ intensidad)

1 2 3

050

100

150

200

250

Y finalmente consideremos un diagrama de tallo y hojas para la misma variable.

> stem(T.QUIRUR/60)

The decimal point is 1 digit(s) to the right of the |

0 | 0256667889999

2 | 00000122333445555555555677788888999999000000000000000001111222222222+82

4 | 00000000000000000000000011111111111122222222233333334444444444555555+183

6 | 00000000000000000000000000111111111122222222222333333334444444444444+154

8 | 00000000000000011111111111222222222333333344444445555555555555666666+58

10 | 00000000001122233333344444555566667777788888999900000112235555778899

12 | 000001134555566680014458

14 | 23489039

16 | 0252

18 | 09

20 | 55

22 |

24 |

26 | 0

7

Page 32: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Y yo creo que como analisis descriptivo inicial ya esta mas que bien.

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR150.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR150_wc. R

2.2. Verosimilitud

Sea y = (y1, . . . , yn) una realizacion del vector aleatorio Y = (Y1, . . . , Yn). Eshabitual asumir que Y tiene una funcion de densidad conjunta f en una cierta familiaF . Para una funcion dada f , el valor f(y) nos muestra como varıa la densidad dentrodel espacio muestral de valores posibles de y. Y viceversa, si consideramos unos datosy y lo que hacemos variar es la funcion de densidad entonces estamos viendo comode verosımil es cada una de las funciones dados los datos y. Esta funcion recibe elnombre de verosimilitud de f dados los datos y y se suele denotar como

V erosimilitud[f ; y] = L(f ; y) = f(y). (2.1)

Con frecuenica, es conveniente trabajar con el logaritmo natural de la funcion an-terior y hablaremos de la log-verosimilitud.

l[f ; y] = log f(y). (2.2)

Una simplificacion adicional (que es habitual en las aplicaciones) supone que lafuncion de densidad f pertenece a una familia parametrica F , esto es, cada elementode la familia es conocido completamente salvo un numero finito de parametrosθ = (θ1, . . . , θp) de modo que denotaremos f(y; θ) o fY (y; θ). Al conjunto de valoresposibles de θ se le llama espacio parametrico y lo denotaremos por Θ. En estecaso, la logverosimilitud es una funcion de θ y denotaremos

V erosimilitud[θ; y] = l(θ; y) = log f(y; θ). (2.3)

8

Page 33: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Supongamos una transformacion 1-1 de Y a Z, Z = g(Y ). Las densidades deambos vectores se relacionan segun la siguiente relacion

fZ(z) = fY (y)

∣∣∣∣∂y

∂z

∣∣∣∣,

donde

∣∣∣∣∂y∂z

∣∣∣∣ es el jacobiano de la transformacion de z a y. Se tiene la siguiente relacion

entre las verosimilitudes

LZ(θ; z) =

∣∣∣∣∂y

∂z

∣∣∣∣LY (θ; y).

Esto sugiere que es mejor trabajar con el cociente de las verosimilitudes para dosvectores de parametros θ1 y θ2 en lugar de los valores aislados.

Si asumimos que los distintos Y1, . . . , Yn son independientes entonces

LY (θ; y) = fY (y) =

n∏

i=1

fYi(yi),

y

ly(θ; y) =n∑

i=1

log fYi(yi) =n∑

i=1

LYi(θ; yi).

Veamos algunos ejemplos de verosimilitud.

Ejemplo 2 (Pruebas Bernoulli) Y1, . . . , Yn son independientes y con la mismadistribucion (i.i.d.) P (Yi = yi) = θyi(1 − θ)1−yi y

L(θ; y) = θPn

i=1 yi(1 − θ)n−Pn

i=1 yi

Ejemplo 3 (Numero de exitos en n pruebas Bernoulli) Nuestros datos sonahora el numero total de exitos en un numero dado de pruebas de Bernoulli, r. En-tonces la variable correspondiente R tiene una distribucion binomial con n pruebasy una probabilidad de exito θ. La verosimilitud viene dada por

L(θ; r) =

(n

r

)θr(1 − θ)n−r

Ejemplo 4 (Muestreo Bernoulli inverso) Nuestros datos son ahora el numerototal de pruebas necesarias para alcanzar un numero previamente especificado deexitos. La variable aleatoria correspondiente N tendra una distribucion binomialnegativa con r exitos y una probabilidad de exito θ. La funcion de verosimilitudcorrespondiente viene dada por

L(θ; n) =

(n − 1

r − 1

)θr(1 − θ)n−r

Consideremos los tres ejemplos anteriores 2, 3 y 4. Si consideramos dos valores delparametro θ1 y θ2 entonces el cociente de las verosimilitudes calculados en ambosvalores tiene el mismo valor en los tres ejemplos.

2.3. Estimacion

Denotamos por Θ el espacio formado por los valores que puede tomar θ o espacioparametrico. Un estimador del parametros o vector parametrico θ es cualquierfuncion de la muestra X1, . . . , Xn que toma valores en el espacio parametrico.

9

Page 34: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Si δ(X1, . . . , Xn) es un estimador del parametro θ entonces se define el errorcuadratico medio como

MSE(δ) = E[δ(X1, . . . , Xn) − θ]2 (2.4)

En el caso en que se verifique que Eδ(X1, . . . , Xn) = µδ = θ, es decir, que elestimador sea insesgado entonces:

MSE(δ) = E[δ(X1, . . . , Xn) − θ]2 = E[δ(X1, . . . , Xn) − µδ]]2 = var(δ).

Y el error cuadratico medio no es mas que la varianza del estimador.Consideremos la siguiente cadena de igualdades. Denotamos

MSE(δ) = E[δ − θ]2 = E[δ − µδ + µδ − θ]2 = E[δ − µδ]2 + [µδ − θ]2 (2.5)

La diferencia entre la media del estimador y el parametro, µδ − θ, recibe el nombrede sesgo. Finalmente lo que nos dice la ecuacion anterior es que el error cuadraticomedio MSE(δ) lo podemos expresar como la suma de la varianza del estimador,E[δ − µδ]

2, mas el sesgo al cuadrado, [µδ − θ]2.A la raız cuadrada de la varianza de un estimador, es decir, a su desviacion

tıpica o estandar se le llama error estandar. La expresion error estandar se usaen ocasiones indistintamente para referirse o bien dicha desviacion tıpica o bien alestimador de la misma.

2.3.1. Estimacion insesgada de media y varianza

Dada una muestra Y1, . . . , Yn de una variable. Un estimador habitualmente uti-lizado para estimar µ = EYi es la media muestral dada por

Y =1

n

n∑

i=1

Yi. (2.6)

Notemos que

EY = E[1

n

n∑

i=1

Yi] =1

n

n∑

i=1

EYi =1

n

n∑

i=1

µ = µ.

En definitiva, la media muestral es un estimador que no tiene ningun sesgo cuandoestima la media de Yi (la media poblacional) o, lo que es lo mismo, es un estimadorinsesgado.

Para estimar de un modo insesgado la varianza σ2 a partir de una muestraY1, . . . , Yn se utiliza la varianza muestral dada por

S2 =1

n − 1

n∑

i=1

(Yi − Y )2. (2.7)

La razon de la division por n − 1 en lugar de dividir por n viene de las siguientesigualdades.

E

n∑

i=1

(Yi − Y )2 =

E

n∑

i=1

[(Yi − µ) − (Y )2 − µ)]2 =

n∑

i=1

E(Yi − µ)2 − nE(Y − µ)2, (2.8)

pero E(Yi − µ)2 = σ2 y E(Y − µ)2 = var(Y ) = σ2/n. En consecuencia,

E

n∑

i=1

(Yi − Y )2 = nσ2 − σ2

n= nσ2 − σ2 = (n − 1)σ2,

10

Page 35: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

de donde,

ES2 = E1

n − 1

n∑

i=1

(Yi − Y )2 = σ2,

es decir, S2 estima la varianza σ2 sin sesgo.

Nota de R 7 (notaR151) Vamos a estimar la media y la varianza de un modoinsesgado. Empezamos leyendo los datos scoremaster.

> load("../data/scoremaster")

> attach(scoremaster)

La media muestral del tiempo total quirurgico (en segundos) lo obtenemos con

> mean(T.QUIRUR)

[1] 3903.449

Mientras que la varianza y desviacion tıpica muestral vienen dadas por

> var(T.QUIRUR)

[1] 3107898

> sd(T.QUIRUR)

[1] 1762.923

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR151.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR151_wc. R

2.3.2. Estimacion insesgada del vector de medias y la matrizde covarianzas

Ahora consideramos una muestra de un vector de dimension d, Y1, . . . , Yn i.i.d.con vector de medias µ = EYi y matriz de covarianzas Σ = cov(Yi). Los estima-dores insesgados de µ y Σ son las versiones multivariantes de la media y varianzamuestrales. Si

Yi =

Yi1

...Yip

Entonces podemos representar toda la muestra como la siguiente matriz

Y =

Y ′1...

Y ′n

=

Y11 . . . Y1d

......

...Yn1 . . . Ynd

mientras que los datos observados, la matriz de datos, vendrıa dada por

y =

y′1...

y′n

=

y11 . . . y1d

......

...yn1 . . . ynd

11

Page 36: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

El vector de medias muestral viene dado por la siguiente expresion en terminos dela matriz Y ,

Y =1

n

n∑

i=1

Yi =1

nY ′1n. (2.9)

siendo 1n el vector n× 1 con todos los valores iguales a uno. Tambien denotaremos

Y =

Y·1...

Y·p

El estimador de la matriz de covarianzas (poblacional) Σ serıa la matriz de co-varianzas muestral que tiene en la posicion (j, k) la covarianza muestral entre lascomponentes j y k,

Sjk =1

n − 1

n∑

i=1

(Yij − Y·j)(Yik − Y·k),

de modo que

S =

S11 . . . S1d

......

...Sd1 . . . Sdd

=

1

n − 1

n∑

i=1

(Yi − Y )(Yi − Y )′ =1

n − 1Q.

Es inmediato que EY = µ porque componente a componente hemos visto que severifica la igualdad. A partir de los vectores Yi consideramos Xi = Yi − µ de modoque se verifica X = X − µ. Se sigue que

n∑

i=1

(Yi − Y )(Yi − Y )′ =

n∑

i=1

(Xi − X)(Xi − X)′ =

n∑

i=1

XiX′i − nXX ′.

Los vectores X1, . . . , Xn tienen vector de medias nulo y matriz de covarianzas Σ, lamisma que los Yi. En consecuencia, EXX ′ = Σ y

EQ =

n∑

i=1

cov(Yi) − n cov(Y ) = nΣ − n cov(Y ) = nΣ − nΣ

n= (n − 1)Σ.

Tenemos pues que S es un estimador insesgado de la matriz Σ.Finalmente, si denotamos por rjk el coeficiente de correlacion entre las variables

j y k, es decir,

rjk =

∑ni=1(Yij − Y·j)(Yik − Y·k)√∑n

i=1(Yij − Y·j)2∑n

i=1(Yik − Y·k)2=

Sjk√SjjSkk

(2.10)

Denotaremos por R la matriz de correlaciones muestrales R = [rjk].

Nota de R 8 (notaR152) Vamos a estimar la media y la varianza de un modoinsesgado. Empezamos leyendo los datos scoremaster.

> load("../data/scoremaster")

> attach(scoremaster)

La covarianza y la correlacion muestrales entre el timepo total quirurgico y eltiempo total postquirurgico los obtenemos con

12

Page 37: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> cov(T.QUIRUR, T.TOTALP)

[1] 2308272

> cor(T.QUIRUR, T.TOTALP)

[1] 0.2364658

La matriz de covarianzas muestral vendrıa dada por

> cov(cbind(T.QUIRUR, T.TOTALP))

T.QUIRUR T.TOTALP

T.QUIRUR 3107898 2308272

T.TOTALP 2308272 30659874

y la de correlaciones serıa

> cor(cbind(T.QUIRUR, T.TOTALP))

T.QUIRUR T.TOTALP

T.QUIRUR 1.0000000 0.2364658

T.TOTALP 0.2364658 1.0000000

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR152.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR152_wc. R

2.4. Estimador maximo verosımil

El metodo de estimacion que vamos a utilizar en este curso el metodo demaxima verosimilitud. El estimador maximo verosımil de θ, que denotaremospor θ, se obtienen maximizando la funcion de verosimilitud o, equivalentemente,la transformacion monotona de dicha funcion que es la funcion de logverosimilitud.Utilizaremos para denotar el estimador maximo verosımil la notacion inglesa MLE.

L(θ) = maxθ∈Θ

L(θ), (2.11)

o tambienθ = argmaxθ∈ΘL(θ), (2.12)

Ejemplo 5 (Bernoulli) Se puede comprobar sin dificultad que p =Pn

i=1 xi

n .

Una propiedad importante de los estimadores maximo verosımiles consiste enque si θ∗ = f(θ) siendo f una biyeccion entonces el estimador maximo verosımil deθ∗ es verifica que

θ∗ = f(θ). (2.13)

Ejemplo 6 (Normal) En este caso se comprueba que µ = Xn y que σ2 = n−1n S2 =

1n

∑ni=1(Xi − Xn)2. Teniendo en que cuenta la propiedad enunciada en 2.13 tendre-

mos que σ =√

n−1n S2.

En muchas situaciones la funcion L(θ) es concava y el estimador maximo ve-

rosımil θ es la solucion de las ecuaciones de verosimilitud ∂L(θ∂θ = 0. Si cov(θ)

denota la matriz de covarianzas de θ entonces, para un tamano muestral grande y

13

Page 38: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

bajo ciertas condiciones de regularidad (ver [17], pagina 364), se verifica que cov(θ)es la inversa de la matriz de informacion cuyo elemento (j, k) viene dado por

− E

(∂2l(θ)

∂θj∂θk

)(2.14)

Notemos que el error estandar de θj sera el elemento que ocupa la posicion (j, j)en la inversa de la matriz de informacion. Cuanto mayor es la curvatura de lalogverosimilitud menores seran los errores estandar. La racionalidad que hay detrasde esto es que si la curvatura es mayor entonces la logverosimilitud cae rapidamentecuando el vector θ se aleja de θ. En resumen, es de esperar que θ este mas proximoa θ.

Ejemplo 7 (Binomial) Supongamos que una muestra en una poblacion finita yconsideremos como valor observado el numero de exitos. Entonces la verosimilitudserıa

L(p) =

(n

y

)py(1 − p)n−y, (2.15)

y la logverosimilitud viene dada como

l(p) = log

(n

y

)+ y log p + (n − y) log(1 − p), (2.16)

La ecuacion de verosimilitud serıa

∂l(p)

∂p=

y

p− n − y

1 − p=

y − np

p(1 − p). (2.17)

Igualando a cero tenemos que la solucion es p = yn que no es mas que la proporcion

muestral de exitos en las n pruebas. La varianza asıntotica serıa

− E

[∂2l(p)

∂p2

]= E

[y

p2+

n − y

(1 − p)2

]=

n

p(1 − p). (2.18)

En consecuencia asintoticamente p tiene varianza p(1−p)n lo cual era de prever pues

si consideramos la variable Y que nos da el numero de exitos entonces sabemos queEY = np y que var(Y ) = np(1 − p).

2.5. Contraste de hipotesis

Genericamente vamos a considerar situaciones en donde particionamos el espacioparametrico Θ en dos conjuntos Θ0 y Θ1, es decir, Θ0 ∩ Θ1 = ∅ (son disjuntos) yy Θ0 ∪Θ1 = Θ (cubren todo el espacio parametrico). Consideramos el contraste dehipotesis siguiente.

H0 :θ ∈ Θ0 (2.19)

H1 :θ ∈ Θ1 (2.20)

Basandonos en una muestra aleatoria X1, . . . , Xn hemos de tomar una decision.Las decisiones a tomar son una entre dos posibles: (i) Rechazar la hipotesis nula obien (ii) no rechazar la hipotesis nula. Notemos que, una vez hemos tomado unadecision, podemos tener dos posibles tipos de error como recoge la siguiente tabla.En las columnas indicamos la realidad mientras que en las filas indicamos la decisionque tomamos.

14

Page 39: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

H0 H1

Rechazamos H0 Error tipo INo rechazamos H0 Error tipo II

Supongamos que Rn es el conjunto de valores que puede tomar el vector aleatorio

(X1, . . . , Xn). Entonces el contraste de hipotesis se basa en tomar un estadıstico ofuncion de la muestra que denotamos δ(X1, . . . , Xn) de modo que si δ(X1, . . . , Xn) ∈C entonces rechazamos la hipotesis nula mientras que si δ(X1, . . . , Xn) /∈ C entoncesno rechazamos la hipotesis nula. Notemos que simplemente estamos particionandoel espacio muestral (que suponemos) R

n en dos partes, C y Cc, de modo que to-mamos una decision basandonos en si el estadıstico δ esta en C o bien esta en elcomplementario de C. Al conjunto C se le suele llamar la region crıtica. La funcionpotencia se define como

π(θ) = P (δ ∈ C|θ). (2.21)

Contraste de la media en la poblaciones normales

Si tenemos una muestra X1, . . . , Xn de una poblacion normal con media µ yvarianza σ2 donde ambos parametros se asumen desconocidos un test habitualmenteconsiderado es si la media toma un valor dado. El test formalmente planteado serıa:

H0 :µ = µ0, (2.22)

H1 :µ 6= µ0. (2.23)

Siendo S2 =Pn

i=1(Xi−X)2

n−1 , el estadıstico habitualmente utilizado es el siguiente

T =X − µ0

S/√

n.

Bajo la hipotesis nula este estadıstico sigue una distribucion t de Student con n− 1grados de libertad,

T ∼ t(n − 1).

Si suponemos que trabajamos con un nivel de significacion α la region crıtica en lacual rechazamos la hipotesis nula serıa

|T | > tn−1,1−α2.

Nota de R 9 (notaR153) En el analisis de los tiempos quirurgicos se conside-ra que un valor promedio global de los mismos es del orden de 50 minutos (3000segundos).

> load("../data/scoremaster")

> attach(scoremaster)

Aplicamos un test de la t en donde la hipotesis nula es que la media vale 3000.

> t.test(T.QUIRUR, mu = 3000)

One Sample t-test

data: T.QUIRUR

t = 15.5609, df = 921, p-value < 2.2e-16

alternative hypothesis: true mean is not equal to 3000

95 percent confidence interval:

3789.506 4017.392

sample estimates:

mean of x

3903.449

15

Page 40: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Podemos ver en la primera lınea el valor del estadıstico, los grados de libertadde la distribucion nula y el p-valor. Tambien nos indica la hipotesis alternativa ypor lo tanto la nula como la negacion de esta. Atendiendo al p-valor rechazamos lahipotesis nula.

Podemos plantearnos la hipotesis de que el valor no sea tan optimista comopensabamos y realmente sea de unos 4000 segundos.

> t.test(T.QUIRUR, mu = 4000)

One Sample t-test

data: T.QUIRUR

t = -1.663, df = 921, p-value = 0.09666

alternative hypothesis: true mean is not equal to 4000

95 percent confidence interval:

3789.506 4017.392

sample estimates:

mean of x

3903.449

Y en este caso no rechazamos.http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR153.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR153_wc. R

2.5.1. Test del cociente de verosimilitudes

El cociente de verosimilitudes para contrastar estas hipotesis se define como

Λ =maxθ∈Θ0 L(θ)

maxθ∈Θ L(θ)(2.24)

Es razonable pensar que en la medida en que Λ tome valores menores entonces la hi-potesis alternativa sea mas plausible que la hipotesis nula y por lo tanto rechacemosla hipotesis nula. Realmente se suele trabajar con −2 logΛ pues bajo la hipotesisnula tiene una distribucion asintotica ji-cuadrado donde el numero de grados de li-bertad es la diferencia de las dimensiones de los espacios parametricos Θ = Θ0∪Θ1

y Θ0. Si denotamos L0 = maxθ∈Θ0 L(θ) y L1 = maxθ∈Θ L(θ) entonces Λ = L0

L1y

− 2 log λ = −2 logL0

L1= −2(l0 − l1) (2.25)

siendo l0 y l1 los logaritmos de L0 y L1 respectivamente que tambien correspondencon los maximos de la logverosimilitud sobre Θ0 y sobre Θ.

2.5.2. Test de Wald

Supongamos que el θ es un parametro y θ denota su estimador maximo verosımil.Supongamos que queremos contrastar las siguientes hipotesis:

H0 :θ = θ0, (2.26)

H1 :θ 6= θ0. (2.27)

Denotamos por SE(θ) el error estandar bajo la hipotesis alternativa de θ. Entoncesel estadıstico

z =θ − θ0

SE(θ)(2.28)

16

Page 41: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

tiene, bajo la hipotesis nula, aproximadamente una distribucion normal estandar,z ∼ N(0, 1). Este tipo de estadısticos donde se utiliza el error estandar del estimadorbajo la hipotesis alternativa recibe el nombre de estadıstico de Wald.

Supongamos que θ es un vector de parametros y queremos contrastar las hipote-sis dadas en 2.26. La version multivariante del estadıstico dado en 2.28 viene dadapor

W = (θ − θ0)′[cov(θ)]−1(θ − θ0), (2.29)

donde cov(θ) se estima como la matriz de informacion observada en el MLE θ. Ladistribucion asintotica de W bajo la hipotesis nula es una distribucion ji-cuadradodonde el numero de grados de libertad coincide con el numero de parametros noredundantes en θ.

2.5.3. Intervalos de confianza

Empezamos recordando el concepto de intervalo de confianza con un ejemplomuy conocido como es la estimacion de la media en poblaciones normales.

Ejemplo 8 (Intervalo de confianza para la media de una normal) Veamoslocon un ejemplo y luego planteamos la situacion mas general. Tenemos una muestraaleatoria X1, . . . , Xn i.i.d. tales que Xi ∼ N(µ, σ2). Entonces es conocido que

Xn − µ

S/√

n∼ tn−1. (2.30)

Vemos como Xn−µS/

√n

depende tanto de la muestra que conocemos como de un pa-

rametro (la media µ) que desconocemos. Fijamos un valor de α (habitualmentetomaremos α = 0,05) y elegimos un valor tn−1,1−α/2 tal que

P (−tn−1,1−α/2 ≤ Xn − µ

S/√

n≤ tn−1,1−α/2) = 1 − α. (2.31)

La ecuacion anterior la podemos reescribir como

P (Xn − tn−1,1−α/2S√n≤ µ ≤ Xn + tn−1,1−α/2

S√n

) = 1 − α. (2.32)

Tenemos una muestra aleatoria X1, . . . , Xn y por lo tanto tenemos un intervaloaleatorio dado por [Xn−tn−1,1−α/2

S√n, Xn+tn−1,1−α/2

S√n]. Este intervalo tiene una

probabilidad de 1−α de contener a la verdadera media. Tomemos ahora la muestray consideremos no los valores aleatorios de Xn y de S2 sino los valores observadosxn y s. Tenemos ahora un intervalo [xn− tn−1,1−α/2

s√n, xn + tn−1,1−α/2

s√n] fijo. Es

posible que µ este en este intervalo y es posible que no lo este. Sabemos que antesde tomar la muestra tenıamos una probabilidad de 1−α de contener a la verdaderamedia pero despues de tomar la muestra tenemos una confianza de 1−α de contenera la verdadera media. Al intervalo [xn−tn−1,1−α/2

s√n, xn+tn−1,1−α/2

s√n] se le llama

intervalo de confianza para µ con nivel de confianza 1 − α.

Vamos a ver un planteamiento mas general del problema.Supongamos que tenemos un test para contrastar la hipotesis simple H0 : θ = θ0

frente a la alternativa H1 : θ 6= θ0. Supongamos que elegimos un nivel de significa-cion α para contrastar las hipotesis anteriores y consideramos el siguiente conjuntoformado por todos los θ0 tales que no rechazamos la hipotesis nula al nivel α. Es-te conjunto es un conjunto de confianza al nivel 1 − α. Cuando el conjunto deconfianza es un intervalo hablamos de intervalo de confianza.

17

Page 42: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Supongamos que consideramos el test del cociente de verosimilitudes. Denotemospor χ2

k(1 − α) el percentil 1 − α de una distribucion ji-cuadrado con k grados delibertad. Entonces el intervalo de confianza al nivel 1 − α serıa el conjunto

θ0 : −2[l(θ0) − l(θ)] < χ2k(1 − α) (2.33)

Consideremos ahora un test de Wald. En este caso, el intervalo de confianza deWald vendrıa dado por el siguiente conjunto:

θ0 :|θ − θ0|SE(θ)

< Z1−α/2 (2.34)

donde SE(θ) es el error estandar estimado de θ bajo la hipotesis alternativa.

18

Page 43: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 3

Componentes principales

Cuando tomamos medidas sobre personas, objetos, empresas, unidades experi-mentales de un modo generico, se tiende a recoger el maximo de variables posible.En consecuencia tenemos dimensiones del vector de caracterısticas X grandes.

Una opcion consiste en sustituir la observacion original, de dimension d, por kcombinaciones lineales de las mismas. Obviamente pretendemos que k sea muchomenor que d. El objetivo es elegir k de modo que expresen una proporcion razo-nable de la dispersion o variacion total cuantificada como la traza de la matriz decovarianza muestral, tr(S),

Sea X un vector aleatorio de dimension d con vector de medias µ y matrizde covarianzas Σ. Sea T = (t1, t2, . . . , td) (los ti indican la i-esima columna de lamatriz) la matriz ortogonal tal que

T ′ΣT = Λ = diag(λ1, . . . , λd), (3.1)

donde λ1 ≥ λ2 ≥ . . . ≥ λd ≥ 0 son los valores propios de la matriz Σ. Sea

Y = T ′(X − µ). (3.2)

Si denotamos la j-esima componente de Y como Yj entonces Yj = t′j(X − µ) conj = 1, . . . , d. A la variable Yj la llamamos la j-esima componente principal deY . La variable Zj =

√λjYj es la j-esima componente principal estandarizada

de Y .Estas componentes tienen algunas propiedades de gran interes.Notemos que el vector tj tiene longitud unitaria y, por lo tanto, Yj no es mas

que la proyeccion ortogonal de X − µ en la direccion tj .

Proposicion 1 1. Las variables Yj son incorreladas y var(Yj) = λj .

2. Las variables Zj son incorreladas y con varianza unitaria.

Demostracion.

En cuanto al apartado primero tenemos que

var(Y ) = var(T ′(X − µ) = T ′var(Y )T = T ′ΣT = Λ.

El segundo apartado es directo a partir del primero.

Se verifica el siguiente resultado.

Teorema 2 Las componentes principales Yj = t′j(X − µ) con j = 1, . . . , d tienenlas siguientes propiedades:

1

Page 44: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

1. Para cualquier vector a1 de longitud unitaria, var(a′1X) alcanza su valor ma-

ximo λ1 cuando a1 = t1.

2. Para cualquier vector aj de longitud unitaria tal que a′jti = 0 para i =

1, . . . , j − 1, se tiene que var(a′jX toma su valor maximo λj cuando aj = tj.

3.∑d

j=1 var(Yj) =∑d

j=1 var(Xj) = traza(Σ).

La version muestral de las componentes principales la obtenemos sustituyendo enlo anterior µ y Σ por X y Σ respectivamente. Es importante considerar el estimadorde Σ que estamos utilizando (o bien el estimador insesgado donde dividimos porn − 1 o bien el estimador en donde dividimos por n).

Si denotamos por λ1 ≥ . . . ≥ λd los valores propios ordenados de Σ y la matrizT = (t1, . . . , td) es la matriz tal que cada columna es el correspondiente vector propioentonces tenemos las componentes principales muestrales dadas por yj = T ′(xi− x).La nueva matriz de datos viene dada por

Y ′ = (y1, . . . , yn) = T ′(x1 − x, . . . , xn − x) (3.3)

Finalmente, si las variables vienen dadas en unidades muy distintas puede serconveniente sustituir la matriz de covarianzas (poblacional o muestral) por la co-rrespondiente matriz de correlaciones. De hecho, una de los inconvenientes de lascomponentes principales como un modo de reducir la dimension de los datos es preci-samente que obtenemos resultados distintos si utilizamos las componentes principa-les obtenidas a partir de la matriz de covarianzas o bien las componentes principalesobtenidas a partir de la matriz de correlaciones.

A partir de las d variables originales podemos obtener hasta d componentes prin-cipales. Sin embargo, hemos dicho que pretendemos reducir la dimension del vectorde datos. La pregunta a responder es: ¿con cuantas componentes nos quedamos?

Supongamos que estamos trabajando con la matriz de covarianzas Σ. Hemosde recordar que var(yj) = λj y que

∑dj=1 var(xj) =

∑dj=1 var(yj) =

∑dj=1 λj . En

consecuencia se suelen considerar los siguientes cocientes

∑kj=1 λj

∑dj=1 λj

, con k = 1, . . . , d,

de modo que, cuando para un cierto valor de k, estamos proximos a la unidad nosquedamos con ese valor de k. En la version muestral trabajaremos o bien con losvalores propios de la matriz de covarianzas muestral o la matriz de correlacionesmuestrales.

Nota de R 10 (notaR143) Veamos graficamente el significado de las componen-tes principales si suponemos que tenemos dos variables. Generamos (con [7]) unamuestra de tamano 100 con una distribucion normal bivariante. Para conseguir quela matriz de covarianzas sea definida positiva lo que hacemos es considerar la tras-puesta de la matriz por la propia matriz, A′A, siendo A una matriz dada. Generamos(con el paquete mvtnorm [7]) y representamos los datos.

> library(mvtnorm)

> sigma0 = matrix(c(1, 6, 6, 16), ncol = 2, byrow = T)

> sigma0 = crossprod(t(sigma0), sigma0)

> x = rmvnorm(n = 100, mean = c(1, 1), sigma = sigma0)

> plot(x)

2

Page 45: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−15 −10 −5 0 5 10 15 20

−40

−20

020

40

x[,1]

x[,2

]

Ya tenemos los datos generados y podemos calcular las componentes principales.

> x.pc = princomp(x)

Los vectores ortonormales tj son los siguientes

> x.pc$loadings

Loadings:

Comp.1 Comp.2

[1,] 0.331 -0.944

[2,] 0.944 0.331

Comp.1 Comp.2

SS loadings 1.0 1.0

Proportion Var 0.5 0.5

Cumulative Var 0.5 1.0

Representamos las rectas con estos vectores directores.

> plot(x)

> abline(h = 0)

> abline(v = 0)

> abline(a = 0, b = x.pc$loadings[2, 1]/x.pc$loadings[1, 1], lty = 2)

3

Page 46: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−15 −10 −5 0 5 10 15 20

−40

−20

020

40

x[,1]

x[,2

]

Y ahora un resumen de las varianzas explicadas por cada una de las componen-tes.

> summary(x.pc)

Importance of components:

Comp.1 Comp.2

Standard deviation 19.9679198 1.120188608

Proportion of Variance 0.9968627 0.003137271

Cumulative Proportion 0.9968627 1.000000000

Es claro que con nos quedarıamos con una sola componente. La segunda proporcionainformacion redundante.

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR143.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR143_wc. R

Nota de R 11 (notaR301) Vamos a realizar unas componentes principales a par-tir de las cuatro variables de los datos iris.

En principio utilizamos la matriz de covarianzas muestral. Notemos que la fun-cion princomp utiliza la matriz dividida por el tamano muestral menos uno (n−1).

Empezamos leyendo los datos y seleccionando las columnas adecuadas.

> library(MASS)

> data(iris)

> ir = iris[, 1:4]

> ir.species = c(rep("s", 50), rep("c", 50), rep("v", 50))

Aplicamos unas componentes principales utilizando en lugar de los datos origi-nales su logaritmo. Notemos que indicamos explıcitamente que se utiliza la matrizde covarianzas y no la de correlaciones. Es la opcion por defecto.

4

Page 47: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> ir.pca = princomp(log(ir), cor = F)

En el siguiente resumen tenemos las desviaciones estandar, las proporcionesde varianza explicada por cada componente y la proporcion acumulada de estasproporciones.

> summary(ir.pca)

Importance of components:

Comp.1 Comp.2 Comp.3 Comp.4

Standard deviation 1.1427311 0.13789069 0.13480585 0.053629741

Proportion of Variance 0.9702335 0.01412726 0.01350223 0.002136976

Cumulative Proportion 0.9702335 0.98436079 0.99786302 1.000000000

Podemos obtener un diagrama de barras con las varianzas de cada componenteutilizando la funcion plot.

> plot(ir.pca)

Comp.1 Comp.2 Comp.3 Comp.4

ir.pca

Var

ianc

es

0.0

0.2

0.4

0.6

0.8

1.0

1.2

La base ortonormal con la transformacion la obtenemos con loadings(ir.pca)Las componentes principales las obtenemos con la funcion predict. Vemos las

componentes de las seis primeras observaciones.

> ir.pc = predict(ir.pca)

> ir.pc[1:6, ]

Comp.1 Comp.2 Comp.3 Comp.4

[1,] -1.6736850 0.02055683 -0.06042345 0.015217731

[2,] -1.6688436 -0.06797029 0.06921821 0.041588345

[3,] -1.7142099 0.02006252 0.07515646 0.002209602

[4,] -1.6422467 -0.09648282 0.04725452 -0.046865053

[5,] -1.6773055 0.03675822 -0.07085250 -0.013090995

[6,] -0.9833353 0.25757951 -0.06701669 -0.002697639

5

Page 48: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Podemos representar las dos primeras componentes principales.

> eqscplot(ir.pc[, 1:2], type = "n", xlab = "Primera componente principal",

+ ylab = "Segunda componente principal")

> text(ir.pc[, 1:2], ir.species)

−2.0 −1.5 −1.0 −0.5 0.0 0.5 1.0

−1.

5−

1.0

−0.

50.

00.

51.

01.

5

Primera componente principal

Seg

unda

com

pone

nte

prin

cipa

l

ss

sss

ss

ss

s

ss

ss

s

ss

ss

s

s

ss s

ss

s

ssss

s

s

s

sss

s

ss

s

ss

s

ssssss ccc

cccc

c cc

c

c

c

cc cc

c cc

cc

cccc

cccc cc

c cccc

c

ccc

ccc ccccc c

vv vv

vvv

vv

vvv

vvvv

vv

vv

vv

vv

vvvv v

v vvv

vv

vv

vv v vvv

vvv

vv

vv

Repetimos el analisis anterior utilizando en lugar de la matriz de covarianzas,la matriz de correlaciones.

> ir.pca = princomp(log(ir), cor = T)

> summary(ir.pca)

Importance of components:

Comp.1 Comp.2 Comp.3 Comp.4

Standard deviation 1.7124583 0.9523797 0.36470294 0.1656840

Proportion of Variance 0.7331284 0.2267568 0.03325206 0.0068628

Cumulative Proportion 0.7331284 0.9598851 0.99313720 1.0000000

> ir.pc = predict(ir.pca)

> eqscplot(ir.pc[, 1:2], type = "n", xlab = "Primera componente principal",

+ ylab = "Segunda componente principal")

> text(ir.pc[, 1:2], ir.species)

6

Page 49: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−3 −2 −1 0 1 2

−2

−1

01

23

Primera componente principal

Seg

unda

com

pone

nte

prin

cipa

l

s

ss

s

s

s

ss

s

s

s

s

s

s

s

s

s

s

s

s

s

s

sss

s

sss

ss

s

s

s

ss

ss

s

ss

s

s

s

s

s

s

s

s

s

cc c

c

c

c

c

c

c

c

c

c

c

cc

c

c

c

c

c

c

c

c

c

cc

c

c

c

c

cc

cc

c

cc

c

c

cc

c

c

c

c

cc

c

c

c

v

v

v

vv

v

v

v

v

v

v

v

v

v

v

v

v

v

v

v

v

v

v

v

v v

v

vv

vv

v

vv

v

vv

v

v

vvv

v

vv

v

v

v

v

v

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR301.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR301_wc. R

7

Page 50: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

8

Page 51: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 4

Regresion

El problema que se trata en este tema es basico. Estudiar relaciones entre unavariable que llamaremos variable respuesta y una (o mas de una) variable que lla-maremos variables predictoras. Tambien se utilizan las denominaciones de variabledependiente para la variable respuesta y variables independientes en lugar en pre-dictoras.

Si denotamos a la variable respuesta por Y (al valor observado lo denotaremospor y) y a la variable predictora por X nuestro problema es intentar conocer el valorde Y cuando conocemos el valor de la variable X .

Nota de R 12 (notaR100) El primer conjunto de datos fueron publicados porFisher[6]. El fichero contiene tres variables correspondientes al peso del corazon, elpeso del cuerpo y el sexo de una muestra de gatos. Tenemos 47 hembras y de 97machos.

> library(MASS)

> attach(cats)

> names(cats)

Empezamos representando el peso del corazon frente al peso del cuerpo para lashembras.

> plot(Bwt[Sex == "F"], Hwt[Sex == "F"])

1

Page 52: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

2.0 2.2 2.4 2.6 2.8 3.0

78

910

1112

13

Bwt[Sex == "F"]

Hw

t[Sex

==

"F

"]

Repetimos el dibujo para los machos.

> plot(Bwt[Sex == "M"], Hwt[Sex == "M"])

2.0 2.5 3.0 3.5

68

1012

1416

1820

Bwt[Sex == "M"]

Hw

t[Sex

==

"M

"]

Nuestro problema es intentar predecir el peso del corazon a partir del peso delcuerpo. Ademas parece razonable plantearse si esta relacion es similar para machos

2

Page 53: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

y hembras.http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR100.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR100_wc. R

Nota de R 13 (notaR101) Tenemos velocidades y tiempos de parada de una se-rie de vehıculos.

> require(stats)

En abscisas consideramos las velocidades y en ordenadas los tiempos de parada.

> plot(cars, xlab = "Speed (mph)", ylab = "Stopping distance (ft)",

+ las = 1)

5 10 15 20 25

0

20

40

60

80

100

120

Speed (mph)

Sto

ppin

g di

stan

ce (

ft)

La pregunta es si podemos predecir de algun modo el tiempo de parada a partirde la velocidad del vehıculo.

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR101.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR101_wc. R

En este tema utilizamos de un modo importante el paquete faraway [5].

4.1. Regresion lineal simple

En todos los ejemplos antes comentados el problema comun es determinar el va-lor de Y a partir del valor de X . Obviamente la respuesta mas simple serıa buscaruna funcion que podemos denotar por f de modo que para un valor dado x simple-mente calculamos y = f(x). Un poco de imaginacion y conocimiento de la posiblerelacion entre x e y podrıan darnos una idea de que funcion f buscar. Este plantea-miento es de base muy restrictivo. ¿Por que? Pues en primer lugar porque estamosasumiendo que, para un valor de x, existe un unico valor de y asociado. Y esto

3

Page 54: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

nunca (o casi) es ası. Un detalle, a veces X es una variable aleatoria que observa-mos simultaneamente con Y , en otras ocasiones es un valor que nosotros prefijamos(dosis de medicacion, tratamiento en un problema de diseno de experimentos). Sinembargo, desde el punto de vista de la regresion X siempre lo consideramos fijo yestudiamos como se comporta Y dado el valor de X = x. Es decir, de la distribucioncondicionada de Y al valor de X = x.

Un ejemplo muy famoso de Galton. Se tomaba como variable predictora la es-tatura del padre y como variable respuesta o a predecir, la estatura de un hijo. Esclaro que para un mismo padre la estatura de sus hijos es variable. No todos los hijosde un mismo padre miden lo mismo. No tiene ningun sentido asumir una relacionfuncional entre la estatura de un padre y la de un hijo.

Tan tontos no son los estadısticos (que no estadistas). De hecho, lo que se mo-deliza es la relacion entre el valor x y el valor medio de la variable Y dado esevalor x. Siguiendo con el ejemplo de Galton. Si consideramos un padre de estaturaX = 178 centımetros. Supondremos que la media de la variable Y que nos da laestatura aleatoria de un hijo es la que se relaciona con x. Denotemos por E[Y | x]esta media (estatura media de todos los hijos de un padre con estatura 178 centı-metros). Hemos de admitir que ademas de lo que mide el padre, algo tendra quedecir la madre, y tambien otros muchos factores que todos podemos imaginar. Demodo que Y , conocida la estatura del padre, sigue siendo una cantidad aleatoria.De hecho, se asume que la distribucion de Y es normal cuya media depende de Y ,E[Y | x], pero cuya varianza no depende de x, es decir, es una cantidad constanteque denotaremos por σ2. En resumen, estamos asumiendo que

Y ∼ N(E[Y | x], σ2). (4.1)

En el modelo de regresion mas simple con el que se trabaja se asume que la mediacondicionada E[Y | x] es una funcion lineal de x, en otras palabras, se asume que

E[Y | x] = β0 + β1x. (4.2)

Las hipotesis asumidas en 4.1 y 4.2, podemos expresarlas conjuntamente diciendoque la variable respuesta Y se puede expresar como

Y = β0 + β1x + ǫ, (4.3)

dondeǫ ∼ N(0, σ2). (4.4)

En la formulacion de 4.3 expresamos el valor aleatorio de Y como suma de unaparte que sistematicamente depende de x (la componente sistematica del modelo)y un termino aleatorio con distribucion normal, un termino de error o desajuste delmodelo. En esta variable normal con media cero y varianza constante σ2 estamosincluyendo todas las posibles causas que influyen el valor de Y y que no vienendadas por la variable predictora.

No consideramos un solo valor aleatorio de Y dado un valor fijo de x. Realmente,tenemos n valores observados cuyos valores son independientes entre sı pero notienen la misma distribucion. Hemos de pensar que cad a Yi tiene una variablepredictora distinta que influye en la distribucion de Yi. Tenemos pares (xi, Yi) dondela xi viene dada y consideramos la distribucion de Yi condicionada a xi, es decir,Yi | xi.

Resumiendo, estamos asumiendo que Yi ∼ N(β0+β1xi, σ2) y que los distintos Yi

son independientes entre si. Utilizando propiedades de la distribucion normal multi-variante tenemos que estas hipotesis las podemos expresar conjuntamente diciendoque

Y ∼ Nn(Xβ, σ2In×n), (4.5)

4

Page 55: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

donde

Y =

Y1

...Yn

X =

1 x1

......

1 xn

β =

[β0

β1

]

Si consideramos que

ǫ =

ǫ1...

ǫn

donde los ǫi ∼ N(0, σ2) e independientes entre si. Entonces el modelo dado en 4.5lo podemos reescribir como

Y = Xβ + ǫ, (4.6)

con ǫ ∼ Nn(0, σ2In×n).Este modelo probabilıstico es conocido como el modelo de regresion lineal

simple. No lo estudiaremos en mas detalle porque nos vamos a ocupar de la situa-cion mas general en que tenemos mas de una variable predictora. No es mas queun caso particular y sin mucha dificultad adicional se puede estudiar el situaciongeneral de regresion lineal multiple.

4.2. Regresion lineal multiple

Pretendemos determinar la relacion que liga a una variable respuesta Y comofuncion de p − 1 variables predictoras, x1, . . . , xp−1. Siguiendo el razonamiento an-terior podemos plantearnos un modelo muy general como el que sigue.

Y = f(x1, . . . , xn) + ǫ, (4.7)

donde f es una funcion desconocida y ǫ es el termino del error. Vamos a asumiruna situacion mas simple. En concreto que la funcion f es lineal de modo que larelacion serıa Y = β0 + β1x1 + . . . + βp−1xp−1. Realmente observamos n vectores(yi, xi1, . . . , xi,p−1) en consecuencia nuestro modelo estocastico ha de considerar elmodelo para los n valores aleatorios Yi, donde cada Yi tiene asociado un vector xi.Vamos a suponer que para una combinacion de valores (xi1, . . . , xi,p−1) vamos aobservar un valor aleatorio Yi con distribucion normal cuya media es β0 + β1xi1 +. . .+βp−1xi,p−1 y cuya varianza va a ser constante e igual a σ2. Ademas los distintosYi son independientes entre si.

Vamos a formular conjuntamente estas hipotesis. Denotaremos

Y =

Y1

...Yn

X =

1 x11 . . . x1,p−1

......

...1 xn1 . . . xn,p−1

β =

β0

β1

...βp−1

ǫ =

ǫ1...

ǫn

El modelo estocastico basico es el que sigue

Y = Xβ + ǫ. (4.8)

En este modelo a Xβ le llamaremos la parte sistematica mientras que ǫ es la com-ponente aleatoria del modelo. Estamos expresando los datos como la suma de unaparte sistematica mas una parte aleatoria. La parte sistematica es la media del vec-tor Y . Notemos que la dimension del espacio en que estamos trabajando es n, elnumero de observaciones. El vector de medias o parte sistematica del modelo tienedimension p por lo que la parte no explicada, el residuo, tiene dimension n − p.

5

Page 56: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Espacioengendradopor X

yResiduo

Valor ajustado

Figura 4.1: Expresamos la observacion y como suma ortogonal de una parte siste-matica mas un residuo.

4.3. Estimacion de β

¿Como estimamos los parametros β? Nuestros datos son (yi, xi1, . . . , xi,p−1) coni = 1, . . . , n. Nuestro objetivo es estimar los coeficientes β de modo que Xβ esteproximo a y. En concreto vamos a minimizar

n∑

i=1

ǫ2i = ǫ′ǫ = (y − Xβ)′(y − Xβ). (4.9)

Si desarrollamos la expresion anterior tendremos que

(y − Xβ)′(y − Xβ) = y′y − 2β′X ′y + +β′X ′Xβ.

Diferenciando respecto de los distintos βj e igualando a cero nos da el siguientesistema de ecuaciones normales:

X ′Xβ = X ′y. (4.10)

Si asumimos que la matriz X ′X es una matriz no singular entonces tendremos que

β = (X ′X)−1X ′y, (4.11)

y en consecuencia se sigue que

Xβ = X(X ′X)−1X ′y = Hy. (4.12)

La matriz H = X(X ′X)−1X ′y = Hy es la matriz de proyeccion de y sobre el espacioengendrado por los p vectores columna de la matriz X . Es una matriz n × n.

Utilizando la matriz H podemos calcular las predicciones para cada una de losxi originales. Vienen dadas por

y = Hy = Xβ. (4.13)

Tambien tenemos los residuos, esto es, las diferencias entre los valores observadosoriginalmente y las predicciones que de ellos hacemos. Los residuos en terminos dela matriz H vienen dados por

ǫ = y − Hy = (I − H)y. (4.14)

Finalmente, hemos determinado los coeficientes que nos minimizaban la suma decuadrados. El valor mınimo que hemos obtenido que recibe el nombre de suma decuadrados residual o suma de cuadrados del error que viene dada por

SS(Error) =

n∑

i=1

(yi − yi)2, (4.15)

6

Page 57: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

y serıa, como funcion de la matriz H ,

ǫ′ǫ = y′(I − H)(I − H)y = y′(I − H)y. (4.16)

Veamos una interpretacion geometrica que nos ayude a entender que son los estima-dores mınimo cuadraticos que utilizamos. Estamos minimizando (y−Xβ)′(y−Xβ).Si vemos la figura 4.1 el valor de β que nos da el mınimo coincide con el punto quenos da la proyeccion ortogonal de y sobre el plano que viene engendrado por lascolumnas de la matriz X . De este modo es claro que

(y − y1n)′(y − y1n) = (y − Xβ)′(y − Xβ) + (y − y1n)′(y − y1n). (4.17)

o de otro modo la ecuacion anterior la podemos expresar como

n∑

i=1

(yi − y)2 =

n∑

i=1

(yi − yi)2 +

n∑

i=1

(yi − y)2. (4.18)

Las sumas de cuadrados que acabamos de considerar reciben la siguiente denomi-nacion:

Suma de cuadrados total

SS(Total) = (y − y1n)′(y − y1n) =

n∑

i=1

(yi − y)2. (4.19)

Suma de cuadrados del error

SS(Error) = (y − Xβ)′(y − Xβ) =

n∑

i=1

(yi − yi)2. (4.20)

Suma de cuadrados de la regresion

SS(Regresion) = (y − y1n)′(y − y1n) =

n∑

i=1

(yi − y)2. (4.21)

4.4. Algunos casos particulares

Supongamos en primer lugar la situacion en que no tenemos ningun predictor.Esto es, nuestro modelo es Y = µ + ǫ. En este caso se tiene que la matriz de disenoX = 1n = (1, . . . , 1)′, X ′X = n y, finalmente, β = (X ′X)−1X ′y = 1

n1′ny = y.El segundo ejemplo que podemos considerar serıa con una sola variable pre-

dictora o lo que es lo mismo, el modelo de regresion lineal simple. En este caso,tendremos

Y1

...Yn

=

1 x1

......

1 xn

[β0

β1

]+

ǫ1...

ǫn

Notemos que podemos hacer Yi = β0 + β1x + β1(xi − x) + ǫi. Nuestra matriz dediseno serıa

X =

1 x1 − x...

...1 xn − x

7

Page 58: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

con

X ′X =

[n 00

∑ni=1(xi − x)2

]

Finalmente se comprueba sin dificultad que

β =

∑ni=1(xi − x)yi∑ni=1(xi − x)2

(4.22)

4.5. Verosimilitud

Dados los datos (xi, yi) con i = 1, . . . , n la verosimilitud de y = (y1, . . . , yn)′

vendrıa dada por

L(β, σ) =1

(2π)n2 σn

exp− 1

2σ2(y − Xβ)′(y − Xβ) (4.23)

y la logverosimilitud serıa

l(β, σ) =n

2log(2π) − n log σ − 1

2σ2(y − Xβ)′(y − Xβ). (4.24)

El estimador maximo verosımil de β se obtiene maximizando cualquiera de las dosfunciones anteriores. Es obvio que el maximo respecto de β se obtiene como elvalor que minimiza (y − Xβ)′(y − Xβ), en definitiva, que los estimadores maximoverosımiles no son mas que los estimadores mınimo cuadraticos.

4.6. Algunos ejemplos

Nota de R 14 (notaR118) En este banco de datos (Orange) tenemos la variablepredictora que nos da la edad del arbol y como variable respuesta la circunferenciadel arbol.

Obtenemos el ajuste de regresion lineal simple con la funcion lm. La salida basicaque produce nos muestra los estimadores mınimo cuadraticos de los coeficientes β.Vemos tambien como obtener las predicciones y los residuos observados. Finalmentemostramos los residuos frente a las predicciones de los valores. En principio, bajola hipotesis de que el error tiene varianza constante no debieramos de observarresiduos mayores cuando las predicciones son mayores. En este caso parece que esesto lo que observamos.

Leemos los datos.

> data(Orange)

> attach(Orange)

Representamos en abscisas la edad y en ordenadas el numero de anillos. Ajus-tamos el modelo de regresion lineal simple y anadimos la recta de regresion a losdatos.

> plot(age, circumference)

> lm(circumference ~ age, data = Orange)

Call:

lm(formula = circumference ~ age, data = Orange)

Coefficients:

(Intercept) age

17.3997 0.1068

8

Page 59: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> abline(lm(circumference ~ age, data = Orange))

500 1000 1500

5010

015

020

0

age

circ

umfe

renc

e

Vamos a explorar la informacion que podemos obtener del ajuste.

> orange.lm = lm(circumference ~ age, data = Orange)

> attributes(orange.lm)

£names

[1] "coefficients" "residuals" "effects" "rank"

[5] "fitted.values" "assign" "qr" "df.residual"

[9] "xlevels" "call" "terms" "model"

£class

[1] "lm"

Los valores ajustados o predicciones los obtenemos con

> orange.lm$fitted.values

1 2 3 4 5 6 7 8

29.99855 69.07649 88.29515 124.59706 148.83392 163.88854 186.31030 29.99855

9 10 11 12 13 14 15 16

69.07649 88.29515 124.59706 148.83392 163.88854 186.31030 29.99855 69.07649

17 18 19 20 21 22 23 24

88.29515 124.59706 148.83392 163.88854 186.31030 29.99855 69.07649 88.29515

25 26 27 28 29 30 31 32

124.59706 148.83392 163.88854 186.31030 29.99855 69.07649 88.29515 124.59706

33 34 35

148.83392 163.88854 186.31030

Y los residuos observados se obtiene con

9

Page 60: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> orange.lm$residuals

1 2 3 4 5

0.001451402 -11.076487573 -1.295146086 -9.597056609 -28.833920400

6 7 8 9 10

-21.888536235 -41.310304499 3.001451402 -0.076487573 22.704853914

11 12 13 14 15

31.402943391 23.166079600 39.111463765 16.689695501 0.001451402

16 17 18 19 20

-18.076487573 -13.295146086 -16.597056609 -33.833920400 -24.888536235

21 22 23 24 25

-46.310304499 2.001451402 -7.076487573 23.704853914 42.402943391

26 27 28 29 30

30.166079600 45.111463765 27.689695501 0.001451402 -20.076487573

31 32 33 34 35

-7.295146086 0.402943391 -6.833920400 10.111463765 -9.310304499

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR118.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR118_wc. R

Nota de R 15 (notaR119) Vamos a trabajar con un banco de datos relativo aprecios de la vivienda. Es un fichero que viene con el paquete SPSS. Tenemos lassiguientes variables:

VALTERR Valor de tasacion del terreno.

VALMEJOR Valor de tasacion de las mejoras.

VALTOT Valor de tasacion total.

PRECIO Precio de venta.

TASA Razon del precio de venta sobre el valor de tasacion total.

BARRIO Barrio en el que se encuentra la vivienda.

Nos planteamos predecir el precio de venta de la vivienda utilizando como variablespredictoras el valor de tasacion del terreno y de las mejoras. Notemos que el valortotal no es mas que la suma de la tasacion del terreno mas el valor de las mejoras.

Comenzamos leyendo los datos. Notemos que por estar en formato de SPSSutilizamos el paquete foreign [2].

> library(foreign)

> x = read.spss(file = "../data/venta_casas.sav", to.data.frame = T)

> attach(x)

Nos planteamos predecir el precio de la vivienda utilizando como variables pre-dictoras el precio de terreno y el valor de las mejoras.

> (casas.lm = lm(precio ~ valterr + valmejor))

Call:

lm(formula = precio ~ valterr + valmejor)

Coefficients:

(Intercept) valterr valmejor

767.4080 3.1916 0.4779

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR119.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR119_wc. R

10

Page 61: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

4.7. Distribucion muestral de β

Hemos visto que β = (X ′X)−1X ′Y . Aplicando propiedades simples de la mediatenemos que

Eβ = (X ′X)−1X ′(EY ) = β, (4.25)

o, lo que es lo mismo, que β es un estimador insesgado de β, el estimador tienepor vector de medias el vector de parametros que estima. Es una buena propiedad.La matriz de covarianzas del error se obtiene facilmente como

var(β) = (X ′X)−1X ′(σ2I)X(X ′X)−1 = (X ′X)−1σ2. (4.26)

Esta matriz de covarianzas depende de la varianza desconocida del error σ2. Siestimamos esta varianza tendremos un estimador de dicha matriz de covarianzas.Se puede probar que

E[SS(Error)] = (n − p)σ2 (4.27)

de donde, un estimador insesgado para la varianza σ2 viene dado por

σ2 =ǫ′ǫ

n − p. (4.28)

Ya podemos estimar var(β). Este estimador serıa

var(β) = (X ′X)−1σ2. (4.29)

Si (X ′X)−1 = [aij ]i,j=1,...,p entonces el estimador de la varianza de βi, var(βi), serıa

aiiσ2. Recordemos que βi es un estimador insesgado de βi y por lo tanto su varianza

coincide con su error cuadratico medio. Finalmente el error estandar de βi, es decir,su desviacion tıpica (raız cuadrada de su varianza) serıa

SE(βi) =√

aiiσ. (4.30)

Realmente de β sabemos mas cosas: β = (X ′X)−1X ′Y y puesto que Y ∼Nn(Xβ, σ2In×n) entonces, por propiedades basicas de la distribucion normal mul-tivariante (ver apartado 1.4) se tiene que

β ∼ Np(β, (X ′X)−1σ2). (4.31)

Nota de R 16 (notaR121) Una vez realizado el ajuste con la funcion summarypodemos observar los valores estimados de σ (etiquetado como Residual standard

error y los errores estandar de βi.Veamos el resumen basico del ajuste de regresion donde la respuesta es el precio

de la vivienda y los predictores son el valor del terreno y el valor de las mejoras.

> summary(casas.lm)

Call:

lm(formula = precio ~ valterr + valmejor)

Residuals:

Min 1Q Median 3Q Max

-153634.1 -10451.5 -575.7 8689.8 356418.3

Coefficients:

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

11

Page 62: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

(Intercept) 7.674e+02 1.290e+03 0.595 0.552

valterr 3.192e+00 5.339e-02 59.777 <2e-16 ***

valmejor 4.779e-01 2.552e-02 18.728 <2e-16 ***

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 28070 on 2437 degrees of freedom

Multiple R-squared: 0.6756, Adjusted R-squared: 0.6754

F-statistic: 2538 on 2 and 2437 DF, p-value: < 2.2e-16

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR121.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR121_wc. R

4.8. Bondad de ajuste

Hemos supuesto una relacion lineal entre la media de la variable respuesta y lasvariables predictoras. Asumiendo la relacion hemos considerado una funcion objetivoy minimizando dicha funcion hemos obtenido los estimadores mınimo cuadraticos.Sin embargo, la primera pregunta que hay que responder es: ¿tenemos un ajusterazonable? La respuesta se da utilizando medidas que comparan los valores observa-dos con las predicciones asumiendo el modelo, es decir, comparando yi con yi paralos distintos datos. En concreto, con diferencia la mas utilizada es el coeficientede determinacion que se denota por R2 y se define como

R2 = 1 −∑n

i=1(yi − yi)2

∑ni=1(yi − yi)2

= 1 − SS(Error)

SS(Total). (4.32)

Es habitual denominar a∑n

i=1(yi − yi)2, suma de cuadrados del error mientras

que a SS(Regresion) =∑n

i=1(yi − y)2 se le llama suma de cuadrados de laregresion. Tenemos pues que

R2 =

∑ni=1(yi − y)2∑ni=1(yi − yi)2

=SS(Regresion)

SS(Total). (4.33)

El ajuste que estamos realizando se supone que sera tanto mejor cuanto mas pe-quena sea SS(Error). Tampoco serıa natural que SS(Error) fuera nula pues serıatanto como asumir que los distintos valores aleatorios son iguales a su media. No-temos que SS(Total) es una cuantificacion de la variabilidad de los distintos yi sintener en cuenta las variables predictoras mientras que SS(Error) nos cuantifica lavariacion residual despues de utilizar las variables predictoras. Es de esperar que unmejor ajuste vaya acompanado de un valor de SS(Error) pequeno en relacion conSS(Total). Esa es la idea del coeficiente de determinacion. Toma valores entre 0 y1 y cuanto mas cerca de 1 mejor es el ajuste.

Tiene un pequeno inconveniente y es que no tiene en cuenta el numero de va-riables predictoras que estamos utilizando para predecir la variable respuesta. Unapequena modificacion de R2 para incorporar esta informacion es el coeficiente dedeterminacion ajustado que podemos denotar R2-ajustado y se define como

R2 − ajustado = 1 −∑n

i=1(yi − yi)2/(n − p)∑n

i=1(yi − y)2/(n − 1), (4.34)

donde suponemos que tenemos p − 1 variables predictoras.

12

Page 63: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

4.9. Valoracion de las hipotesis del modelo

Un modelo de regresion lineal multiple supone, como hemos visto, varias hipo-tesis. Es necesario valorar lo razonables, lo asumibles que son estas hipotesis. Lashipotesis del modelo que vamos a valorar son las siguientes:

1. ¿Tenemos errores independientes, con la misma varianza y con distribucionnormal? Esto es, nos preguntamos si es asumible la hipotesis ǫ ∼ Nn(0, σ2In×n).

2. Asumimos que E[Yi | xi] = β0 + β1xi1 + . . . + βp−1xi,p−1.

Los errores ǫ no son directamente observables. Observamos los residuos ǫ = y − yque no es lo mismo. Las propiedades de ambos vectores son distintas. En particular,estamos asumiendo que var(ǫ) = σ2In×n. Sin embargo, esta afirmacion no es ciertapara los residuos observados ǫ. Notemos que

y = X(X ′X)−1X ′y = Hy.

De modo que

ǫ = y − y = (I − H)y = (I − H)Xβ + (I − H)ǫ = (I − H)ǫ.

La tercera igualdad anterior es consecuencia de que HXβ = Xβ porque H es lamatriz de proyeccion sobre el espacio engendrado por las columnas de X y Xβ estaen este espacio por lo que la proyeccion es el propio punto. Notemos que I − Htambien es una matriz de proyeccion (sobre el espacio ortogonal al engendrado porlas columnas de X) de modo que (I − H)2 = I − H . Aplicando esta propiedad setiene que

var(ǫ) = var(I − H)ǫ = (I − H)σ2, (4.35)

ya que var(ǫ) = σ2In×n. Vemos pues que, aunque asumimos que los errores ǫ sonincorrelados y con la misma varianza, esto no es cierto para los residuos ǫ.

Homogeneidad de la varianza

La mera observacion de los residuos sin considerar su posible asociacion con otravariable no nos proporciona informacion sobre si la varianza de los mismos es cons-tante. Hemos de considerarlos en relacion con otras variables. Es habitual considerarun diagrama de puntos de los residuos ǫ como funcion de las predicciones y. Cuan-do la varianza es constante debemos de observar los residuos dispersos de un modoaleatorio respecto del eje de abscisas. Tambien podemos ver un comportamiento noaleatorio alrededor del eje de abscisas cuando la parte estructural del modelo no eslineal, es decir, cuando no se verifica que EY = Xβ.

Nota de R 17 (notaR122) Los datos que vamos a utilizar para valorar las hi-potesis del modelo son los datos savings contenido en la librerıa faraway ([5]). Sepretende estudiar la relacion que liga la fraccion de ahorro con la proporcion depoblacion menor de 15 anos, mayor de 75 y las variables dpi y ddpi. El siguientediagrama de puntos muestra en abscisas las predicciones y en ordenadas los residuos.No parece en principio que no podamos asumir una varianza constante. Vemos tam-bien que nos indica los tres paıses con los residuos mas extremos: Chile, Filipinasy Zambia.

> library(faraway)

> data(savings)

> attach(savings)

Hacemos el ajuste lineal.

13

Page 64: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> savings.lm = lm(sr ~ pop15 + pop75 + dpi + ddpi, savings)

Notemos que elegimos el primer dibujo.

> plot(savings.lm, which = 1)

6 8 10 12 14 16

−10

−5

05

10

Fitted values

Res

idua

ls

lm(sr ~ pop15 + pop75 + dpi + ddpi)

Residuals vs Fitted

Zambia

Chile

Philippines

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR122.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR122_wc. R

Cuando no tenemos una varianza constante una opcion es transformar las varia-bles. Si y es la variable original y h(y) la transformada queremos determinar h demodo que la transformada tenga varianza constante. Transformaciones habitualesque podemos valorar son la raız cuadrada o el logaritmo de la variable respuesta.

¿Que tipo de representacion cabe esperar cuando la varianza no es constante?Veamos distintas representaciones de los residuos frente a los valores ajustados co-rrespondiendo a varianza constante, varianzas no constantes y situaciones en queno hay linealidad.

Nota de R 18 (notaR123) Ilustramos como observarıamos residuos cuya varian-za es constante. En la siguiente figura tenemos 50 posibles residuos en donde lavarianza es constante.

> par(mfrow = c(2, 2))

> for (i in 1:4) plot(1:50, rnorm(50))

14

Page 65: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

0 10 20 30 40 50

−1

01

2

1:50

rnor

m(5

0)

0 10 20 30 40 50

−2

−1

01

2

1:50

rnor

m(5

0)

0 10 20 30 40 50

−2

01

2

1:50

rnor

m(5

0)

0 10 20 30 40 50

−2

−1

01

2

1:50

rnor

m(5

0)

En la siguiente figura tenemos como abscisas valores que van de 1 a 50 enincrementos unitarios. El valor de residuo que generamos tienen varianza creciente.En concreto vamos multiplicando el valor con distribucion N(0, 1) por una constantec. La varianza es del orden del cuadrado del valor por el que multiplicamos.

> par(mfrow = c(2, 2))

> for (i in 1:4) plot(1:50, (1:50) * rnorm(50))

15

Page 66: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

0 10 20 30 40 50

−60

−20

20

1:50

(1:5

0) *

rno

rm(5

0)

0 10 20 30 40 50

−40

020

60

1:50

(1:5

0) *

rno

rm(5

0)

0 10 20 30 40 50

−50

050

1:50

(1:5

0) *

rno

rm(5

0)

0 10 20 30 40 50

−10

00

50

1:50

(1:5

0) *

rno

rm(5

0)

En la siguiente figura los valores por los que multiplicamos son 1,√

2,√

3, . . . ,√

50por lo que las varianzas se incrementan muy menos de una abscisa a la siguiente.

> par(mfrow = c(2, 2))

> for (i in 1:4) plot(1:50, sqrt((1:50)) * rnorm(50))

0 10 20 30 40 50

−10

−5

05

10

1:50

sqrt

((1:

50))

* r

norm

(50)

0 10 20 30 40 50

−10

05

10

1:50

sqrt

((1:

50))

* r

norm

(50)

0 10 20 30 40 50

−10

05

1015

1:50

sqrt

((1:

50))

* r

norm

(50)

0 10 20 30 40 50

−10

05

1015

1:50

sqrt

((1:

50))

* r

norm

(50)

16

Page 67: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Finalmente en la siguiente figura mostramos un ejemplo de un residuo no lineal.Es un caso en que no podemos suponer que la media es una funcion lineal de lospredictores.

> par(mfrow = c(2, 2))

> for (i in 1:4) plot(1:50, cos((1:50) * pi/25) + rnorm(50))

0 10 20 30 40 50

−2

01

23

1:50

cos(

(1:5

0) *

pi/2

5) +

rno

rm(5

0)

0 10 20 30 40 50

−2

01

2

1:50

cos(

(1:5

0) *

pi/2

5) +

rno

rm(5

0)

0 10 20 30 40 50

−3

−1

01

2

1:50

cos(

(1:5

0) *

pi/2

5) +

rno

rm(5

0)

0 10 20 30 40 50

−2

01

23

1:50

cos(

(1:5

0) *

pi/2

5) +

rno

rm(5

0)

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR123.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR123_wc. R

Normalidad

La siguiente hipotesis a valorar es la normalidad de los errores. La herramientagrafica mas habitual es el dibujo q-q o la representacion cuantil-cuantil. Ordenamoslos residuos y representamos los residuos ordenados en funcion de Φ−1( i

n+1 ) parai = 1, . . . , n. Si los residuos tienen una distribucion normal entonces deben estaralineados. El histograma no es muy adecuado para ver la normalidad de los residuos.

Nota de R 19 (notaR124) Para los datos savings representamos un dibujo q-q. En la figura que sigue mostramos como hacerlo despues de ajustar el modelo yutilizando la funcion plot (realmente estamos utilizando plot.lm).

> plot(savings.lm, which = 2)

17

Page 68: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−2 −1 0 1 2

−2

−1

01

23

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

lm(sr ~ pop15 + pop75 + dpi + ddpi)

Normal Q−Q

Zambia

Chile

Philippines

En la siguiente figura aparece un dibujo q-q utilizando las funciones qqnorm queconstruye el dibujo y qqline que anade una lınea uniendo el primer y tercer cuartil.Como vemos es el mismo dibujo.

> qqnorm(residuals(savings.lm), ylab = "Residuos")

> qqline(residuals(savings.lm))

18

Page 69: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−2 −1 0 1 2

−5

05

10

Normal Q−Q Plot

Theoretical Quantiles

Res

iduo

s

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR124.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR124_wc. R

Hemos visto como es una dibujo q-q cuando tenemos normalidad. Pero: ¿y quepasa cuando no tenemos normalidad. Esto es lo interesante saber que tenemos quebuscar para detectar que los residuos no siguen una distribucion normal.

Nota de R 20 (notaR125) Veamos como se modifican los dibujos q-q con otrasdistribuciones de probabilidad. En esta nota consideramos cuatro distribuciones deprobabilidad. En la siguiente aparecen las densidades de los modelos considerados. Laprimera es la correspondiente a la distribucion normal. Luego tenemos la lognormal,la densidad de una Cauchy y la densidad uniforme. La lognormal se toma comoejemplo de distribucion asimetrica, la Cauchy como ejemplo de una distribucioncon las colas mas largas que la normal y finalmente la uniforme como ejemplo dedistribucion con las colas mas cortas.

> par(mfrow = c(2, 2))

> curve(dnorm, xlim = c(-3, 3))

> curve(dlnorm, xlim = c(-3, 3))

> curve(dcauchy, xlim = c(-3, 3))

> curve(dunif, xlim = c(-3, 3))

19

Page 70: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−3 −2 −1 0 1 2 3

0.0

0.1

0.2

0.3

0.4

x

dnor

m (

x)

−3 −2 −1 0 1 2 3

0.0

0.2

0.4

0.6

x

dlno

rm (

x)

−3 −2 −1 0 1 2 3

0.05

0.15

0.25

x

dcau

chy

(x)

−3 −2 −1 0 1 2 3

0.0

0.4

0.8

x

duni

f (x)

En la figura que sigue tenemos nueve dibujos q-q realizados con datos simuladoscon una distribucion normal.

> par(mfrow = c(2, 2))

> for (i in 1:4)

+ residuos = rnorm(50)

+ qqnorm(residuos)

+ qqline(residuos)

+

20

Page 71: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−2 −1 0 1 2

−2

−1

01

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

−3

−2

−1

01

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

−1

01

2

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

−2

01

23

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

La figura que sigue muestra el dibujo q-q con datos simulados correspondientesa la distribucion lognormal.

> par(mfrow = c(2, 2))

> for (i in 1:4)

+ residuos = exp(rnorm(50))

+ qqnorm(residuos)

+ qqline(residuos)

+

21

Page 72: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−2 −1 0 1 2

05

1525

35

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

05

1015

20

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

01

23

45

6

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

02

46

810

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

La figura que sigue muestra el dibujo q-q con datos simulados correspondientesa la distribucion de Cauchy.

> par(mfrow = c(2, 2))

> for (i in 1:4)

+ residuos = rcauchy(50)

+ qqnorm(residuos)

+ qqline(residuos)

+

22

Page 73: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−2 −1 0 1 2

−40

040

80

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

−40

−20

020

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

−15

0−

500

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

−15

−5

05

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

La figura que sigue muestra el dibujo q-q con datos simulados correspondientesa la distribucion de uniforme.

> par(mfrow = c(2, 2))

> for (i in 1:4)

+ residuos = runif(50)

+ qqnorm(residuos)

+ qqline(residuos)

+

23

Page 74: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−2 −1 0 1 2

0.0

0.4

0.8

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

0.0

0.4

0.8

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

0.0

0.4

0.8

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

−2 −1 0 1 2

0.0

0.4

0.8

Normal Q−Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR125.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR125_wc. R

Como vemos no es simple la interpretacion de estos dibujos. Por ejemplo, no esfacil diferenciar entre una distribucion con colas mas largas de una situacion en don-de tenemos observaciones anomalas. ¿Como hacerlo? Si quitamos las observacionesextremas y aparecen otras estamos en una distribucion con colas largas.

Si tenemos muestras grandes el problema de la no normalidad se alivia. El pro-blema de la no normalidad es mayor para colas largas que para colas mas cortas.La asimetrıa se resolverıa transformando los datos.

Tambien podemos usar un test de normalidad. Un test de normalidad es uncualquier test estadıstico donde la hipotesis nula es que los datos observados (ennuestro caso los residuos observados) proceden de una distribucion normal. Unaopcion que viene implementada con la funcion shapiro.test es el test de Shapiro-Wilk.

Nota de R 21 (notaR126) Aplicamos un test de Shapiro-Wilks a los residuosobservados en el ajuste de los datos savings. Vemos que el p-valor observado es muygrande y no podemos rechazar la normalidad de los residuos.

> residuals(savings.lm)

Australia Austria Belgium Bolivia Brazil

0.8635798 0.6163860 2.2189579 -0.6983191 3.5528094

Canada Chile China Colombia Costa Rica

-0.3168924 -8.2422307 2.5360361 -1.4517071 5.1250782

Denmark Ecuador Finland France Germany

5.4002388 -2.4056313 -1.6810857 2.4754718 -0.1806993

Greece Guatamala Honduras Iceland India

-3.1161685 -3.3552838 0.7100245 -6.2105820 0.5086740

24

Page 75: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Ireland Italy Japan Korea Luxembourg

3.3911306 1.9267549 5.2814855 -6.1069814 -1.6708066

Malta Norway Netherlands New Zealand Nicaragua

2.9749098 -0.8717854 0.4255455 2.2855548 0.6463966

Panama Paraguay Peru Philippines Portugal

-3.2941656 -6.1257589 6.5394410 6.6750084 -0.7684447

South Africa South Rhodesia Spain Sweden Switzerland

0.4831656 1.2914342 -0.6711565 -4.2602834 2.4868259

Turkey Tunisia United Kingdom United States Venezuela

-2.6656824 -2.8179200 -2.6924128 -1.1115901 3.6325177

Zambia Jamaica Uruguay Libya Malaysia

9.7509138 -3.0185314 -2.2638273 -2.8295257 -2.9708690

> shapiro.test(residuals(savings.lm))

Shapiro-Wilk normality test

data: residuals(savings.lm)

W = 0.987, p-value = 0.8524

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR126.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR126_wc. R

Incorrelacion de los errores

Estamos asumiendo que los errores son incorrelados. La correlacion entrelos datos pueden venir de que han sido observados proximos bien en el tiempo bienen el espacio. ¿Como contrastar si los residuos son incorrelados?

Un test de la hipotesis de incorrelacion es el test de Durbin-Watson que utilizael siguiente estadıstico

DW =

∑ni=2(ǫi − ǫi−1)

2

∑ni=1 ǫ2i

, (4.36)

bajo la hipotesis nula de incorrelacion la distribucion es una combinacion lineal dedistintas distribuciones χ2.

Nota de R 22 (notaR127) Vamos a aplicar el test de Durbin-Watson de corre-lacion serial.

> library(lmtest)

Aplicamos el test de Durbin-Watson.

> dwtest(savings.lm)

Durbin-Watson test

data: savings.lm

DW = 1.9341, p-value = 0.3897

alternative hypothesis: true autocorrelation is greater than 0

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR127.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR127_wc. R

25

Page 76: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Observaciones anomalas y observaciones influyentes

Algunas observaciones no ajustan bien al modelo y son llamadas observacionesanomalas. Otras observaciones influyen mucho en el ajuste y lo modifican de unmodo substantivo. Estas ultimas reciben el nombre de observaciones influyentes.Una observacion dada puede ser o bien anomala o bien influyente o ambas cosas.

Empecemos estudiando que se entiende por influencia de una observacion. Lla-maremos a hi = Hii, esto es, el valor en la posicion (i, i) de la matriz H la influencia(leverage en ingles). Notemos que var(ǫi) = σ2(1 − hi). En consecuencia, una in-fluencia alta supone una varianza del correspondiente residuo baja. Forzamos alajuste a que este proximo a yi. Se tiene que

∑pi=1 hi = p. En consecuencia el valor

medio de los hi es p/n. Como una regla simple de aplicar si la influencia hi es mayorque 2p/n debemos de observar el dato con atencion. Buscamos valores grandes delas influencias.

Nota de R 23 (notaR128) Calculamos las influencias para los datos savings. Enla siguiente figura aparece una representacion de las influencias respecto de los re-siduos estandarizados.

Calculamos las influencias y las representamos.

> savings.inf = influence(savings.lm)

> savings.inf$hat

Australia Austria Belgium Bolivia Brazil

0.06771343 0.12038393 0.08748248 0.08947114 0.06955944

Canada Chile China Colombia Costa Rica

0.15840239 0.03729796 0.07795899 0.05730171 0.07546780

Denmark Ecuador Finland France Germany

0.06271782 0.06372651 0.09204246 0.13620478 0.08735739

Greece Guatamala Honduras Iceland India

0.09662073 0.06049212 0.06008079 0.07049590 0.07145213

Ireland Italy Japan Korea Luxembourg

0.21223634 0.06651170 0.22330989 0.06079915 0.08634787

Malta Norway Netherlands New Zealand Nicaragua

0.07940290 0.04793213 0.09061400 0.05421789 0.05035056

Panama Paraguay Peru Philippines Portugal

0.03897459 0.06937188 0.06504891 0.06425415 0.09714946

South Africa South Rhodesia Spain Sweden Switzerland

0.06510405 0.16080923 0.07732854 0.12398898 0.07359423

Turkey Tunisia United Kingdom United States Venezuela

0.03964224 0.07456729 0.11651375 0.33368800 0.08628365

Zambia Jamaica Uruguay Libya Malaysia

0.06433163 0.14076016 0.09794717 0.53145676 0.06523300

> plot(savings.lm, which = 5)

26

Page 77: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

0.0 0.1 0.2 0.3 0.4 0.5

−2

−1

01

23

Leverage

Sta

ndar

dize

d re

sidu

als

lm(sr ~ pop15 + pop75 + dpi + ddpi)

Cook’s distance

1

0.5

0.5

1

Residuals vs Leverage

Libya

Japan

Zambia

Notemos que Li-bia es el pais que tiene un mayor valor de la influencia.

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR128.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR128_wc. R

Otra posibilidad es para encontrar observaciones anomalas consiste en trabajarcon los residuos estudentizados. Veamos su definicion. Notemos que var(ǫi) = σ2(1−hi) lo que sugiere tomar

ri =ǫi

σ√

1 − hi

(4.37)

Estos son los residuos estudentizados. Si el modelo que asumimos es correcto enton-ces la varianza de estos residuos es uno y son aproximadamente incorrelados. Note-mos que la estudentizacion corrige las varianzas desiguales de los residuos cuandolas varianzas de los errores son iguales entre si. En otro caso esto no es cierto. Silas varianzas de los errores no son iguales (tenemos heterocedasticidad) entonces laestudentizacion no hace homogeneas las varianzas de los residuos.

Algunos autores (y programas) tienden a usar en lugar de los residuos originales,los residuos estudentizados.

Una observacion anomala es una observacion que no se ajusta a nuestro mo-delo. Hemos de protegernos frente a este tipo de puntos. Un test para observacionesanomalas es util si nos permite distinguir entre observaciones que son realmenteanomala y aquellas que simplemente tienen un residuo grande aunque no excepcio-nalmente grande.

Para detectar este tipo de puntos, lo que hacemos es excluir el punto i-esimo yajustamos el modelo sin ese punto obteniendo los estimadores β(i) y σ2

(i). Tendremospara el punto i-esimo la siguiente estimacion

y(i) = x′iβ(i). (4.38)

Si el valor yi − y(i) es grande entonces el caso i es una observacion anomala. Conobjeto de valorar si estos nuevos residuos son anormales hemos de estandarizarlos.

27

Page 78: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Notemos quevar(yi − y(i)) = σ2

(i)(1 + x′i(X

′(i)X(i))

−1xi)

de modo que podemos definir los residuos jackknife como

ti =yi − y(i)√

var(yi − y(i))=

yi − y(i)

σ(i)

√1 + x′

i(X′(i)X(i))−1xi

∼ tn−p−1,

asumiendo que el modelo es correcto. Se tiene la siguiente expresion

ti =ǫi

σ(i)

√1 − hi

= ri

(n − p − 1

n − p − r2i

)1/2

.

Puesto que cada uno de los ti sigue una distribucion conocida podemos contrastar sitenemos una observacion anomala. En principio el procedimiento serıa simplementefijar un nivel de significacion α y determinar el percentil 1 − α

2 de una distribuciont de Student con n − p − 1 grados de libertad. Si denotamos el percentil comotn−p−1,1−α

2entonces residuos que no esten en el intervalo [−tn−p−1,1−α

2, tn−p−1,1−α

2]

serıan sospechosos. Esto no es adecuado. Porque estamos analizando n residuosestudentizados. Con uno solo sı que serıa aplicable el razonamiento. Tenemos unproblema de muchos tests simultaneamente considerados. Si aplicamos la correccionde Bonferroni tendrıamos que corregir el nivel de significacion α y trabajar conα/n. Por tanto, consideramos como sospechosos aquellos residuos estandarizadosque esten fuera del intervalo [−tn−p−1,1− α

2n, tn−p−1,1− α

2n].

Nota de R 24 (notaR130) Calculamos para los datos savings los residuos estu-dentizados con la funcion rstudent. La pregunta que nos hacemos es si alguno deestos residuos es muy grande o muy pequeno. Comparamos el modulo de los residuosestandarizados con tn−p−1,1− α

2n.

> savings.rs = rstudent(savings.lm)

Comparamos los residuos con el percentil correspondiente.

> abs(savings.rs) > qt(1 - 0.05/(50 * 2), 44)

Australia Austria Belgium Bolivia Brazil

FALSE FALSE FALSE FALSE FALSE

Canada Chile China Colombia Costa Rica

FALSE FALSE FALSE FALSE FALSE

Denmark Ecuador Finland France Germany

FALSE FALSE FALSE FALSE FALSE

Greece Guatamala Honduras Iceland India

FALSE FALSE FALSE FALSE FALSE

Ireland Italy Japan Korea Luxembourg

FALSE FALSE FALSE FALSE FALSE

Malta Norway Netherlands New Zealand Nicaragua

FALSE FALSE FALSE FALSE FALSE

Panama Paraguay Peru Philippines Portugal

FALSE FALSE FALSE FALSE FALSE

South Africa South Rhodesia Spain Sweden Switzerland

FALSE FALSE FALSE FALSE FALSE

Turkey Tunisia United Kingdom United States Venezuela

FALSE FALSE FALSE FALSE FALSE

Zambia Jamaica Uruguay Libya Malaysia

FALSE FALSE FALSE FALSE FALSE

28

Page 79: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR130.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR130_wc. R

Un punto influyente es aquel que cuando lo quitamos causa una modificacionimportante del ajuste. Un punto influyente puede ser o no una observacion anomala,puede tener o no una alta influencia pero tendera a tener al menos una de las dospropiedades. El estadıstico de Cook es una de las maneras de medir la influencia.Se define como

Di =(yi − y(i))

′(yi − y(i))

pσ2=

1

pr2i

hi

1 − hi. (4.39)

Nota de R 25 (notaR129) Con los datos savings representamos las distanciasde Cook y las obtenemos utilizando la funcion Cooks.distance. Vemos Lıbia, Zambiay Japon son observaciones que influyen mucho en el ajuste. Habrıa que valorar elajuste con y sin estas observaciones.

> plot(savings.lm, which = 4)

0 10 20 30 40 50

0.00

0.05

0.10

0.15

0.20

0.25

Obs. number

Coo

k’s

dist

ance

lm(sr ~ pop15 + pop75 + dpi + ddpi)

Cook’s distance

Libya

Japan

Zambia

Tambien podemos ver los valores de la distancia de Cook.

> cooks.distance(savings.lm)

Australia Austria Belgium Bolivia Brazil

8.035888e-04 8.175997e-04 7.154674e-03 7.278744e-04 1.402735e-02

Canada Chile China Colombia Costa Rica

3.106199e-04 3.781324e-02 8.156984e-03 1.879460e-03 3.207537e-02

Denmark Ecuador Finland France Germany

2.879580e-02 5.818699e-03 4.364051e-03 1.547176e-02 4.736572e-05

Greece Guatamala Honduras Iceland India

1.590102e-02 1.067111e-02 4.741920e-04 4.352902e-02 2.965778e-04

Ireland Italy Japan Korea Luxembourg

29

Page 80: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

5.439637e-02 3.919100e-03 1.428162e-01 3.555386e-02 3.993882e-03

Malta Norway Netherlands New Zealand Nicaragua

1.146827e-02 5.558570e-04 2.744377e-04 4.379219e-03 3.226479e-04

Panama Paraguay Peru Philippines Portugal

6.333674e-03 4.157229e-02 4.401457e-02 4.522120e-02 9.733900e-04

South Africa South Rhodesia Spain Sweden Switzerland

2.405063e-04 5.267290e-03 5.659085e-04 4.055963e-02 7.334746e-03

Turkey Tunisia United Kingdom United States Venezuela

4.224370e-03 9.562447e-03 1.496628e-02 1.284481e-02 1.886141e-02

Zambia Jamaica Uruguay Libya Malaysia

9.663275e-02 2.402677e-02 8.532329e-03 2.680704e-01 9.113404e-03

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR129.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR129_wc. R

4.10. Inferencia sobre el modelo

Hemos formulado un modelo probabilıstico en donde relacionamos la variablerespuesta con una serie de variables predictoras. Es claro que el experimentadorintroduce en el modelo como variables predictoras variables que a priori sospechaque pueden ser relevantes a la hora de predecir. Esto no quiere decir que luegopodamos prescindir de alguna o algunas de ellas. Bien porque se demuestra quedicha variable no es relevante o bien porque la informacion que contiene esa variablepredictora esta contenida en las otras.

Supongamos que nos planteamos el siguiente contraste de hipotesis: H0 : βi1 =. . . = βir = 0 frente a la alternativa H1 : No H0. Si un coeficiente determinado βi esnulo entonces la variable respuesta Y no dependerıa de la variable asociada a dichocoeficiente. En definitiva, la hipotesis nula considerada se podrıa formular diciendoque la variable Y no depende de las variables xi1 , . . . , xir . ¿Como contrastar lashipotesis indicadas? Se puede hacer mediante el test del cociente de verosimilitudes,es decir, utilizando el estadıstico

Λ =max(β,σ)∈Ω0

L(β, σ)

max(β,σ)∈Ω L(β, σ)(4.40)

siendo L(β, σ) = 1

(2π)n2 σn

exp− 12σ2 (y − Xβ)′(y − Xβ), Ω0 = (β, σ) ∈ R

p ×(0, +∞) : βi1 = . . . = βir = 0 y Ω = R

p×(0, +∞). Como es habitual en un test delcociente de verosimilitudes rechazarıamos la hipotesis nula si Λ es pequeno (menorque una cierta constante) que se prueba es equivalente a que

SS(Error)Ω0 − SS(Error)ΩSS(Error)Ω

sea grande (mayor que una cierta constante). Denotamos por SS(Error)Ω0 la sumade cuadrados del error bajo la hipotesis nula y SS(Error)Ω la suma de cuadradossobre todo el espacio parametrico. Bajo la hipotesis nula se verifica que

SS(Error)Ω0 − SS(Error)Ωσ2r

∼ χ2r

ySS(Error)Ωσ2(n − p)

∼ χ2n−p

ademas ambas cantidades son independientes. Por ello se verifica que

F =(SS(Error)Ω0 − SS(Error)Ω)/r

(SS(Error)Ω)/(n − p)∼ Fr,n−p.

30

Page 81: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

De modo que rechazaremos la hipotesis nula de que H0 : βi1 = . . . = βir = 0 si

F > Fr,n−p,1−α

donde Fr,n−p,1−α es el percentil 1 − α de una F con r y n − p grados de libertad.¿Realmente depende la variable respuesta de alguna de las variables predictoras?

Realmente nos estamos planteando la hipotesis de que todos los coeficientes, salvo eltermino constante β0, valen cero, es decir, la hipotesis nula H0 : β1 = . . . = βp−1 = 0.En este caso tendremos que

F =((y − 1ny)′(y − 1ny) − (y − Xβ)′(y − Xβ))/(p − 1)

(y − Xβ)′(y − Xβ)/(n − p)∼ Fp−1,n−p.

Como segundo caso tendrıamos la situacion en que contrastamos que un solo coe-ficiente vale cero, es decir, la hipotesis nula H0 : βi = 0 frente a la alternativaH1 : βi 6= 0. Tenemos que bajo la hipotesis nula indicada

ti =βi

SE(βi)∼ tn−p

donde SE(βi) es el error estandar de βi y viene dado en ecuacion 4.30. Se tiene, dehecho, que

F = t2i .

Rechazaremos la hipotesis nula si

|ti| > tn−p,1−α2

o bien siF = t2i > F1,n−p,1−α

2.

Ambos procedimientos son equivalentes como se puede ver facilmente.

Nota de R 26 (notaR131) Utilizando los datos savings podemos ver en la ultimalınea el contraste de que todas las variables predictoras tienen su coeficiente asociadonulo. El p-valor es 0,0007904, es decir, es muy pequeno por lo que rechazamos la hi-potesis nula. Al menos una de las variables predictoras tiene su coeficiente asociadono nulo.

Cuando contrastamos la hipotesis de que cada coeficiente valga cero vemos queno podemos rechazarlo para las variables pop75 y dpi.

Realizamos un summary del modelo de regresion ajustado.

> summary(savings.lm)

Call:

lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = savings)

Residuals:

Min 1Q Median 3Q Max

-8.2422 -2.6857 -0.2488 2.4280 9.7509

Coefficients:

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

(Intercept) 28.5660865 7.3545161 3.884 0.000334 ***

pop15 -0.4611931 0.1446422 -3.189 0.002603 **

pop75 -1.6914977 1.0835989 -1.561 0.125530

dpi -0.0003369 0.0009311 -0.362 0.719173

31

Page 82: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

ddpi 0.4096949 0.1961971 2.088 0.042471 *

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 3.803 on 45 degrees of freedom

Multiple R-squared: 0.3385, Adjusted R-squared: 0.2797

F-statistic: 5.756 on 4 and 45 DF, p-value: 0.0007904

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR131.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR131_wc. R

Podemos tener intervalos de confianza para cada uno de los coeficientes βi.

Teniendo en cuenta que βi−βi

SE(βi)∼ tn−p entonces el intervalo de confianza al nivel

1 − α para el coeficiente βi serıa

βi ± tn−p,1−α2SE(βi).

Nota de R 27 (notaR132) Calculamos los intervalos de confianza para los coe-ficientes de savings con la funcion confint.

> confint(savings.lm)

2.5 % 97.5 %

(Intercept) 13.753330728 43.378842354

pop15 -0.752517542 -0.169868752

pop75 -3.873977955 0.490982602

dpi -0.002212248 0.001538444

ddpi 0.014533628 0.804856227

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR132.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR132_wc. R

Supongamos que consideramos un vector de predictores x0 y pretendemos pre-decir la correspondiente media de la variable respuesta. Esta media viene dada por

E[Y |x0] = x′0β.

La estimacion de esta media es

x′0β,

que tiene varianza

var(x′0β) = x′

0(X′X)−1x0σ

2.

Esta varianza la estimamos mediante

var(x′0β) = x′

0(X′X)−1x0σ

2.

Y el intervalo de confianza serıa

x′0β ± tn−p,1−α

2σ√

x′0(X

′X)−1x0.

Supongamos que, en lugar de predecir la media de la variable respuesta para unconjunto de predictores dados, pretendemos predecir la propia variable respuesta.Recordemos que segun nuestro modelo tenemos

Y = x′0β + ǫ.

32

Page 83: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

En consecuencia la prediccion de la propia observacion serıa

x′0β

pero hay que considerar la varianza anadida por el error ǫ de modo que la varianzaal predecir Y dado x0 serıa

var(x′0β) + σ2

que estimarıamos como

var(x′0β) + σ2 = x′

0(X′X)−1x0σ

2 + σ2 = (x′0(X

′X)−1x0 + 1)σ2.

Finalmente tendremos que el intervalo de confianza para una observacion Y quetiene predictores x0 es el siguiente

x′0β ± tn−p,1−α

2σ√

x′0(X

′X)−1x0 + 1

Nota de R 28 (notaR133) Con los datos savings consideramos como obtener laspredicciones, intervalos de confianza para las medias y para las predicciones. Utili-zamos los propios datos que se han utilizado para ajustar el modelo. Con la funcionpredict obtenemos las predicciones ası como los intervalos de confianza para las me-dias de las predicciones (predict con la opcion interval=confidence) y los intervalosde confianza para las observaciones (predict con la opcion interval=”prediction”).

Primero obtengamos las predicciones para los propios datos.

> savings.lm = lm(sr ~ pop15 + pop75 + dpi + ddpi, savings)

> predict(savings.lm)

Australia Austria Belgium Bolivia Brazil

10.566420 11.453614 10.951042 6.448319 9.327191

Canada Chile China Colombia Costa Rica

9.106892 8.842231 9.363964 6.431707 5.654922

Denmark Ecuador Finland France Germany

11.449761 5.995631 12.921086 10.164528 12.730699

Greece Guatamala Honduras Iceland India

13.786168 6.365284 6.989976 7.480582 8.491326

Ireland Italy Japan Korea Luxembourg

7.948869 12.353245 15.818514 10.086981 12.020807

Malta Norway Netherlands New Zealand Nicaragua

12.505090 11.121785 14.224454 8.384445 6.653603

Panama Paraguay Peru Philippines Portugal

7.734166 8.145759 6.160559 6.104992 13.258445

South Africa South Rhodesia Spain Sweden Switzerland

10.656834 12.008566 12.441156 11.120283 11.643174

Turkey Tunisia United Kingdom United States Venezuela

7.795682 5.627920 10.502413 8.671590 5.587482

Zambia Jamaica Uruguay Libya Malaysia

8.809086 10.738531 11.503827 11.719526 7.680869

En segundo lugar, obtenemos los intervalos de confianza para la prediccion de lamedia.

> predict(savings.lm, interval = "confidence")

fit lwr upr

Australia 10.566420 8.573419 12.559422

33

Page 84: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Austria 11.453614 8.796229 14.110999

Belgium 10.951042 8.685716 13.216369

Bolivia 6.448319 4.157390 8.739249

Brazil 9.327191 7.307205 11.347176

Canada 9.106892 6.058639 12.155146

Chile 8.842231 7.363079 10.321383

China 9.363964 7.225493 11.502435

Colombia 6.431707 4.598321 8.265094

Costa Rica 5.654922 3.550896 7.758948

Denmark 11.449761 9.531686 13.367837

Ecuador 5.995631 4.062193 7.929070

Finland 12.921086 10.597470 15.244702

France 10.164528 7.337915 12.991142

Germany 12.730699 10.466993 14.994406

Greece 13.786168 11.405464 16.166872

Guatamala 6.365284 4.481549 8.249018

Honduras 6.989976 5.112657 8.867294

Iceland 7.480582 5.447045 9.514119

India 8.491326 6.444043 10.538609

Ireland 7.948869 4.420451 11.477288

Italy 12.353245 10.378008 14.328482

Japan 15.818514 12.199217 19.437811

Korea 10.086981 8.198473 11.975490

Luxembourg 12.020807 9.770218 14.271395

Malta 12.505090 10.346906 14.663274

Norway 11.121785 9.444976 12.798594

Netherlands 14.224454 11.918940 16.529969

New Zealand 8.384445 6.601075 10.167815

Nicaragua 6.653603 4.935013 8.372194

Panama 7.734166 6.222133 9.246198

Paraguay 8.145759 6.128498 10.163019

Peru 6.160559 4.207163 8.113955

Philippines 6.104992 4.163566 8.046418

Portugal 13.258445 10.871236 15.645654

South Africa 10.656834 8.702611 12.611058

South Rhodesia 12.008566 8.937241 15.079891

Spain 12.441156 10.311350 14.570963

Sweden 11.120283 8.423402 13.817164

Switzerland 11.643174 9.565430 13.720919

Turkey 7.795682 6.270754 9.320610

Tunisia 5.627920 3.536485 7.719355

United Kingdom 10.502413 7.888092 13.116733

United States 8.671590 4.247331 13.095849

Venezuela 5.587482 3.337731 7.837234

Zambia 8.809086 6.866490 10.751682

Jamaica 10.738531 7.865039 13.612024

Uruguay 11.503827 9.106837 13.900817

Libya 11.719526 6.136055 17.302996

Malaysia 7.680869 5.724711 9.637027

Y finalmente obtenemos los intervalos de confianza para la prediccion de la ob-servacion.

> predict(savings.lm, interval = "prediction")

34

Page 85: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

fit lwr upr

Australia 10.566420 2.65239197 18.48045

Austria 11.453614 3.34673522 19.56049

Belgium 10.951042 2.96408447 18.93800

Bolivia 6.448319 -1.54593794 14.44258

Brazil 9.327191 1.40632381 17.24806

Canada 9.106892 0.86361399 17.35017

Chile 8.842231 1.04173848 16.64272

China 9.363964 1.41205561 17.31587

Colombia 6.431707 -1.44364012 14.30705

Costa Rica 5.654922 -2.28779264 13.59764

Denmark 11.449761 3.55426865 19.34525

Ecuador 5.995631 -1.90360737 13.89487

Finland 12.921086 4.91740032 20.92477

France 10.164528 2.00061173 18.32844

Germany 12.730699 4.74420105 20.71720

Greece 13.786168 5.76572337 21.80661

Guatamala 6.365284 -1.52193644 14.25250

Honduras 6.989976 -0.89571495 14.87567

Iceland 7.480582 -0.44375158 15.40492

India 8.491326 0.56345398 16.41920

Ireland 7.948869 -0.48377711 16.38152

Italy 12.353245 4.44367177 20.26282

Japan 15.818514 7.34744022 24.28959

Korea 10.086981 2.19861958 17.97534

Luxembourg 12.020807 4.03801659 20.00360

Malta 12.505090 4.54785797 20.46232

Norway 11.121785 3.28141059 18.96216

Netherlands 14.224454 6.22600553 22.22290

New Zealand 8.384445 0.52059132 16.24830

Nicaragua 6.653603 -1.19581320 14.50302

Panama 7.734166 -0.07262817 15.54096

Paraguay 8.145759 0.22558667 16.06593

Peru 6.160559 -1.74358821 14.06471

Philippines 6.104992 -1.79620600 14.00619

Portugal 13.258445 5.23606633 21.28082

South Africa 10.656834 2.75248263 18.56119

South Rhodesia 12.008566 3.75672820 20.26040

Spain 12.441156 4.49157384 20.39074

Sweden 11.120283 3.00037235 19.24019

Switzerland 11.643174 3.70738117 19.57897

Turkey 7.795682 -0.01361931 15.60498

Tunisia 5.627920 -2.31146847 13.56731

United Kingdom 10.502413 2.40954804 18.59528

United States 8.671590 -0.17340027 17.51658

Venezuela 5.587482 -2.39507172 13.57004

Zambia 8.809086 0.90760106 16.71057

Jamaica 10.738531 2.55826556 18.91880

Uruguay 11.503827 3.47853305 19.52912

Libya 11.719526 2.24139669 21.19765

Malaysia 7.680869 -0.22396122 15.58570

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR133.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR133_wc. R

35

Page 86: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

4.11. Seleccion de variables

Habitualmente tenemos un gran conjunto de variables y pretendemos determinarun buen conjunto de variables. ¿En que sentido bueno? En primer lugar, bueno enel sentido de sencillo. Tener pocas variables supone un modelo mas simple, masfacil de entender. Es bueno tener pocas variables porque luego no tendremos querecoger esta informacion. Es bueno porque los estimadores de los parametros queintervienen en el modelo son mucho menos variables.

Dos son las aproximaciones al problema de la seleccion de variables. En la prime-ra vamos comparando modelos sucesivos y, basicamente, consideramos si los modelossucesivos que comparamos difieren significativamente como modelos. En la segun-da se adopta una medida de calidad global del ajuste y se plantea el problema dedeterminar el modelo que optimiza ese criterio global.

4.11.1. Procedimientos que comparan modelos

Tres procedimientos se pueden considerar: seleccion backward, seleccion for-ward y seleccion stepwise. En el primer procedimiento, seleccion backward(seleccion hacia atras), empezamos el proceso de seleccion con un modelo en quetenemos todas las variables consideradas a priori. Elegimos aquella que, cuando laquitamos, el p-valor resultante de comparar ambos modelos (completo y aquel quele falta la variable considerada) es mayor. Si este p-valor es mayor que un valor αpreviamente especificado entonces eliminamos la variable del modelo. Y ası conti-nuamos hasta que al eliminar una variable el p-valor correspondiente sea menor queel α elegido.

El procedimiento seleccion forward (o hacia adelante) empezamos con unmodelo en el cual solamente tenemos la constante. Elegimos para entrar la variabletal que cuando se incorpora el modelo cambia lo mas posible. Esto es, el p-valor esel mas significativo. Si el p-valor de la comparacion de los modelos es menor que α(siempre elegido antes de iniciar el proceso de seleccion y no reajustado a lo largo delmismo) entonces la variable entra en el modelo. Continuamos hasta que el modelono cambia significativamente.

El procedimiento mas usado es el seleccion stepwise (hacia adelante y haciaatras). Vistos los anteriores es de esperar como funciona este metodo. Despues de lainclusion de una variable consideramos la posible exclusion de las variables que estanen el modelo. Si es posible eliminar una lo hacemos y nos planteamos la inclusionde la variable que produzca un cambio mas significativo.

Nota de R 29 (notaR146) Utilizamos los datos state y aplicamos un procedi-miento de seleccion backward.

> data(state)

> statedata = data.frame(state.x77, row.names = state.abb, check.names = T)

> g = lm(Life.Exp ~ ., data = statedata)

> summary(g)

Call:

lm(formula = Life.Exp ~ ., data = statedata)

Residuals:

Min 1Q Median 3Q Max

-1.48895 -0.51232 -0.02747 0.57002 1.49447

Coefficients:

36

Page 87: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

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

(Intercept) 7.094e+01 1.748e+00 40.586 < 2e-16 ***

Population 5.180e-05 2.919e-05 1.775 0.0832 .

Income -2.180e-05 2.444e-04 -0.089 0.9293

Illiteracy 3.382e-02 3.663e-01 0.092 0.9269

Murder -3.011e-01 4.662e-02 -6.459 8.68e-08 ***

HS.Grad 4.893e-02 2.332e-02 2.098 0.0420 *

Frost -5.735e-03 3.143e-03 -1.825 0.0752 .

Area -7.383e-08 1.668e-06 -0.044 0.9649

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 0.7448 on 42 degrees of freedom

Multiple R-squared: 0.7362, Adjusted R-squared: 0.6922

F-statistic: 16.74 on 7 and 42 DF, p-value: 2.534e-10

> g = update(g, . ~ . - Area)

> summary(g)

Call:

lm(formula = Life.Exp ~ Population + Income + Illiteracy + Murder +

HS.Grad + Frost, data = statedata)

Residuals:

Min 1Q Median 3Q Max

-1.49047 -0.52533 -0.02546 0.57160 1.50374

Coefficients:

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

(Intercept) 7.099e+01 1.387e+00 51.165 < 2e-16 ***

Population 5.188e-05 2.879e-05 1.802 0.0785 .

Income -2.444e-05 2.343e-04 -0.104 0.9174

Illiteracy 2.846e-02 3.416e-01 0.083 0.9340

Murder -3.018e-01 4.334e-02 -6.963 1.45e-08 ***

HS.Grad 4.847e-02 2.067e-02 2.345 0.0237 *

Frost -5.776e-03 2.970e-03 -1.945 0.0584 .

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 0.7361 on 43 degrees of freedom

Multiple R-squared: 0.7361, Adjusted R-squared: 0.6993

F-statistic: 19.99 on 6 and 43 DF, p-value: 5.362e-11

> g = update(g, . ~ . - Illiteracy)

> summary(g)

Call:

lm(formula = Life.Exp ~ Population + Income + Murder + HS.Grad +

Frost, data = statedata)

Residuals:

Min 1Q Median 3Q Max

-1.48921 -0.51224 -0.03290 0.56447 1.51662

Coefficients:

37

Page 88: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

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

(Intercept) 7.107e+01 1.029e+00 69.067 < 2e-16 ***

Population 5.115e-05 2.709e-05 1.888 0.0657 .

Income -2.477e-05 2.316e-04 -0.107 0.9153

Murder -3.000e-01 3.704e-02 -8.099 2.91e-10 ***

HS.Grad 4.776e-02 1.859e-02 2.569 0.0137 *

Frost -5.910e-03 2.468e-03 -2.395 0.0210 *

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 0.7277 on 44 degrees of freedom

Multiple R-squared: 0.7361, Adjusted R-squared: 0.7061

F-statistic: 24.55 on 5 and 44 DF, p-value: 1.019e-11

> g = update(g, . ~ . - Income)

> summary(g)

Call:

lm(formula = Life.Exp ~ Population + Murder + HS.Grad + Frost,

data = statedata)

Residuals:

Min 1Q Median 3Q Max

-1.47095 -0.53464 -0.03701 0.57621 1.50683

Coefficients:

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

(Intercept) 7.103e+01 9.529e-01 74.542 < 2e-16 ***

Population 5.014e-05 2.512e-05 1.996 0.05201 .

Murder -3.001e-01 3.661e-02 -8.199 1.77e-10 ***

HS.Grad 4.658e-02 1.483e-02 3.142 0.00297 **

Frost -5.943e-03 2.421e-03 -2.455 0.01802 *

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 0.7197 on 45 degrees of freedom

Multiple R-squared: 0.736, Adjusted R-squared: 0.7126

F-statistic: 31.37 on 4 and 45 DF, p-value: 1.696e-12

> g = update(g, . ~ . - Population)

> summary(g)

Call:

lm(formula = Life.Exp ~ Murder + HS.Grad + Frost, data = statedata)

Residuals:

Min 1Q Median 3Q Max

-1.5015 -0.5391 0.1014 0.5921 1.2268

Coefficients:

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

(Intercept) 71.036379 0.983262 72.246 < 2e-16 ***

Murder -0.283065 0.036731 -7.706 8.04e-10 ***

HS.Grad 0.049949 0.015201 3.286 0.00195 **

Frost -0.006912 0.002447 -2.824 0.00699 **

38

Page 89: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 0.7427 on 46 degrees of freedom

Multiple R-squared: 0.7127, Adjusted R-squared: 0.6939

F-statistic: 38.03 on 3 and 46 DF, p-value: 1.634e-12

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR146.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR146_wc. R

4.11.2. Procedimientos basados en criterios

Estamos ajustando un modelo de regresion lineal multiple con algun proposito.Podemos fijarnos en una medida global de calidad del ajuste y buscar la seleccionde variables que nos da el optimo segun ese criterio.

Una medida global puede ser AIC (Akaike Information Criterion) definido como

AIC = −2 max logverosimilitud + 2p.

A partir de la definicion de esta medida global es claro que un valor pequenoindica un mejor ajuste.

Nota de R 30 (notaR147) Notemos que con en la funcion step podemos indicarcon el argumento direction si queremos both (stepwise), o bien backward o bienforward.

> data(state)

> statedata = data.frame(state.x77, row.names = state.abb, check.names = T)

> g = lm(Life.Exp ~ ., data = statedata)

> step(g)

Start: AIC=-22.18

Life.Exp ~ Population + Income + Illiteracy + Murder + HS.Grad +

Frost + Area

Df Sum of Sq RSS AIC

- Area 1 0.0011 23.298 -24.182

- Income 1 0.0044 23.302 -24.175

- Illiteracy 1 0.0047 23.302 -24.174

<none> 23.297 -22.185

- Population 1 1.7472 25.044 -20.569

- Frost 1 1.8466 25.144 -20.371

- HS.Grad 1 2.4413 25.738 -19.202

- Murder 1 23.1411 46.438 10.305

Step: AIC=-24.18

Life.Exp ~ Population + Income + Illiteracy + Murder + HS.Grad +

Frost

Df Sum of Sq RSS AIC

- Illiteracy 1 0.0038 23.302 -26.174

- Income 1 0.0059 23.304 -26.170

<none> 23.298 -24.182

- Population 1 1.7599 25.058 -22.541

- Frost 1 2.0488 25.347 -21.968

39

Page 90: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

- HS.Grad 1 2.9804 26.279 -20.163

- Murder 1 26.2721 49.570 11.569

Step: AIC=-26.17

Life.Exp ~ Population + Income + Murder + HS.Grad + Frost

Df Sum of Sq RSS AIC

- Income 1 0.006 23.308 -28.161

<none> 23.302 -26.174

- Population 1 1.887 25.189 -24.280

- Frost 1 3.037 26.339 -22.048

- HS.Grad 1 3.495 26.797 -21.187

- Murder 1 34.739 58.041 17.456

Step: AIC=-28.16

Life.Exp ~ Population + Murder + HS.Grad + Frost

Df Sum of Sq RSS AIC

<none> 23.308 -28.161

- Population 1 2.064 25.372 -25.920

- Frost 1 3.122 26.430 -23.877

- HS.Grad 1 5.112 28.420 -20.246

- Murder 1 34.816 58.124 15.528

Call:

lm(formula = Life.Exp ~ Population + Murder + HS.Grad + Frost, data = statedata)

Coefficients:

(Intercept) Population Murder HS.Grad Frost

7.103e+01 5.014e-05 -3.001e-01 4.658e-02 -5.943e-03

Utilizamos stepAIC de la librerıa MASS [18].

> library(MASS)

> data(state)

> statedata = data.frame(state.x77, row.names = state.abb, check.names = T)

> g = lm(Life.Exp ~ ., data = statedata)

> stepAIC(g)

Start: AIC=-22.18

Life.Exp ~ Population + Income + Illiteracy + Murder + HS.Grad +

Frost + Area

Df Sum of Sq RSS AIC

- Area 1 0.0011 23.298 -24.182

- Income 1 0.0044 23.302 -24.175

- Illiteracy 1 0.0047 23.302 -24.174

<none> 23.297 -22.185

- Population 1 1.7472 25.044 -20.569

- Frost 1 1.8466 25.144 -20.371

- HS.Grad 1 2.4413 25.738 -19.202

- Murder 1 23.1411 46.438 10.305

Step: AIC=-24.18

Life.Exp ~ Population + Income + Illiteracy + Murder + HS.Grad +

40

Page 91: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Frost

Df Sum of Sq RSS AIC

- Illiteracy 1 0.0038 23.302 -26.174

- Income 1 0.0059 23.304 -26.170

<none> 23.298 -24.182

- Population 1 1.7599 25.058 -22.541

- Frost 1 2.0488 25.347 -21.968

- HS.Grad 1 2.9804 26.279 -20.163

- Murder 1 26.2721 49.570 11.569

Step: AIC=-26.17

Life.Exp ~ Population + Income + Murder + HS.Grad + Frost

Df Sum of Sq RSS AIC

- Income 1 0.006 23.308 -28.161

<none> 23.302 -26.174

- Population 1 1.887 25.189 -24.280

- Frost 1 3.037 26.339 -22.048

- HS.Grad 1 3.495 26.797 -21.187

- Murder 1 34.739 58.041 17.456

Step: AIC=-28.16

Life.Exp ~ Population + Murder + HS.Grad + Frost

Df Sum of Sq RSS AIC

<none> 23.308 -28.161

- Population 1 2.064 25.372 -25.920

- Frost 1 3.122 26.430 -23.877

- HS.Grad 1 5.112 28.420 -20.246

- Murder 1 34.816 58.124 15.528

Call:

lm(formula = Life.Exp ~ Population + Murder + HS.Grad + Frost, data = statedata)

Coefficients:

(Intercept) Population Murder HS.Grad Frost

7.103e+01 5.014e-05 -3.001e-01 4.658e-02 -5.943e-03

Vemos que se obtiene el mismo resultado.http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR147.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR147_wc. R

4.12. Algunos ejemplos

Terminamos el tema con algunos ejemplos.

Nota de R 31 (notaR137) Son unos datos sobre el abulon. Es un molusco. Setrata de predecir su edad a partir de una serie de caracterısticas fısicas. Los datos sepueden encontrar en http://www.liacc.up.pt/ ltorgo/Regression/DataSets.html.

La edad del abalon se calcula habitualmente cortando la concha y contando elnumero de anillos utilizando un microscopio. Es una tarea bastante laboriosa. Sepretende predecir la edad del animal utilizando distintas medidas que son mas facilesde obtener.

41

Page 92: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Vemos como quitando un par de observaciones con un leverage alto el ajustemejora.

> x = read.table(file = "../data/abalone.dat", sep = ",")

> attach(x)

> xnam <- paste("V", 1:8, sep = "")

> (fmla <- as.formula(paste("y ~ ", paste(xnam, collapse = "+"))))

> y = log(x[, 9])

> y.fit = lm(fmla, data = x)

> summary(y.fit)

42

Page 93: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> x = x[-2052, ]

> attach(x)

xnam <- paste(”V”, 1:8, sep=) (fmla <- as.formula(paste( 2 ”, paste(xnam, co-llapse= ”+”)))) y = log(x[,9])

43

Page 94: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

y.fit = lm (fmla,data=x)

summary(y.fit)

> x = x[-1418, ]

> attach(x)

> xnam <- paste("V", 1:8, sep = "")

> (fmla <- as.formula(paste("y ~ ", paste(xnam, collapse = "+"))))

> y = log(x[, 9])

> y.fit = lm(fmla, data = x)

> summary(y.fit)

44

Page 95: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR137.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR137_wc. R

Nota de R 32 (notaR140) Se trata de unos datos utilizados para reducir costesde produccion. En concreto se pretende valorar el consumo de agua en una fabrica.Se tiene el consumo de agua en distintos meses (en galones) como variable respuesta.Las variables predictoras serıan la temperatura media en el mes, la produccion (enlibras), numero de dıas que ha funcionado la fabrica durante ese mes, numero depersonas trabajando. Los datos han sido obtenidos en esta pagina.

> x = read.table(file = "../data/agua.txt", header = T)

> attach(x)

Ajustamos el modelo.

> a.lm = lm(agua ~ temperatura + produccion + dias + personas)

> summary(a.lm)

Call:

lm(formula = agua ~ temperatura + produccion + dias + personas)

Residuals:

Min 1Q Median 3Q Max

-444.986 -131.522 2.575 108.969 368.516

Coefficients:

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

(Intercept) 6360.33733 1314.39161 4.839 0.000406 ***

temperatura 13.86886 5.15982 2.688 0.019748 *

produccion 0.21170 0.04554 4.648 0.000562 ***

dias -126.69036 48.02234 -2.638 0.021647 *

45

Page 96: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

personas -21.81796 7.28452 -2.995 0.011168 *

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 249 on 12 degrees of freedom

Multiple R-squared: 0.767, Adjusted R-squared: 0.6894

F-statistic: 9.877 on 4 and 12 DF, p-value: 0.0008958

Introducimos un termino cuadratico y otro cubico en la produccion.

> b.lm = lm(agua ~ temperatura + poly(produccion, 3) + dias + personas)

> summary(b.lm)

Call:

lm(formula = agua ~ temperatura + poly(produccion, 3) + dias +

personas)

Residuals:

Min 1Q Median 3Q Max

-435.85 -103.78 29.41 123.85 388.38

Coefficients:

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

(Intercept) 8734.088 2393.471 3.649 0.00447 **

temperatura 14.521 6.524 2.226 0.05021 .

poly(produccion, 3)1 2742.288 851.981 3.219 0.00920 **

poly(produccion, 3)2 208.891 337.555 0.619 0.54986

poly(produccion, 3)3 -108.677 357.638 -0.304 0.76745

dias -138.467 66.880 -2.070 0.06524 .

personas -18.695 9.872 -1.894 0.08752 .

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 265.6 on 10 degrees of freedom

Multiple R-squared: 0.7791, Adjusted R-squared: 0.6466

F-statistic: 5.878 on 6 and 10 DF, p-value: 0.007365

Veamos los distintos procedimientos graficos para el diagnostico del modelo.

> plot(a.lm, which = 1)

46

Page 97: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

3000 3500 4000

−40

0−

200

020

040

0

Fitted values

Res

idua

ls

lm(agua ~ temperatura + produccion + dias + personas)

Residuals vs Fitted

14

6

15

> plot(a.lm, which = 2)

−2 −1 0 1 2

−2

−1

01

2

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

lm(agua ~ temperatura + produccion + dias + personas)

Normal Q−Q

14

6

17

> plot(a.lm, which = 3)

47

Page 98: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

3000 3500 4000

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

Fitted values

Sta

ndar

dize

d re

sidu

als

lm(agua ~ temperatura + produccion + dias + personas)

Scale−Location

14

6

17

> plot(a.lm, which = 4)

5 10 15

0.00

0.05

0.10

0.15

0.20

Obs. number

Coo

k’s

dist

ance

lm(agua ~ temperatura + produccion + dias + personas)

Cook’s distance

1

416

> plot(a.lm, which = 5)

48

Page 99: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

0.0 0.1 0.2 0.3 0.4 0.5 0.6

−2

−1

01

2

Leverage

Sta

ndar

dize

d re

sidu

als

lm(agua ~ temperatura + produccion + dias + personas)

Cook’s distance

1

0.5

0.5

1

Residuals vs Leverage

1

4

16

> plot(a.lm, which = 6)

0.00

0.05

0.10

0.15

0.20

Leverage hii

Coo

k’s

dist

ance

0 0.1 0.2 0.3 0.4 0.5 0.6

lm(agua ~ temperatura + produccion + dias + personas)

0

0.511.52

Cook’s dist vs Leverage hii (1 − hii)

1

416

Intervalo de confianza para observaciones.

> predict(a.lm, interval = "prediction")

49

Page 100: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

fit lwr upr

1 3205.385 2520.884 3889.885

2 2750.249 2130.559 3369.940

3 2657.037 2036.241 3277.833

4 3227.559 2601.448 3853.670

5 3213.522 2562.575 3864.470

6 3529.484 2940.043 4118.924

7 3538.372 2944.767 4131.977

8 3138.032 2556.061 3720.004

9 3116.283 2526.273 3706.292

10 3283.425 2663.590 3903.260

11 3469.345 2825.351 4113.339

12 3148.126 2500.847 3795.405

13 2913.031 2309.106 3516.957

14 3366.986 2802.927 3931.045

15 3626.584 3050.307 4202.861

16 4362.459 3690.845 5034.073

17 3617.121 3026.185 4208.057

Intervalo de confianza para la media.

> predict(a.lm, interval = "confidence")

fit lwr upr

1 3205.385 2787.900 3622.869

2 2750.249 2450.635 3049.864

3 2657.037 2355.143 2958.930

4 3227.559 2914.881 3540.237

5 3213.522 2853.682 3573.362

6 3529.484 3298.849 3760.118

7 3538.372 3297.292 3779.451

8 3138.032 2927.217 3348.848

9 3116.283 2884.197 3348.368

10 3283.425 2983.512 3583.338

11 3469.345 3122.242 3816.448

12 3148.126 2794.965 3501.287

13 2913.031 2647.554 3178.509

14 3366.986 3212.342 3521.630

15 3626.584 3432.039 3821.129

16 4362.459 3966.457 4758.461

17 3617.121 3382.691 3851.551

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR140.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR140_wc. R

Nota de R 33 (notaR141) Se trata de unos datos utilizados para reducir cos-tes de produccion. En concreto se pretende valorar el consumo de agua en unafabrica. Se tiene el consumo de agua en distintos meses (en galones) como va-riable respuesta. Las variables predictoras serıan la temperatura media en el mes,la produccion (en libras), numero de dıas que ha funcionado la fabrica duranteese mes, numero de personas trabajando. Los datos han sido obtenidos en la pa-gina http:// www. statsci.org/data/general/water.html . Las variables sonlas siguientes:

Variable Description

50

Page 101: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

M percentage of males aged 1424

So indicator variable for a southern state

Ed mean years of schooling

Po1 police expenditure in 1960

Po2 police expenditure in 1959

LF labour force participation rate

M.F number of males per 1000 females

Pop state population

NW number of nonwhites per 1000 people

U1 unemployment rate of urban males 1424

U2 unemployment rate of urban males 3539

GDP gross domestic product per head

Ineq income inequality

Prob probability of imprisonment

Time average time served in state prisons

Crime rate of crimes in a particular category per head of population

Se pretende predecir la variable Crime a partir de las demas. Se proponen dosmodelos y se ve que no hay diferencias significativas entre ellos.

> x = read.table(file = "../data/uscrime.txt", header = T)

> attach(x)

> crime.lm = lm(Crime ~ M + So + Ed + Po1 + Po2 + LF + M.F + Pop +

+ NW + U1 + U2 + GDP + Ineq + Prob + Time)

> summary(crime.lm)

Call:

lm(formula = Crime ~ M + So + Ed + Po1 + Po2 + LF + M.F + Pop +

NW + U1 + U2 + GDP + Ineq + Prob + Time)

Residuals:

Min 1Q Median 3Q Max

-395.738 -98.088 -6.695 112.989 512.671

Coefficients:

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

(Intercept) -5984.2876 1628.3184 -3.675 0.000893 ***

M 8.7830 4.1714 2.106 0.043443 *

So -3.8035 148.7551 -0.026 0.979765

Ed 18.8324 6.2088 3.033 0.004861 **

Po1 19.2804 10.6110 1.817 0.078892 .

Po2 -10.9422 11.7478 -0.931 0.358830

LF -0.6638 1.4697 -0.452 0.654654

M.F 1.7407 2.0354 0.855 0.398995

Pop -0.7330 1.2896 -0.568 0.573845

NW 0.4204 0.6481 0.649 0.521279

U1 -5.8271 4.2103 -1.384 0.176238

U2 16.7800 8.2336 2.038 0.050161 .

GDP 0.9617 1.0367 0.928 0.360754

Ineq 7.0672 2.2717 3.111 0.003983 **

Prob -4855.2658 2272.3746 -2.137 0.040627 *

Time -3.4790 7.1653 -0.486 0.630708

---

51

Page 102: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 209.1 on 31 degrees of freedom

Multiple R-squared: 0.8031, Adjusted R-squared: 0.7078

F-statistic: 8.429 on 15 and 31 DF, p-value: 3.539e-07

> crime.lm2 = lm(Crime ~ M + Ed + Po1 + U2 + Ineq + Prob)

> summary(crime.lm2)

Call:

lm(formula = Crime ~ M + Ed + Po1 + U2 + Ineq + Prob)

Residuals:

Min 1Q Median 3Q Max

-470.68 -78.41 -19.68 133.12 556.23

Coefficients:

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

(Intercept) -5040.505 899.843 -5.602 1.72e-06 ***

M 10.502 3.330 3.154 0.00305 **

Ed 19.647 4.475 4.390 8.07e-05 ***

Po1 11.502 1.375 8.363 2.56e-10 ***

U2 8.937 4.091 2.185 0.03483 *

Ineq 6.765 1.394 4.855 1.88e-05 ***

Prob -3801.836 1528.097 -2.488 0.01711 *

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Residual standard error: 200.7 on 40 degrees of freedom

Multiple R-squared: 0.7659, Adjusted R-squared: 0.7307

F-statistic: 21.81 on 6 and 40 DF, p-value: 3.418e-11

Podemos ver que no hay diferencias significativas entre ambos modelos.

> anova(crime.lm, crime.lm2)

Analysis of Variance Table

Model 1: Crime ~ M + So + Ed + Po1 + Po2 + LF + M.F + Pop + NW + U1 +

U2 + GDP + Ineq + Prob + Time

Model 2: Crime ~ M + Ed + Po1 + U2 + Ineq + Prob

Res.Df RSS Df Sum of Sq F Pr(>F)

1 31 1354946

2 40 1611057 -9 -256111 0.6511 0.7451

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR141.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR141_wc. R

52

Page 103: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 5

Analisis cluster

En este tema vamos a tratar lo que en la literatura estadıstica recibe el nombre deanalisis cluster 1 o, en mejor castellano, analisis de conglomerados. En la literaturade Inteligencia Artificial se utiliza la expresion clasificacion no supervisada. Tenemosuna muestra de observaciones multivariantes de dimension d. ¿Que pretendemoshacer con ellos? Encontrar grupos. Muy breve la respuesta pero: ¿que son grupos?Imaginemos una imagen aerea fija de un patio de un colegio. En esta imagen losdatos son las posiciones de los ninos. ¿Se agrupan los ninos formando grupos otodos estan jugando con todos y los grupos son una consecuencia pasajera del juego(delanteros y defensas que aparecen agrupados en un ataque)?

Parece claro y simple el problema. Sı, lo parece. ¿Que es un grupo? ¿Comodefino un grupo? ¿Cuantos grupos distingo en los datos? Estamos viendo el efectodel ruido o realmente hay una estructura debajo que la vemos en un entorno conruido.

¿Que quiere decir encontrar grupos? Se trata de clasificar las observaciones engrupos de modo que las observaciones de un mismo grupo sean lo mas similares quepodamos y que los grupos entre sı sean muy distintos. El numero de procedimientosque se han propuesto en la literatura es muy grande. La mayor parte de ellos no tie-nen un modelo probabilıstico debajo, no son procedimientos basados en modelo. Sonmetodos que esencialmente utilizan el concepto de proximidad. Valoran de distintasformas lo proximos, lo cercanos que estan los puntos, dentro de un mismo grupoy entre distintos grupos. Es pues, el primer punto a tratar: ¿como cuantificamoslo cerca o lejos que estan los distintos puntos? En la seccion 5.1 nos ocupamos deeste punto. Tambien sera necesario, como veremos en el tema, valorar cuando dosconjuntos de puntos son mas o menos parecidos, proximos, similares. En la mismaseccion nos ocupamos de ello. Supongamos que ya hemos clasificado en distintosgrupos. ¿Hemos tenido exito al hacerla? Cuando tenemos un analisis discriminantetenemos una muestra donde sabemos a que grupo pertenece el individuo y donde lohemos clasificado. Esto nos permitıa valorar si nuestro procedimiento clasifica bieno no. Aquı no vamos a tener esta referencia que nos da la muestra de entrenamien-to. ¿Como valorarlo? Un concepto conocido por silueta y debido a Rousseeuw [10]nos va a servir para ello. No es ni tan simple ni tan satisfactorio como en analisisdiscriminante (como es de esperar si tenemos menos informacion para trabajar). Loestudiamos en la seccion 5.4.

Entre los muchos procedimientos de obtener los grupos a partir de los datos,los mas utilizados son dos tipos: procedimientos jerarquicos y metodos de parti-cionamiento. De los jerarquicos nos ocupamos en la seccion 5.2. El metodo de lask-medias y el metodo de las k-mediodes (el castellano como siempre es muy sufrido

1Por cierto que la palabra cluster no existe en castellano

1

Page 104: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

pues no existe la palabra) son metodos de particionamiento y los tratamos en laseccion 5.3.

Empezamos viendo un conjunto de datos que nos sugieran el problema y comotratarlo.

Nota de R 34 (notaR109) Generamos tres muestras correspondientes a distri-buciones bivariates normales. La matriz de covarianzas vamos a suponer que esla matriz identidad. Los vectores de medias son µ1 = c(1, 1), µ2 = c(3, 3) y µ2 =c(7, 7). Es resumen un vector Xi ∼ Nd(µi, I2×2. Vamos a generar cien datos de cadagrupo. Vamos a utilizar el paquete mvtnor [7] para simular las distintas normalesbivariantes.

> library(mvtnorm)

> x1 = rmvnorm(n = 100, mean = c(1, 1))

> x2 = rmvnorm(n = 100, mean = c(3.3, 4.1))

> x3 = rmvnorm(n = 100, mean = c(6, 5.5))

El siguiente dibujo muestra los datos generados.

> limite.x = c(-1, 8)

> limite.y = limite.x

> plot(x1, xlim = limite.x, ylim = limite.y)

> points(x2, pch = 2)

> points(x3, pch = 3)

0 2 4 6 8

02

46

8

x1[,1]

x1[,2

]

Se ve que hay tres grupos pero estos no estan muy claramente delimitados. No-sotros no disponemos de esta informacion. Conocemos los valores que componen losvectores de datos pero no conocemos el grupo al que podrıa pertenecer cada uno deellos. Tampoco tenemos porque tener prefijado el numero de grupos. Los datos sonartificiales pero ilustran bien el problema.

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR109.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR109_wc. R

2

Page 105: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Una referencia muy adecuada que se puede consultar es el texto de [10]. Cualquiertexto de reconocimiento de patrones es adecuado.

En lo que sigue vamos a basarnos fundamentalmente en la librerıa cluster [12] ydenotaremos los datos a agrupar con xi con i = 1, . . . n siendo xi = xi1, . . . , xid.

5.1. Disimilaridades

5.1.1. Disimilaridades entre observaciones

Empezamos tratando el problema de cuantificar el grado de proximidad, desimilaridad entre dos puntos en el espacio de dimension d. Tradicionalmente estetema en Matematicas se ha formalizado a traves del concepto de distancia o metrica.Una metrica es una funcion que a cada par de puntos x, y ∈ R

d le asocia un valorpositivo de modo que cuando mayor es mas distantes son, mas alejados estan. Comosiempre la formalizacion matematica de un concepto intuitivo ha de ser prudentey pedir que se verifiquen ciertos axiomas que resulten razonables y generalmenteadmisibles. En concreto la funcion d definida en el espacio producto R

d ×Rd se dice

que es una metrica si verifica:

No negativa d(x, y) ≥ 0.

Un punto dista 0 de sı mismo d(x, x) = 0.

Simetrıa d(x, y) = d(y, x).

Desigualdad triangular d(x, z) ≤ d(x, y) + d(y, z), para todo x, y, z ∈ Rd.

Las distancias mas utilizadas en analisis cluster son la distancia euclıdea y la dis-tancia de Manhattan. Para dos vectores u e v (en R

d) entonces la distancia euclıdease define como

d(x, y) =

√√√√d∑

k=1

(xk − yk)2, (5.1)

con x, y ∈ Rd. La distancia de Manhattan viene dada por

d(x, y) =

d∑

k=1

|xk − yk|. (5.2)

Las distancias euclıdea y de Manhattan son adecuadas cuando trabajamos con va-riables continuas y que ademas esten en una misma escala. 2 Notemos que cada unade las componentes del vector pesan igualmente. Si tenemos variables que no estanigualmente escaladas estas distancias pueden pesar mas unas variables que otras nopor lo diferentes que sean entre los individuos sino simplemente por su escala.

Con mucha frecuencia nos encontramos trabajando con variables que aun siendocontinuas estan medidas en escalas muy diversas o bien tenemos variables que soncontinuas, otras que son binarias, otras categoricas con mas de dos categorıas o bienvariable ordinales. En resumen, todos los posibles tipos de variables simultaneamen-te considerados. Es lo habitual. Una variable binaria la codificamos habitualmentecomo 1 y 0 indicando presencia o ausencia del atributo que estemos considerando.En una variable categorica la codificacion es completamente arbitraria y por lo tantono tiene sentido la aplicacion de una de estas distancias.

Todo esto plantea el hecho de que no es recomendable, ni tampoco facil, en unbanco de datos con distintos tipos de variables considerar una metrica o distancia,

2La funcion dist de [16] es una buena opcion para el calculo de estas y otras distancias. Tambienlo es la funcion daisy del paquete cluster [12].

3

Page 106: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Cuadro 5.1: Conteos asociados a dos casos descritos por variables binarias

1 01 A B A+B0 C D C+D

A+C B+D d=A+B+C+D

esto es, algo que verifique las propiedades anteriores. Son demasiado exigentes estaspropiedades. Lo que se hace es proponer medidas entre los vectores de caracterıs-ticas que tienen algunas de las propiedades y son, ademas, razonables. Por ello nohablaremos, en general, de una distancia o una metrica, sino de una medida dedisimilaridad. Finalmente, valores grandes estaran asociados con vectores de carac-terısticas que tienen una mayor diferencia. Se han propuesto distintas medidas dedisimilaridad entre variables cualitativas (binarias simetricas o asimetricas, cualita-tivas, ordinales) y cuantitativas. En lo que sigue comentamos con algun detalle laque lleva la funcion daisy de la librerıa cluster [12]. Es una opcion muy generica yrazonable.

Consideramos el problema cuando solo tenemos un tipo de variable. Finalmentecombinaremos todo en una sola medida de disimilaridad.

Supongamos descrita al individuo o caso mediante d variables binarias. Es natu-ral construir la tabla de contingencia 2×2 que aparece en la tabla 5.1 donde las filascorresponden con el individuo i y las columnas con el individuo j. Segun la tabla losindividuos i y j coincidirıan en la presencia de A atributos y en la no presencia deD atributos. Tenemos B atributos en i que no estan en j y C atributos que no estanen i pero sı que estan en j.

El total de variables binarias es de d = A+B +C+D. Basandonos en esta tablase pueden definir distintas medidas de disimilaridad. Vamos a considerar dos situa-ciones distintas. En la primera trabajamos con variables binarias simetricas y otrapara variables binarias no simetricas. Una variable binaria es simetrica cuando lasdos categorıas que indica son intercambiables, cuando no tenemos una preferenciaespecial en que resultado lo codificamos como 1 y que resultado codificamos como0. Un ejemplo frecuente es el sexo de la persona. Si las variables son todas bina-rias simetricas es natural utilizar como disimilaridad el coeficiente de acoplamientosimple definido como

d(i, j) =B + C

A + B + C + D= 1 − A + D

A + B + C + D.

La interpretacion de esta medida de disimilaridad es simple. Dos individuos sontanto mas disimilares cuantas mas variables binarias tienen distintas. Notemos quela presencia o ausencia de un atributo tienen el mismo peso.

Supongamos que las variable que describen al individuo son binarias asimetri-cas. Ejemplos de esto pueden ser la presencia o ausencia de un atributo muy pocofrecuente. Por ejemplo, tener o no tener sida. Dos personas que tienen el sida, tienenmas es comun, estan mas proximas, que dos personas que no lo tienen. Supongamosque codificamos el atributo menos frecuente como 1 y el mas frecuente como 0. Estaclaro que un acoplamiento 1-1 o acoplamiento positivo es mas significativo que unacoplamiento negativo o acoplamiento 0-0 por lo que A, numero de acoplamientospositivos, ha de tener mas peso que d o numero de acoplamientos negativos. El masconocido es el coeficiente de Jaccard que se define como

d(i, j) =B + C

A + B + C= 1 − A

A + B + C

4

Page 107: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

en el que simplemente no consideramos los acoplamientos negativos.Consideremos ahora el caso de variables categoricas con mas de dos categorıas.

Si todas las variables son de este tipo y tenemos un total de d variables entonceslos individuos i y j son tanto mas disimilares cuanto mas variables categoricas sondistintas. Si denotamos por u el numero de variables en las que coinciden los dosindividuos entonces la medida de disimilaridad serıa

d(i, j) =d − u

d.

Finalmente veamos como tratar las variables ordinales. Lo que haremos para varia-bles de este tipo es transformarlas al intervalo [0, 1]. Si xij denota la j-esima variabledel i-esimo individuo entonces consideramos la transformacion

yik =xik − 1

Mk − 1

siendo 1, . . . , Mk los valores que puede tomar la j-esima variable ordinal. Lo queestamos haciendo con este procedimiento es transformar la variable ordinal es unavariable numerica con una escala comun. En la medida en que el numero de cate-gorıas sea mayor esta transformacion tendra mas sentido.

Hemos visto como tratar cada tipo de variable aisladamente. El problema escombinar todas ellas en una sola medida de disimilaridad. La funcion daisy delpaquete cluster [12] utiliza la siguiente medida:

d(i, j) =

∑dk=1 δ

(k)ij d

(k)ij∑d

k=1 δ(k)ij

, (5.3)

donde:

δ(k)ij vale uno cuando las medidas xik y xjk no son valores faltantes y cero en

otro caso;

δ(k)ij vale 0 cuando la variable k es binaria asimetrica y tenemos entre los

individuos i y j un acoplamiento 0-0;

el valor d(k)ij es lo que contribuye a la disimilaridad entre i y j la variable k. Si la variable k es binaria o categorica entonces d

(k)ij es definida como

d(k)ij = 1 si xik 6= xjk y 0 en otro caso. Si la variable k es numerica entonces

d(k)ij =

|xik − xjk |Rk

siendo Rk el rango de la variable k definido como

Rk = maxh

xhk − mınh

xhk

donde h varıa entre todos los individuos con valor no faltante de la va-riable k.

Si todas las variables son categoricas entonces 5.3 nos da el numero de acoplamientosdel total de pares disponibles, en definitiva, el coeficiente de acoplamiento simple. Sitodas son variables binarias simetricas entonces obtenemos otra vez el coeficiente deacoplamiento simple. Si las variables son binarias asimetricas entonces obtenemosel coeficiente de Jaccard. Cuando todas las variables con las que trabajamos son

5

Page 108: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

numericas la medida de disimilaridad es la distancia de Manhattan donde cadavariable esta normalizada.

Dado un conjunto de datos xi con i = 1, . . . , n tendremos, utilizando algunasde las medidas de disimilaridades comentadas, una matriz de dimension n × n quetiene en la posicion (i, j) la disimilaridad entre xi y xj , d(i, j): [d(i, j)]i,j=1,...,n.

Con esta matriz cuantificamos la disimilaridad que hay entre los elementos ori-ginales de la muestra. Algunos de los procedimientos de agrupamiento que vamosa considerar en lo que sigue no necesitan conocer los datos originales. Pueden apli-carse con solo conocer esta matriz de disimilaridades. Otros no. Otros utilizan losdatos a lo largo de las distintas etapas de aplicacion del procedimiento.

5.1.2. Disimilaridades entre grupos de observaciones

En algunos procedimientos de agrupamiento (en particular, los jerarquicos) va-mos a necesitar calcular disimilaridades entre conjuntos disjuntos de las observacio-nes originales. Estas disimilaridades las podemos calcular a partir de las disimilarida-des originales punto a punto que hemos comentado en la seccion 5.1.1. Supongamosque tenemos un banco de datos con n individuos cuyos ındices son 1, . . . , n. SeanA y B dos subconjuntos disjuntos del conjunto de ındices de la muestra 1, . . . , n,esto es, dos subconjuntos de observaciones disjuntos. ¿Como podemos definir unadisimilaridad entre A y B partiendo de las disimilaridades entre los datos individua-les? Se han propuesto muchos procedimientos. Si denotamos la disimilaridad entreA y B como d(A, B) entonces las disimilaridades mas habitualmente utilizadas sonlas siguientes:

Enlace simple La disimilaridad entre los dos grupos es el mınimo de las disimi-laridades entre las observaciones de uno y de otro. Tomamos la disimilaridadde los objetos que mas se parecen en uno y otro grupo.

d(A, B) = mına∈A,b∈B

d(a, b)

Enlace completo Ahora tomamos como disimilaridad entre los grupos como elmaximo de las disimilaridades, en definitiva, la disimilaridad entre los objetosmas alejados o mas distintos.

d(A, B) = maxa∈A,b∈B

d(a, b)

Promedio La disimilaridad es el promedio de las disimilaridades entre todos losposibles pares.

d(A, B) =1

|A| × |B|∑

a∈A,b∈B

d(a, b)

donde |A| es el cardinal del conjunto A.

Es importante notar que solamente necesitamos conocer las disimilaridades entrelos individuos para poder calcular las disimilaridades entre grupos de individuos.

En la siguiente seccion nos vamos a ocupar de los metodos jerarquicos en loscuales es fundamental el procedimiento que elijamos para calcular distintas entregrupos.

5.2. Cluster jerarquico

La idea de estos procedimientos es construir una jerarquıa de particiones delconjunto de ındices.

6

Page 109: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Sea 1, . . . , n el conjunto de ındices que indexan las distintas observaciones.Supongamos que C1, . . . , Cr es una particion de este conjunto de ındices:

Ci ⊂ 1, . . . , n; son disjuntos dos a dos, Ci∩Cj = ∅ si i 6= j con i, j = 1, . . . , ny

∪ri=Ci = 1, . . . , n.

Dada una particion del conjunto de ındices podemos calcular la matriz r × r queen la posicion (i, j) tiene la disimilaridad entre el conjunto Ci y Cj , d(Ci, Cj) segunalguno de los procedimientos antes indicados.

Veamos los procedimientos jerarquicos aglomerativos. En estos procedimientosvamos a iniciar el agrupamiento con la particion: Ci = i con i = 1, . . . , n, esdecir, cada grupo es un individuo. En cada iteracion vamos agrupando el par deconjuntos (elementos de la particion que tengamos en esa iteracion) que esten masproximos segun la disimilaridad entre grupos que estemos utilizando. El procesocontinua hasta que tengamos un unico grupo.

Un esquema algorıtmico del procedimiento indicado puede ser el siguiente:

Paso 0 Tenemos grupos unitarios formados por cada una de las observaciones.Tenemos pues una particion inicial Ci = i con i = 1, . . . , n. En un principio,cada dato es un grupo.

Paso 1 Calculamos las disimilaridades entre los elementos de la particion. Para elloutilizamos cualquiera de los procedimientos antes indicados.

Paso 2 Agrupamos los dos conjuntos de la particion mas proximos y dejamos losdemas conjuntos igual. Tenemos ahora Ci con i = 1, . . . , k.

Paso 3 Si tenemos un solo conjunto en la particion paramos el procedimiento.

Paso 4 Volvemos al paso 1.

Hay una representacion grafica muy utilizada para describir los resultados deun cluster jerarquico aglomerativo como el que acabamos de describir. Esta repre-sentacion tiene el nombre de dendograma. En el dendograma se va mostrandoa que valor de la medida de disimilaridad se produce la union de los grupos y si-multaneamente que grupos se estan uniendo para esa disimilaridad. Tambien nospermite una valoracion rapida de cuantos grupos puede haber en el banco de datos.Simplemente trazando una linea horizontal a la altura en que tengamos el numerode grupos que pensamos que puede haber.

Nota de R 35 (notaR135) Veamos un ejemplo de analisis cluster. Los datos hansido obtenidos de esta pagina. Tenemos cuatro variables que nos dan las puntuacio-nes obtenidas en 25 escuelas de New Haven en aritmetica y lectura al principio delcuarto curso y al principio del sexto curso. Empezamos cargando el paquete cluster[12] y leyendo los datos.

> library(cluster)

> x = read.table("../data/achieve.txt")

> names(x) = c("centro", "lec4", "aritme4", "lec6", "aritme6")

> attach(x)

Eliminamos la primera columna en que aparece el nombre de la escuela.

> y = x[, 2:ncol(x)]

Hacemos un analisis cluster jerarquico utilizando la funcion agnes del paquetecluster.

7

Page 110: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> y.ag = agnes(y)

Veamos el dendograma.

> plot(y.ag, which = 2)1

14 20 15 22 1816

4 6 248

212 19 5 21

2311 17

93 7

2510 13

0.0

0.5

1.0

1.5

2.0

2.5

3.0

Dendrogram of agnes(x = y)

Agglomerative Coefficient = 0.84y

Hei

ght

Observando el dendograma parece razonable considerar tres grupos.

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR135.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR135_wc. R

Nota de R 36 (notaR112) Veamos un analisis cluster jerarquico. Los datos sonlos porcentajes de votas que recibio el candidato republicano en las elecciones ame-ricanas entre los anos 1856 y 1976. Cada observacion corresponde a un estado y lasvariables corresponden con las distintas elecciones.

> library(cluster)

> data(votes.repub)

> agn1 = agnes(votes.repub, metric = "manhattan", stand = TRUE)

El dendograma serıa el siguiente.

> plot(agn1, which = 2)

8

Page 111: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

AlabamaGeorgiaArkansasLouisianaMississippiSouth CarolinaAlaskaVermontArizonaMontanaNevadaColoradoIdahoWyomingUtahCaliforniaOregonWashingtonMinnesotaConnecticutNew YorkNew JerseyIllinoisOhioIndianaMichiganPennsylvaniaNew HampshireWisconsinDelawareKentuckyMarylandMissouriNew MexicoWest VirginiaIowaSouth DakotaNorth DakotaKansasNebraskaMaineMassachusettsRhode IslandFloridaNorth CarolinaTennesseeVirginiaOklahomaHawaiiTexas

0 20 40 60 80

Dendrogram

of agnes(x = votes.repub, metric = "m

anhattan", stand = TR

Agglom

erative Coefficient =

0.8votes.repub

Height

Pasa

mos

ahora

lam

atriz

de

dista

ncia

sy

cam

biam

os

elproced

imien

topa

rael

calcu

lode

las

disim

ilarid

ades

entre

grupo

s.

>agn2=agnes(daisy(votes.repub),diss=TRUE,method="complete")

>plot(agn2,which=2)

AlabamaGeorgiaLouisianaArkansasFloridaTexasMississippiSouth CarolinaAlaskaMichiganConnecticutNew YorkNew HampshireIndianaOhioIllinoisNew JerseyPennsylvaniaMinnesotaNorth DakotaWisconsinIowaSouth DakotaKansasNebraskaArizonaNevadaMontanaOklahomaColoradoIdahoWyomingUtahCaliforniaOregonWashingtonMissouriNew MexicoWest VirginiaDelawareKentuckyMarylandNorth CarolinaTennesseeVirginiaHawaiiMaineMassachusettsRhode IslandVermont

0 50 100 150 200 250

Dendrogram

of agnes(x = daisy(votes.repub), diss = TR

UE

, method = "com

plete")

Agglom

erative Coefficient =

0.88daisy(votes.repub)

Height

9

Page 112: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR112.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR112_wc. R

Un procedimiento jerarquico aglomerativo tiene interes cuando el banco de datosno tiene muchos individuos. En otro caso es muy difıcil de interpretar un dendo-grama o de seleccionar el numero de grupos que hay. En todo caso lo hemos de vercomo un analisis exploratorio para decidir el numero de grupos y posteriormenteutilizar algun metodo de particionamiento como los que vamos a ver.

5.3. Metodos de particionamiento

Suponemos ahora que tenemos una idea de cuantos grupos hay. Posiblementehemos realizado un analisis jerarquico previo con todos los datos o, si eran muchos,con una seleccion aleatoria de los datos. Tenemos pues una idea de cuantos grupostendremos que considerar. Obviamente podemos luego evaluar los resultados modi-ficando el numero de grupos. En principio, vamos a suponer que fijamos el numerode grupos a considerar. Suponemos pues que sabemos el numero de grupos y lodenotamos por k.

5.3.1. Metodo de las k-medias

El primer procedimiento que vamos a ver es el metodo de las k-medias (que poralguna extrana razon en la literatura de Inteligencia Artificial se le llama de lasc-medias lo que demuestra que cada persona copia a sus amigos o, simplemente,conocidos). Supongamos que tenemos C1, . . . , Ck una particion de 1, . . . , n. Unmodo bastante natural de valorar la calidad de del agrupamiento que la particionnos indica serıa simplemente considerar la siguiente funcion.

k∑

i=1

j∈Ci

dE(xj , xCi)2, (5.4)

donde dE denota aquı la distancia euclıdea y

xCi =1

|Ci|∑

j∈Ci

xj , (5.5)

es el vector de medias del grupo cuyos ındices estan en Ci. Una particion sera tantomejor cuanto menor sea el valor de la funcion dada en 5.4. El procedimiento deagrupamiento de las k-medias simplemente se basa en elegir como particion de losdatos aquella que nos da el mınimo de la funcion objetivo considerada en ecuacion5.4. Notemos que en muchos textos se hablan del algoritmo de las k-medias y seidentifica con un procedimiento concreto para encontrar el mınimo de la funcion.Aquı entendemos el procedimiento como la minimizacion de la funcion objetivo.De hecho, R ofrece hasta cuatro posibles procedimientos de los muchos que cabeproponer. Hay que diferenciar claramente el procedimiento del metodo de aplicaciondel mismo, del metodo de obtencion de dicho mınimo.

Nota de R 37 (notaR113) Aplicamos un procedimiento de particionamiento delas k-medias con el algoritmo de Hartigan-Wong [8]. Los datos son descriptores deuna base de datos de imagenes. En la primera columna tenemos un identificador dela imagen sin informacion sobre la misma.

> x = read.table("..//data//descriptores.txt")

> y = x[, 2:ncol(x)]

10

Page 113: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Aplicamos k-medias con algoritmo de Hartigan-Wong.

> y.km = kmeans(y, centers = 5, iter.max = 100)

Como resultado tenemos la clasificacion final de cada individuo. Los primerosdatos serıan.

> y.km$cluster[1:10]

[1] 3 4 3 3 5 2 3 4 2 1

Los centros de los grupos se obtienen con

> y.km$centers

El numero de datos en cada grupo lo obtenemos con

> y.km$size

[1] 714 1284 1031 1346 1398

Como medida de lo compactos que son los grupos encontrados tenemos tambienla suma de cuadrados de cada grupo. Notemos que la suma de todos estos cuadradoses la que hemos minimizado imponiendo simplemente el numero total de grupos.

> y.km$withinss

[1] 453.5414 440.3674 358.1347 763.3618 556.5575

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR113.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR113_wc. R

Es importante darnos cuenta de que el procedimiento que acabamos de ver estabasado en la utilizacion de la distancia euclıdea y en que, dado un grupo, podemoscalcular el vector de medias y esto solo lo podemos hacer si todas las variables soncuantitativas.

5.3.2. Particionamiento alrededor de los mediodes

¿Y si no podemos calcular el vector de medias? ¿Y si no tiene sentido calcular elvector de medias? ¿Como promediar dos configuraciones de puntos distintas? ¿Comopromediamos dos formas distintas descritas numericamente? Cuando el concepto depromedio aritmetico no tiene sentido podemos generalizar el procedimiento anteriory hablar de (perdon por el neologismo) de k-mediodes.

La idea ahora es sustituir esos centros calculados como vectores de medias de losindividuos de un mismo grupo por individuos bien centrados, por individuos tıpicos,que sustituyan a las medias.

Supongamos que tomamos k individuos de la muestra que denotamos por mi

con i = 1, . . . , k. Particionamos la muestra en k grupos de modo que el grupo Ci

esta formado por los individuos mas proximos a mi que a cualquier otro mj conj 6= i,

Ci = l : d(l, i) = mınj 6=i

d(l, j).

Consideremos la siguiente cantidad:

k∑

i=1

j∈Ci

d(j, mi). (5.6)

En el metodo de particionamiento alrededor de los mediodes nos planteamos encon-trar las observaciones m1, . . . , mk que minimizan el valor dado en 5.6.

11

Page 114: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Nota de R 38 (notaR114) Aplicamos a los datos descriptores (descriptores deuna base de datos de imagenes digitales) un procedimiento de k-mediodes con cincogrupos.

Realizamos el analisis cluster.

> y.med = pam(y, 5)

Una representacion grafica de la clasificacion la podemos obtener con la funcionextractora plot utilizando which = 2. En ella se utilizan las dos primeras compo-nentes principales.

> plot(y.med, which = 1)

−15 −10 −5 0 5 10

−10

−5

05

clusplot(pam(x = y, k = 5))

Component 1

Com

pone

nt 2

These two components explain 26.02 % of the point variability.

Los mediodes los podemos obtener con el siguiente codigo.

> y.med$medoids

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR114.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR114_wc. R

5.4. Silueta

Veamos como se construye la silueta. Para la observacion i y el grupo C consi-deramos

d(i, C) =1

|C|∑

j∈C

d(i, j),

la disimilaridad media i con los elementos del grupo C. Para cada observacion i,sea A el cluster al cual lo ha asignado el procedimiento cluster que empleamosy calculamos a(i) la disimilaridad media de i con todos los demas individuos delgrupo A, a(i) = d(i, A). Obviamente estamos asumiendo que A contiene al menos

12

Page 115: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Cuadro 5.2: Silueta media y estructura en un conjunto de datos

SC Interpretacion0,71 − 1,00 Fuerte estructura0,51 − 0,70 Estructura razonable0,26 − 0,50 Estructura debil. Probar otros metodos≤ 0,25 No se encuentra estructura

otro objeto. Consideremos d(i, C) para todos los grupos C 6= A y seleccionemos elque tiene el mınimo valor:

b(i) = mınC 6=A

d(i, C).

El grupo B donde se alcanza este mınimo, es decir, d(i, B) = b(i) se le llama vecinodel objeto i. 3 Definimos s(i) como

s(i) = 1 − a(i)

b(i)si a(i) < b(i), (5.7)

= 0 si a(i) = b(i), (5.8)

=b(i)

a(i)− 1 si a(i) > b(i). (5.9)

Esto se puede expresar en una unica ecuacion como

s(i) =b(i) − a(i)

maxa(i), b(i) .

En el caso en que el grupo A contenga un unico objeto no esta muy claro comodefinir a(i). Tomaremos s(i) = 0 que es una eleccion arbitraria. Se comprueba confacilidad que −1 ≤ s(i) ≤ 1 para cualquier objeto i.

Para interpretar el significado de s(i) es bueno ver los valores extremos. Si s(i)es proximo a uno significa que a(i) es mucho menor que b(i) o lo que es lo mismo,que el objeto i esta bien clasificado pues la disimilaridad con los de su propio grupoes mucho menor que la disimilaridad con los del grupo mas proximo que no es elsuyo. Un valor proximo a cero significa que a(i) y b(i) son similares y no tenemosmuy claro si clasificarlo en A o en B. Finalmente un valor de s(i) proximo a −1significa que a(i) es claramente mayor que b(i). Su disimilaridad media con B esmenor que la que tiene con A. Estarıa mejor clasificado en B que en A. No estabien clasificado.

Los valores de s(i) apareceran representados para cada cluster en orden decre-ciente. Para cada objeto se representa una barra horizontal con longitud propor-cional al valor s(i). Una buena separacion entre grupos o cluster viene indicadapor unos valores positivos grandes de s(i). Ademas de la representacion grafica seproporciona un analisis descriptivo. En concreto la media de los valores de la siluetadentro de cada cluster y la media de la silueta para todo el conjunto de datos. Laclasificacion sera tanto mejor cuanto mayor sean estos valores medios. De hecho, sepuede decidir el numero de grupos en funcion del valor medio de las silueta sobretoda la muestra. Vamos probando distintos numeros de grupos y nos quedamos conel numero que nos da la silueta media maxima.

¿Cuando podemos decir que hay estructura de grupos en los datos que estamosanalizando? Experiencias con datos sugieren la tabla 5.2.

3No parece un nombre inadecuado.

13

Page 116: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Nota de R 39 (notaR115) Utilizamos los datos descriptores. Hemos aplicado unaparticionamiento alrededor de los mediodes con cinco grupos.

La silueta de la clasificacion la obtenemos con la funcion silhouette del paquetecluster [12].

> y.si = silhouette(y.med)

La funcion extractora summary nos proporciona un resumen en donde tenemosel numero de elementos de cada grupo y el valor medio de la silueta en cada uno delos grupos. Se incluye tambien el resumen habitual de un conjunto de datos: mınimo,maximo, media, mediana y los cuartiles.

> summary(y.si)

Silhouette of 5773 units in 5 clusters from pam(x = y, k = 5) :

Cluster sizes and average silhouette widths:

1130 385 1694 1444 1120

0.29803506 0.36812793 0.14175502 0.29011448 0.09241103

Individual silhouette widths:

Min. 1st Qu. Median Mean 3rd Qu. Max.

-0.3259 0.1022 0.2019 0.2150 0.3231 0.5523

Vemos que los resultados son realmente malos. No hay estructura cluster deningun tipo. El dibujo de la silueta la obtenemos con la funcion plot.

> plot(y.si)

Silhouette width si

−0.2 0.0 0.2 0.4 0.6 0.8 1.0

Silhouette plot of pam(x = y, k = 5)

Average silhouette width : 0.21

n = 5773 5 clusters Cj

j : nj | avei∈Cj si

1 : 1130 | 0.30

2 : 385 | 0.37

3 : 1694 | 0.14

4 : 1444 | 0.29

5 : 1120 | 0.09

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR115.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR115_wc. R

14

Page 117: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

5.5. Algunos ejemplos

Para acabar el tema incluımos algunos ejemplos de analisis cluster.

Nota de R 40 (Fichero notaR116) Analizamos los datos Ruspini, muy conoci-dos en la literatura de analisis cluster. Primero se hace un particionamiento alre-dedor de los k-mediodes con cuatro grupos. La figura 5.1 muestra los resultados.

Despues hacemos un analisis jerarquico aglomerativo y observamos la silueta concinco y con dos grupos. Ver figuras 5.2 and 5.3 respectivamente.

data(ruspini)

pr4 <- pam(ruspini, 4)

str(si <- silhouette(pr4))

(ssi <- summary(si))

plot(si) # silhouette plot

## Silueta con un cluster jerarquico

ar <- agnes(ruspini)

#Se utilizan 5 grupos

si3 <- silhouette(cutree(ar, k = 5), daisy(ruspini))

plot(si3, nmax = 80, cex.names = 0.5)

## Repetimos el analisis anterior con dos grupos

si4 <- silhouette(cutree(ar, k = 2), daisy(ruspini))

plot(si4, nmax = 80, cex.names = 0.5)

75746861726373646266716965677044484746455358605149595652505557544143424038393721302924363134222333352825273226717205

1191518413162143128119

610

Silhouette width si

0.0 0.2 0.4 0.6 0.8 1.0

Silhouette plot of pam(x = ruspini, k = 4)

Average silhouette width : 0.74

n = 75 4 clusters Cj

j : nj | avei∈Cj si

1 : 20 | 0.73

2 : 23 | 0.75

3 : 17 | 0.67

4 : 15 | 0.80

Figura 5.1:

15

Page 118: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

757473727170696867666564636261605958575655545352515049484746454443424140393837363534333231302928272625242322212019181716151413121110

987654321

Silhouette width si

0.0 0.2 0.4 0.6 0.8 1.0

Silhouette plot of (x = cutree(ar, k = 5), dist = daisy(ruspini))

Average silhouette width : 0.71

n = 75 5 clusters Cj

j : nj | avei∈Cj si

1 : 20 | 0.71

2 : 23 | 0.74

3 : 14 | 0.56

4 : 3 | 0.78

5 : 15 | 0.80

Figura 5.2:

757473727170696867666564636261605958575655545352515049484746454443424140393837363534333231302928272625242322212019181716151413121110

987654321

Silhouette width si

0.0 0.2 0.4 0.6 0.8 1.0

Silhouette plot of (x = cutree(ar, k = 2), dist = daisy(ruspini))

Average silhouette width : 0.58

n = 75 2 clusters Cj

j : nj | avei∈Cj si

1 : 35 | 0.58

2 : 40 | 0.59

Figura 5.3:

Nota de R 41 (notaR135) Veamos un ejemplo de analisis cluster. Los datos hansido obtenidos de esta pagina. Tenemos cuatro variables que nos dan las puntuacio-nes obtenidas en 25 escuelas de New Haven en aritmetica y lectura al principio delcuarto curso y al principio del sexto curso. Empezamos cargando el paquete cluster[12] y leyendo los datos.

> library(cluster)

> x = read.table("../data/achieve.txt")

> names(x) = c("centro", "lec4", "aritme4", "lec6", "aritme6")

> attach(x)

Eliminamos la primera columna en que aparece el nombre de la escuela.

> y = x[, 2:ncol(x)]

16

Page 119: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Hacemos un analisis cluster jerarquico utilizando la funcion agnes del paquetecluster.

> y.ag = agnes(y)

Veamos el dendograma.

> plot(y.ag, which = 2)

114 20 15 22 18

164 6 24

82

12 19 5 2123

11 179

3 725

10 13

0.0

0.5

1.0

1.5

2.0

2.5

3.0

Dendrogram of agnes(x = y)

Agglomerative Coefficient = 0.84y

Hei

ght

Observando el dendograma parece razonable considerar tres grupos.http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR135.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR135_wc. R

Nota de R 42 (Fichero notaR136) Veamos un ejemplo de analisis cluster. Losdatos proceden de la siguiente pagina web: http://www.uni-koeln.de/themen/Statistik/data/cluster/.

Los datos son las tasas de nacimiento y muerte en 70 paıses. Observemos quelos datos se leen desde un fichero de SPSS por lo que hay que usar la librerıa foreign[2].

Hacemos un analisis cluster jerarquico. Observando el dendograma parece razo-nable considerar tres grupos. Aplicamos un particionamiento alrededor de los me-diodes con tres grupos y valoramos el resultado.

Si probamos con dos o cuatro vemos que no mejora el resultado global del analisiscluster.

#Datos achieve

library(cluster)

library(foreign)

x= read.spss('../data/birth.sav',to.data.frame=T)17

Page 120: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

names(x) = c("country","birth","death")

attach(x)

y = x[,2:ncol(x)]

y.ag = agnes(y)

plot(y.ag)

#Parece que hay tres grupos

y.pam = pam(y,3)

summary(y.pam)

y.si = silhouette(y.pam)

plot(y.si)

#Parece que los dos ultimos grupos no estan bien definidos.

#Vamos a probar con distintos numero de grupos.

y.pam = pam(y,2)

summary(y.pam)

y.si = silhouette(y.pam)

plot(y.si)

y.pam = pam(y,4)

summary(y.pam)

y.si = silhouette(y.pam)

plot(y.si)

#Repetimos el analisis con k-medias y comparamos con k-mediodes

y.pam = pam(y,2)

y.km = kmeans(y,2)

table(y.pam$cluster,y.km$cluster)

18

Page 121: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 6

Analisis discriminante o decomo clasificar con muestrade entrenamiento

Discriminar es clasificar. Es una palabra mal vista. Cuando una persona le dice aotra: “Usted me discrimina”esta indicando algo negativo en la medida en que piensaque lo esta separando para perjudicarle. Se asume la discriminacion como algo quese realiza en un sentido negativo. Pues no. El analisis discriminante simplemente serefiere al problema de clasificar en distintos grupos un conjunto de observacionesvectoriales. Clasificar y discriminar se usan como sinonimos.

Tenemos distintos conjuntos de datos multivariantes. ¿Que quiere que tenemosgrupos y que pretendemos hacer con ellos? Una biologa ha recogido una serie deanimales y ha observado en cada uno unas caracterısticas numericas. Esta biologaha podido clasificar a los animales en distintas especies utilizando las variables xde las que dispone y, posiblemente, algunas otras cuya consecucion ya no es tansimple y, en ocasiones, ni posible. Esta interesada en disenar un procedimiento que,partiendo de las variables de las que siempre dispone x, le permita decidir la especiea la que pertenece un animal futuro del cual solamente tiene las caracterısticas x.Tiene esta persona un problema de clasificacion que pretende hacer bien y clasificara cada animal en su especie con un esfuerzo pequeno.

Otro ejemplo puede ser el siguiente. Una persona ha pasado una enfermedad(como la hidatidosis) y por lo tanto guarda en su organismo anticuerpos frente alvirus que lo infecto y le causo la enfermedad. A este individuo se le controla a lolargo de los anos. Cuando se le aplica un procedimiento diagnostico el resultadopuede ser positivo debido a dos razones: el individuo ha recaıdo en la enfermedad ypor lo tanto ha de ser tratado. Sin embargo, si el procedimiento es muy sensible elresultado positivo del test puede ser simplemente producidos por los anticuerpos quela persona conserva. Diferenciar una situacion de la otra supone otra exploracion(placas del torax) y, por ello, una complicacion adicional. En la realizacion del testse han recogido la presencia o ausencia de una serie de aminoacidos. Tenemos quenuestro vector de caracterısticas son variables binarias o dicotomicas y pretendemospoder decidir a partir de ellas si la persona esta sana sin anticuerpos, sana conanticuerpos o finalmente enferma utilizando la presencia o ausencia de los distintosanticuerpos. Este es un segundo problema de interes a tratar aquı.

Pretendemos clasificar a un individuo dado utilizando algunas caracterısticasdel mismo. Pero para poder hacerlo tenemos que conocer para una muestra, quepodemos llamar muestra de entrenamiento (training sample), en que grupo estacada individuo con los que trabajamos. Esto hace bastante natural el nombre mas

1

Page 122: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

utilizado en el contexto de la Informatica de clasificacion supervisada.

Nota de R 43 (notaR102) Tenemos pacientes de los cuales se conocen algunasvariables obtenidas de un analisis de orina. En concreto las variables nos dan lagravidez especıfica (grav), la osmolaridad (osmo), la conductibilidad (conduc), laconcentracion de urea (urea) y la concentracion de calcio (calcio). Tambien tenemosuna variable que nos indica la presencia o ausencia de cristales en la orina delindividuo (grupo donde 1 indica ausencia y 2 indica presencia). El problema quenos planteamos es disenar un procedimiento de clasificacion de modo que, dadoel vector de caracterısticas de la orina, nos permita clasificar a un individuo enuno de los dos posibles grupos, esto es, que va a desarrollar cristales en la orinao no. En el diseno del procedimiento pretendemos utilizar la informacion que yatenemos, esto es, conocemos para una serie de individuos si tiene o no cristales ylos vectores de caracterısticas asociados. En una observacion futura tendremos elvector de caracterısticas pero no conoceremos la clasificacion. Leemos los datos deun fichero de SPSS utilizando el paquete foreign [2] y mostramos las seis primerasobservaciones.

> library(foreign)

> x = read.spss(file = "../data/cristal.sav", to.data.frame = T)

> x[x == -1] = NA

> cc = complete.cases(x)

> x = x[cc, ]

> attach(x)

> x[1:6, ]

Incluimos un analisis descriptivo de los datos.

> summary(x)

IND GRUPO GRAV PH

Min. : 2.00 ausencia de cristales :44 Min. :1.005 Min. :4.760

1st Qu.:21.00 presencia de cristales:33 1st Qu.:1.012 1st Qu.:5.530

Median :40.00 Median :1.018 Median :5.940

Mean :40.31 Mean :1.018 Mean :6.041

3rd Qu.:60.00 3rd Qu.:1.024 3rd Qu.:6.400

Max. :79.00 Max. :1.040 Max. :7.940

OSMO CONDUC UREA CALCIO

Min. : 187.0 Min. : 5.10 Min. : 10.0 Min. : 0.17

1st Qu.: 410.0 1st Qu.:14.30 1st Qu.:159.0 1st Qu.: 1.45

Median : 594.0 Median :21.40 Median :255.0 Median : 3.16

Mean : 613.6 Mean :20.91 Mean :262.4 Mean : 4.16

3rd Qu.: 803.0 3rd Qu.:27.00 3rd Qu.:362.0 3rd Qu.: 6.19

Max. :1236.0 Max. :38.00 Max. :620.0 Max. :14.34

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR102.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR102_wc. R

Nota de R 44 (notaR103) Los datos corresponden a una serie de personas delas cuales conocemos informacion que previsiblemente nos permitira predecir si sondiabeticos o no. Incluso dentro de los diabeticos pretendemos discriminar (distin-guir) entre diabetes clınica y diabetes manifiesta. La variable tipo nos indica en quegrupo esta la persona observada de los tres grupos indicados. El resto de variablesnos describen al paciente: peso es el peso relativo, gpb es la glucosa plasmatica en

2

Page 123: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

ayunas, garea el area bajo la curva de la glucosa, iarea el area bajo la curva deinsulina y sspg la glucosa plasmatica en estado estacionario. Pretendemos clasificara un individuo en uno de los tres grupos posibles teniendo en cuenta las variablesconsideradas.

> library(foreign)

> x = read.spss(file = "../data/diabetes.sav", to.data.frame = T)

> x[1:2, ]

IND PESO GPB GAREA IAREA SSPG TIPO LIAREA

1 1 0.81 80 356 124 55 control 4.820282

2 2 0.95 97 289 117 76 control 4.762174

Veamos un breve analisis descriptivo de los datos.

> summary(x)

IND PESO GPB GAREA

Min. : 1 Min. :0.7100 Min. : 70.0 Min. : 269.0

1st Qu.: 37 1st Qu.:0.8800 1st Qu.: 90.0 1st Qu.: 352.0

Median : 73 Median :0.9800 Median : 97.0 Median : 413.0

Mean : 73 Mean :0.9773 Mean :122.0 Mean : 543.6

3rd Qu.:109 3rd Qu.:1.0800 3rd Qu.:112.0 3rd Qu.: 558.0

Max. :145 Max. :1.2000 Max. :353.0 Max. :1568.0

IAREA SSPG TIPO LIAREA

Min. : 10.0 Min. : 29.0 diabetes manifiesta:33 Min. :2.303

1st Qu.:118.0 1st Qu.:100.0 diabetes quimica :36 1st Qu.:4.771

Median :156.0 Median :159.0 control :76 Median :5.050

Mean :186.1 Mean :184.2 Mean :5.019

3rd Qu.:221.0 3rd Qu.:257.0 3rd Qu.:5.398

Max. :748.0 Max. :480.0 Max. :6.617

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR103.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR103_wc. R

El capıtulo esta organizado del siguiente modo. Empezamos (seccion 6.1) recor-dando el teorema de Bayes con un ejemplo muy simple de urnas (no funerarias). Deeste modo vemos la idea basica del metodo de clasificacion basado en probabilidadesa posteriori. Consideramos, en la seccion 6.2, el caso (de interes puramente acade-mico) de dos poblaciones normales univariantes con la misma varianza y con losparametros conocidos 1. En la seccion 6.3 abordamos la situacion con dos poblacio-nes normales multivariantes. Allı consideramos tanto el caso en que las matrices decovarianzas son la misma como cuando son distintas. En la seccion 6.4 nos plantea-mos la estimacion de los vectores de medias y las matrices de covarianzas y vemos laimplementacion practica del metodo. El problema de la reduccion de la dimensiondentro del problema de la clasificacion es considerado en la seccion 6.7

6.1. Un problema de probabilidad sencillo

Veamos un problema de probabilidad basico que nos servira para introducir elprocedimiento de clasificacion que vamos a utilizar. No le falta ningun detalle ymuchos lo hemos resuelto. Tenemos dos urnas. En la primera de ellas hay una bolablanca y dos negras mientras que en la segunda urna hay dos bolas blancas y una

1En datos reales los parametros no son conocidos.

3

Page 124: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

negra. Elegimos al azar una urna (no sabemos cual es la elegida). Posteriormente dela urna elegida, elegimos a su vez una bola. Resulta que la bola elegida es blanca.La pregunta que nos hacemos es: ¿De que urna la hemos elegido? La solucion es unaaplicacion del teorema de Bayes (ver 1.2.3). Denotamos Bi el suceso consistente enque la bola ha sido extraıda de la i-esima urna y por el A el suceso de que la bolaes blanca. A priori, antes de realizar el experimento, las dos urnas tenıan la mismaprobabilidad (elegimos al azar una de las urnas) y por tanto la probabilidad (previao a priori) de los sucesos Bi serıan P (Bi) = 1/2. No sabemos si la urna elegida hasido la primera o la segunda pero nos podemos plantear que probabilidad tenemosde que sea blanca si efectivamente es la urna 1 la elegida y lo mismo para la dos.Es obvio que P (A | B1) = 1/3 y P (A | B2) = 2/3. Esta informacion se puedecombinar aplicando el teorema de Bayes para determinar la probabilidad de que seala primera o la segunda urna la elegida sabiendo (teniendo pues una informacionadicional sobre el experimento) que ha salido blanca. En concreto tenemos que

P (Bi | A) = P (A|Bi)P (Bi)P

kj=1 P (A|Bj)P (Bj)

. Finalmente podemos comprobar que P (B1 | A) =

1/3 y P (B2 | A) = 2/3.

Las probabilidades P (B1) y P (B2) reciben el nombre de probabilidades apriori. Vamos a denotarlas en lo que sigue por πi, esto es, la probabilidad de la urnai. Nuestra informacion consiste en la ocurrencia del suceso A (la bola ha sido blanca)de modo que las probabilidades P (A | B1) y P (A | B2) serıan las verosimilitudesde que ocurra lo que ha ocurrido si la urna es la primera o la segunda. Finalmentetenemos P (B1 | A) y P (B2 | A) que nos darıan las probabilidades a posteriori.

Hemos de tomar una decision: ¿cual fue la urna elegida? Parece natural elegiraquella que tiene a posteriori una maxima probabilidad y quedarnos con la segundaurna.

Vamos a reescribir lo que acabamos de hacer que nos acerque al planteamientomas generico del problema. Supongamos que describimos el color de la bola elegidamediante una variable dicotomica o binaria. Consideramos la variable aleatoria Xque vale uno si es blanca la bola y cero en otro caso. Es lo que se llama unavariable indicatriz pues nos indica si se ha producido el suceso que nos interesa. 2

El comportamiento aleatorio de X , su distribucion de probabilidad, depende queestemos extrayendo una bola de la primera o de la segunda urna. En concreto en laprimera urna X sigue una distribucion Bernoulli con probabilidad de exito p1 = 1/3mientras que en la segunda urna tenemos una Bernoulli con probabilidad de exitop2 = 2/3. Cada urna es una poblacion distinta donde el comportamiento aleatoriode la misma cantidad es distinto. X en la i-esima poblacion tiene una funcion deprobabilidad

fi(x) = pxi (1 − pi)

1−x con x = 0, 1.

Tenıamos unas probabilidades a priori de que X estuviera siendo observada en lapoblacion i-esima que denotamos por π(i) donde π(1) + π(2) = 1 y π(1), π(2) ≥ 0.Las probabilidades a posteriori obtenidas por la aplicacion del teorema de Bayesvienen dadas por

π(i | x) =fi(x)π(i)

f1(x)π(1) + f2(x)π(2).

Finalmente nos hemos quedado con la poblacion i tal que tenıa un valor de π(i | x)mayor, aquella que, una vez observado el valor de X = x, hacıa mas probable lapoblacion.

2Si A es el suceso de interes entonces X(ω) = 1 si ω ∈ A y cero en otro caso. A veces se denotacomo X(ω) = 1A(ω).

4

Page 125: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

6.2. Dos poblaciones normales

Supongamos ahora que tenemos que decidir entre dos poblaciones basandonosen un valor aleatorio continuo con distribucion normal. En concreto supondremosque en la primera poblacion X es normal con media µ1 y varianza σ2. En la segundapoblacion X tiene distribucion normal con media µ2 y varianza σ2. Graficamente enla figura 6.1 aparece la situacion con la que nos encontramos. Supongamos conocidoslos valores de las media y la varianza comun. Observamos un valor de la variableX = x: ¿cual de las dos distribuciones lo ha generado? De otro modo: ¿a quepoblacion pertenece este valor generado?

La idea para clasificar este valor generado es la misma de antes. Ahora tendremos

fi(x) = f(x | µi, σ2) =

1√2πσ

exp

(− 1

2σ2(x − µi)

2

),

aunque fi(x) no es la probabilidad del valor x asumiendo que estamos en la po-blacion i. No obstante, fi(x)dx sı que tiene este sentido. Hablando en un sentidoamplio tenemos una interpretacion similar. La observacion x la clasificarıamos enla poblacion 1 si

π(1)f(x | µ1, σ2)

π(2)f(x | µ2, σ2)> 1,

Facilmente comprobamos que esto equivale con que

1

σ2(µ1 − µ2)

(x − 1

2(µ1 + µ2)

)> log

π(2)

π(1).

0 2 4 6

0.0

0.1

0.2

0.3

0.4

x

Figura 6.1: Dos densidades normales con la misma varianza y distinta media.

5

Page 126: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

6.3. Dos normales multivariantes

En la seccion 6.2 nos planteabamos la situacion de dos normales univariantes. Enlas aplicaciones es mas habitual el caso en que trabajamos con varias caracterısticassimultaneamente. En particular, vamos a asumir ahora que X puede pertenecer auna de dos poblaciones normales multivariantes. La primera con vector de mediasµ1 y matriz de covarianzas Σ y la segunda con vector de medias µ2 y matriz de cova-rianzas Σ. Dada una observacion multivariante x, la clasificaremos en la poblacion1 si

π(1)f(x | µ1, Σ)

π(2)f(x | µ2, Σ)> 1,

pero,

f(x | µ1, Σ)

f(x | µ2, Σ)=

exp

[− 1

2(x − µ1)

′Σ−1(x − µ1) +1

2(x − µ2)

′Σ−1(x − µ2)

]=

exp

[(µ1 − µ2)

′Σ−1x − 1

2(µ1 − µ2)

′Σ−1(µ1 + µ2)

]. (6.1)

Sea λ = Σ−1(µ1 − µ2), entonces la observacion es asignada a la primera poblacionsi

D(x) = λ′[x − 1

2(µ1 + µ2)

]> log

π(2)

π(1). (6.2)

Notemos que la ecuacion D(x) = log π(2)π(1) nos define un hiperplano que separa las

dos poblaciones.¿Que ocurre si no asumimos que tenemos una misma matriz de covarianzas? En

este caso se tiene que:

Q(x) = logf(x | µ1, Σ1)

f(x | µ2, Σ2)=

1

2log

|Σ2||Σ1|

− 1

2(x − µ1)

′Σ−11 (x − µ1) +

1

2(x − µ2)

′Σ−12 (x − µ2) =

1

2log

|Σ2||Σ1|

− 1

2

[x′(Σ−1

1 − Σ−12 )x − 2x′(Σ−1

1 µ1 − Σ−12 µ2)

]. (6.3)

Como en el caso anterior asignamos la observacion x a la primera poblacion si

Q(x) > logπ(2)

π(1).

Notemos que ahora Q(x) = log π(2)π(1) no es un hiperplano sino que tenemos una

superficie no plana.

6.4. Dos poblaciones normales multivariantes con

parametros desconocidos

Lo visto en las secciones anteriores tenıa como objeto mostrar de un modo suavela transicion desde el resultado probabilıstico basico, el teorema de Bayes, y suaplicacion en el problema de la clasificacion. Sin embargo, no es real asumir queconocemos completamente la distribucion de las observaciones en cada poblacion oclase. En las aplicaciones los vectores de medias y la matriz o matrices de covarianzas

6

Page 127: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

no son conocidas. Hemos de estimarlas a partir de los datos. Veamos primero comohacerlo y luego como usar estos parametros en el procedimiento de clasificacion.

Empezamos por el caso en que tenemos dos poblaciones normales con vectoresde medias µ1 y µ2 y matrices de covarianzas Σ1 y Σ2. Lo que tenemos son dosmuestras aleatorias correspondientes a cada una de las poblaciones.

Supongamos que tenemos ni individuos de la poblacion i y los vectores de ca-racterısticas son los vectores columna xij ∈ R

d (con i = 1, 2 y j = 1, . . . , ni).Denotamos

xi· =

∑ni

j=1 xij

ni, x·· =

∑2i=1

∑ni

j=1 xij

n(6.4)

donde n = n1 + n2. Sea Si la matriz de varianzas o de dispersion de la poblacion i,es decir,

Si =

∑ni

j=1(xij − xi·)(xij − xi·)′

ni − 1. (6.5)

El vector µi es estimado mediante µi = xi·. La matriz Σi la estimamos medianteSi. En el caso particular en que asumamos que Σ = Σ1 = Σ2 entonces la matriz decovarianzas comun la estimamos con

Sp =

∑2i=1(ni − 1)Si

n − 2.

¿Como clasificamos? Las distribuciones teoricas que suponıamos conocidas sonreemplazadas por las distribuciones normales con los parametros estimados.

Si asumimos una matriz de covarianza comun a ambas poblaciones entoncesasignamos x a la primera poblacion si

Ds(x) > logπ(2)

π(1), (6.6)

donde

Ds(x) = λ′(x − 1

2(x1· + x2·) (6.7)

yλ = S−1

p (x1· − x2·). (6.8)

La funcion Ds recibe el nombre de funcion discriminante lineal. La razon es obvia:clasificamos en uno o en otro grupo utilizando una funcion lineal de las distintasvariables.

En el caso particular en que π(1) = π(2), esto es, consideramos a priori igual-mente probables ambos grupos entonces la regla de clasificacion propuesta serıa:clasificamos en la poblacion o clase 1 si,

λ′x >1

2(λ′x1· + λ′x2·).

Es es el procedimiento que propuso R.A. Fisher en 1936.Notemos que las probabilidades de pertenencia a posteriori a cada una de las

poblaciones pueden ser estimadas mediante

π(i|x) =π(i)f(x|xi·,Sp)

π(1)f(x|x1·,Sp) + π(2)f(x|x2·,Sp). (6.9)

Una vez tenemos las probabilidades a posteriori estimadas el individuo es clasificadoen el grupo que tiene una mayor probabilidad a posteriori.

En la situacion mas general no asumiremos una misma matriz de covarianzasen las dos poblaciones. En este caso estimamos la matriz Σi mediante la matriz Si

dada en la ecuacion 6.5. Las probabilidades a posteriori las estimamos como

π(i|x) =π(i)f(x|xi·, Si)

π(1)f(x|x1·, S1) + π(2)f(x|x2·, S2). (6.10)

7

Page 128: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Nota de R 45 (notaR104) Vamos a trabajar con los datos de cristales en la ori-na. Esta nota es un ejemplo de analisis discriminante lineal con dos grupos. Con-sideramos dos casos. En el primero las probabilidades a priori de cada grupo seasumen iguales entre sı y, por lo tanto, iguales a 0,5. En el segundo caso, las pro-babilidades a priori coinciden con las proporciones observadas dentro de la muestrade cada una de las poblaciones o clases. Leemos los datos.

> library(foreign)

> x = read.spss(file = "../data/cristal.sav", to.data.frame = T)

Definimos el valor -1 como dato faltante.

> x[x == -1] = NA

Eliminamos del estudio todos los casos en los que hay algun dato faltante.

> cc = complete.cases(x)

> attach(x[cc, ])

Suponemos matrices de covarianzas iguales y probabilidades a priori iguales.

> library(MASS)

> z = lda(GRUPO ~ CALCIO + CONDUC + GRAV + OSMO + PH + UREA, prior = c(1,

+ 1)/2)

Veamos como recuperar los distintos elementos del analisis.

> attributes(z)

£names

[1] "prior" "counts" "means" "scaling" "lev" "svd" "N"

[8] "call" "terms" "xlevels"

£class

[1] "lda"

Las probabilidades a priori vienen dadas por

> z$prior

ausencia de cristales presencia de cristales

0.5 0.5

El numero de datos por grupo es

> z$counts

ausencia de cristales presencia de cristales

44 33

El vector de medias estimado en cada grupo lo obtenemos con

> z$means

CALCIO CONDUC GRAV OSMO PH UREA

ausencia de cristales 2.628864 20.55000 1.015364 561.6591 6.125682 232.4318

presencia de cristales 6.202424 21.37879 1.021576 682.8788 5.927273 302.3636

8

Page 129: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Vamos a obtener las probabilidades a posteriori. Observar la opcion CV=TRUE.

> z = lda(GRUPO ~ CALCIO + CONDUC + GRAV + OSMO + PH + UREA, prior = c(1,

+ 1)/2, CV = TRUE)

> attributes(z)

£names

[1] "class" "posterior" "terms" "call" "xlevels"

Obtengamos las probabilidades a posteriori.

> z$posterior[1:10, ]

ausencia de cristales presencia de cristales

1 0.6410723 0.35892766

2 0.8700260 0.12997404

3 0.8483785 0.15162147

4 0.9053400 0.09465995

5 0.5761861 0.42381394

6 0.8967915 0.10320847

7 0.2665533 0.73344672

8 0.8239856 0.17601445

9 0.8961114 0.10388860

10 0.7538165 0.24618354

y las clasificaciones para cada los distintos casos.

> z$class[1:10]

[1] ausencia de cristales ausencia de cristales ausencia de cristales

[4] ausencia de cristales ausencia de cristales ausencia de cristales

[7] presencia de cristales ausencia de cristales ausencia de cristales

[10] ausencia de cristales

Levels: ausencia de cristales presencia de cristales

Las probabilidades a priori corresponden con proporciones observadas.

> z1 = lda(GRUPO ~ CALCIO + CONDUC + GRAV + OSMO + PH + UREA, CV = TRUE)

Las probabilidades a posteriori son ahora

> z1$posterior[1:10]

[1] 0.7042676 0.8992456 0.8818036 0.9272842 0.6444699 0.9205435 0.3264031

[8] 0.8619128 0.9200059 0.8032534

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR104.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR104_wc. R

Nota de R 46 (notaR105) Con los datos de los cristales en la orina realizamosun analisis discriminante cuadratico en donde no asumimos una matriz de cova-rianzas comun.

> z = qda(GRUPO ~ CALCIO + CONDUC + GRAV + OSMO + PH + UREA, prior = c(1,

+ 1)/2, CV = TRUE)

Podemos ver las probabilidades a posteriori.

9

Page 130: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> z$posterior[1:10, ]

ausencia de cristales presencia de cristales

1 0.7658585 0.23414150

2 0.9465173 0.05348267

3 0.9718836 0.02811645

4 0.9811643 0.01883569

5 0.5413410 0.45865904

6 0.9434295 0.05657054

7 0.2934976 0.70650235

8 0.9161927 0.08380735

9 0.8622328 0.13776719

10 0.9597205 0.04027955

Volvemos a realizar un analisis discriminante pero modificamos las probabilida-des a priori. Tomamos como probabilidades a priori las frecuencias observadas enla muestra.

> z1 <- qda(GRUPO ~ CALCIO + CONDUC + GRAV + OSMO + PH + UREA,

+ CV = TRUE)

Y podemos ver las nuevas probabilidades a posteriori.

> z1$posterior[1:10, ]

ausencia de cristales presencia de cristales

1 0.8134756 0.18652440

2 0.9593444 0.04065560

3 0.9787634 0.02123661

4 0.9858064 0.01419361

5 0.6114531 0.38854692

6 0.9569634 0.04303655

7 0.3564571 0.64354291

8 0.9357994 0.06420063

9 0.8929890 0.10701104

10 0.9694830 0.03051696

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR105.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR105_wc. R

6.5. Analisis discriminante con mas de dos pobla-ciones normales

Supongamos que tenemos unas probabilidades a priori π(i) de que el caso per-tenezca al grupo i con i = 1, . . . , g (obviamente

∑gi=1 π(i) = 1). Si x son las carac-

terısticas de un caso entonces vamos a asumir que x tiene una distribucion normalmultivariante con media µi y matriz de varianzas Σi en la clase i. Su densidad deprobabilidad viene dada por

f(x | µi, Σi) = (2π)−d/2 | Σi |−1/2 exp−1

2(x − µi)

′Σ−1i (x − µi). (6.11)

Utilizando el teorema de Bayes tenemos que las probabilidades a posteriori vienendadas por

π(i | x) =π(i)f(x | µi, Σi)∑g

j=1 π(j)f(x | µj , Σj). (6.12)

10

Page 131: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Un metodo de clasificacion consiste en clasificar al individuo con caracterısticasx en la clase o grupo tal que la probabilidad a posteriori π(i | x) es maxima o loque es lo mismo: clasificamos en el grupo tal que

π(i)f(x|µi, Σi) = maxj

πjf(x|µj , Σj).

Obviamente, habitualmente no conocemos los parametros (µi, Σi) de las distintasclases por lo que hemos de estimarlos.

Supongamos que tenemos ni individuos en la clase i y los vectores de carac-terısticas son los vectores columna xij ∈ R

d (con i = 1, . . . , g y j = 1, . . . , ni).Denotamos

xi· =

∑ni

j=1 xij

ni, x·· =

∑gi=1

∑ni

j=1 xij

n(6.13)

donde n =∑g

i=1 ni. Sea Si la matriz de varianzas o de dispersion de la clase i, esdecir,

Si =

∑ni

j=1(xij − xi·)(xij − xi·)′

ni − 1. (6.14)

El vector µi es estimado mediante µi = xi·. En cuanto a la estimacion de las matricesΣi se utilizan dos estimadores. En el caso en que asumamos que todas son igualesentonces el estimador de Σ = Σ1 = . . . = Σg es Σ = Sp donde

Sp =

∑gi=1(ni − 1)Si

n − g.

Si no asumimos que las distintas matrices de varianzas son iguales entonces cadaΣi es estimada mediante Si.

Es claro que el procedimiento indicado en la ecuacion 6.5 no es aplicable puesno conocemos los parametros. Veamos como queda el procedimiento en las dossituaciones posibles: asumiendo igualdad de las matrices de covarianzas y asumiendoque son distintas.

Bajo la hipotesis de matriz de varianza comun tendremos que

log[π(i)f(x|xi·,Sp)] = log π(i) + c − 1

2(x − xi·)

′S−1p (x − xi·).

Le quitamos a log[π(i)f(x|xi·,Sp)] la parte que no depende de i dada por c− 12x′S−1

p xy obtenemos la funcion

Li(x) = log π(i) + x′i·S

−1p (x − 1

2xi·).

Asignamos x al grupo que tiene un valor mayor de la funcion Li(x). Estas funcionesreciben el nombre de funciones discriminantes. Observemos que las diferencias entredistintas funciones Li son hiperplanos y por ello se habla de analisis discriminantelineal.

En el caso en que no se asume una matriz de varianzas comun entoncesla regla de clasificacion consiste en clasificar donde es maxima la siguiente funcion

Qi(x) = 2 logπ(i) − log |Si| − (x − xi·)′S−1

i (x − xi·). (6.15)

Notemos que el ultimo termino no es mas que la distancia de Mahalanobis de x alcentro estimado de la clase, xi·. La diferencia entre las funciones Qi para dos clasesdistintas es una funcion cuadratica y por ello el metodo recibe el nombre de analisisdiscriminante cuadratico.

11

Page 132: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

6.6. Valoracion del procedimiento de clasificacion

Nuestros datos son (xi, yi) con i = 1, . . . , n siendo xi el vector de caracterısticadel individuo y denotando yi la clase poblacion o grupo al que pertenece realmenteel individuo. Tenemos unas probabilidades a posteriori π(j|x) para cada x que nosqueramos plantearla. Clasificamos x en la clase j tal que tiene maxima probabilidadde las posibles. Pero el metodo ası construido, ¿va bien o es un desastre? Pareceque todos coincidimos en que ir bien quiere decir clasificar a los individuos en losgrupos a los que realmente pertenecen.

Una primera practica que pretende valorar la probabilidad (y por lo tanto lafrecuencia de veces que ocurre) de una clasificacion correcta es, una vez estimadaslas probabilidades a posteriori para los propios elementos de la muestra. Esto es,nos planteamos clasificar a los individuos utilizados para construir el procedimientode clasificacion. Tendremos para cada data, yi, el grupo al que pertenece e y∗

i elgrupo en el que lo clasificamos. Podemos considerar una valoracion del resultado dela clasificacion la siguiente cantidad,

I =

n∑

i=1

δyi,y∗

i

n, (6.16)

donde δy,y∗ = 1 si y = y∗ y cero en otro caso. La cantidad definida en 6.16 es deuso habitual en la literatura de reconocimiento de patrones. Es, sin duda, un modorazonable de valorar la calidad del procedimiento de clasificacion. Se queda pobre.Al menos parece insuficiente. ¿Como nos equivocamos cuando clasificamos? La si-guiente opcion habitual es utilizar la tabla de clasificacion en donde cruzamos losvalores (yi, y

∗i ). En esta tabla tendremos en la fila (r, c) el numero de casos que ori-

ginalmente son de la clase r y los hemos clasificado en el grupo c. Valorando la tablade clasificacion podemos valorar el metodo de clasificacion. Es importante tener encuenta aquı que no todos los errores de clasificacion tienen la misma importancia.

Independientemente de la valoracion numerica que hagamos del procedimientode clasificacion hemos de tener en cuenta sobre que casos estamos realizando es-ta valoracion. Si un mismo caso lo utilizamos para construir el procedimiento devaloracion y lo volvemos a utilizar para clasificarlo estamos sesgando la valoraciondel procedimiento a favor del mismo. Un procedimiento de clasificacion siempre iramejor con los casos que utilizamos para construirlo y peor sobre otros casos. Hemosde intentar corregirlo.

Una primera idea es dejar uno fuera cada vez. Para cada j consideramos todala muestra menos xj . Utilizando el resto de la muestra estimamos los vectores demedias y las matrices de covarianzas y, finalmente, las probabilidades a posterioridel individuo j en cada clase. Lo clasificamos del modo habitual. Repetimos elprocedimiento para cada j y construimos la tabla correspondiente. En ingles es latecnica conocida como leaving one out. Realmente el metodo de clasificacion quevaloramos en cada ocasion no es exactamente el mismo pero no es muy diferente. Encada ocasion solamente estamos prescindiendo de un caso y los vectores de mediasy matrices de covarianzas no se modifican mucho. Estamos valorando esencialmenteel mismo metodo.

Una segunda opcion; mejor en su validez peor en sus necesidades. Si tenemos unamuestra de tamano n elegimos una muestra sin reemplazamiento de tamano m. Losm datos seleccionados son utilizadas para estimar las probabilidades a posteriori ylos n−m restantes son clasificados y podemos valorar las distintas proporciones deerror. Es una estimacion del error basada en un metodo de aleatorizacion. Si elegimoslas sucesivas muestras con reemplazamiento tendrıamos un metodo bootstrap.

Nota de R 47 (notaR300) Consideremos los datos iris tratados originalmentepor Fisher. Vemos como se utiliza una muestra para estimar las matrices de co-

12

Page 133: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

varianzas y los vectores de medias mientras que clasificamos a los individuos noutilizados en la estimacion de los parametros. Se utilizan los datos iris de Fisher.

> library(MASS)

> data(iris3)

> Iris <- data.frame(rbind(iris3[, , 1], iris3[, , 2], iris3[,

+ , 3]), Sp = rep(c("s", "c", "v"), rep(50, 3)))

Tomamos una muestra y con esta muestra estimamos los vectores de medias yla matriz de covarianzas.

> train <- sample(1:150, 75)

> table(Iris$Sp[train])

> z <- lda(Sp ~ ., Iris, prior = c(1, 1, 1)/3, subset = train)

Con los estimadores podemos ahora clasificar los demas datos de la muestra.

> predict(z, Iris[-train, ])$class

[1] s s s s s s s s s s s s s s s s s s s s s s s s s s s c c c c c c c c c c v

[39] c c c c c c c c c c c c c v v v v v v v v c v v v v v c v v c v v v v v v

Levels: c s v

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR300.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR300_wc. R

Nota de R 48 (notaR107) Vamos a analizar el banco de datos de la diabetes. Eneste caso pretendemos clasificar entre tres grupos: no diabeticos, diabetes clınica ydiabetes manifiesta. Realizamos un analisis discriminante lineal (asumiendo matrizde varianzas comun) y un analisis discriminante cuadratico.

Realizamos el analisis discriminante.

> z = lda(TIPO ~ PESO + GPB + GAREA + IAREA + SSPG, CV = TRUE)

Calculamos la tabla de clasificacion correcta (o incorrecta segun se mire. En ladiagonal principal aparecen los casos correctamente clasificados mientras que fuerade la diagonal principal tenemos los casos que no hemos clasificado correctamente.

> table(TIPO, z$class)

TIPO diabetes manifiesta diabetes quimica control

diabetes manifiesta 26 6 1

diabetes quimica 0 30 6

control 0 3 73

Vamos a probar ahora realizando un analisis discriminante cuadratico.

> z1 = qda(TIPO ~ PESO + GPB + GAREA + IAREA + SSPG, CV = TRUE)

Y volvemos a calcular la tabla de clasificacion.

> table(TIPO, z1$class)

TIPO diabetes manifiesta diabetes quimica control

diabetes manifiesta 30 3 0

diabetes quimica 3 29 4

control 0 4 72

13

Page 134: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

No parece que mejoren mucho los resultados de la clasificacion. Tambien podemoscomparar ambas clasificaciones.

> table(z$class, z1$class)

diabetes manifiesta diabetes quimica control

diabetes manifiesta 26 0 0

diabetes quimica 7 30 2

control 0 6 74

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR107.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR107_wc. R

Nota de R 49 (notaR149) Seguimos con los datos de la orina. Notemos que con-sideramos probabilidades a priori correspondientes a las proporciones en la muestra.Nos limitamos a construir la tabla de clasificacion.

Suponemos matrices de covarianzas iguales y probabilidades a priori dadas porlas proporciones de cada clase en la muestra.

> z1 = lda(GRUPO ~ CALCIO + CONDUC + GRAV + OSMO + PH + UREA, CV = TRUE)

Construimos la tabla de clasificaciones.

> table(GRUPO, z1$class)

GRUPO ausencia de cristales presencia de cristales

ausencia de cristales 42 2

presencia de cristales 14 19

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR149.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR149_wc. R

Nota de R 50 (notaR139) Consideramos unos datos de correo electronico. Elobjetivo del analisis es decidir si el correo es basura o no basandonos en informacionde dicho correo. Estos datos se pueden encontrar en [3].

Realizamos un analisis discriminante linear y un analisis cuadratico. Vemos queel lineal nos proporciona mejores resultados.

> library(MASS)

> x = read.table(file = "../data/spambase_data", sep = ",")

> attach(x)

> xnam <- paste("V", 1:57, sep = "")

> (fmla = as.formula(paste("y ~ ", paste(xnam, collapse = "+"))))

> y = x[, 58]

Realizamos el analisis discriminante lineal.

> z = lda(fmla, data = x, prior = c(1, 1)/2, CV = T)

La tabla de clasificacion es la siguiente.

> table(V58, z$class)

V58 0 1

0 2628 160

1 267 1546

14

Page 135: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Realizamos el analisis discriminante cuadratico y obtenemos la nueva tabla declasificacion.

> z = qda(fmla, data = x, prior = c(1, 1)/2, CV = T)

> table(V58, z$class)

V58 0 1

0 2086 695

1 86 1723

Vamos a realizar una valoracion de los resultados de clasificacion con el analisisdiscriminante lineal utilizando remuestreo. Elegimos la muestra de entrenamientocomo una seleccion aleatoria de los datos.

> entrenamiento = sample(nrow(x), 2000)

Vemos la distribucion del correo en la muestra de entrenamiento.

> table(y[entrenamiento])

0 1

1214 786

Realizamos el analisis discriminante lineal.

> z = lda(fmla, data = x, prior = c(1, 1)/2, subset = entrenamiento)

Vemos la tabla de clasificacion sobre los datos de entrenamiento.

> table(predict(z, x[entrenamiento, ])$class, y[entrenamiento])

0 1

0 1143 126

1 71 660

Vemos la tabla de clasificacion sobre el resto de los datos.

> table(predict(z, x[-entrenamiento, ])$class, y[-entrenamiento])

0 1

0 1473 150

1 101 877

Repetimos en muestras con reemplazamiento.

> entrenamiento = sample(nrow(x), 2000, replace = T)

> table(y[entrenamiento])

0 1

1185 815

> z = lda(fmla, data = x, prior = c(1, 1)/2, subset = entrenamiento)

Vemos la tabla de clasificacion sobre los datos de entrenamiento.

> table(predict(z, x[entrenamiento, ])$class, y[entrenamiento])

15

Page 136: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

0 1

0 1120 114

1 65 701

Vemos la tabla de clasificacion sobre el resto de los datos.

> table(predict(z, x[-entrenamiento, ])$class, y[-entrenamiento])

0 1

0 1707 183

1 122 991

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR139.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR139_wc. R

6.7. Variables discriminantes canonicas o discrimi-

nantes lineales

Vamos a estudiar una tecnica de reduccion de la dimension relacionada con elplanteamiento que del analisis discriminante lineal hizo Fisher. Consideramos lasmatrices W y B definidas como

W =

g∑

i=1

ni∑

j=1

(xij − xi·)(xij − xi·)′ =

g∑

i=1

(ni − 1)Si, (6.17)

y

B =

g∑

i=1

ni∑

j=1

(xi· − x··)(xi· − x··)′ =

g∑

i=1

ni(xi· − x··)(xi· − x··)′ (6.18)

Notemos que

Sp =W

n − g(6.19)

Estas matrices reciben el nombre de matrices intra grupos y entre grupos respectiva-mente. Son las versiones matriciales de las sumas de cuadrados intra y entre gruposhabituales en analisis de la varianza.

Es claro que cuando mas agrupados esten los datos dentro de los grupos y masseparados esten para grupos distintos tendremos que la magnitud de W ha de sermenor que la de B. Supongamos que reducimos las observaciones multivariantes xij

a datos univariantes mediante tomando zij = c′xij . Las sumas de cuadrados intray entre vendrıan dadas por c′Wc y c′Bc. El cociente Fc = c′Bc/c′Wc nos comparala variabilidad intra con la variabilidad entre. Fisher (1936) introdujo el analisisdiscriminante lineal buscando el vector c tal que el cociente Fc sea el mayor posible.Ese fue su objetivo inicial.

La matriz W es suma de matrices semidefinidas positivas por lo que es defi-nida positiva y consideramos su descomposicion de Cholesky dada por W = T ′T .Tomamos b = Tc. Se tiene

Fc =c′Bc

c′Wc=

b′(T ′)−1BT−1b

b′b=

b′Ab

b′b= a′Aa, (6.20)

donde a = b/ ‖ b ‖, esto es, a tiene modulo unitario y A = (T ′)−1BT−1. Se nosplantea el problema de maximizar a′Aa con la restriccion de ‖ a′a ‖= 1. Por resulta-dos estandar del algebra lineal se tiene que a1 es el vector propio de A con el mayorpropio λ1 verificando que λ1 = a′

1Aai. Hemos encontrado una combinacion lineal

16

Page 137: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

que, en el sentido que hemos indicado, es optima a la hora de separar los grupos.Parece logico buscar la siguiente combinacion lineal que verifique el mismo criteriode optimalidad pero que el vector correspondiente sea ortogonal al ya calculado. Nosplanteamos pues maximizar a′Aa con la restriccion de ‖ a ‖= 1 y que sea ortogonalcon el anterior. La solucion viene dada por el vector propio de A asociado a su se-gundo valor propio por orden de magnitud, λ2 (Aa2 = λ2a2 por lo que λ2 = a′

2Aa2).Procedemos del mismo modo obteniendo k direcciones ortogonales que nos dan lascombinaciones optimas que separan a los grupos. El valor de k es el mınimo entreel numero de grupos menos uno, g − 1 y el numero de datos n, k = mın g − 1, n.Notemos que los sucesivos ar constituyen una base ortonormal tales que

(T ′)−1BT−1ar = Aar = λrar,

con λ1 ≥ λ2 ≥ . . . ≥ λk. Si multiplicamos por la izquierda por la matriz T−1(n −g)1/2 se deduce que

W−1Bcr = λrcr,

donde cr = (n − g)1/2T−1ar. En consecuencia W−1B tiene valores propios λr yvectores propios cr con r = 1, . . . , k. Ademas los vectores ar = Tcr(n − g)−1/2

constituyen una base ortonormal. Consideremos la matriz C que tiene por fila r-esima el vector cr. Sea zij = Cxij . Estos valores reciben el nombre de coordenadasdiscriminantes. Vemos que estas coordenadas pretenden destacar las diferenciasentre los grupos con un orden decreciente de relevancia. Tenemos que decidir concuantas de ellas nos quedamos. Es habitual estudiar los cocientes

∑ji=1 λi∑ki=1 λi

(6.21)

como funcion de j y quedarse con las coordenadas discriminantes hasta un j proximoa uno.

Es muy importante darse cuenta que las coordenadas discriminantes estan tipi-ficadas y son independientes entre ellas. Recordemos que W = T ′T y que la matrizde covarianzas agrupada viene dada por Sp = W/(g − 1). Por tanto tendremos que

c′rSpcs = (n − g)−1c′rT′Tcs = a′

ras = δrs, (6.22)

donde δrs = 1 si r = s y cero en otro caso. Tenemos pues que CSpC′ = Ik.

Asumiendo que las matrices de dispersion son iguales para los distintos grupostendremos que cov(c′rxij , c

′sxij) = c′rΣcs y reemplazando Σ por Sp tenemos que los

zij tienen covarianzas muestrales nulas y varianzas muestrales unitarias.

Nota de R 51 (notaR108) Repetimos el analisis discriminante tanto para losdatos de cristales en la orina como para los datos de la diabetes.

En la siguietne figura vemos un histograma de la primera variable discriminantecanonica en el primer y segundo grupo.

> plot(z)

17

Page 138: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−2 −1 0 1 2 3 4

0.0

0.4

0.8

group ausencia de cristales

−2 −1 0 1 2 3 4

0.0

0.4

0.8

group presencia de cristales

Para los datos de las diabetes podemos tendremos dos variables discriminantescanonicas. Mostramos dos posibles representaciones graficas.

> plot(z)

−6 −4 −2 0 2

−4

−2

02

4

LD1

LD2

control

controlcontrol

controlcontrol

controlcontrol

control

control

control

control

control

controlcontrol

control

control

control

control

control

control

control

control

controlcontrolcontrol

control

controlcontrolcontrol

control

control

controlcontrolcontrol

control

control

control

control

controlcontrolcontrol

control

controlcontrol

control

controlcontrol

control

control

control

control

control

controlcontrolcontrol

control

controlcontrol

diabetes quimica

controlcontrol

diabetes quimicadiabetes quimica

control

diabetes quimica

diabetes quimicacontrol

control

control

control

diabetes quimica

controlcontrolcontrol

controlcontroldiabetes quimica

controlcontrolcontrol

control

control

diabetes quimica

control

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimicadiabetes quimica

diabetes quimicadiabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimicadiabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimicadiabetes quimicadiabetes quimica

diabetes quimicadiabetes quimica

diabetes quimica

diabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiesta diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiesta

> pairs(z)

18

Page 139: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

LD1

−4 −2 0 2

−6

−4

−2

02

4

control

controlcontrol

controlcontrol

control

controlcontrolcontrol

control

controlcontrol

controlcontrol

control

controlcontrol

controlcontrolcontrol

control

control

controlcontrolcontrol

control

controlcontrolcontrol

control

control

controlcontrolcontrolcontrol

controlcontrolcontrol

control

control

controlcontrol

controlcontrolcontrolcontrol

controlcontrolcontrol

controlcontrolcontrol controlcontrolcontrol

controlcontrolcontrol

diabetes quimicacontrolcontrol

diabetes quimicadiabetes quimica

control

diabetes quimica

diabetes quimicacontrolcontrolcontrol

control

diabetes quimica

controlcontrolcontrol

controlcontrol

diabetes quimica

controlcontrolcontrol

control

controldiabetes quimica

control

diabetes quimicadiabetes quimicadiabetes quimicadiabetes quimicadiabetes quimicadiabetes quimica

diabetes quimicadiabetes quimicadiabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimicadiabetes quimica

diabetes quimicadiabetes quimicadiabetes quimicadiabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimicadiabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiesta

diabetes manifiestadiabetes manifiesta

diabetes manifiestadiabetes manifiestadiabetes manifiesta

diabetes manifiesta

−6 −4 −2 0 2 4

−4

−2

02

control

controlcontrol

controlcontrol

controlcontrol

control

control

control

control

control

controlcontrol

control

controlcontrol

controlcontrol

controlcontrol

control

controlcontrolcontrol

control

controlcontrolcontrol

control

control

controlcontrolcontrolcontrol

control

controlcontrol

controlcontrolcontrol

control

controlcontrol

control

controlcontrol

controlcontrol

control

control

control

controlcontrolcontrol

control

controlcontrol

diabetes quimicacontrol

control

diabetes quimicadiabetes quimica

control

diabetes quimica

diabetes quimicacontrol

control

control

control

diabetes quimica

controlcontrolcontrolcontrolcontrol

diabetes quimica

controlcontrolcontrol

control

control

diabetes quimica

control

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimicadiabetes quimica

diabetes quimicadiabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimicadiabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimica

diabetes quimicadiabetes quimicadiabetes quimica

diabetes quimicadiabetes quimica

diabetes quimica

diabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiesta

diabetes manifiestadiabetes manifiesta

LD2

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR108.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR108_wc. R

6.8. Algunos ejemplos

Nota de R 52 (notaR142) En la seccion 10.2 tenemos una descripcion de losmismos. Realizamos un analisis discriminante en donde a partir de las caracterıs-ticas morfologicas pretendemos saber si es una abeja reina o bien es una obrera.

> library(MASS)

> x = read.table(file = "../data/wasp.dat", header = T)

> attach(x)

Aplicamos un analisis discriminante lineal y mostramos los histogramas de lavariable discriminante canonica.

> z = lda(caste ~ TL + WL + HH + HW + TH + TW + G1L + G2Wa, prior = c(1,

+ 1)/2)

> plot(z)

19

Page 140: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

−4 −2 0 2 4

0.0

0.2

0.4

group Q

−4 −2 0 2 4

0.0

0.2

0.4

group W

Los histogramas muestran que los valores de la variable discriminante son cla-ramente distintos en cada grupo.

La tabla de clasificacion es la siguiente.

> z = lda(caste ~ TL + WL + HH + HW + TH + TW + G1L + G2Wa, prior = c(1,

+ 1)/2, CV = TRUE)

> table(caste, z$class)

caste Q W

Q 49 1

W 1 49

Mostrando que los resultados de la clasificacion son realmente buenos.http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR142.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR142_wc. R

Nota de R 53 (notaR144) En la seccion 10.3 tenemos la descripcion de los da-tos. Basicamente tenemos personas enfermas de cancer y no enfermos y preten-demos clasificar en estos dos posibles grupos. Pretendemos clasificar a la pacientecomo enferma o no de cancer utilizando el resto de las variables.

> library(faraway)

> library(MASS)

> attach(wbca)

Realizamos para ello un analisis discriminante lineal y, como tenemos solamentedos grupos, mostramos los histogramas de la variable discriminante canonica en cadauno de los grupos.

> wbca.lda = lda(Class ~ Adhes + BNucl + Chrom + Epith + Mitos +

+ NNucl + Thick + UShap + USize, CV = T)

> table(Class, wbca.lda$class)

20

Page 141: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Class 0 1

0 219 19

1 7 436

Tenemos una muestra bastante grande. Elegimos una muestra de entrenamientopara estimar las probabilidades a posteriori. Para ellos elegimos al azar 400 mujeresde la muestra inicial. Mostramos la tabla de clasificacion.

> train = sample(1:nrow(wbca), 400)

> wbca.lda0 = lda(Class ~ Adhes + BNucl + Chrom + Epith + Mitos +

+ NNucl + Thick + UShap + USize, subset = train, CV = T)

> table(wbca.lda0$class[train], Class[train])

0 1

0 38 37

1 75 88

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR144.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR144_wc. R

NA

21

Page 142: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

22

Page 143: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 7

Analisis de datos categoricos

Este tema esta dedicado al tratamiento de datos categoricos. La referencia bi-bliografica basica que vamos a seguir es [1]. Asociado a este texto Laura A. Thomsonha escrito un manual que reproduce el texto de Agresti con R. Es de un enormevalor. Se puede conseguir enSplusdiscrete2

7.1. Variables respuesta categoricas

Una variable categorica tiene una escala de medida que consiste en una serie decategorıas. La variable respuesta o dependiente es categorica mientras que lasvariables explicativas, predictoras o independientes pueden ser de cualquiertipo. Las variables categoricas tienen dos tipos de escalas: nominal y ordinal.

Las distribuciones de probabilidad basicas para el estudio de datos categoricosson la distribucion binomial, la distribucion multinomial y la distribucion de Poisson.Aunque ya hemos visto algo de estas distribuciones en el tema 1 es convenienteampliar algo lo que vimos allı.

Recordemos que una variable aleatoria tiene una distribucion Bernoulli, Y ∼Bi(1, π), si

P (Y = 1) = π, P (Y = 0) = 1 − π.

Si Y1, . . . , Yn son variables Bernoulli independientes e identicamente distribuidasentonces Y =

∑ni=1 Yi ∼ Bi(n, π). La funcion de probabilidad de la suma es

P (Y = y) =

(n

y

)πy(1 − π)n−y ,

y decimos que la variable Y tiene una distribucion binomial.En cuanto a los momentos de estas variables tenemos que E(Yi) = π mientras

que var(Yi) = π(1 − π) de donde E(Y ) = nπ, y var(Y ) = nπ(1 − π).Si en lugar de dos resultados en cada prueba suponemos que tenemos c resultados

posibles con c > 2 y denotamos por para la prueba i como yij = 1 si la prueba itiene el resultado en la categorıa j y cero en otro caso entonces el resultado de lai-esima prueba la podemos expresar como yi = (yi1, . . . , yic) y el numero de pruebasque han dado el resultado j viene dada por

nj =

n∑

i=1

yij

donde j = 1, . . . , c. El vector aleatorio (n1, . . . , nc) se dice que tiene una distribucionmultinomial y lo denotamos como

(n1, . . . , nc) ∼ Multinomial(n; π1, . . . , πc).

1

Page 144: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Su funcion de probabilidad conjunta viene dada por

p(n1, . . . , nc) =n!

n1! . . . nc!πn1

1 . . . πncc .

Finalmente la distribucion de Poisson o distribucion de los sucesos raros se de-nota por Y ∼ Po(µ), y tiene por funcion de probabilidad

p(y) =e−µµy

y!con y = 0, 1, . . .

Es bien conocido que su media y varianza son iguales a µ: EY = var(Y ) = µ.

Nota de R 54 (notaR501) En R se trabaja con las distribuciones de probabili-dad mediante grupos de cuatro funciones. Por ejemplo, supongamos que estamostrabajando con la binomial. Entonces la funcion de probabilidad es dbinom, la fun-cion de distribucion es pbinom, la inversa de la funcion de distribucion que nosda los percentiles es qbinom y, finalmente, podemos generar datos con distribucionbinomial mediante la funcion rbinom. Consideramos una binomial con 10 pruebasy una probabilidad de exito en cada prueba de 0,23. Su funcion de probabilidad laobtendrıamos la podemos obtener con

> dbinom(0:10, size = 10, prob = 0.23)

[1] 7.326680e-02 2.188489e-01 2.941670e-01 2.343149e-01 1.224828e-01

[6] 4.390291e-02 1.092821e-02 1.865298e-03 2.089376e-04 1.386888e-05

[11] 4.142651e-07

su funcion de distribucion con

> pbinom(0:10, size = 10, prob = 0.23)

[1] 0.0732668 0.2921157 0.5862827 0.8205976 0.9430804 0.9869833 0.9979115

[8] 0.9997768 0.9999857 0.9999996 1.0000000

La inversa de la funcion de distribucion, es decir, los percentiles se obtienen con

> qbinom(0.3, size = 10, prob = 0.23)

[1] 2

Y finalmente podemos generar valores con distribucion binomial del siguientemodo.

> rbinom(100, size = 10, prob = 0.23)

[1] 2 1 1 2 1 2 3 4 1 1 1 2 2 3 3 3 4 0 2 1 3 2 4 1 2 2 4 2 1 1 2 3 0 5 2 1 0

[38] 1 3 3 3 3 2 2 2 5 3 4 1 3 2 1 2 4 2 3 1 0 2 1 4 4 5 3 3 0 4 2 2 4 3 3 2 2

[75] 3 1 2 2 0 2 3 3 3 4 2 1 0 3 1 3 1 1 3 2 2 2 4 2 1 2

Analogamente procedemos con la distribucion multinomial.

> dmultinom(c(3, 7, 2), prob = c(0.1, 0.2, 0.8))

[1] 2.067297e-05

> dmultinom(c(1, 2, 8), prob = c(0.1, 0.2, 0.8))

[1] 0.1164302

2

Page 145: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> rmultinom(10, size = 12, prob = c(0.1, 0.2, 0.8))

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]

[1,] 1 1 3 1 2 2 2 1 0 2

[2,] 2 2 2 2 1 3 4 1 3 2

[3,] 9 9 7 9 9 7 6 10 9 8

Y finalmente para una distribucion de Poisson.

> dpois(0:30, lambda = 12)

[1] 6.144212e-06 7.373055e-05 4.423833e-04 1.769533e-03 5.308599e-03

[6] 1.274064e-02 2.548128e-02 4.368219e-02 6.552328e-02 8.736438e-02

[11] 1.048373e-01 1.143679e-01 1.143679e-01 1.055704e-01 9.048890e-02

[16] 7.239112e-02 5.429334e-02 3.832471e-02 2.554981e-02 1.613672e-02

[21] 9.682032e-03 5.532590e-03 3.017776e-03 1.574492e-03 7.872460e-04

[26] 3.778781e-04 1.744053e-04 7.751345e-05 3.322005e-05 1.374623e-05

[31] 5.498491e-06

> ppois(10:20, lambda = 12)

[1] 0.3472294 0.4615973 0.5759652 0.6815356 0.7720245 0.8444157 0.8987090

[8] 0.9370337 0.9625835 0.9787202 0.9884023

> qpois(seq(0.1, 0.9, 0.1), lambda = 12)

[1] 8 9 10 11 12 13 14 15 17

> rpois(50, lambda = 12)

[1] 12 13 15 15 11 14 15 9 11 8 14 12 9 13 11 11 13 9 12 19 17 7 10 11 10

[26] 13 13 14 14 7 14 9 15 13 13 7 9 14 6 6 7 11 14 10 18 14 11 13 14 15

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR501.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR501_wc. R

En lo que sigue el siguiente resultado es muy importante.

Teorema 3 Si Y1, . . . , Yc son variables Poisson independientes con medias µ1, . . . µc

entonces

P (Y1 = n1 . . . , Yn = yn|c∑

i=1

Yi = b) =n!

n1! . . . nc!πn1

1 . . . πncc

conπi =

µi∑ci=1 µj

.

En otras palabras, la distribucion conjunta de variables independientes y con dis-tribucion Poisson condicionada a la suma total es una multinomial.

7.2. Inferencia con la distribucion binomial

En esta seccion nos ocupamos del estudio de la distribucion binomial, su vero-similitud y los contrastes basicos relacionados con ella. Denotamos la probabilidadde exito por π. Si consideramos una prueba Bernoulli entonces la funcion de proba-bilidad es

f(y|π) = πy(1 − π)1−y

3

Page 146: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

donde y = 0, 1. Para n pruebas Bernoulli tendremos como funcion de verosimilitud

L(π; y) =

n∏

i=1

πyi(1 − π)1−yi = πPn

i=1 yi(1 − π)n−Pn

i=1 yi

donde y = (y1, . . . , yn). La logverosimilitud es

l(π; y) =

( n∑

i=1

yi

)log π +

(n −

n∑

i=1

yi

)log(1 − π).

Estas funciones son nuestro instrumento basico para el analisis estadıstico de estetipo de datos.

7.2.1. Contraste de hipotesis simples

Tenemos una moneda (un euro para mas detalles) y pretendemos valorar si esuna moneda correcta. En otras palabras, si las probabilidades de obtener cara ocruz cuando lancemos la moneda son las mismas e igual a 1/2. Interpretando exitocomo cara lo que nos planteamos es un contraste simple sobre la probabilidad deexito. En concreto un contraste donde la hipotesis nula es que dicha probabilidadvale 1/2 frente a una alternativa de que sea distinta.

Formulandolo de un modo mas generico tenemos el siguiente contraste:

H0 : π = π0

H1 : π 6= π0.

Las opciones para constrastar son (como siempre) los test de Wald, el test score yel test del cociente de verosimilitudes.

El estadıstico de Wald viene dado por

zW =π − π0

SE=

π − π0√π(1 − π)/n

,

mientras que el estadıstico score es

zS =π − π0√

π0(1 − π0)/n.

Es preferible el estadıstico score pues su distribucion se aproxima mas a la normal.El tercero de la terna, el test del cociente de verosimilitudes, adopta la siguienteexpresion

−2(L0 − L1) = 2

(y log

y

nπ0+ (n − y) log

n − y

n − nπ0

).

Bajo H0, el numero esperado de exitos y fracasos son nπ0 y n(1 − π0) respectiva-mente. Esto es lo que esperamos pero lo que realmente observamos son y exitos yn−y fracasos. Por ello, la expresion anterior puede expresarse de un modo resumidocomo

2∑

Observado logObservado

Esperado.

donde la suma se hace sobre las dos categorıas que tenemos, exitos y fracasos. Ladistribucion asintotica bajo la hipotesis nula de este estadistico o distribucion nula,es una ji-cuadrado con un grado de libertad, χ2(1).

4

Page 147: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

7.2.2. Intervalo de confianza

Una vez hemos visto como son los contrastes para la hipotesis simple pode-mos construir el intervalo de confianza correspondiente como aquellos valores delparametro para los cuales no rechazamos la correspondiente hipotesis nula simple.Facilmente tenemos que el intervalo de confianza basado en el test de Wald serıa:

π0 : |zW | < zα/2,

o lo que es lo mismo,

π ± zα/2

√π(1 − π)

n.

Este intervalo de confianza no es muy exacto cuando n es pequeno sobre todo paravalores de π proximos a 0 o a 1.

Si utilizamos el test score entonces los extremos los obtenemos resolviendo lasecuaciones

π − π0√π0(1 − π0)/n

= ±zα/2.

La expresion final es bastante compleja pues tenemos una funcion cuadratica en π0.Este intervalo de confianza es mas exacto que el intervalo de Wald. El intervalo deconfianza del cociente de verosimilitudes serıa

π0 : −2(L0 − L1) ≤ χ21(α)

Podemos construir un intervalo de confianza exacto. En este caso el nivel deconfianza (o probabilidad de confianza) es mayor o igual al establecido pero notenemos asegurada la igualdad.

Nota de R 55 (notaR502) Consideramos los datos scoremaster ??.Nos fijamos en la variable sexo. Es una variable dicotomica. Tenemos una mues-

tra de personas que son intervenidas sin ingreso hospitalaria y nos planteamos es-timar la fraccion de mujeres (o de hombres equivalentemente). Entendemos comoexito (codificado con 1) ser mujer (no se admiten bromas sobre el tema). Empezamoscon el intervalo de confianza de Wald.

Los conteos de hombres y mujeres son

> table(sexo)

sexo

0 1

329 590

El conteo de mujeres y el total de casos lo podemos obtener como

> tsexo = table(sexo)

> tsexo[2]

1

590

> sum(tsexo)

[1] 919

y finalmente el intervalo de confianza de Wald vendrıa dado por

> library(Hmisc, T)

5

Page 148: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> binconf(x = tsexo[2], n = sum(tsexo), method = "asymptotic")

PointEst Lower Upper

0.6420022 0.6110067 0.6729977

El intervalo score para el parametro de una binomial lo vamos a obtener mediantedos opciones distintas. La primera opcion serıa

> res = prop.test(x = tsexo[2], n = sum(tsexo), conf.level = 0.95,

+ correct = F)

> res$conf.int

[1] 0.6104745 0.6723477

attr(,"conf.level")

[1] 0.95

mientras que la segunda opcion serıa

> library(Hmisc, T)

> binconf(x = tsexo[2], n = sum(tsexo), alpha = 0.05, method = "wilson")

PointEst Lower Upper

0.6420022 0.6104745 0.6723477

El test exacto lo podemos obtener con

> res = binom.test(x = tsexo[2], n = sum(tsexo))

> res$conf.int

[1] 0.6100464 0.6730444

attr(,"conf.level")

[1] 0.95

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR502.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR502_wc. R

7.3. Inferencia para la multinomial

En una distribucion multinomial los parametros a estimar son las probabilidadesde cada una de las categorıas, (π1, . . . , πc). Sin embargo, hemos de tener en cuenta

que πc = 1 − ∑c−1i=1 πi por lo que realmente tenemos c − 1 parametros a estimar.

Notemos que la verosimilitud es proporcional a

c∏

j=1

πnj

j donde πj ≥ 0,∑

j

πj = 1.

Facilmente se comprueba que los estimadores maximo verosımiles vienen dados por

πj =nj

n,

esto es, son las correspondientes frecuencias observadas de cada una de las catego-rıas. No podıa (ni debıa) ser de otra manera.

6

Page 149: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

7.3.1. Contraste de una multinomial dada

Nos planteamos el contraste de hipotesis simple en donde especificamos unaprobabilidad dada para cada categorıa. De un modo mas formal tenemos

H0 : πj = πj0 con j = 1, . . . , c

H1 : No H0.

El primer test a considerar (uno de los procedimientos estadısticos mas antiguosen uso) es el que se conoce como el test ji-cuadrado de Pearson. La idea es simple.Bajo la hipotesis nula, bajo H0, esperamos observar de la categorıa j, µj = nπj

casos. Es decir, la frecuencia esperada nula es µj . Pero observamos nj, frecuenciaobservada. Pearson propuso comparar ambas frecuencias, observadas y esperadas,mediante el siguiente estadıstico

X2 =∑

j

(nj − µj)2

µj=

j

(nj − nπj0)2

nπj0.

Bajo la hipotesis nula H0 y para grandes muestras o distribucion nula asintotica elestadıstico tiene una distribucion ji-cuadrado con c − 1 grados de libertad

X2 ∼ χ2c−1.

Dados unos datos y un valor observado del estadıstico, X20 , el p-valor vendrıa dado

porp = P (X2 ≥ X2

0 ).

El cociente de verosimilitudes es

Λ =

∏j π

nj

j0∏j(nj/n)nj

,

de modo que

G2 = −2 logΛ = 2∑

j

nj lognj

nπj0.

Con el LRT, rechazamos H0 cuando G2 toma valores grandes. G2 es conocido co-mo el estadıstico ji-cuadrado del cociente de verosimilitudes. Su distribucion nulaasintotica serıa un ji-cuadrado con c− 1 grados de libertad ya que la dimension delespacio parametrico es c − 1, es decir,

G2 ∼ χ2c−1.

Nota de R 56 (notaR503) Todo el mundo utilizada estos datos para ilustrar es-te test. Pues vamos a usarlos tambien nosotros. Son unos datos de Mendel. Es unexperimento realizado por Mendel. Cruzamos guisantes amarillos con guisantes ver-des. El caracter dominante es amarillo. De acuerdo con la teorıa de la herencia deMendel 3/4 de los guisantes que obtenemos por cruce deberıan de ser amarillos yel cuarto restante deberıa de ser verde. Se realizaron n = 8023 cruces de los cualesn1 = 6022 son amarillos y n2 = 2001 son verdes.

Empezamos con el test ji-cuadrado de Pearson.

> library(stats)

> chisq.test(x = c(6022, 2001), p = c(0.75, 0.25))

Chi-squared test for given probabilities

data: c(6022, 2001)

X-squared = 0.015, df = 1, p-value = 0.9025

7

Page 150: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Y tambien consideramos el test del cociente de verosimilitudes

> observadas = c(6022, 2001)

> esperadas = 8023 * c(0.75, 0.25)

> 1 - pchisq(2 * sum(observadas * log(observadas/esperadas)), df = 1)

[1] 0.9025024

Hay que reconocer que le fue muy (demasiado) bien la experimentacion a Mendel.http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR503.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR503_wc. R

7.4. Tablas de contingencia

Vamos a estudiar la relacion entre distintas variables categoricas. Sin duda, lomas interesante a nivel aplicado. En esta seccion nos ocuparemos del caso con dosvariables categoricas.

7.4.1. Tablas de contingencia: distribucion conjunta, distri-bucion condicionada e independencia

Sean X e Y dos variables categoricas con I y J categorıas. Un sujeto puedevenir clasificado en una de I × J categorıas. Dada una muestra podemos construirla tabla donde cada fila corresponde a una categorıa de la variable X mientras quecada columna corresponde a una categorıa de la variable Y . En la celda o casillacorrespondiente a la fila i y la columna j tendremos el conteo de casos que en lamuestra verificando que X = i e Y = j, esto es, recogemos el conteo conjunto de lasdos variables. Una tabla como la indicada recibe el nombre de tabla de contingenciao tabla de clasificacion cruzada.

Recordemos algunos conceptos basicos sobre la distribucion conjunta de dosvariables aleatorias discretas. Lo necesitamos para entender el uso que pretendemosdar a una herramienta puramente descriptiva como es la tabla de contingencia.

Dadas las variables X and Y su distribucion conjunta viene dada por

πij = P (X = i, Y = j),

con i = 1, . . . , I y j = 1, . . . , J . Las distribuciones marginales son

πi+ = P (X = i) =

J∑

j=1

P (X = i, Y = j) =

J∑

j=1

πij

π+j = P (Y = j) =

I∑

i=1

P (X = i, Y = j) =

I∑

i=1

πij

El tercer concepto probabilıstico basico en lo que sigue es el de distribucioncondicionada o condicional. Habitualmente una variable, por ejemplo Y , es unavariable respuesta y la otra, X es explicativa o predictora. En esta situacion no tienesentido hablar de distribucion conjunta y sı de distribucion condicionada de Y a Xque denotaremos

P (Y = j|X = i) = πj|i =πij

πi+.

Las variables X and Y se dicen independientes si

πij = πi+π+j .

8

Page 151: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Cuadro 7.1: Tablade conteos cruzando el estado del paciente y el resultado del test.

Test positivo Test negativo TotalEnfermo n11 n11 n1+

No enfermo n21 n22 n2+

Total n+1 n+2 n

Cuadro 7.2: Tabla de proporciones sobre el total cruzando el estado del paciente yel resultado del test.

πij Test positivo Test negativo TotalEnfermo n11/n n11/n n1+/n

No enfermo n21/n n22/n n2+/nTotal n+1/n n+2/n 1

En particular, si las variables son independientes entonces la distribucion condicio-nada es igual a la distribucion marginal, es decir,

πj|i = π+j con j = 1, . . . , J.

La definicion usual de variables aleatorios discretas independientes es que lafuncion de probabilidad conjunta es el producto de marginales. Sin embargo, estadefinicion equivale con la que dice que son independientes si la condicionada de unaa otra es igual a la correspondiente marginal. ¿Cuando es mas natural una interpre-tacion o la otra? Si las variables X e Y que estamos estudiando las consideramoscomo variables respuesta entonces parece natural utilizar la primera definicion yhablar de independencia. Sin embargo, si Y es considerada respuesta mientras queX es predictiva entonces hablamos de homogeneidad de las distintas distribucionescondicionadas de Y a los valores posibles de la variable X .

Ejemplo 9 Un ejemplo clasico de tabla de contingencia aparece cuando estamosconsiderando si un test es capaz de detectar una enfermedad. Entonces la tabla decontingencia serıa la que aparece en la tabla 7.1.

Si nos planteamos modificar la tabla basica de los conteos anterior en una tablaque estime la la distribucion conjunta de las variables X and Y entonces dividi-mos cada conteo de cada celda por el total de individuos consideramos en la tabla.Tendrıamos la siguiente tabla modificada.

Si dividimos los conteos por los totales de columna tenemos la distribucion con-dicionada de X a Y .

En Medicina hay dos conceptos basicos que se conocen como sensibilidad yespecificidad. Son unas cantidades que se calculan a partir de las tablas anteriores.

La sensibilidad es la proporcion de enfermos correctamente diagnosticados o,de un modo mas preciso,

π1|1 = P (Y = 1|X = 1).

Cuadro 7.3: Tabla de proporciones sobre el total cruzando el estado del paciente yel resultado del test.

πj|i Test positivo Test negativo TotalEnfermo n11/n1+ n11/n1+ 1

No enfermo n21/n2+ n22/n2+ 1

9

Page 152: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

La especificidad es la proporcion de sanos correctamente diagnosticados o

π2|2 = P (Y = 2|X = 2).

Nota de R 57 (notaR540) Utilizamos los datos scoremaster.

Vamos a cruzar la intensidad de la intervencion (una medida de lo cruenta quees la intervencion y que se conoce a priori) con el estado general del enfermo en laprimera llamada que recibe. Empezamos construyendo la tabla de contingencia.

> tt0 = table(intensidad, eg1)

> tt0

eg1

intensidad 0 1 2

1 5 97 66

2 6 242 178

3 7 206 115

Tambien es natural cruzar por ejemplo la intensidad con el resto de variables dela primera llamada. Por ejemplo, con el nivel de dolor.

> table(intensidad, d1)

d1

intensidad 0 1 2

1 3 62 103

2 6 139 281

3 9 159 160

Recuperemos el primer cruce y veamos como estimar la distribucion conjunta endonde cada conteo lo dividimos por el total de la tabla.

> prop.table(tt0)

eg1

intensidad 0 1 2

1 0.005422993 0.105206074 0.071583514

2 0.006507592 0.262472885 0.193058568

3 0.007592191 0.223427332 0.124728850

En este caso, la variable intensidad es previa y parece mas natural considerar ladistribucion de la variable que aparece en la columna condicionada a la variable queaparece en la fila.

> prop.table(tt0, 1)

eg1

intensidad 0 1 2

1 0.02976190 0.57738095 0.39285714

2 0.01408451 0.56807512 0.41784038

3 0.02134146 0.62804878 0.35060976

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR540.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR540_wc. R

10

Page 153: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Cuadro 7.4:

Enfermedad venerea No enfermedadCon preservativoSin preservativo

7.4.2. Tipo de muestreo

En cualquier tipo de tratamiento (y de interpretacion del mismo) es basico plan-tearse como se ha obtenido la muestra. Un mismo resultado tiene interpretacionesdiversas. Los tipos de muestreo mas habituales con los que nos vamos a encontrarse pueden clasificar en los siguientos tipos.

Muestreo de Poisson Los conteos Yij de la tabla suponemos que son variablesPoisson independientes con medias µij .

Muestreo multinomial En este caso fijamos el numero total de elementos quetenemos en la tabla, n, pero no los totales de fila y columna.

Muestreo multinomial independiente Ahora fijamos los totales de fila consi-derando Y como variable respuesta y X como explicativa. Al fijar el total defila lo que tenemos es una muestra de una multinomial donde las distintas ca-tegorıas se corresponden con las distintas columnas. Ademas las muestras paradistintas filas de la tabla se supone que se han obtenido independientemente.

Como es logico dependiendo del tipo de muestreo tenemos una verosimilitud distin-ta.

Si el muestreo es de Poisson entonces la verosimilitud es

i

j

e−µijµ

nij

ij

nij !,

mientras que para un muestreo multinomial la verosimilitud es

n!∏i

∏j nij !

i

j

πnij

ij .

Finalmente si cada fila es una muestra de una multinomial independiente, esto es,tenemos un muestreo multinomial independiente y su verosimilitud viene dada por

i

ni+!∏j nij !

j

πnij

j|i .

¿Cuando nos encontramos en una u otra situacion? Vamos a plantearnos loque sera una tabla de contingencia antes de tener datos y, por lo tanto, sin poderconstruirla. Supongamos que pretendemos estudiar la relacion entre contraer en-fermedades venereas o no y utilizar el preservativo en las relaciones sexuales. Paracada persona se le pregunta se usa el preservativo en sus relaciones y si ha contra-ido alguna enfermedad venerea en el ultimo ano. No tenemos datos y por lo tantoempezamos con una tabla vacıa.

Nuestro estudio que dara lugar a los conteos que rellenaran las celdas podemosplantearlo de distintas formas. Si no fijamos el total de la tabla y nos limitamosa muestrear en el colectivo entonces tenemos conteos de Poisson. Si se toma unamuestra de 300 personas en los ultimos tres meses en un instituto de secundaria en-tonces tenemos un muestreo multinomial. Finalmente podemos tomar una muestrade 150 personas que han contraıdo una enfermedad venerea y otra de 150 que no lahan contraıdo y luego observar sus habitos de uso del preservativo.

11

Page 154: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Cuadro 7.5:

1 21 π1|1 π2|12 π1|2 π2|2

Cuadro 7.6:

Exito FracasoGrupo 1 π1|1 π2|1Grupo 2 π1|2 π2|2

7.4.3. Comparacion de dos proporciones

Muchos estudios se disenan para comparar grupos basandonos en una respuestabinaria, Y . En este caso la interpretacion que tiene sentido es pensar en la distribu-cion condicionada de Y a la variable X (filas). O viceversa. Con dos grupos tenemosuna tabla de contingencia 2 × 2 como la que sigue.

π1|i = πi

π2|i = 1 − π1|i = 1 − πi

Queremos comparar π1 con π2. ¿Como comparamos? Podemos estudiar la dife-rencia de las proporciones

π1 − π2,

o el riesgo relativo,π1

π2,

o bien el cociente de odds (odds ratio)

θ =π1/(1 − π1)

π2/(1 − π2).

7.4.4. Odds y odds ratio

Si π es la probabilidad de exito entonces los odds se definen como

Ω =π

1 − π.

Equivalentemente

π =Ω

Ω + 1.

Cuadro 7.7:

Exito FracasoGrupo 1 π1 1 − π1

Grupo 2 π2 1 − π2

12

Page 155: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

En una tabla 2 × 2 tenemos los odds en la fila i

Ωi =πi

1 − πi.

El cociente de los odds de las dos filas sera el odds ratio.

θ =π1/(1 − π1)

π2/(1 − π2).

Se tiene facilmente que

θ =π11π22

π12π21.

Por ello tambien se le llama el cociente de los productos cruzados.El odds ratio tiene las siguientes propiedades fundamentales.

1. Puede ser cualquier valor positivo.

2. θ = 1 significa que no hay asociacion entre X e Y .

3. Valores de θ alejados de 1 indican una asociacion mayor.

4. Se suele trabajar con log θ pues entonces el valor que tenemos es simetricorespecto a cero.

5. El odds ratio no cambia cuando intercambiamos filas y columnas.

Nota de R 58 (notaR504) Los datos se refieren al efecto de la aspirina en laprevencion del infarto.

> x = c(104, 189)

> n = c(11037, 11034)

> prop.test(x, n)

2-sample test for equality of proportions with continuity correction

data: x out of n

X-squared = 24.4291, df = 1, p-value = 7.71e-07

alternative hypothesis: two.sided

95 percent confidence interval:

-0.010814914 -0.004597134

sample estimates:

prop 1 prop 2

0.00942285 0.01712887

> asp.ataque = prop.test(x, n)

> attributes(asp.ataque)

£names

[1] "statistic" "parameter" "p.value" "estimate" "null.value"

[6] "conf.int" "alternative" "method" "data.name"

£class

[1] "htest"

> prop.test(x, n)$p.value

[1] 7.709708e-07

13

Page 156: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

> asp.ataque$p.value

[1] 7.709708e-07

> prop.test(x, n, alt = "less")

2-sample test for equality of proportions with continuity correction

data: x out of n

X-squared = 24.4291, df = 1, p-value = 3.855e-07

alternative hypothesis: less

95 percent confidence interval:

-1.000000000 -0.005082393

sample estimates:

prop 1 prop 2

0.00942285 0.01712887

> asp.ataque$estimate

prop 1 prop 2

0.00942285 0.01712887

Veamos cual es la diferencia de proporciones,

> asp.ataque$estimate[2] - asp.ataque$estimate[1]

prop 2

0.007706024

el riesgo relativo,asp.ataqueestimate[2]/asp.ataqueestimate[1]y el odds ratiox[2]*(n[1]-x[1])/(x[1]*(n[2]-x[2]))http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR504.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR504_wc. R

7.5. Asociacion parcial en tablas 2×2 estratificadas

Cuando estudiamos el efecto de X sobre Y debemos de controlar las covariablesque pueden influir en la relacion. Lo mejor es mantener las covariables relevan-tes constantes. Un efecto de X sobre Y puede representar un efecto de la (o las)covariables sobre las variables X e Y . Esto no es facil en estudios observacionales.

Se condena a muerte mas a los blancos que a los negros en Estados Unidos. Enel paıs de la igualdad se discrimina a los blancos. Consideramos como covariable laraza de la vıctima. En el paıs de la igualdad se condena mas a los negros.

¿Por que? La explicacion tiene que venir de la asociacion existente entre la razade la vıctima y las variables que cruzamos marginalmente. Hay una gran asociacionentre raza de vıctima y raza del acusado (odds ratio de 87).

Los blancos tienden a matar mas a blancos. Si matas a un blanco tienes unamayor probabilidad de que te condenen. Esto es un ejemplo de la paradoja deSimpson (1951).

Nota de R 59 (notaR507) Esta nota es una ilustracion de la paradoja de Sim-pson donde las asociaciones parciales pueden no coincidir con la asociacion global.

Cargamos el paquete vcd [13]

14

Page 157: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Cuadro 7.8: Procesamientos por asesinatos multiple sen Florida entre 1976 y 1987

Pena de muerteVıctima Acusado Si No % Sı

Blanco Blanco 53 414 11,3Negro 11 37 22,9

Negro Blanco 0 16 0,0Negro 4 139 2,8

Total Blanco 53 430 11,0Negro 15 176 7,9

Cuadro 7.9: Procesamientos por asesinatos multiple sen Florida entre 1976 y 1987

Vıctima vs acusado Vıctima vs veredictoBlanco Negro

Blanco 467 48Negro 16 143

Si NoBlanco 64 451Negro 4 155

> library(vcd)

Construımos la tabla con los conteos.

> raza.victima = c("blanco", "negro")

> raza.agresor = raza.victima

> pena.muerte = c("si", "no")

> etiquetasdatos = list(agresor = raza.agresor, muerte = pena.muerte,

+ victima = raza.victima)

> datos.florida = expand.grid(agresor = raza.agresor, muerte = pena.muerte,

+ victima = raza.victima)

> conteos = c(53, 11, 414, 37, 0, 4, 16, 139)

> datos.florida = cbind(datos.florida, count = conteos)

> xtabs(conteos ~ agresor + muerte + victima, data = datos.florida)

, , victima = blanco

muerte

agresor si no

blanco 53 414

negro 11 37

, , victima = negro

muerte

agresor si no

blanco 0 16

negro 4 139

Veamos graficamente los datos.

> temp = xtabs(conteos ~ agresor + muerte + victima, data = datos.florida)

> plot(temp)

15

Page 158: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

temp

agresor

mue

rte

blanco negro

sino

blanco negro blanco negro

Aquı tenemos los logaritmos de los odds ratio y los test de si podemos conside-rarlos nulos.

> summary(oddsratio(temp))

Log Odds Ratio Std. Error z value Pr(>|z|)

blanco -0.84255 0.36705 -2.2955 0.01085 *

negro -0.06252 1.51327 -0.0413 0.48352

---

Signif. codes: 0 a¿~***a¿ 0.001 a¿~**a¿ 0.01 a¿~*a¿ 0.05 a¿~.a¿ 0.1 a¿~ a¿ 1

Y los intervalos de confianza correspondientes.

> confint(oddsratio(temp))

lwr upr

blanco -1.561961 -0.1231423

negro -3.028482 2.9034412

http:// www.uv. es/ ayala/docencia/ad/ PDF/notaR507.pdf

http:// www.uv. es/ ayala/docencia/ad/ Rcode/notaR507_wc. R

7.6. Inferencia en tablas de contingencia

7.6.1. Intervalos de confianza para parametros de asociacion

Intervalo para los odds ratio

El estimador del odds ratio es

θ =n11n22

n12n21.

16

Page 159: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

El estimador puede ser 0, infinito o no estar definido (∞) dependiendo de los conteos.

Por ello no existe ni la media ni la varianza de θ ni de log θ. Una posibilidad estrabajar con

θ =(n11 + 0,5)(n22 + 0,5)

(n12 + 0,5)(n21 + 0,5)

y con log θ.Un estimacion del error estandar de θ es

σ(log θ) =

(1

n11+

1

n12+

1

n21+

1

n22

)1/2

.

El intervalo de confianza de Wald serıa:

log θ ± zα/2σ(log θ).

Tomando las exponenciales en los extremos tenemos el correspondiente intervalopara log θ.

El test es algo conservador (la probabilidad de cubrimiento es algo mayor que elnivel nominal).

Estudio sueco sobre el uso de la aspirina y el infarto de miocardio.

Infarto de miocardioSi No Total

Placebo 28 656 684Aspirina 18 658 656

Intervalo de confianza para la diferencia de proporciones

Suponemos que tenemos muestras de binomiales independientes. En el grupo itenemos Yi ∼ Bi(ni, πi). El estimador de la i-esima proporcion es

πi = Yi/ni

, de modo que la diferencia entre las proporciones estimadas verifica

E(π1 − π2) = π1 − π2

y el error estandar es

σ(π1 − π2) =

[π1(1 − π1)

n1+

π2(1 − π2)

n2

]1/2

.

Estimamos sustituyendo πi por πi.El intervalo de confianza de Wald serıa:

π1 − π2 ± zα/2σ(π1 − π2).

Usualmente la probabilidad de cubrimiento es menor que el coeficiente de confianzanominal. Especialmente para valores de π1 y π2 proximos a 0 o 1.

Intervalo de confianza para el riesgo relativo

El riesgo relativo muestral viene dado por

r =π1

π2

17

Page 160: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Hay una convergencia a la normalidad mas rapida trabajando en la escala logarıt-mica. El error estandar asintotico de log r es

σ(log r) =

(1 − π1

n1π1+

1 − π2

n2π2

)1/2

Es algo conservador (probabilidad de cubrimiento mayor que el nivel de confianzanominal). El intervalo de confianza de Wald para log π1/π2 es

log r ± zα/2σ

7.6.2. Contraste de independencia en tablas de doble entrada

Nos planteamos el contraste de:

H0 : πij = πi+π+j ∀ i, j

H0 : πij 6= πi+π+j para algun i, j

Los tests que vamos a considerar se pueden aplicar tanto para muestreo multino-mial (con I × J categorıas) como para muestreo multinomial independiente (paralas distintas filas). En el primer caso contrastamos independencia y en el segundohomogeneidad.

El primer test que vamos a considerar es el test ji-cuadrado. Es el test clasicopropuesto por K. Pearson. Bajo H0,

Enij = µij = nπi+π+j .

razonablemente buena si las frecuencias esperadas son mayores que 1 y la mayorparte son mayores que 5. Si nos los podemos usar hay que utilizar metodos paramuestras pequenas.

7.7. Mas alla del test ji-cuadrado

7.7.1. Residuos

Vamos a comparar las frecuencias observadas con las esperadas. Notemos que,para muestreo de Poisson,

σ(nij − µij) =√

µij .

La desviacion estandar de nij − µij es menor que√

µij pero todavıa proporcional aeste valor. Definimos el residuo de Pearson como

eij =nij − µij√

µij

.

En particular tenemos que el estadıstico X2 de Pearson es igual a la suma delos cuadrados de los residuos de Pearson.

X2 =∑

i

j

e2ij .

Comparar estos residuos con los percentiles normales da una vision conservadora.Se definen los residuos de Pearson estandarizados como

nij − µij[µij(1 − πi+)(1 − π+j)

]1/2

18

Page 161: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

que sı tienen una distribucion normal estandar.Podemos comparar los residuos de Pearson estandarizados con los percentiles de

la normal.Valores superiores (en modulo) a 2 o 3 indican falta de ajuste.

7.8. Test de independencia con muestras pequenas

7.8.1. Test exacto de Fisher para tablas 2 × 2

Todos los procedimientos vistos hasta ahora se basan en distribuciones asinto-ticas. Si tenemos muestras grandes no hay problemas. ¿Y con muestras pequenas?Rezar es una buena opcion. Siempre lo es. La otra es un test exacto.

Consideramos una tabla 2 × 2. La hipotesis nula es de independencia. Condi-cionamos a los totales marginales de fila y columna. Solamente nos queda libre unconteo (por ejemplo, n11) y

p(t) = P (n11 = t) =

(n1+

t

)(n2+

n+1−t

)(

nn+1

)

donde los valores posibles son

m− ≤ n11 ≤ m+

con m− = max0, n1+ + n+1 − n y m+ = mınn1+, n+1.Queremos contrastar independencia. En tablas 2× 2 lo podemos formular como

H0 : θ = 1

frente a (alternativa unilateral)H1 : θ > 1

Para el test anterior, si t0 es el valor observado de n11, entonces el p-valor serıa

P (n11 ≥ t0)

Ejemplo 10 El ejemplo del te

Prediccion primer servicioPrimer servicio Leche Te TotalLeche 3 1 4Te 1 3 4Total 4 4

Serıa mas extrema la tabla con n11 = 4. El p-valor serıa

P (n11 = 3) + P (n11 = 4) = 0,243

Estamos ordenando las tablas de acuerdo con n11. Podrıamos ordenarlas segunel odds ratio o la diferencia de las proporciones y obtenemos el mismo test. Esto nosera cierto para test bilateral.

7.9. Test exacto de Fisher y alternativa bilateral

La definicion de p-valor depende de como ordenamos las tablas. Lo que suele irprogramado en software es (si p(t) = P (n11 = t))

p = P (p(n11) ≤ p(t0))

19

Page 162: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Sumamos la probabilidad de todas aquellas tablas que son tan probables o menosque la tabla observada.

Otra opcion es

p = P

(|n11 − E(n11)| ≥ |t0 − E(n11)|

)

teniendo en cuenta que para la hipergeometrica

E(n11) = n1+n+1/n

Este procedimiento equivale con

p = P (X2 ≥ X20 )

siendo X20 el valor observado de X2.

20

Page 163: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 8

Modelos linealesgeneralizados

En este tema se habla de modelos lineales generalizados. Constituyen, y de ahı sunombre, una extension de los modelos lineales. A diferencia de los modelos linealesen donde nos basamos en la distribucion normal, aquı se utilizan otros modelospara la variable respuesta. Tambien la relacion que liga la media de la variablerespuesta con las variables predictoras no se supone lineal sino que se utiliza unafuncion link para relacionar dicha media con una combinacion lineal de las variablespredictoras. Sin duda alguna, la referencia fundamental es el texto de Agresti ([1]).Asociado a este texto tenemos un texto de Laura Thomson, Splusdiscrete2 en dondese reproducen todos los analisis de datos del texto de Agresti con R.

8.1. Componentes de un modelo lineal generaliza-do

Los modelos lineales generalizados (GLM) extiende los modelos de regresionordinaria en dos puntos: (i) consideran que la respuesta no tiene necesariamenteuna distribucion normal y (ii) utiliza funciones que modelizan la media.

En su definicion intervienen tres componentes:

Componente aleatoria Identifica la variable respuesta Y y su distribucion deprobabilidad.

Componente sistematica Especifica las variables explicativas (independientes,predictoras) utilizadas en la funcion predictora lineal.

Funcion link Especifica la funcion de EY que la expresa como una combinacionlineal de las variables predictoras.

La componente aleatoria de un GLM consiste de una variable aleatoria Y conobservaciones independientes (y1, . . . , yN ). Suponemos la distribucion de Y en lafamilia exponencial natural, donde la forma de la densidad viene dada por

f(yi; θi) = a(θi)b(yi) expyiQ(θi). (8.1)

En esta familia de distribuciones de probabilidad se incluyen la Poisson y la bino-mial. Notemos que θi varıa para los distintos i dependiendo de los valores de lasvariables predictoras. Q(θ) recibe el nombre de parametro natural.

1

Page 164: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

La componente sistematica de un GLM es el vector (η1, . . . , ηN ) donde

ηi =∑

j

βjxij , con i = 1, . . . , N, (8.2)

donde xij es el valor del j-esimo predictor en el i-esimo individuo. La combina-cion lineal

∑j βjxij es el predictor lineal. Notemos que, como es habitual, se suele

considerar que uno de los predictores xij vale uno para todos los i de modo queconsideramos el termino independiente (que denotaremos a menudo por α).

La tercera componente es la funcion link g. Mediante esta funcion relacionamoslas componentes aleatoria y sistematica. Sea µi = E(Yi) con i = 1, . . . , N . Vamos asuponer que

ηi = g(µi) (8.3)

donde la funcion link g la suponemos monotona y diferenciable. En consecuenciatenemos

g(µi) =∑

j

βjxij , con i = 1, . . . , N. (8.4)

El modelo lineal es un modelo lineal generalizado ya que Yi ∼ N(µi, σ2) donde

µi =∑

j βjxij . En consecuencia el parametro natural es la media y la funcion link esla identidad. De hecho, los modelos lineales generalizados surgen como una extensionnatural cuando la variable respuesta no necesariamente ha de ser continua. En unmodelo lineal la relacion que liga a los predictores con la media de la variable esdirecta: la media es funcion lineal de los predictores. Sin embargo, una modelizaciontan simple como esta no es asumible cuando la respuesta es una variable binomial oPoisson, o multinomial. Sin embargo, se observo que muchos de los metodos que seutilizaban para estudiar el modelo lineal eran aplicables para este tipo de modelosque proporciono un marco comun a procedimientos que ya se estaban usando enEstadısticas previamente.

8.1.1. Modelos logit binomiales para datos binarios

Tenemos respuesta binaria (exito como 1 y fracaso como 0), esto es, Y ∼Bin(1, π). Notemos que

f(y | π) = πy(1 − π)1−y =

(1 − π)[π/(1 − π)]y = (1 − π) exp

(y log

π

1 − π

)(8.5)

por lo que pertenece a la familia exponencial natural con

θ = π, (8.6)

a(π) = 1 − π, (8.7)

b(y) = 1, (8.8)

Q(π) = logπ

1 − π. (8.9)

Vemos que el parametro natural log π1−π es el logit de π. Es pues el link canonico.

Los GLM que utilizan un link logit reciben el nombre de modelos logit.

8.1.2. Modelo loglineal de Poisson para conteos

La variable respuesta son conteos. La distribucion mas simple para este tipo dedatos es la distribucion de Poisson. Sea Y el conteo aleatorio y µ = EY . La funcion

2

Page 165: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

de probabilidad de la distribucion de Poisson la podemos expresar como

f(y | µ) =e−µµy

y!= exp(−µ)

(1

y!

)exp(y log µ), con y = 0, 1, . . . (8.10)

Esta familia de distribuciones pertenece a la familia exponencial natural con

θ = µ, (8.11)

a(µ) = exp(−µ), (8.12)

b(y) =1

y!(8.13)

Q(µ) = log µ. (8.14)

El parametro natural es log µ y en consecuencia la funcion link canonica es el loga-ritmo. El modelo que utiliza este link es

log µ =∑

j

βjxij , con i = 1, . . . , N. (8.15)

Este modelo recibe el nombre de modelo loglineal de Poisson.

8.1.3. Desviacion

Sean y = (y1, . . . , yN ) los valores observados y L(µ;y) la verosimilitud expresadaen terminos del vector de medias µ = (µ1, . . . , µN). Sea L(µ;y) el maximo de la log-verosimilitud como funcion de µ. Si no nos restringimos a un modelo determinadoentonces

L(µ;y) = L(y;y). (8.16)

En este modelo perfecto se tiene un parametro distinto por observacion. Este modelolo llamamos modelo saturado. Este modelo no tiene ninguna utilidad pues no suponeninguna reduccion de los datos, ningun tipo de modelizacion con lo que esto suponede simplificacion. Sin embargo, es un modelo base con el que compararse.

Definimos la desviacion como

− 2

[L(µ;y) − L(y;y)

]. (8.17)

La desviacion es el test del cociente de verosimilitudes donde la hipotesis nula esel modelo que estamos considerando frente a la alternativa mas general que suponela negacion de este modelo.

La distribucion asintotica de la desviacion es una χ2(N − p) donde N es elnumero de observaciones (igual al numero de parametros en el modelo saturado) yp el numero de parametros del modelo asumido en la hipotesis nula.

8.2. GLM para datos binarios

La variable respuesta Y se supone binaria. Sea x el vector de predictores.

Y ∼ Bi(1, π(x)),

conP (Y = 1) = π(x), P (Y = 0) = 1 − π(x).

Ademas:EY = P (Y = 1) = π(x).

yvar(Y ) = π(x)(1 − π(x)).

3

Page 166: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Cuadro 8.1: Relacion entre el ronquido (filas) y la enfermedad cardIaca (columnas)

Si NoNunca 24 1355Ocasionalmente 35 603Casi cada noche 21 192Cada noche 30 224

8.2.1. Funcion link identidad

π(x) = α + βx,

si consideramos un solo predictor. El problema que se nos plantea es que no tenemosasegurada que dicha probabilidad este entre cero y uno. Obviamente, β es el cambioen la probabilidad por un cambio unitario de x.

Notemos que Y depende de x a traves de π(x) . La varianza de la varianza tiendea cero cuando π(x) se aproxima bien a cero bien a uno.

8.2.2. Ejemplo: Ronquido y enfermedad cardAaca

Construimos el banco de datos.

# Datos de tabla 4.2, pagina 121

n<-c(1379, 638, 213, 254) snoring<-rep(c(0,2,4,5),n)

y<-rep(rep(c(1,0),4),c(24,1355,35,603,21,192,30,224))

8.3. GLM para conteos

La variable respuesta Y son datos de conteo. Se asume que sigue una distribucionde Poisson. Denotamos µ = EY =.

Un modelo loglineal con una sola variable predictora serIa

log µ = α + βx,

o de otro modo

µ = exp(α + βx) = eα

(eβ

)x

.

que en palabras significa que un incremento unitario de la variable x supone que lamedia de Y , µ, corresponde a la asociada a x multiplicada por eβ .

8.3.1. Apareamiento de cangrejos herradura

Es un estudio de apareamiento de cangrejos herradura. Cada hembra tiene unmacho residiendo en su nido. En el estudio se trata de investigar que otros factoresinfluyen en que la hembra tenga otros machos, llamados satelites, residiendo en elentorno. Como variables explicativas tenemos el color de la hembra (C), estado dela columna (S), anchura del caparazon (W), peso (Wt) y como variable respuestatenemos el numero de satelites (Sa). De momento vamos a usar una sola variablepredictora, la anchura del caparazon W.

Leemos los datos.

4

Page 167: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

##tabla 4.3 table.4.3 <-

read.table('../data/crab.txt',col.names=c("C","S","W","Sa","Wt"))##Pasamos los pesos a kilogramos table.4.3[,5] <- table.4.3[,5]/1000

En la siguiente figura representamos el numero de satetites frente a la anchuradel caparazon.

# Figura 4.3 plot.table.4.3<-aggregate(rep(1,nrow(table.4.3)),

list(Sa=table.4.3$Sa,

W=table.4.3$W), sum)

plot.table.4.3$Sa<-as.numeric(as.vector(plot.table.4.3$Sa))

plot.table.4.3$W<-as.numeric(as.vector(plot.table.4.3$W))

plot(y=plot.table.4.3$Sa,x=plot.table.4.3$W,xlab="Width (cm)",

ylab="Number of Satellites", bty="L", axes=F, type="n") axis(2,

at=1:15) axis(1)

text(y=plot.table.4.3$Sa,x=plot.table.4.3$W,labels=plot.table.4.3$x)

Realmente no es facil observar ningun patron de comportamiento. Agrupamoslas hembras de grupos dependiendo de la anchura. En concreto las categorIas consi-deradas seran 0, 23,2], (23,2, 24,2], (24,2, 25,2], (25,2, 26,2], (26,2, 27,2], (27,2, 28,2],(28,2, 29,2], (29,2, Inf ]. Representamos, en abscisas, la anchura media en cada grupoy, en ordenadas, el numero medio de satelites.

# figure 4.4 table.4.3$W.fac<-cut(table.4.3$W, breaks=c(0,seq(23.25,

29.25),Inf)) plot.y<-aggregate(table.4.3$Sa,

by=list(W=table.4.3$W.fac), mean)$x plot.x<-aggregate(table.4.3$W,

by=list(W=table.4.3$W.fac), mean)$x plot(x=plot.x, y=plot.y,

ylab="Number of Satellites", xlab="Width (cm)",

bty="L",axes=F, type="p", pch=16)

axis(2, at=0:5) axis(1, at=seq(20,34,2))

Vamos a realizar una regresion de Poisson donde utilizados el logaritmo comofuncion link.

log.fit<-glm(Sa~W, family=poisson(link=log),data=table.4.3)

summary(log.fit)

summary(log.fit)

Call: glm(formula = Sa ~ W, family = poisson(link = log), data =

table.4.3)

Deviance Residuals:

Min 1Q Median 3Q Max

-2.8526 -1.9884 -0.4933 1.0970 4.9221

Coefficients:

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

(Intercept) -3.30476 0.54224 -6.095 1.10e-09 *** W 0.16405

0.01997 8.216 < 2e-16 ***

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 632.79 on 172 degrees of freedom

5

Page 168: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Residual deviance: 567.88 on 171 degrees of freedom AIC: 927.18

Number of Fisher Scoring iterations: 6

Aparecen los estimadores de los coeficientes, sus errores estandar aproximados,la desviacion residual y un resumen de los residuos de la desviacion.

La desviacion nula es la desviacion cuando suponemos en el modelo solamenteel termino constante. En este caso asumiendo que el coeficiente de W es nulo. Ladiferencia entre las desviaciones considerando solamente la constante o el modeloque incluye a la variable predictora W puede obtenerse del siguiente modo:

log.fit$null.deviance-log.fit$deviance

Y el resultado es

1] 64.91309

Este es el valor del estadIstico correspondiente al test del cociente de verosimilitu-des. Tiene, en este caso, una distribucion aproximada ji-cuadrado con un grado delibertad. El p-valor vendrIa dado por

> 1-pchisq(64.91309,df=1)

[1] 7.771561e-16

que como vemos es claramente significativo. Se rechaza la hipotesis nula de que elcoeficiente de W es nulo. En la salida que proporciona la funcion summary apareceun z value que vale −6,095 con un p-valor asociado de 1,10e− 09. Esto correspondecon el test de Wald. El test del cociente de verosimilitudes suele ser mas fiable.

La funcion summary nos devuelve un objeto que tiene mucha mas informacion.Con la funcion attributes podemos verlo.

attributes(summary(log.fit))

Cuya salida es

$names

[1] "call" "terms" "family" "deviance"

[5] "aic" "contrasts" "df.residual" "null.deviance"

[9] "df.null" "iter" "deviance.resid" "coefficients"

[13] "aliased" "dispersion" "df" "cov.unscaled" [17]

"cov.scaled"

$class [1] "summary.glm"

Por ejemplo podemos obtener los coeficientes como

summary(log.fit)$coefficients

que nos devuelve

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

(Intercept) -3.3047572 0.54224155 -6.094622 1.096964e-09 W 0.1640451

0.01996535 8.216491 2.095450e-16

Es decir, el modelo ajustado es

log µ = −3,305 + 0,164x

Podemos utilizar tambien el ajuste original y ver la informacion que contiene elobjeto que contiene el ajuste.

6

Page 169: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

attributes(log.fit)

Que nos devuelve

$names

[1] "coefficients" "residuals" "fitted.values"

[4] "effects" "R" "rank"

[7] "qr" "family" "linear.predictors"

[10] "deviance" "aic" "null.deviance" [13]

"iter" "weights" "prior.weights" [16]

"df.residual" "df.null" "y" [19] "converged"

"boundary" "model" [22] "call" "formula"

"terms" [25] "data" "offset" "control" [28]

"method" "contrasts" "xlevels"

$class [1] "glm" "lm"

Por ejemplo, los valores ajustados para la respuesta, es decir, los valores mediosestimados se pueden obtener como

log.fit$fitted.values

o bien como

fitted(log.fit)

De un modo similar podemos obtener los residuos o los coeficientes utilizando lasfunciones resid y coef.

Podemos tambien predecir la respuesta con la funcion predict del siguientemodo.

predict.glm(log.fit, type="response", newdata=data.frame(W=26.3))

Estamos haciendo la prediccion de la media del conteo para un valor de W de 26,3.Vamos a ajustar ahora un modelo de Poisson utilizando como funcion link la

identidad.

id.fit<-glm(Sa~W, family=poisson(link=identity),data=table.4.3,

start=coef(log.fit))

summary(id.fit)

que nos produce lo siguiente

Call: glm(formula = Sa ~ W, family = poisson(link = identity), data

= table.4.3,

start = coef(log.fit))

Deviance Residuals:

Min 1Q Median 3Q Max

-2.9113 -1.9598 -0.5405 1.0406 4.7988

Coefficients:

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

(Intercept) -11.52547 0.67767 -17.01 <2e-16 *** W 0.54925

0.02968 18.50 <2e-16 ***

7

Page 170: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 632.79 on 172 degrees of freedom

Residual deviance: 557.71 on 171 degrees of freedom AIC: 917

Number of Fisher Scoring iterations: 22

Ahora el modelo ajustado es

µ = −11,41 + 0,55x

Vemos pues ahora que la anchura del caparazon tiene un efecto aditivo en lugar deser multiplicativo. Vamos a comparar los dos modelos que se han ajustado.

plot(x=plot.x, y=plot.y, ylab=expression(paste("Mean number of

satellites,",

mu)), xlab="Width (cm)",bty="L",axes=F, type="p", pch=16)

axis(2, at=0:5) axis(1, at=seq(20,34,2)) ind<-order(table.4.3$W)

lines(x=table.4.3$W[ind],y=log.fit$fitted.values[ind])

lines(x=table.4.3$W[ind],y=id.fit$fitted.values[ind])

arrows(x0=23.5,y0=2.9,x1=23.5,y1=predict(log.fit,newdata=data.frame(W=23.5),

type="response"),length=.2)

text(x=23.5,y=3,"Log Link")

arrows(x0=29.75,y0=3.1,x1=29.75,y1=predict(id.fit,newdata=data.frame(W=29.75),

type="response"),length=.2)

text(x=29.75,y=2.9,"Identity Link")

8.4. Respuesta ordinal: modelos logit acumulados

Vamos a suponer que la variable respuesta Y es ordinal y toma valores 1, . . . , J .Las variables independientes o predictoras seran x = (x1, . . . , xd). Pretendemosmodelizar la distribucion de la variable Y condicionada a los valores de x. Hemosde tener en cuenta que por ser ordinal la variable respuesta tiene sentido (y es laopcion mas simple) modelizar directamente la funcion de distribucion condicionadadada por P (Y ≤ j|x), es decir, la probabilidad de que la variable sea igual o menorque cada posible valor j condicionada a los valores de x. Si denotamos πj(x) como laprobabilidad de que Y tome el valor j para un x dado, es decir, πj(x) = P (Y = j|x)

entonces P (Y ≤ j|x) =∑j

i=1 P (Y = i|x) =∑j

i=1 πi(x).Hay distintos modelos propuestos para este tipo de datos [1], capıtulo 7. El

mas extendido se basa en dar un modelo para el logit de la funcion de distribucioncondicionada de Y que recibe el nombre de logit acumulado que vendrıa dado por

logit(P (Y ≤ j|x)) = logP (Y ≤ j|x)

P (Y > j|x)= log

∑ji=1 πi(x)

∑Ji=j+1 πi(x)

. (8.18)

El modelo de odds proporcionales es el siguiente

logit(P (Y ≤ j|x)) = αj +

d∑

i=1

βixi, j = 1, . . . , J − 1 (8.19)

Es importante darse cuenta de que cada variable independiente tiene un solo coe-ficiente asociado y que no depende del valor j. La dependencia de j aparece en lasintersecciones αj .

8

Page 171: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Teniendo en cuenta que si j < j′ entonces logit(P (Y ≤ j|x)) ≤ logit(P (Y ≤j′|x)) se ha de verificar que αj ≤ αj′ . En definitiva los distintos αj han de crecercon j.

Notemos tambien que si consideramos dos vectores de variables independientesx1 = (x11, . . . , x1d)

′ y x2 = (x21, . . . , x2d)′ entonces

logit(P (Y ≤ j|x1)) − logit(P (Y ≤ j|x2)) = αj +d∑

i=1

βi(x1i − xi2), (8.20)

pero

logit(P (Y ≤ j|x1)) − logit(P (Y ≤ j|x2)) = logP (Y ≤ j|x1)/P (Y > j|x1)

P (Y ≤ j|x2)/P (Y > j|x2). (8.21)

En definitiva estamos afirmando que

logP (Y ≤ j|x1)/P (Y > j|x1)

P (Y ≤ j|x2)/P (Y > j|x2)=

d∑

i=1

βi(x1i − x2i). (8.22)

Al cociente que aparece en el lado izquierdo de la ecuacion anterior recibe el nombrede cociente de odds acumulado. Los odds de un respuesta menor o igual a j parax = x1 es

exp

( d∑

i=1

βi(x1i − xi2)

)

veces los odds para x = x2. Ademas vemos que esta constante de proporcionalidadno depende del valor de j. Por ello al modelo que estamos asumiendo se le suelellamar el modelo de odds proporcionales.

Intentemos expresar el significado de la ecuacion 8.22 de un modo simple. Su-pongamos que los vectores x1 y x2 son iguales salvo en la componente i-esima. Endefinitiva, ambos individuos coinciden salvo en dicha componente y supongamos,ademas, que difieren en una unidad ambos vectores para la i-esima componente.Tenemos, bajo estas hipotesis, la siguiente ecuacion:

P (Y ≤ j|x1)/P (Y > j|x1)

P (Y ≤ j|x2)/P (Y > j|x2)=

d∑

i=1

βi(x1i − x2i) = eβi(x1i−x2i) = eβi . (8.23)

Mantenidas todas las demas variables constantes tenemos que el cambio de los oddsde la funcion de distribucion de la variable Y condicionada a x1 y a x2 se modificade un modo constante e igual a eβi .

La funcion de verosimilitud de estos modelos viene dada por la siguiente ecua-cion. Notemos que para el individuo i tenemos asociado el vector (yi1, . . . , yiJ)′

donde yij sera uno si el individuo esta en la categorıa j, es decir, si la variable Ytoma el valor j.

n∏

i=1

J∏

j=1

πj(xi)yij =

n∏

i=1

J∏

j=1

(P (Y ≤ j|xi) − P (Y ≤ j − 1|xi))yij =

n∏

i=1

J∏

j=1

(exp(αj +

∑di=1 βi(x1i − xi2))

1 + αj +∑d

i=1 βi(x1i − xi2)− exp(αj−1 +

∑di=1 βi(x1i − xi2))

1 + αj−1 +∑d

i=1 βi(x1i − xi2)

)yij

(8.24)

9

Page 172: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

8.5. Sobre la interpretacion de los coeficientes β

De alguna manera la variable ordinal Y que analizamos puede considerarse co-mo la version discreta de una variable continua en la que discretizamos su ran-go. Denotamos esa variable por Y ∗ y suponemos que tiene funcion de distribu-cion G(y∗ − η) donde los valores y∗ varıan alrededor de la media que depen-

de de x a traves de η(x) =∑d

i=1 βi(x1i − xi2). Tomemos los puntos de corte−∞ = α0 < α1 < . . . < αJ = +∞ de modo que

Y = j si αj−1 < Y ∗ ≤ αj .

En definitiva estamos asumiendo que cuando la variable continua Y ∗ esta entre losvalores αj−1 y αj entonces la variable Y vale j. Tendremos que

P (Y ≤ j|x) = P (Y ∗ ≤ αj |x) = G(αj −d∑

i=1

βixi),

o que

G−1(P (Y ≤ j|x)) = αj −d∑

i=1

βixi.

Si por ejemplo suponemos que Y ∗ =∑d

i=1 βixi + ǫ donde ǫ tiene una distribucionlogıstica entonces G−1 serıa la funcion link logıstica y tendrıamos el modelo de oddsproporcionales. Notemos que con esta formulacion los mismos parametros β ocurrenindependientemente de los puntos de corte αj que utilicemos. En definitiva que losparametros que cuantifican el efecto de las variables no dependen de la eleccion quehacemos de las categorıas de la variable a explicar Y . Esto nos permite compararlos estimadores cuando se utilizan distintas escalas de respuesta.

Si β es positivo entonces cuando la variable asociada x crece entonces el logitacumulado decrece y tambien lo hace las probabilidades acumuladas. Tenemos quelos valores pequenos de Y tienen menos probabilidad. La variable Y tiende a tomarvalores mayores cuando x crece.

8.6. Verosimilitud de un modelo lineal generaliza-do

Tenemos el vector Y = (Y1, . . . , Yn)′ que suponemos que son observaciones in-dependientes. La densidad de Yi se supone que es de la forma:

f(yi | θi, φ) = exp

(yiθi − b(θi)

a(φ)+ c(yi, φ)

)(8.25)

Esta familia de densidades recibe el nombre de familia de dispersion exponencial.El parametro φ recibe el nombre de parametro de dispersion. El parametro θi es elparametro natural.

Notemos que cuando φ es conocido la familia de dispersion exponencial se reducea la familia exponencial natural cuya expresion generica viene dada por

f(yi | θi) = a(θi)b(yi) exp(yiQ(θi)) (8.26)

10

Page 173: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 9

De como usar R en untiempo razonable (no facil,no)

En este capıtulo se incluyen algunos consejos practicos para trabajar con R. Lasposibilidades son enormes. Sin embargo, de tantas que tiene lo mas probable es que elusuario ocasional no llegue a conocer ninguna de ellas. Antes lo habra abandonado.Y con razon. Si llevas anos utilizandolo con unas pocas lıneas de codigo haces loque con programas basados en menu te cuesta horas (y cuando lo vuelves a repetirte vuelve a costar horas porque tu aprendizaje no te ahorra tiempo futuro lo queen R no ası). Pero lo de anos usando algo es una utopıa que solo se pueden permitirunos cuantos profesores universitarios sin nada mejor que hacer y muchos horas quellenar de su importante tiempo.

Cuando usamos un programa informatico hay dos problemas fundamentales que,dependiendo de la persona, uno puede ser mucho mayor que el otro. Un problemaes el manejo del dichoso programa. ¿Como se ha disenado el interfaz? ¿Donde hanpuesto tal o cual opcion de la tecnica? En fin, no vale la pena seguir. Se asumeque un buen menu es la clave de un buen programa (sobre todo, para un usuarioinexperto). En definitiva, se trata de eliminar cualquier tipo de aprendizaje (inicialo posterior) para que sea de uso inmediato. Algunas personas (entre las que meencuentro) piensan que eso no esta tan claro. Se acaba pagando el pato. Lo queno pierdes (no me atreve a hablar de ganar) al principio lo pierdes mas tarde.Programas como R basados en el uso de un lenguaje sencillo permiten un aprendizajerapido y profundo. Aprendes Estadıstica al mismo tiempo que aprendes a manejarel programa. Y, desde un punto de vista docente, es una razon importante parautilizarlo.

En este capıtulo he ido incluyendo distintas cuestiones basicas para el uso delprograma. Desde el como conseguirlo o instalarlo hasta como trabajar con el. Muchode lo que sigue se basa en mi propia experiencia. De hecho, muchos estudiantes alos que sugieres formas de trabajo, utilizan otros trucos que les resultan mas utiles.Mi edad (y cerrazon mental) me impiden cada vez mas adaptarme a nuevas ideas.Es importante darse cuenta de que es un programa abierto y que, facilmente, lopuedes integrar con otras herramientas informaticas. La idea es: elige el editor quequieras. Genera las figuras en formatos distintos y utiliza el procesador de textosque se quiera. En fin, de esto vamos a tratar.

11

Page 174: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

9.1. Instalacion y como trabajar con R

La direccion basica es http://cran.r-project.org. Allı se tienen tanto lasfuentes como versiones compiladas para Windows, Mac y Linux.

9.1.1. R y Windows

Los puntos a seguir para una instalacion son los siguientes:

1. a) Traer la distribucion base de cran.

b) El programa se instala simplemente ejecutandolo.

c) Una vez instalado en el menu principal teneis una herramienta que per-mite seleccionar el espejo desde traer los paquetes adicionales comoda-mente.

2. Una vez instalado el programa la opcion mas comoda es utilizar el programaTinn-R. Vamos escribiendo el codigo en su editor y tiene muchas herramientaspara interactuar con R. Es, sin duda, la mejor opcion para Windows.

3. Una segunda opcion es utilizar RWinEdt. Para poder usarlo hay que tenerinstalado Winedt. Es un programa shareware muy util para escribir en LATEX.Una vez instalado WinEdt cargamos el paquete RWinEdt [11].

9.1.2. R y Linux

Es mi opcion personal de trabajo. La recomiendo definitivamente. Por Linux yporque el trabajo con R es muy comodo. 1

Instalacion 1. Para Linux hay distintas versiones compiladas que puedes encon-trar en cran.

2. No es complicado compilar R a partir de las fuentes. Hay que tener laprecaucion de tener gfortran.

3. Cuando instalamos R en Linux hemos de instalar previamente la librerıaBLAS.

Edicion con Emacs y ESS En Linux sin duda la mejor opcion de trabajoes utilizar Emacs con el paquete Emacs Speaks Statistics (ESS) 2.

¿Como trabajamos con Emacs y ESS?

1. Abrimos el fichero R con emacs.

2. Abrimos una nueva ventana (mejor separada) con C x 5 2.

3. En la nueva ventana marcamos el icono de R.

4. Utilizamos la ventana donde esta el codigo para editar y podemosusar los distintos controles que nos da el menu ESS de emacs pode-mos trabajar muy comodamente.

1Imagino a un usuario de Windows tıpico sonreir ante la afirmacion anterior. Me alegro de quepueda sonreir despues de los lloros continuos usando esa cosa llamada Windows (que no sistemaoperativo).

2La mejor opcion es acudir a la pagina de los paquetes binarios y buscar en la distribucioncorrespondiente donde teneis el paquete

12

Page 175: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

9.2. ¿Como fijar el directorio de trabajo?

Empezamos una sesion de R y todo nuestro trabajo (datos, codigo R) lo tenemosen un directorio. Hemos de tener un acceso comodo a estos ficheros. ¿Como hacerlo?

En Linux no hay problema. Simplemente con la consola nos vamos al directoriocorrespondiente y ejecutamos R. Automaticamente hemos fijado el directorio detrabajo como aquel en que iniciamos el programa.

En Windows lo recomendable es utilizar el menu y cambiar el directorio al detrabajo. Yo recomiendo una vez hecho esto ejecutar:

getwd()

Nos devuelve todo el camino hasta dicho directorio. Lo que nos devuelve esta funcion(por ejemplo C: Mis documentos ad prog) lo ponemos entre comillas dobles yejecutamos

setwd("C:\ Mis documentos\ ad\ prog")

De este modo hemos fijado el directorio de trabajo.

9.3. Etiquetas de valor y de variable

Para denotar una variable utilizamos siempre una expresion breve y simple. Sinembargo, es conveniente que la variable tenga una etiqueta explicativa del significadode la variable. Dicha etiqueta ha de ser clara y no muy larga.

9.3.1. ¿Como etiquetar una variable?

Supongamos que la variable a etiquetar es x en el data frame datos. Usamos lalibrerıa [9].

library(Hmisc

label(datos$x) = "Ejemplo de etiqueta"

9.4. Elaboracion de un informe a partir del codigoR

Una vez hemos analizado un banco de datos hemos de elaborar un informe.Normalmente nos va a llevar mas tiempo esta segunda parte que la primera.

9.4.1. Sweave

Es conveniente consultar esta pagina. Un documento de gran utilidad donde verla utilizacion de Sweave es este tutorial.

9.5. R y Octave/Matlab

Es frecuente que un usuario de Octave/Matlab utilice R. En este enlace y en esteteneis tablas de equivalencia entre los comandos en ambos programas.

13

Page 176: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

14

Page 177: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Capıtulo 10

Datos

En este capıtulo damos una breve explicacion de los datos que utilizamos en eltexto. Si los datos han sido obtenidos de algun paquete de R lo mejor es consultarla ayuda del paquete correspondiente.

10.1. scoremaster

Los datos scoremaster son unos datos relativos a cirugıa mayor ambulatoria enel hospital Dr. Peset de Valencia. Han sido proporcionados por el Dr. Juan Vinoles[14].

Este fichero fue creado con la funcion save de R y se tiene que leer (como pareceesperable) con la funcion load de R. El fichero contiene datos relativos a una serie deintervenciones quirurgicas realizadas con cirugıa sin ingreso. En estas intervencionesel enfermo acude al centro hospitalario por la manana y se va el mismo dıa de laintervencion (si no hay complicaciones obviamente). Las variables del banco de datosson las siguientes:

score Una puntuacion del estado general del enfermo en la primera llamada.

eg1 Estado general en primera llamada: Excelente, euforico, sueno normal (2); buenestado pero algo preocupado, ha dormido poco (1); regular, ansiedad mode-rada, algo mareado, ha dormido mal o nada (0).

d1 Nivel de dolor en primera llamada: Ausencia (2); dolor leve (1); dolor importantepero soportable (0).

t1 Tolerancia en primera llamada: completa (2); a lıquidos (1); nauseas y vomitoso incumple dieta (0).

s1 Sangrado en primera llamada: Ausencia (2); normal tipo menstruacion, bigotera,etc (1); dudoso, para observacion (0).

especialidad Es la especialidad a la que corresponde la intervencion.

intensidad Es una variable ordinal que cuantifica la intensidad (de menos a mas)de la intervencion realizada.

tipoanes Tipo de anestesia.

asa Clasificacion ASA.

sexo Sexo de la persona.

15

Page 178: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

T.TOTALP Tiempo total postquirurgico.

T.QUIRUR Tiempo total quirurgico.

edad Edad del paciente.

Las variables score2, eg2, d2, t2, s2 son las mismas variables (con las mismas cate-gorıas) observadas en la segunda llamada. De un modo similar tenemos las variablespara la tercera, cuarta y quinta llamadas.

10.2. Avispa

Los datos avispa tienen la siguiente descripcion obtenida de la pagina web indi-cada. Scientists studying social insects such as wasps and ants have noted that queenand worker castes can have very different sizes and shapes. For some species, thequeens are simply larger, suggesting that they continue to grow with the same basic‘plan’ as workers. They are just fed for longer. Jeanne, Graf and Yandell (1995)examined a wasp species which does not follow this pattern. They measured 13 res-ponses on 50 workers and 50 queens. The measurements were coded based on bodypart – head (H), thorax (T), wing (W) or gonadium (G) – and kind of measure-ment – width (W), height (H) and length (L). The gonadium (also known as gastraltergite) has two length and three width measurements.

10.3. Datos wbca

El banco de datos wbca contiene informacion sobre un estudio de cancer de mamaen el estado norteamericano de Wisconsin. La variable Class indica si la mujer tienecancer de mama o no (valores 1 y 0 respectivamente). El resto son variables quedescriben el estado de la paciente.

16

Page 179: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

Bibliografıa

[1] A. Agresti. Cualitative Data Analysis. Wiley, 2nd edition edition, 2002.

[2] R core members, Saikat DebRoy, Roger Bivand, and others: see COPYRIGHTSfile in the sources. foreign: Read Data Stored by Minitab, S, SAS, SPSS, Stata,Systat, dBase, ..., 2008. R package version 0.8-29.

[3] C.L. Blake D.J.Newman, S. Hettich and C.J. Merz. UCI repository of machinelearning databases, 1998.

[4] E.R. Dougherty. Probability and Statistics for the Engineering, Computing andPhysical Sciences. Prentice Hall International Editions, 1990.

[5] Julian Faraway. faraway: Functions and datasets for books by Julian Faraway.,2009. R package version 1.0.4.

[6] R.A. Fisher. The analysis of covariance method for the relation between a partand the whole. Biometrics, 3:65–68, 1947.

[7] Alan Genz, Frank Bretz, Torsten Hothorn with contributions by Tetsuhisa Mi-wa, Xuefei Mi, Friedrich Leisch, and Fabian Scheipl. mvtnorm: MultivariateNormal and t Distributions, 2008. R package version 0.9-2.

[8] J.A. Hartigan and M.A. Wong. A k-means clustering algorithm. Applied Sta-tistics, 28:100–108, 1979.

[9] Frank E Harrell Jr and with contributions from many other users. Hmisc:Harrell Miscellaneous, 2007. R package version 3.4-3.

[10] L. Kaufman and P.J. Rousseeuw. Finding Groups in Data. An Introduction toCluster Analysis. Wiley, 1990.

[11] Uwe Ligges. R-winedt. In K. Hornik, F. Leisch, and A. Zeileis, editors, Procee-dings of the 3rd International Workshop on Distributed Statistical Computing(DSC 2003), TU Wien, Vienna, Austria, 2003. ISSN 1609-395X.

[12] Martin Maechler, Peter Rousseeuw, Anja Struyf, and Mia Hubert. Clusteranalysis basics and extensions. Rousseeuw et al provided the S original whichhas been ported to R by Kurt Hornik and has since been enhanced by MartinMaechler: speed improvements, silhouette() functionality, bug fixes, etc. Seethe ’Changelog’ file (in the package source), 2005.

[13] David Meyer, Achim Zeileis, and Kurt Hornik. vcd: Visualizing CategoricalData., 2007. R package version 1.0-6.

[14] J. Vi noles. Control de calidad postoperatoria en cirugıa ambulatoria. PhDthesis, Universitat de Valencia, Estudi General, 2007.

[15] J. Pitman. Probability. Springer-Verlag, 1999.

17

Page 180: An´alisis de datos con R - galia.fc.uaslp.mxgalia.fc.uaslp.mx/escuelaverano/material/Material R/ad4.pdf · An´alisis de datos con R Guillermo Ayala Gallego1 4 de febrero de 2010

[16] R Development Core Team. R: A Language and Environment for StatisticalComputing. R Foundation for Statistical Computing, Vienna, Austria, 2008.ISBN 3-900051-07-0.

[17] C.R. Rao. Linear Statistical Inference and Its Applications. Wiley, 1967.

[18] W.N. Venables and B. D. Ripley. Modern Applied Statistics with S. Springer,New York, fourth edition, 2002. ISBN 0-387-95457-0.

[19] J. Verzani. Using R for Introductory Statistics. Chapman & Hall / CRC, 2005.

18


Recommended