Correlación
Datos y librerias
CR-1983.csv, cargado como clima
temps.csv, cargado como temps
b1b5.csv, cargado como v1v2
paquete ggplot
paquete hexbin
Los archivos se encuentran aquí:
https://sites.google.com/site/digitcognem/boxfile_pract
La correlación es el análisis de la relación lineal entre dos variables. El coeficiente de correlación es el índice mas adecuado para medir la asociación lineal entre dos variables. En R se obtiene con la función cor.
Para el conjunto de datos clima, hay que nulificar la variable días:
clima$dia<-NULL
#asignar resultados a variable por si hace falta grabar resultados a archivo:
crclim<-cor(clima)
crclim
tmin tmax tmedia Ppt Evap HumRel
tmin 1.0000000 0.31230617 0.8169461 0.17347871 0.3491946 0.23312429
tmax 0.3123062 1.00000000 0.7976712 0.01002015 0.3772064 -0.02039251
tmedia 0.8169461 0.79767116 1.0000000 0.11636765 0.4468179 0.13641269
Ppt 0.1734787 0.01002015 0.1163677 1.00000000 0.1786153 0.22142236
Evap 0.3491946 0.37720642 0.4468179 0.17861529 1.0000000 -0.25063796
HumRel 0.2331243 -0.02039251 0.1364127 0.22142236 -0.2506380 1.00000000
Se observa que los valores mas altos asociativos son entre la temperatura media y la temperatura mínima (r= 0.81) y entre la temperatura media y la temperatura máxima (r= 0.79).
Para grabar sus resultados a archivo, emplear write.table:
write.table(crclim,"corrclima.csv",sep=',',row.names=FALSE)
De esta manera se graban los resultados a un archivo csv, llamado corrclima.csv, con la separación de columnas mediante la coma ','. row.names=FALSE evita que la primera columna sea el índice de las hileras o filas.
La correlación entre dos variables particulares es: cor(x1,x2), por ejemplo:
cor(clima$tmin,clima$tmedia)
0.8169461
Para representar gráficamente la correlación entre variables hay diferentes maneras.
Gráficas de correlación con R base
plot(clima,pch=15,col="blue")
La opcion pch=4 es el tipo de símbolo empleado para representar los puntos, col="blue" es el color de los puntos.
Para graficar dos variables particulares hay que introducir x e y, por ejemplo, temperatura mínima contra temperatura media:
plot(clima$tmin,clima$tmedia,pch=15,col="orange",xlab="T min",ylab="T media")
Gráficas de Dispersión con ggplot
En este caso el archivo de datos (temps) contiene solamente las temperaturas mínimas, máximas y medias en formato largo. El encabezado del archivo es:
Temp,X1,X2
minmax,19,27
minmax,15,31
minmax,17,25
minmax,14.5,24
...
Para graficar los puntos:
corrp<-ggplot(temps,aes(X1,X2))+geom_point(aes(colour=Temp),size=4)+theme_bw()
corrp
Si se pretende crear las gráficas por separado, para cada clase de Temp, entonces hay que aplicar facet_grid:
corrp+facet_grid(.~Temp)
Gráficas de alta densidad con Hexbin
En este ejemplo, usaremos el archivo v1v5.csv, cargado como v1v2. El paquete hexbin representa los puntos mediante hexágonos coloreados que indican la densidad de puntos en ese espacio, mediante un gradiente de color. la opción xbins=30 indica el numero de celdas en los cuales el eje x se particiona.
hdata<-hexbin(v1v2$V1,v1v2$V2,xbins=30)
plot(hdata,xlab="Temp media",ylab="Temp max")
Gráficas de Alta Densidad con ggplot
En este caso, la gráfica es similar a la anterior, pero con el paquete ggplot:
bpn<-ggplot(v1v2, aes(x=V1,y=V2)) + geom_hex(bins=35) + xlab ("Media") + ylab("Max")+theme_bw()
bpn+scale_fill_gradient(low="yellow",high="purple")
Referencias en linea:
Una manera alternativa de crear una matriz de correlación de manera gráfica se encuentra en:
http://www.peterhaschke.com/r/2013/04/23/CorrelationMatrix.html
Diversos paquetes y R basico:
http://www.statmethods.net/graphs/scatterplot.html
ggplot:
http://docs.ggplot2.org/current/geom_point.html
hexbin: Cambiar paleta de colores:
http://stackoverflow.com/questions/15573871/specific-colours-are-required-within-hexbin-package