Métodos gráficos

La primera aproximación al estudio de la relación entre variables es el análisis visual del diagrama de dispersión de ambas que, como ya se sabe, puede obtenerse con la función plot().
En la Fig [*] se puede observar la relación entre el pulso y la estatura de los individuos del data.frame survey, como puede apreciarse, la correlación es escasa. En la Fig [*], por el contrario, se observa una elevada correlación positiva entre la estatura y el tamaño de la mano.
Figura: Un ejemplo de escasa correlación
Figura: En este caso, la correlación es fuerte
Image scaterplot2
Image scaterplot3
En ocasiones, al estudiar la relación entre dos variables, nos interesa agrupar los casos en función de una tercera variable, generalmente categórica (lo que en R se llama una factor). Podemos optar por dos soluciones: representar en el mismo gráfico todos los casos representando cada grupo con un símbolo y/o color distinto; o representar por separado los dos grupos. Veamos qué podemos hacer en R.
Supongamos que deseamos estudiar la relación entre la estatura y el tamaño de la mano pero queremos diferenciar en el diagrama de dispersión los puntos en función del sexo de la persona. Una forma sencilla de conseguirlo sería tecleando
plot(Height,NW.Hnd,pch=as.integer(Sex))
obsérvese que hemos añadido a la función un argumento (pch) que gestiona el tipo de símbolo que aparece en el gráfico. Cada símbolo tiene asociado un número, por ese motivo se transforma el código del sexo, que en el data.frame está como factor, en un número. En este caso asociará al sexo femenino el $1$ y al masculino el $2$. El resultado es la Figura [*] en la que vemos que aparecen triángulos y circunferencias diferenciando los sexos.
Figura: Diagrama de dispersión con dos grupos de datos
Figura: Diagrama mucho más elaborado
Image scaterplot2sexos
Image scaterplot2sexosleyenda

Sin embargo, este tipo de gráficos precisa una leyenda pues, de lo contrario, no sabremos qué símbolo está asociado a cada grupo. Para crear un gráfico con leyenda deberíamos teclear
plot(Height,NW.Hnd,pch=as.integer(Sex))
legend(locator(1),legend=c(``Chicas'',``Chicos''),pch=as.integer(Sex))
La primera instrucción es la que ya hemos utilizado anteriormente: crea el gráfico y lo presenta en la pantalla gráfica. La segunda es la que añadirá la leyenda y debemos analizarla en detalle.
La función utilizada es legend(), una de las funciones de tipo interactivo que encontramos en R y que permite realizar acciones con el ratón sobre la pantalla gráfica. Con el argumento locator(1) se indica que haremos sobre la pantalla un solo clic con el botón izquierdo del ratón allí donde queramos situar la leyenda. El argumento legend=c(``Chicas'',``Chicos'') indica los nombres de los grupos representados en el gráfico. Es muy importante ponerlos en el mismo orden en el que se encuentran en el diseño del data.frame, lo cual puede conocerse con la función str(). Hay que darse cuenta de que R no puede adivinar, qué entendemos nosotros por Chico o Chica de modo que tendremos que decírselo explícitamente. Por último, pch=as.integer(Sex) define el símbolo que utilizaremos en la leyenda que debe ser, evidentemente, el mismo que hayamos utilizado al hacer el gráfico.
Tras teclear la instrucción, la linea de comandos pasa el control al ratón. Deberemos hacer clic en el gráfico en la zona adecuada y veremos cómo, efectivamente, se inserta la leyenda. El resultado es el que podemos ver en la Figura [*].

Este tipo de gráficos puede ser en ocasiones un poco lioso y tal vez nos interese separar los dos grupos en gráficos separados pero en la misma figura. Para ello podemos utilizar la función coplot(), diseñada para hacer gráficos condicionados. En este caso queremos representar la relación entre dos variables controlando la salida gráfica en función del sexo de los registros. Para obtener dicho gráfico podemos teclear
coplot(Height~NW.Hnd | Sex)
Obsérvese que la tilde indica qué variables queremos analizar, y la barra (|) nos indica qué variable queremos controlar. El resultado es muy interesante y podemos verlo en la Figura [*].

Figura: Diagrama de dispersión con dos grupos de datos obtenido con coplot()
Image coplot
Por supuesto, es posible introducir más de una variable de control. Por ejemplo, si queremos condicionar los diagramas de dispersión no sólo por el sexo, sino también por el carácter diestro o zurdo del individuo, deberíamos teclear
coplot(Height~NW.Hnd | Sex + W.Hnd)
como se vé en la expresión, los factores condicionantes se encadenan con el signo +. El resultado será un gráfico 2x2 como el de la Figura [*].
Figura: Diagrama de dispersión controlando para dos variables
Image coplot2

Para acabar con el análisis gráfico de la correlación entre variables comentaremos el gráfico que presenta diagramas de dispersión cruzados para varias variables. Podemos crearlos con la función pairs(). Así,
pairs(survey)
generaría un gráfico que permitiría apreciar las relaciones entre todas las variables del data.frame. Muchas de ellas no son numericas y por lo tanto su interés es menor, pero la representación, en general, facilita el análisis exploratorio de la correlación entre variables.
Para observar las correlaciones entre las variables numéricas podemos crear un data.frame con las mismas y pasarle la función pairs(). Así,
pairs(data.frame(Pulse,Height,NW.Hnd,Wr.Hnd)
crea la Figura [*], que permite apreciar las relaciones entre todas las variables numéricas de este data.frame como, por ejemplo, la clara relación entre el tamaño de ambas manos o la menor que hay entre el tamaño de la mano y la estatura.

Figura: Diagrama de dispersión cruzada entre variables con pairs()
Image pairs
2007-02-12