Análisis Exploratorio de Datos Con R
Análisis Exploratorio de Datos Con R
Análisis Exploratorio de Datos Con R
http://r-econ.blogspot.com/2011/05/analisis-exploratorio-de-datos-con-r.html En esta seccin ilustraremos brevemente algunas tcnicas estndar para el anlisis exploratorio de datos. Para aquellos que buscan una introduccin ms detallada sobre estadsticas bsicas con R refiranse a Dalgaard ( !! ". #saremos los datos contenidos en CPS1985 tomados de $erndt (%&&%". Despus de tener disponibles los datos va data(), podremos tener alguna informacin a travs de la funcin str(). 'odo este anlisis fue tomado de (leiber ) *eileis ( !!+". Descarga los cdigos usados en este post aqu
> data("CPS1985", package="AER") > str(CPS1985) 'data.frame' 5!! "#s. "f 11 $ar%a#&es ' (age )*m +.95 ,.,- + -.5 1!..- ... ' ed*cat%") %)t 9 1/ 1/ 1/ 1! 1. 1/ 1, 1/ 1/ ... ' e0per%e)ce %)t +/ 1 + 1- 9 /- 9 11 9 1- ... ' age %)t 5- 19 // !5 /8 +! /- !! /- !5 ... ' et1)%c%t2 3act"r (4 ! &e$e&s "ca*c","1%spa)%c",.. 1 1 1 1 1 1 1 1 1 1 ... ' reg%") 3act"r (4 / &e$e&s "s"*t1",""t1er" / / / / / 1 / / / / ... ' ge)der 3act"r (4 / &e$e&s "ma&e","fema&e" / 1 1 1 1 1 1 1 1 1 ... ' "cc*pat%") 3act"r (4 , &e$e&s "("rker","tec1)%ca&",.. 1 1 1 1 1 1 1 1 1 1 ...
' sect"r 3act"r (4 ! &e$e&s "ma)*fact*r%)g",.. 1 1 ! ! ! ! ! 1 ! ! ... ' *)%") 3act"r (4 / &e$e&s ")"","2es" 1 1 1 1 / 1 1 1 1 / ... ' marr%ed 3act"r (4 / &e$e&s ")"","2es" / 1 1 / 1 1 1 / 1 / ... > Esta salida revela que CPS1985 es un 5data.frame6 compuesto por ,-- observaciones y %% variables, incluyendo la variable numrica (continua) (age, las variables numricas (enteras) ed*cat%"), e0per%e)ce, and age y siete factores (variables categricas, llamadas 3act"r en R) cada una con 6 categoras (las categoras son llamas niveles (levels) en R). En vez de utilizar la vista tipo lista que nos proporciona la funcin str(), es ms usual inspeccionar el inicio y el final de la base de datos (data.frame) en su forma natural, es decir, como un arreglo rectangular de valores. Para este objetivo e isten funciones apropiadas tales como 1ead() y ta%&() que nos proporcionan (por defecto) las primeras ! observaciones y las "ltimas ! observaciones de cada variable, respectivamente. #s$ por ejemplo, 1ead(CPS1985) (age ed*cat%") e0per%e)ce age et1)%c%t2 reg%") ge)der "cc*pat%") 1 +.95 9 +/ 5ca*c "t1er fema&e ("rker / ,.,1/ 1 19 ca*c "t1er ma&e ("rker ! +... 1/ + // ca*c "t1er ma&e ("rker + -.5. 1/ 1- !5 ca*c "t1er ma&e ("rker 5 1!..1! 9 /8 ca*c "t1er ma&e ("rker , +.+5 1. /- +! ca*c s"*t1 ma&e ("rker sect"r *)%") marr%ed 1 ma)*fact*r%)g )" 2es / ma)*fact*r%)g )" )" ! "t1er )" )" + "t1er )" 2es 5 "t1er 2es )" , "t1er )" )" > Por razones de espacio no se presenta el resultado de aplicar ta%&(CPS1985), pero el lector lo puede ejecutar y ver que la informacin que proporciona es muy semejante a 1ead(CPS1985), la diferencia es que ta%&() da las "ltimas ! filas como se %a se&alado antes. .tra manera apropiada ) rpida de obtener un resumen de la informacin contenida en la base de datos es a travs de la funcin s*mmar2() la cual proporciona un resumen por cada una de las variables. > s*mmar2(CPS1985) (age ed*cat%") e0per%e)ce age 7%). 1.... 7%). /... 7%). .... 7%). 18... 1st 8*. 5./5. 1st 8*. 1/... 1st 8*. 8... 1st 8*. /8... 7ed%a) -.-8. 7ed%a) 1/... 7ed%a) 15... 7ed%a) !5... 7ea) 9..!1 7ea) 1!..! 7ea) 1-.8/ 7ea) !,.8+
!rd 8*. 11./5. 7a0. ++.5.. et1)%c%t2 sect"r ca*c ++. ma)*fact*r%)g 1%spa)%c /, c")str*ct%") "t1er ,+11 9-
!rd 8*. 15... !rd 8*. /,... !rd 8*. ++... 7a0. 18... 7a0. 55... 7a0. ,+... reg%") ge)der "cc*pat%") s"*t1 15, 98 "t1er !-/+ ma&e /89 ("rker tec1)%ca& ser$%ces "ff%ce sa&es 155 1.5 8! "t1er
fema&e /++
'ado que en lo sucesivo de esto post se utilizar repetidamente la base CSP1985, trataremos de evitar usar comandos muy e tensos comoCSP1985'ed*cat%") para ello separaremos cada variable de la base de datos y as$ podremos acceder a ella directamente por su nombre sin necesidad de anteponer el nombre de la base donde estn contenidas, para lograr eso %aremos uso de la funcin attac%(). #dems para evitar escribir muc%as letras, renombraremos y abreviaremos los nombres de dos niveles (categor$as) de la variable occupation, cambiaremos (tec1c)%ca&) por (tec1)) y (ma)ageme)t) por mgmt. > &e$e&s(CPS1985'"cc*pat%"))9c(/,,):;<c("tec1)", "mgmt") > attac1(CPS1985)
"s !ora del an#lisis, procederemos con l ilustrando cmo se !ace una an#lisis e$ploratorio considerando una sola variable, luego pares de variables, !aciendo la distincin entre variables numricas, factores (categricas) y combinaciones de ambas. "mpe%amos con el caso m#s simple, considerando una &nica variable.
*a funcin s*mmar2() proporciona un resumen de seis n"meros+ el valor m$nimo, el primer cuartil, el segundo cuartil (,mediana), el tercer cuartil, el valor m imo y el valor medio de la distribucin. *a media y la mediana tambi-n se pudieron %aber obtenido de la siguiente manera > mea)((age) 91: 9..!1+/, > med%a)((age) 91: -.-8
y la funcin f%$e)*m() calcula un resumen de las cinco medidas de posicin no central listados anteriormente. En tanto que, m%)() y ma0() %abr$an proporcionado el m$nimo y el m imo valor de la distribucin. *os cuartiles se podr$an %aber obtenido usando =*a)t%&e(). Para las medidas de dispersin, e isten las funciones > $ar((age) 91: /,.+!.9, > sd((age) 91: 5.1+11.5
'ue nos devuelven el valor de la varian%a y el de la desviacin tpica (desviacin est#ndar seg&n guste llamarla).
*os res"menes grficos tambi-n son muy "tiles. Para variables num-ricas como el caso de (age, las visualizaciones de densidad (v$a %istogramas o (.ernel smoot%ing)) y los diagramas de caja son adecuados. *os diagramas de caja se considerarn cuando se nos refiramos a anlisis de dos variables. *a /igura 0, obtenida v$a
par(mfc"&=c(1,/)) 1%st((age, fre==3) 1%st(&"g((age), fre==3) &%)es(de)s%t2(&"g((age)), c"&=+) muestra las densidades de (age y su logaritmo (esto es, el #rea ba(o la curva es igual a %, resultando del
!ec!o de fre==3A>SE) de otra manera las frecuencias absolutas !abran sido dibu(adas). "n el panel derec!o de la *igura + se !a a,adido al !istograma la densidad -ernel estimada a partir de la funcin de)s%t2(). .laramente, la distribucin de los logaritmos es menos sesgada 'ue la de los datos originales (datos brutos). /ote 'ue de)s%t2() slo calcula las coordenadas de la densidad pero no la grafica, por eso esta estimacin es agregada usando la funcin &%)es(). /igura 0. 1istogramas de 2ages (izq.) y de su logaritmo con densidad superpuesta (derec%a)
Esto tambi-n pudo %aber sido calculado a trav-s de ta#&e("cc*pat%")). 4i en lugar de las frecuencias absolutas, lo que se desea son las frecuencias relativas, entonces e iste la funcin pr"p.ta#&e() que lo %ace.
> ta#;< ta#&e("cc*pat%")) > pr"p.ta#&e(ta#) "cc*pat%") ("rker tec1) ser$%ces "ff%ce sa&es mgmt ../9.8.,-5 ..19,9981/ ..155-//!! ..181988-+ ...-1/9+5, ..1.!189+9 *as variables categricas con com"nmente visualizadas mediante diagramas de barras, los grficos de pastel tambi-n son "tiles. Ejemplo, > #arp&"t(ta#) > p%e(ta#) /igura 6. 'iagrama de barras y de pastel de "cc*pat%")
7ote cmo ambas funciones utilizan las frecuencias como input. 8tilizando la funcinp&"t("cc*pat%")) se logra lo mismo que se logr con#arp&"t(ta#&e("cc*pat%"))), estos procedimientos son equivalentes, pero usando p&"t() se va directamente al grfico no %ay clculos intermedios como los %ay si se utiliza #arp&"t() en la que primero se debe calcular la tabla de frecuencias.
> p&"t(ge)der?"cc*pat%"), data=CPS1985) *a /igura : muestra que la proporcin de %ombres y mujeres cambia considerablemente entre las categor$as de ocupacin (niveles de "cc*pat%")). #dems de las partes sombreadas que nos muestran la distribucin condicional del g-nero (gender) dada la ocupacin ("cc*pat%")), la anc%ura de las barras ofrecen la distribucin marginal de la
ocupacin, indicando que %ay comparativamente muc%as personas en la categor$a (("rkers) y menos en (sa&es), es decir ms obreros que vendedores.
#mbas medidas son virtualmente id-nticas e indican slo una modesta correlacin entre las variables, veamos el correspondiente diagrama de dispersin en la /igura <. > p&"t(&"g((age)? ed*cat%"))
funcin tapp&2(). #s$ por ejemplo, es posible obtener la media de los salarios condicionado al g-nero de la siguiente manera > tapp&2(&"g((age), ge)der, mea)) ma&e fema&e /.1,5/8, 1.9!5/8-
8sando comandos similares pueden obtenerse ms estad$sticos descriptivos o incluso se puede obtener un resumen completo, basta con sustituir s*mmar2en el lugar de mea) y se obtendr
> tapp&2(&"g((age), ge)der, s*mmar2) 'ma&e 7%). 1st 8*. 7ed%a) 7ea) !rd 8*. 7a0. ..... 1.-9/ /.189 /.1,5 /.5,5 !./,9 'fema&e 7%). 1st 8*. 7ed%a) 7ea) !rd 8*. 7a0. ..559, 1.551. 1.9/!. 1.9!5. /.!.!. !.-95.
#decuadas salidas grficas para estos datos tales como diagramas de cajas y diagrama cuartil=cuartil (quantile=quantile plot, qq=plot) se presentan en la /igura >.
*os comandos plot(y@ ) y bo plot(y@ ) proporcionan el mismo resultado si (variable categrica), as$ pues plot(log(2age)@gender)
es un factor
proporcionar la parte izquierda de la /igura >. Este muestra que las distribuciones son bastante similares en su forma pero con la salvedad que los %ombres disfrutan de una ventaja substancial, especialmente los del rango medio. Este "ltimo aspecto es corroborado por el ??=plot que est a la derec%a de la /igura > el cual resulta de ejecutar la siguiente secuencia de comandos m(age ;< s*#set(CPS1985, ge)der=="ma&e")'(age f(age ;< s*#set(CPS1985, ge)der=="fema&e")'(age ==p&"t(m(age, f(age, 0&%m=ra)ge((age), 2&%m=ra)ge((age), 0a0s="%", 2a0s="%", 0&a#="ma&e", 2&a#="fema&e") a#&%)e(.,1)
donde la mayor$a de puntos estn debajo de la l$nea diagonal (la cual corresponde a una id-ntica distribucin en ambas muestras). Este grfico nos dice que para la mayor$a de cuantiles, el salario de los %ombres es mayor que el de las mujeres. #cabamos este post volviendo a unir todas las variables en una sola base de datos con detac1(CPS1985)
Referencias
Dalgaard P ( !! ". Introductory Statistics with R. Springer-Verlang, 3e4 5or6. 1riendl) 7 (%&&2". Mosaic Displays for Multi-Way Contingency Ta les. 8ournal of t9e :merican ;tatistical :ssociation< 89< %&!= !!. /artigan 8 :< (leiner $ (%&+%". Mosaics for Contingency Ta les. >n ?@ Edd) (ed."< ABomputer ;cience and ;tatisticsC Proceedings of t9e %-t9 ;)mposium on t9e >nterfaceD< pp. E+= F-. ;pringer=Gerlang< 3e4 5or6. (leiber ) *eileis ( !!+". !pplied "cono#etrics with R. ;pringer. 3e4 5or6.