Esquema-resumen Capítulo 5.‐ Representación de la información 1.‐ Generalidades 2.‐ Tipo de datos 3.‐ Gráficos para datos cualitativos o discretos Diagrama de barras Diagrama de sectores Pictograma 4.‐ Gráficos para datos continuos Diagrama diferencial o histograma Estimar la densidad de la distribución de una variable Gráfico de tallos y hojas Gráfico de caja
Gráfica de comparación de cuantiles 5.‐ Superposición y salvado de gráficas Superposición de gráficas Salvado de gráficas
Capítulo 5.‐ Representación de la información OObbjjeettiivvooss
Valorar la importancia de los gráficos en el análisis de datos
Comprender los pro y contra de las representación gráfica de la información
Utilizar en contexto de investigación los gráficos para datos discretos
Saber elegir el gráfico discreto más adecuado conforme las características de los datos
Interpretar los resultados de gráficos para datos discretos
Utilizar en contexto de investigación los gráficos para datos continuos
Saber elegir el gráfico continuo más adecuado conforme las características de los datos
Interpretar los resultados de gráficos para datos continuos
Manejar de forma adecuada la superposición de gráficos
Conocer el proceso de salvar los gráficos realizados en diferentes formatos
1. Generalidades La representación gráfica es una forma de expresión de la información recogida de una investigación. Un viejo refrán dice: “una imagen vale más que mil palabras”, muchas veces una simple mirada a un gráfico nos permite sintetizar la información aportada por los datos. No obstante, según indica (Correa y González, 2002, pág. 8) si un gráfico debe aclararse con números, entonces se debe utilizar una tabla. En un gráfico hay una serie de elementos importantes:
Título
Subtítulo si procede
Región de datos y símbolos representativos
Ejes horizontal y vertical con sus escalas respectivas
Leyenda si procede
Señales y marcas Todos estos elementos los iremos observando en los distintos tipos de gráficos que se presentarán a continuación. En todo gráfico se debe:
Evitar elementos y datos que no aporten información
Destacar la parte sustantiva de información que se desea transmitir
No apelmazar la zona donde se muestran los datos
Poner en los ejes las marcas necesarias y ninguna más
El identificar del gráfico (figura 1.1, por ejemplo, y el texto de identificación), no debe ser una información contenida en el título y contenido del gráfico
No deben faltar los datos imprescindibles para transmitir la información requerida
Finalmente se debe cuidar la calidad de impresión para hacer legible los datos
2. Tipos de datos Según sabemos los datos, en general, se pueden clasificar en cualitativos y cuantitativos. Los cualitativos expresan una cualidad o característica y por tanto no se pueden expresar con números, aunque a veces en la codificación, para tratamiento estadístico de los datos, se
asigne un numeral. A su vez se clasifican en: ordinales si siguen un orden (por ejemplo, días de la semana, estaciones en una línea de metro, etc.) y nominales, si no siguen ningún orden (por ejemplo, castaño, rubio, negro, etc.).
Los cuantitativos se refieren a cantidades o valores numéricos y se expresan con números. A su vez se dividen en: discretos, si toman valores enteros (0,1,2,3….), por ejemplo, alumnos de una clase, habitantes de un pueblo, etc., y continuos si puede tomar cualquier valor de un intervalo, por ejemplo altura de una persona, peso de la misma, etc. A continuación veremos los principales gráficos para los distintos tipos de datos.
3. Gráficos para datos cualitativos o discretos
3.1. Diagrama de barras
Es un gráfico donde en el eje horizontal o vertical se representan las cualidades o categorías de los datos, de tal forma que mediante rectángulos de la misma amplitud y altura proporcional a la frecuencia de aparición de la categoría, se van representado los diferentes valores de los datos. Es una representación gráfica típica de los llamados factores en R.
La orientación del gráfico puede ser:
1. Vertical, las categorías de la variable se sitúa en el eje horizontal y las barras de frecuencia se desarrollan verticalmente.
2. Horizontal, las categorías de la variable se sitúa en el eje vertical y las barras de frecuencia se desarrollan horizontalmente. Este procedimiento se suele utilizar si los nombres de las categorías son largos o en el caso de existir muchas categorías.
Es interesante ordenar las categorías de forma alfabética o por el valor de la frecuencia de las mismas. Los usos principales de este tipo de gráfico son para comparar la frecuencia o porcentaje de las diferentes categorías, o para ver la evolución de una variable en un determinado período de tiempo.
Veamos un ejemplo.
Ejemplo 5.1 Se quiere representar mediante un diagrama de barras la variable grupo (del fichero ejemplo1.txt). Como siempre se utilizará R‐Commander, para lo cual se pulsa las pestañas: GráficasGráfica de barras. Si por las circunstancias que fuera la pestaña de Gráfica de barras no estuviera activa (debe estar en negrita) se pulsará la siguiente secuencia de pestañas: Datos ‐>Conjunto de datos activo‐> Actualizar conjunto de datos activo. Una vez más se recuerda que las variables que queremos representar mediante un diagrama de barras en R deben ser factores y se entra en el cuadro de diálogo siguiente:
Fig 5.1.‐ Gráfico de barras. Cuadro de diálogo
Dando como resultado:
Fig 5.2.‐ Gráfico de barras simple Y su código R es: barplot(table(ejemplo1$grupo), xlab="grupos", ylab="frecuencia", main="Table frecuencia var. grupo")
Nótese que en el eje de abscisas se representan las categorías de la variable grupo y en el eje de ordenadas se representa la frecuencia de cada categoría de la variable grupo. En este caso se observa como cada una de las dos categorías tienen la misma frecuencia. Hay varios tipos de gráfico de barras: a) gráfico de barras simple que contiene una serie de datos, como por ejemplo la fig. 5.2; b) gráfico de barras agrupado con varias series de datos y cada una se representa por un tipo de barra de un mismo color o trama; c) gráfico de barras apilado con varias series de datos. Cada barra se divide en segmentos de diferentes colores o trama y cada uno de ellos representa una serie. En el código anterior de R si se quiere que la representación gráfica de las barras sea horizontal en lugar de vertical se modificará el código con la introducción de horiz=TRUE según se muestra a continuación: barplot(table(ejemplo1$grupo),xlab="grupos",ylab="frecuencia", horiz=TRUE, main="Table frecuencia var. grupo")
experimental control
Table frecuencia var. grupo
grupos
fre
cue
nci
a
01
02
03
04
05
0
Ejemplo 5.2 Se quiere representar mediante un diagrama de barras las variables grupo y v5 (del fichero ejemplo1.txt), ambas deben estar en formato factor, es decir, como variables categóricas. Estamos ante un diagrama de barras agrupadas. En esta ocasión se tendrá que utilizar directamente el código: frec<-table(ejemplo1$grupo,ejemplo1$v5) barplot(frec, xlab="grupos y núm. entrev.", ylab="frecuencia", main="Table frecuencia en función del grupo y del núm. entrevistas",col=c("darkblue","red"), beside=TRUE) legend ("topleft", rownames(frec),fill=c("darkblue","red"))
Cuya interpretación es la siguiente: a) el primer comando “table” calcula la tabla de frecuencias de la variable grupo que procede del fichero ejemplo1 y de la variable v5 que procede del mismo fichero; b) el comando “barplot” hace propiamente el diagrama de barras y toma los datos de frec (tabla de frecuencias del comando anterior), pone la etiqueta (xlab) al eje de las abscisas y a las ordenadas (ylab), pone el título (main), el color (col) e indica que las barras son agrupadas (beside); c) el último comando es la leyenda del gráfico (legend): indica que la leyenda se pondrá arriba y a la izquierda (topleft), con el nombre de las filas de la tabla (frec) y con los colores de relleno (fill) coincidentes con los dados a las barras. El resultado se presenta en la fig. 5.3
Fig 5.3.‐ Gráfico de barras agrupadas
El mismo ejemplo 5.2 se puede representar con diagrama de barras apiladas. El código R será muy parecido, sólo será necesario quitar del comando “barplot” la opción beside=TRUE. frec<-table(ejemplo1$grupo,ejemplo1$v5) barplot(frec, xlab="grupos y núm. entrev.", ylab="frecuencia", main="Table frecuencia en función del grupo y del núm. entrevistas",col=c("darkblue","red")) legend ("topleft", rownames(frec),fill=c("darkblue","red"))
Cuyo resultado se muestra en la fig. 5.4
Fig 5.4.‐ Gráfico de barras apiladas
3.2. Diagrama de sectores
El diagrama de sectores consiste en un círculo, donde cada modalidad ocupará un sector circular con ángulo proporcional a la frecuencia absoluta de dicha modalidad. Para dibujarlo, nos planteamos con cada modalidad una simple regla de tres, esta es, si n individuos van a repartirse 360º, ni individuos de la modalidad ci ocuparán xi grados. A la vista de un diagrama de sectores y conociendo n, es fácil escribir la tabla que presenta. La información que se suele dar de cada sector de la gráfica es el porcentaje de individuos pertenecientes al mismo. Esta gráfica suele ser útil cuando la variable discreta tiene pocas categorías, y resulta incomprensible cuando son muchas las mismas. Ejemplo 5.3 Se quiere representar mediante un diagrama de sectores la variable v8 que pregunta al encuestado si ha encontrado trabajo temporal. En R‐Commander se seleccionará: Gráficas Gráfica de sectores, y se entra en un cuadro de diálogo parecido al diagrama de barras:
Fig 5.5.‐ Gráfico de sectores. Cuadro de diálogo
Se selecciona el nombre de la etiqueta del eje x, que pondremos: ¿Ha encontrado trabajo temporal?, y la etiqueta del eje y, que será: ¿porcentaje?. Finalmente se pondrá el nombre del gráfico: Respuesta sobre si ha encontrado trabajo temporal. El código de R generado será el siguiente: pie(table(ejemplo1$v8), labels=levels(ejemplo1$v8), xlab="¿ha encontrado trabajo temporal?", ylab="porcentaje", main="Respuesta sobre si ha encontrado trabajo temporal", col=rainbow_hcl(length(levels(ejemplo1$v8))))
Cuya salida gráfica será la siguiente:
Fig 5.6.‐ Gráfico de sectores simple
Si se quiere añadir el porcentaje de cada categoría ya no se podrá hacer con R‐Commander y será necesario modificar el código anterior: frec<-table(ejemplo1$v8) pct <- round(frec/sum(frec)*100) lbls<-rownames(frec) #etiquetas lbls <- paste(lbls, pct) # adición porcentaje a las etiquetas lbls <- paste(lbls,"%",sep="") # adición de % a las etiquetas pie(frec,labels = lbls, col=rainbow(length(lbls)), main="Respuesta sobre si ha encontrado trabajo temporal")
El primer comando con “table” se calcula la tabla de frecuencias El segundo calcula el porcentaje redondeando la división a cifras enteras. El resultado
se almacena en pct Las tres líneas siguientes de código vienen con un comentario después de # Finalmente el comando “pie” representa el diagrama de sectores
El resultado se muestra en la figura siguiente:
Fig 5.7.‐ Gráfico de sectores con etiquetas de porcentaje
También se puede representar el diagrama de sectores con gráficos 3D, para lo cual será necesario cargar la librería de R (plotrix). El código será muy parecido al anterior: library(plotrix) frec<-table(ejemplo1$v8) pct <- round(frec/sum(frec)*100) lbls<-rownames(frec) #etiquetas lbls <- paste(lbls, pct) # adición porcentaje a las etiquetas lbls <- paste(lbls,"%",sep="") # adición de % a las etiquetas pie3D(frec,labels = lbls, explode=0.1,col=rainbow(length(lbls)), main="Respuesta sobre si ha encontrado trabajo temporal")
Nótese que el comando “pie3D” tiene un subcomando que determina la separación entre los sectores (explode). Aquí se ha puesto “explode=0.1” para hacer una pequeña separación. El resultado se muestra a continuación:
Fig 5.8.‐ Gráfico de sectores en 3D con etiquetas de porcentaje
3.3. Pictogramas
La idea es la misma que la del diagrama de barras pero dibujándole a cada categoría una figura representativa de la modalidad.
Mediante R‐Commander no hay ninguna función que permita realizar este tipo de gráficos, pero en la Red (http://www.r‐bloggers.com/easy‐pictograms‐using‐r/) existe una función (pictogram) que permite realizar este gráfico. Nótese que debe copiarse el código de la función pictogram en el fichero junto con el código que se pondrá a continuación. Ejemplo 5.4 Utilizando la función “pictogram” representar gráficamente la variable edad del fichero ejemplo1. Para ejecutar el código que se muestra a continuación será necesario cargar las librerías: reshape y png. Veamos el código que realiza dicha representación: library(png) man<-readPNG("man.png") frec<-table(ejemplo1$edad) pictogram(icon=man, n=frec, grouplabels=rownames(frec))
Primero se carga la librería png, para a continuación subir el fichero “man.png” que es
un símbolo de un hombre y que debe estar en el subdirectorio de trabajo. Luego se calcula la tabla de frecuencia de la variable edad y finalmente mediante
pictogram se representa el pictograma. El resultado es el siguiente:
Fig 5.9.‐ Pictograma
Como se puede ver en el gráfico hay 3 personas de 33 años, 3 de 32 años,…. etc.
4. Gráficos para datos continuos
4.1. Diagrama diferencial o histograma
El histograma es una representación gráfica de las frecuencias relativas de una variable cuantitativa continua. Sobre unos ejes de coordenadas, dibujaremos en el eje de abscisas las clases de la variable (los intervalos o las marcas de clase que son la mitad del intervalo). Sobre cada clase levantaremos un rectángulo de superficie proporcional a la frecuencia relativa de la clase. Dada la clase (li‐1
li], un rectángulo de altura hi, tendría superficie si=hi. ai, donde ai es la amplitud de esta clase. Si queremos que esta superficie sea proporcional a la frecuencia relativa fi, tendría que ser cierta la igualdad hi.ai=c.fi . Y por tanto la altura que debemos ponerle al rectángulo vendrá dada por hi=c. fi/ai La constante de proporcionalidad c, puede ser cualquier número, pero el mismo para todas las clases. No habrá separación entre las barras. Decidir el número de clases o barras del histograma depende del investigador, una regla
utilizada es la de Sturges: elegir el número entero más próximo a 21 log ( )n .
Ejemplo 5.5 Se quiere dibujar el histograma de la variable v1 del fichero ejemplo1. Se selecciona en R‐Commander: Gráficas ‐> Histograma y se entra en el siguiente cuadro de diálogo:
Fig 5.10.‐ Histograma. Cuadro de diálogo (a) Donde en la pestaña “Datos” se selecciona la variable v1 sobre la que se realizará el histograma.
Fig 5.11.‐ Histograma. Cuadro de diálogo (b)
En la pestaña “Opciones” se selecciona el tipo de escala, el número de clases en que se desea dividir el rango de variación de la variable continua, las etiquetas de los ejes y el título del gráfico. El código R será: Hist(ejemplo1$v1, scale="frequency", breaks="Sturges", col="darkgray", xlab="núm sesiones presenciales", ylab="frecuencia", main="Distribución núm.sesiones presenciales")
Y el resultado, el siguiente gráfico:
Fig 5.12.‐ Histograma
Nótese que se ha dejado la división en intervalos en automático(al arbitrio del programa), pero lo aconsejable es que el investigador seleccione un número de clase que deseé, quizás después de hacer la representación, es decir, en una segunda pasada. En algunas ocasiones se suele añadir al histograma la curva normal, para observa si la distribución de la variable se aproxima a la distribución normal. Este proceso no se puede realizar con R‐Commander y se hará con el siguiente código: x<-ejemplo1$v1 h<-hist(x, breaks=10, col="red", xlab="núm sesiones presenciales", main="Histograma con curva normal") xfit<-seq(min(x),max(x),length=40) # 40 datos entre mínimo y máximo de #x yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) # se almacena en yfit los #valores de una curva normal de media (mean) la media de x y #desviación típica (sd) la desviación típica de x yfit <- yfit*diff(h$mids[1:2])*length(x)# producto de la normal (yfit) #por la mitad del intervalo (5) y por el número de casos #(length(x)=100) lines(xfit, yfit, col="blue", lwd=2) # representación gráfica mediante #una línea de color azul y grueso de línea 2
Recuérdese que el símbolo # representa un comentario y no se ejecuta en R. El gráfico de salida será:
Fig 5.13.‐ Histograma con curva normal
4.2. Estimar la densidad de la distribución de una variable
Recordemos que una función de densidad de una variable es:
a) Una función ( ) 0f x para todo valor de la variable x
b) El área total encerrada bajo la curva vale 1 c) La probabilidad que x tome valores en el intervalo [a,b] es el área bajo la curva en ese
intervalo. La gráfica f(x) se conoce como curva de densidad de la variable x Uno de los problemas más importantes de la estadística es la estimación de la función de densidad de una variable a partir de la información proporcionada por una muestra. La estimación no paramétrica de las funciones de densidad, mediante el núcleo o kernel es un procedimiento para obtener la función de densidad estimada de la distribución poblacional.
1
1ˆ ( )n
i
i
x Xf x K
nh h
donde n=tamaño muestral; h=ancho de la ventana; K es el kernel
o núcleo; Xi el valor de la variable en la muestra El procedimiento de construcción de la función de densidad estimada es recursivo: para cada punto se dibuja una distribución normal (si K es el kernel normal) de media el valor del punto (Xi) y cuya distribución es 1/n, de tal forma que la suma de todas las distribuciones sea 1. Ejemplo 5.6 Se quiere dibujar la estimación de curva de densidad de la variable v1 del fichero ejemplo1. Se selecciona en R‐Commander: Gráficas ‐> Estimación de densidad y se entra en el siguiente cuadro de diálogo:
Fig 5.14.‐ Estimación de densidad. Cuadro de diálogo (a)
En la pestaña “datos” se selecciona la variable v1. Como vemos también se puede realizar por grupos, por ejemplo en nuestro caso se puede utilizar cualquiera de las variables factores.
Fig 5.15.‐ Estimación de densidad. Cuadro de diálogo (b)
En la pestaña “Opciones” se selecciona:
a) la función de núcleo, donde se ha indicado gausiano (curva normal) b) el ancho de banda (h) y su multiplicador que se han puesto a 1 c) las etiquetas de los ejes
El resultado de todo este proceso es el gráfico:
Fig 5.16.‐ Estimación de densidad
Cuyo código R es: densityPlot( ~ v1, data=ejemplo1, bw="SJ", adjust=1, kernel="gaussian", xlab="núm. de sesiones presenciales", ylab="densidad")
Como se ha comentado también se puede comparar la estimación de la densidad en función de una variable factor.
Ejemplo 5.7 Se quiere dibujar la estimación de curva de densidad de la variable v1 del fichero ejemplo1 en función de la variable v8 (respuesta sobre ha encontrado trabajo temporal). Se selecciona en R‐Commander: Gráficas ‐> Estimación de densidad y en el cuadro de diálogo fig. 5.14 “gráfica por grupos” se selecciona la variable v8. El código R será el siguiente: densityPlot(v1~v8,data=ejemplo1, bw="SJ", adjust=1, kernel="gaussian", xlab="núm. de sesiones presenciales", ylab="densidad")
Cuyo resultado es el siguiente:
Fig 5.17.‐ Estimación de densidad por grupos
También se puede tener un gráfico de estimación de densidad con la zona de densidad coloreada. Su código R será: d <- density(ejemplo1$v1) plot(d,main="Kernel Densidad var.núm. sesiones presenciales",ylab="densidad") polygon(d, col="red", border="blue") #dibuja un polígono cerrado
Con la representación gráfica siguiente:
Fig 5.18.‐ Estimación de densidad. Área coloreada
4.3. Gráfico de tallos y hojas
Un procedimiento semi‐gráfico de presentar la información para variables cuantitativas, que es especialmente útil cuando el número total de datos es pequeño (para algunos autores debe ser menor que 50), es el diagrama de tallo y hojas de Tukey. Dibujar el diagrama de tallos y hojas. Para ello primero dibujamos los tallos y después separadas por una línea vertical dibujamos las hojas. Los tallos son todos los dígitos de las decenas, centenas, etc.. Las hojas son las unidades de todos los datos y se representan en la línea correspondiente al tallo al que corresponde cada dato. Veamos el siguiente ejemplo. Ejemplo 5.8 Supongamos los siguientes datos recogidos: 45 57 59 58 61 56 63 57 69 59 59 57 63 72 59 62 60 41 59 63 59 65 57 61 58 59 63 Su gráfico de tallo y hojas es el siguiente: 1 | 2: represents 1.2 leaf unit: 0.1 n: 27 LO: 41 45 3 56 | 0 7 57 | 0000 9 58 | 00 (7) 59 | 0000000 11 60 | 0 10 61 | 00 8 62 | 0 7 63 | 0000 64 | 3 65 | 0 66 | 67 | 68 | 2 69 | 0 HI: 72
Aquí los dos valores más bajos son 41 y 45 luego aparece 56 que tiene un dato, después 57 cuya frecuencia es 4. Si miramos totalmente a la izquierda aparece la frecuencia acumulada que es 7 (41, 45, 56, 57, 57, 57, 57) y así se van representando todos los datos. Nótese que el valor encerrado entre paréntesis es la frecuencia del valor de la mediana, es decir, el valor de la variable que en este caso tiene 13 datos por encima y 13 datos por debajo. Como podemos observar esta representación gráfica nos da una idea de la simetría de la distribución (en el ejemplo es sesgada a la derecha, porque la cola de valores superiores a la mediana es mayor que la de inferiores). También permite ver los valores outliers y los gaps o huecos. Cuando el primer dígito de la clasificación varía poco, la mayoría de los datos tienden a agruparse alrededor de un tallo y el diagrama resultante tiene poco detalle. En este caso es conveniente subdividir cada tallo en dos o más partes introduciendo algún signo arbitrario.
Una de las ventajas del gráfico de tallos y hojas es que hace los papeles de tabla de frecuencias agrupadas e histograma al mismo tiempo. Otra ventaja de estos gráficos es que los valores de la variable son conservados, cosa que no ocurre con la distribución de frecuencias agrupadas. Esta ventaja permite realizar cálculos con los valores de la variable sobre el mismo gráfico. Veamos con otro ejemplo los pasos necesarios para realizar el gráfico con R‐Commander: Ejemplo 5.9 Se quiere dibujar el diagrama de tallos y hojas de la variable v1. Se selecciona en R‐Commander: Gráficas ‐> Gráfica de tallo y hojas. Se entra en el siguiente cuadro de diálogo:
Fig 5.19.‐ Gráfica de tallos y hojas. Cuadro de diálogo (a)
En la pestaña de “Datos” se selecciona la variable v1
Fig 5.20.‐ Gráfica de tallos y hojas. Cuadro de diálogo (b)
En la pestaña de “Opciones” se deja las dadas por defecto por R. El código R generado por la selección es el siguiente: library(aplpack, pos=4) #esta librería está presente al funcionar con #R-Commander stem.leaf(ejemplo1$v1, na.rm=TRUE)
La representación semi‐gráfica es la siguiente:
1 | 2: represents 12 leaf unit: 1 n: 100 1 0* | 1 5 t | 2223 16 f | 44444455555 19 s | 667 24 0. | 88889 25 1* | 1 29 t | 2333 33 f | 4444 44 s | 66666777777 48 1. | 8889 (8) 2* | 00011111 44 t | 233333 38 f | 445 35 s | 6677777 28 2. | 88999 23 3* | 00111111 15 t | 2222333 8 f | 4444555 1 s | 6
Como se puede ver el gráfico es casi simétrico, cuestión que ya casi sabíamos por la fig. 5.16.
4.4. Gráfico de caja (Box Plot)
Datos atípicos Los datos que obtenemos al realizar una investigación pueden ser clasificados en dos categorías excluyentes: a) Datos correctos b) Datos erróneos Los datos erróneos son debidos a múltiples factores (errores de trascripción, distintos instrumentos utilizados en la recogida de datos, etc). Hay otros datos atípicos denominados outliers y extremos, que tenemos que tener en cuenta a la hora de hacer cualquier estudio pues existen estimadores (funciones de los estadísticos) que son sensibles frente a estos datos y la información que nos proporcionan, si existen datos de este tipo, es errónea. Solamente los expertos podrán discernir entre datos atípicos y datos erróneos. En el texto se considerará ambos como atípicos. Diagrama de caja El diagrama de caja es una representación semigráfica de una distribución, construida para mostrar sus características principales y señalar los posibles datos atípicos, es decir, aquellas observaciones que parecen ser distintas de las demás. Un diagrama de caja se construye como sigue: Ordenar los datos de la muestra y obtener el valor mínimo, el máximo, y los tres
cuartiles Q1,Q2,Q3. Dibujar un rectángulo cuyos extremos son Q1 y Q3 e indicando la posición de la
mediana (Q2) mediante una línea o un asterisco. Si denominamos IQR=Q3‐ Q1 podemos calcular los límites admisibles, superior e inferior, que van a servir para identificar los valores atípicos. Estos límites se calculan con: LI=Q2‐1,5(IQR) FI= Q2‐3(IQR)
LS=Q2+1,5(IQR) FS= Q2+3(IQR) Considerar como valores atípicos outlier los situados entre LI y FI o entre LS y FS y como atípicos extremos aquellos fuera del intervalo (FI,FS) Dibujar una línea que vaya desde cada extremo del rectángulo central hasta el valor
más alejado no atípico, es decir, que está dentro del intervalo (LI,LS). Identificar todos los datos que están fuera del intervalo (LI,LS), marcándolos como
atípicos (outlier o extremos). La razón de utilizar la mediana como medida de centralización, y el rango intercuartílico como medida de dispersión, es que estas medidas, al depender del orden de los datos y no de su magnitud, son poco influenciables por unos pocos datos atípicos. Por ejemplo, si cometemos un error al transcribir un dato, la media y la desviación típica pueden cambiar mucho, mientras que la mediana y los cuartiles cambiarán poco o nada. En consecuencia, si existe una pequeña fracción de datos en la muestra heterogénea con el resto (por errores de medida, cambio de las condiciones de medición, distinta población, etc) los cuartiles variarán poco, y pueden servirnos para identificar los valores extremos. Los diagramas de caja son especialmente útiles para comparar la distribución de una variable en distintas poblaciones. Si la distribución se aproxima a la normal los valores contenidos en el rango intercuartílico (IQR) son el 50% del total. También podemos utilizar para detectar observaciones erróneas la siguiente regla relacionada con la z (variable tipificada): si la z para una medición x es igual o menor que ‐2 o bien igual o mayor que 2, debe ser considerada como un valor inusual y tendrá que verificarse por si se tratara de una observación errónea (outlier o extremo). Así, por ejemplo, consideremos los siguientes datos: 3, 2, 0, 15, 2, 3, 4, 0, 1, 3. Si observamos, a priori parece inusual 15. Si tipificamos este valor tendremos el correspondiente z=(15‐3,3)/4,32=2,71 luego podemos decir que este valor se puede considerar como atípico. Ejemplo 5.10 Se quiere dibujar el gráfico de caja de la variable v1. Se selecciona en R‐Commander: Gráficas ‐> Diagrama de caja. Se entra en el siguiente cuadro de diálogo:
Fig 5.21.‐ Diagrama de caja. Cuadro de diálogo (a) En la pestaña “Datos” se selecciona la variable v1. Como se puede ver en este cuadro de diálogo también se puede realizar gráfica por grupos al elegir alguna variable factor.
Fig 5.22.‐ Diagrama de caja. Cuadro de diálogo (b)
En la pestaña “Opciones” se puede identificar los casos atípicos, escribir las etiquetas de los ejes x e y e indicar el nombre del título del gráfico. El código generado será el siguiente: Boxplot( ~ v1, data=ejemplo1, id.method="y", main="núm.sesiones presenciales")
Que al ejecutarse dará el siguiente resultado:
Fig 5.23.‐ Diagrama de caja
Como se puede observar en la gráfica la distribución de la variable es simétrica, porque la línea más obscura que indica el valor de la mediana, aproximadamente 20, deja arriba y abajo dos rectángulos similares. No tiene ningún valor atípico, porque si estuvieran vendrían indicados por la presencia de un punto fuera del bigote superior o inferior (aproximadamente mayores de 36 o inferiores a 1). Comparación de distribuciones El diagrama de caja permite hacer comparaciones de distribuciones en función de variable de clasificación o factores. Ejemplo 5.10 Se quiere comparar la distribución de la variable v1 (número de sesiones presenciales) en función de la variable v8 (si ha encontrado trabajo temporal). Se selecciona en R‐Commander: Gráficas ‐> Diagrama de caja. En el cuadro de diálogo de la fig. 5.21 en la pestaña de “Datos” en el botón de “Gráfica por grupos” se selecciona la variable v8. El código R generado mediante este proceso será el siguiente:
Boxplot(v1~v8, data=ejemplo1, id.method="y", xlab="¿ha encontrado trabajo temporal?", main="núm.sesiones presenciales")
Cuyo resultado es:
Fig 5.24.‐ Diagrama de caja
Por la gráfica se observa que aquellas personas que han realizado más sesiones presenciales han encontrado en mayor medida (valor de la mediana) trabajo temporal. También se observa que la dispersión del grupo que no han encontrado trabajo temporal es mayor que el grupo que si lo han encontrado, respecto a la variable v1.
4.5. Gráfica de comparación de cuantiles
La gráfica de comparación de cuantiles junto con la de estimación de la función de densidad, son dos grupos de gráficas utilizadas para observar la distribución de una variable. Fundamentalmente este último se utiliza para detectar de forma gráfica si la distribución de una variable se ajusta a la distribución normal. De forma general se supone un conjunto de xi (i=1,2,…..,n) observaciones. Sea F(x) la función de distribución de una distribución teórica, sin pérdida de generalidad suponemos que se trata de la distribución normal. El gráfico qqplot se construye mediante el siguiente proceso:
1. Se ordenan las observaciones de menor a mayor en la forma
(1) (2) ( )........ nx x x
2. Se calculan los valores
0.5i
ip
n
i=1,2,…..,n
Si denominamos por ( )xQ p al cuantil de orden p (0 < p < 1) de las observaciones,
entonces:
( ) ( )i x ix Q p i=1,2,…..,n
3. Se determinan los cuantiles de orden pi I=1,2,…..,n de la distribución teórica representada por la función de distribución F, es decir:
1( ) ( )t i iQ p F p i=1,2,…..,n
4. Finalmente representar gráficamente el conjunto de puntos ( ( ), ( ))t i x iQ p Q p
i=1,2,…,n; o de forma equivale, los puntos 1
( )( ( ), )i iF p x i=1,2,….,n
Veamos con un ejemplo como se realiza este proceso. Supongamos los datos del ejemplo 5.8. Ejemplo 5.11 45 57 59 58 61 56 63 57 69 59 59 57 63 72 59 62 60 41 59 63 59 65 57 61 58 59 63 Si denominamos al conjunto de datos por xv, el proceso se realizará mediante el siguiente programa: xv<-c(45,57,59,58,61,56,63,57,69,59,59,57,63,72,59,62,60,41, 59,63,59,65,57,61,58,59,63) # almacena los datos en xv x<-sort(xv) # para ordenar los datos xv p<-0 for (i in 1:27) # para calcular p(i) { p[i]<-(i-0.5)/(27) } f<-qnorm(p, mean=0, sd=1, lower.tail=TRUE) # se calcula f menos 1, es decir, el valor z normal plot(f,x) # para dibujar los puntos El resultado será el siguiente gráfico:
Fig 5.25.‐ Gráfica q‐qplot
Este mismo resultado que hemos realizado por pasos para ver el proceso se puede realizar mediante R‐Commander. Se selecciona Gráficas‐>Gráfica de comparación de cuantiles (QQ) y se entra en el siguiente cuadro de diálogo:
Fig 5.26.‐ Gráfica de comparación de cuantiles. Cuadro de diálogo (a) Como viene siendo habitual en la pestaña “Datos” se seleccionará la variable que se desea estudiar su ajuste a la distribución normal. En este la imagen muestra las variables del fichero ejemplo1 por motivos didácticos, no obstante en el código generado se sustituirá por la variable xv.
Fig 5.27.‐ Gráfica de comparación de cuantiles. Cuadro de diálogo (b)
En la pestaña “Opciones” se puede seleccionar la distribución teórica, donde por defecto se indica la normal, las etiquetas de los ejes, el título del gráfico y la identificación de las observaciones donde como resultado sólo se indicará el orden de los datos, no sus valores. El código generado será el siguiente: qqPlot(xv, dist="norm", id.method="y", id.n=2, labels=rownames(xv))
El resultado será el siguiente gráfico:
Fig 5.28.‐ Gráfica de comparación de cuantiles (QQ)
Como se observa los puntos indicados en hueco son los mismos que los de la fig. 5.25, pero además se pone un intervalo de confianza para los mismos y se indica aquellos que están fuera del ajuste, en este ejemplo se corresponde con los valores 41 y 45 de la variable, pero aquí sólo se indica el orden de los mismos. Si la variable xv se ajusta a la distribución normal, sus puntos tendrán que estar sobre la recta (bisectriz del primer cuadrante), es suma dentro del intervalo de confianza. Aquí se ve que si se quitan los dos primeros valores y los dos últimos el ajuste es óptimo.
5. Superposición y salvado de gráficas
5.1. Superposición de gráficas
En ocasiones, por cuestiones de presentación de la información, nos interesa tener en una misma ventana más de un gráfico. En este caso el comando par con la opción mfrow resuelve el problema. Así, por ejemplo: par(mfrow=c(1,1)) # presenta solo gráfico por ventana: es la opción por defecto par(mfrow=c(2,1)) # dos filas y una columna: presenta dos gráficos uno debajo del otro par(mfrow=c(2,3)) # dos filas por tres columnas, es decir cinco gráficos Ejemplo 5.12 Queremos representar en la misma ventana gráfica el diagrama de caja de las variables v1 a v4 de forma separada cada variable. Al ser cuatro variables supongamos que queremos presentar la información en forma matricial de 2 filas y 2 columnas. El código de R que se utilizará será el siguiente: par(mfrow=c(2,2)) Boxplot( ~ v1, data=ejemplo1, id.method="y", main="núm.sesiones presenciales") Boxplot( ~ v2, data=ejemplo1, id.method="y", main="núm.actividades realizas con éxito") Boxplot( ~ v3, data=ejemplo1, id.method="y", main="núm.de recursos de empleo utilizados") Boxplot( ~ v4, data=ejemplo1, id.method="y", main="tiempo dedicado a la busqueda de empleo") dev.off()
El primer comando indicará que se superponen cuatro gráficas en la misma ventana, y los comandos posteriores, en orden correlativo, irán insertando dichas gráficas. Finalmente será necesario poner dev.off() para eliminar la ventana gráfica actual, es decir, para volver al estado de un solo gráfico por pantalla. El resultado, en la fig. 5.29, nos permite comparar las distribuciones de las cuatro variables, además de resumir la información en una sola pantalla gráfica.
Fig 5.29.‐ Superposición de varias gráficas en la misma ventana
5.2. Salvado de gráficas
Aunque como el lector habrá observado cuando ejecuta alguna representación gráfica con R‐Commander aparece una pantalla con la denominación R Graphics y en dicha pantalla puede salvar el gráfico en un fichero con varios formatos: jpg, png, bmp, pdf,tiff… .A veces se desea directamente salvar el gráfico en un fichero, en estas ocasiones la conjunción de dos comandos de R permiten realizar la labor. Ejemplo 5.13 Supóngase, por ejemplo, que se quiere salvar en formato png, en el fichero “salvado.png” el resultado de la fig. 5.28. Se realizará el siguiente código: png(file="C:/Mis libros/métodos de inv. en educación social/salvado.png") qqPlot(xv, dist="norm", id.method="y", id.n=2, labels=rownames(xv)) dev.off()
El primer comando indica que se salvará en formato png el fichero salvado.png, en el subdirectorio indicado, el gráfico o los gráficos cuyas instrucciones vienen a continuación. El segundo comando propiamente es la representación qqPlot que se desea realizar. El tercer comando cierra la llegada de información al fichero.
Bibliografía:
Correa J.C. y; González,N (2002). Gráficos estadísticos con R. http://cran.r‐
project.org/doc/contrib/grafi3.pdf Eguzkitza, J.M.;Bayo, I (2007). Prácticas de estadística con R. Bilbao: Arte Kopi. García Pérez, A (2008). Estadística aplicada con R. Madrid: UNED. Gil Pascual, J.A. 2ª Ed. (2006). Estadística e Informática (SPSS) para el tratamiento
descriptivo e inferencial de datos. Madrid:UNED. Nicolás, M.J. (2006). Estadística aplicada con R. Murcia: Nausícaä Stefan Th. Gries (2009). Quantitative Corpus Linguistics with R. A Practical Introduction.
London:Routledge. Ugarte, M.D.; Militino, A.F. 2ª Ed. (2002). Estadística Aplicada con S‐PLUS. Pamplona:
Universidad Pública de Navarra.