¿Cómo hacer correlaciones en R?

Posted by | · · | Tutorial R | No Comments on ¿Cómo hacer correlaciones en R?

0
shares
Compartir en Facebook
Twittear
Compartir en Google+
Compartir en LinkedIn
Compartir en Pinterest
+
Trends

Carguemos una base de datos de prueba: En los siguientes tabs puedes elegir entre varias opciones

Bases de Prueba

Data de R. El paquete “datasets” tiene más de 90 bases de datos para trabajar. Revisar

library(help="datasets")

Puedes bajar una base de la ENAHO 2014 (Módulo de Gobernabilidad) desde estos links:
Bloque 1, Bloque 2,Bloque 3
o también el módulo de sumarias (variables cálculadas): Bloque 4

Puedes descargar bases de datos de resultados que INFOGOB pone a disposición desde este link:
INFOGOB

En mi caso trabajare con la base iris que está en R

data(iris) # Así llamo la base de datos a mi entorno de trabajo. 
head(iris) # damos una vista a los primeros casos de la base de datos. 
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

Nos quedaremos con las variables númericas para trabajar las correlaciones.

nuevo<-iris[,-5]

Veamos las opciones que tenemos en R para hacer correlaciones


Lo más básico

cor(nuevo) # lo más simple y básico. Nos da la matriz de correlaciones. 
##              Sepal.Length Sepal.Width Petal.Length Petal.Width
## Sepal.Length    1.0000000  -0.1175698    0.8717538   0.8179411
## Sepal.Width    -0.1175698   1.0000000   -0.4284401  -0.3661259
## Petal.Length    0.8717538  -0.4284401    1.0000000   0.9628654
## Petal.Width     0.8179411  -0.3661259    0.9628654   1.0000000
cor(nuevo, method="kendall") #  Por default está con pearson, pero puedo pedirle "kendal" o "spearman". Recuerda que depende del tipo de variable.
##              Sepal.Length Sepal.Width Petal.Length Petal.Width
## Sepal.Length   1.00000000 -0.07699679    0.7185159   0.6553086
## Sepal.Width   -0.07699679  1.00000000   -0.1859944  -0.1571257
## Petal.Length   0.71851593 -0.18599442    1.0000000   0.8068907
## Petal.Width    0.65530856 -0.15712566    0.8068907   1.0000000
cor.test(nuevo[,1], nuevo[,2]) # Nos da la prueba de hipotesis de la correlación. Esto funciona de par en par. 
## 
## 	Pearson's product-moment correlation
## 
## data:  nuevo[, 1] and nuevo[, 2]
## t = -1.4403, df = 148, p-value = 0.1519
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.27269325  0.04351158
## sample estimates:
##        cor 
## -0.1175698

Correlación parcial

library(ggm)
## Loading required package: igraph
names(iris)
## [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width" 
## [5] "Species"
pcor(c("Sepal.Length","Sepal.Width","Petal.Length","Petal.Width"), var(nuevo)) # Esto es hacer correlación parcial de "Sepal.Length" con "Sepal.Width" controlando por "Petal.Length","Petal.Width"
## [1] 0.6285707

Gráficos


Dispersión de puntos de dos variables

plot(nuevo[,1], nuevo[,3])#Gráfico simple de dispersión de puntos. 
plot of chunk cor1
plot(nuevo[,1], nuevo[,3])#Gráfico simple de dispersión de puntos. 
abline(lm(nuevo[,3]~nuevo[,1]), col="red") # Agregando línea de tendencia. 
plot of chunk cor2
pairs(~Sepal.Length + Sepal.Width + Petal.Length + Petal.Width,data=nuevo,
   main="matriz de correlaciones") #Matríz de correlaciones
plot of chunk cor3
pairs(~Sepal.Length + Sepal.Width + Petal.Length + Petal.Width,data=nuevo,
   main="matriz de correlaciones", col=c("red", "blue")) #cambiando de color a los puntos de la matriz
plot of chunk cor4

Utilizando el paquete corrgram

library(corrgram)
corrgram(nuevo, order=TRUE, lower.panel=panel.pts,
         upper.panel=panel.shade, text.panel=panel.txt,
         diag.panel=panel.minmax, main="Correlograma")
plot of chunk cor5
#Se puede intercambiar los paneles con los que se detallan abajo
# Más información en ?corrgram 
#panel.pie (la parte llena del pie representa la magnitud de la correlación)
#panel.shade (La profundidad del color representa la magnitud de la correlación)
#panel.ellipse (ellipse en base al nivel de confianza y la línea de correlación)
#panel.pts (dispersión de puntos) 

Utilizando el paquete corrgram

library(psych)
pairs.panels(nuevo, pch=21,main="Todo de una mirada")
plot of chunk cor6

Hasta la próxima


Hasta la próxima

Compartir en Facebook
Twittear
Compartir en Google+
Compartir en LinkedIn
Compartir en Pinterest
+

No Comments

Leave a comment