library(dplyr)
library(carData) # Libreria para base de datos
library(ltm) # Para la correlación entre una variable cuantitativa y otra dicotomica.
library(vcd) # Para la correlación entre dos variables dicotomicas o nominales
library(corrplot)
data(iris)
iris2= iris[iris$Species!="virginica",]
iris3<-iris2 %>% mutate(Species=as.factor(recode(Species,"setosa"=1,"versicolor"=0)))

Una variable cuantitativa y otra dicotomica

biserial.cor(x = iris3$Sepal.Length,y=iris3$Species)
## [1] 0.7282901
data("TitanicSurvival")
Titanic<-na.omit(TitanicSurvival)
biserial.cor(x=Titanic$age,y=Titanic$survived)
## [1] 0.05551252

Para dos variables dicotomicas o nominales

data("TitanicSurvival")
Titanic<-TitanicSurvival
str(Titanic)
## 'data.frame':    1309 obs. of  4 variables:
##  $ survived      : Factor w/ 2 levels "no","yes": 2 2 1 1 1 2 2 1 2 1 ...
##  $ sex           : Factor w/ 2 levels "female","male": 1 2 1 2 1 2 1 2 1 2 ...
##  $ age           : num  29 0.917 2 30 25 ...
##  $ passengerClass: Factor w/ 3 levels "1st","2nd","3rd": 1 1 1 1 1 1 1 1 1 1 ...

Dicotomicas:

tab<-ftable(Titanic$survived,Titanic$sex)
tab
##      female male
##                 
## no      127  682
## yes     339  161
assocstats(tab)
##                     X^2 df P(> X^2)
## Likelihood Ratio 372.92  1        0
## Pearson          365.89  1        0
## 
## Phi-Coefficient   : 0.529 
## Contingency Coeff.: 0.467 
## Cramer's V        : 0.529

Multinomiales:

tab2<-ftable(Titanic$survived,Titanic$passengerClass)
tab2
##      1st 2nd 3rd
##                 
## no   123 158 528
## yes  200 119 181
assocstats(tab2)
##                     X^2 df P(> X^2)
## Likelihood Ratio 127.77  2        0
## Pearson          127.86  2        0
## 
## Phi-Coefficient   : NA 
## Contingency Coeff.: 0.298 
## Cramer's V        : 0.313

Para dos variables númericas

data(iris)
corr<-cor(iris[,-5])
corr
##              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

Representación de la matriz de correlaciones:

Se jugará con la función corrplot para explorar algunas representaciones que se pueden extraer.

A tener en cuenta:

col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", 
                          "#77AADD", "#4477AA"))

corrplot(corr) # Por defecto

corrplot(corr,tl.col = "black", # color de nombre de variables
                   method = "number",
                   bg = "deepskyblue",
                   col = "black", # color de números internos
                   cl.pos = "n")

corrplot(corr, method="shade",
         tl.col = "black",# nombre de los ejes de color negro
         tl.srt = 45, # rotación de 45 grados de las variables eje x
         col = col(200),
         addCoef.col = "black", # color de etiquetas de color negro
         order = "AOE", # Agrupa las variables con más correlación negativa y positiva entre ellas
         type = "upper", # Solo pinta la parte de arriba
         diag = F, # Omite la diagonal de 1's
         addshade = "all") # Añade lineas con direcciones: Hacia arriba para correlaciones positivas y hacia abajo para negativas

corrplot.mixed(corr,lower.col = "#BB4444",tl.col="black")