Vamos a realizar y representar gráficamente correlaciones entre dos variables. En el caso que nuestras variables sean normales se optará por un correlación de Pearson, en caso contrario por una correlación de Spearman.
Veamos como son nuestros datos:
#Fijamos el directorio de trabajo
setwd(dir = "C:/R/MARKDOWN/correlaciones")
#leemos el fichero de datos indicando que la primera columna no es una variable row.names
correlaciones<-read.csv("correlaciones.csv", sep=";",row.names = 1)
str(correlaciones)
## 'data.frame': 29 obs. of 7 variables:
## $ altura : int 1034 704 1093 952 263 1023 1219 821 207 552 ...
## $ diversidad : int 16 6 16 10 14 12 4 9 9 8 ...
## $ abundancia : int 100 459 110 412 599 101 102 515 601 699 ...
## $ precipitacion: int 100 120 156 155 12 122 126 100 41 59 ...
## $ uso : int 1 4 1 2 7 1 1 3 7 6 ...
## $ incendios : int 1 2 5 6 8 7 4 5 1 2 ...
## $ otros : int 0 0 0 9 8 7 6 5 4 3 ...
head(correlaciones)
## altura diversidad abundancia precipitacion uso incendios otros
## 1 1034 16 100 100 1 1 0
## 2 704 6 459 120 4 2 0
## 3 1093 16 110 156 1 5 0
## 4 952 10 412 155 2 6 9
## 5 263 14 599 12 7 8 8
## 6 1023 12 101 122 1 7 7
Cargamos ggpubr
:
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 3.5.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 3.5.3
## Loading required package: magrittr
Vamos a trabajar con al altura y la precipitación, primero testamos la normalidad de estas variables para saber que correlación es la más adecuada:
par(mfrow=c(1,2))
qqnorm(correlaciones[,1],main="altura Q-Q Plot")#altura
qqline(correlaciones[,1])
qqnorm(correlaciones[,4],main="precipitación Q-Q Plot")#precipitación
qqline(correlaciones[,4])
shapiro.test(correlaciones[,1])#altura=es normal
##
## Shapiro-Wilk normality test
##
## data: correlaciones[, 1]
## W = 0.9643, p-value = 0.4172
shapiro.test(correlaciones[,4])#precipitación=es normal
##
## Shapiro-Wilk normality test
##
## data: correlaciones[, 4]
## W = 0.95776, p-value = 0.2891
Las dos es normal, optamos por una correlación de Pearson:
cor.test(correlaciones$altura, correlaciones$precipitacion, method=c("pearson"))
##
## Pearson's product-moment correlation
##
## data: correlaciones$altura and correlaciones$precipitacion
## t = 7.5389, df = 27, p-value = 4.139e-08
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.6543213 0.9140457
## sample estimates:
## cor
## 0.8233721
La relación es positiva (coeficiente positivo) y significativa.
Lo representamos:
pear<-ggscatter(correlaciones, x = "altura", y = "precipitacion",
add = "reg.line", conf.int = TRUE,
cor.coef = TRUE, cor.method = "pearson", title = "Pearson",
xlab = "Altura (msnm)", ylab = "Precipitación (mm)",
font.x=10, font.y=10)
pear
Vamos a trabajar con la diversidad y la abundancia, primero testamos la normalidad de estas variables para saber que correlación es la más adecuada:
par(mfrow=c(1,2))
qqnorm(correlaciones[,2],main="diversidad Q-Q Plot")#diversidad
qqline(correlaciones[,2])
qqnorm(correlaciones[,3],main="abundancia Q-Q Plot")#abundancia
qqline(correlaciones[,3])
shapiro.test(correlaciones[,2])#diversidad=no es normal
##
## Shapiro-Wilk normality test
##
## data: correlaciones[, 2]
## W = 0.92456, p-value = 0.03984
shapiro.test(correlaciones[,3])#abundancia=no es normal
##
## Shapiro-Wilk normality test
##
## data: correlaciones[, 3]
## W = 0.838, p-value = 0.000435
Las dos no son normales, optamos por una correlación de Spearman:
cor.test(correlaciones$diversidad, correlaciones$abundancia, method=c("spearman"))
## Warning in cor.test.default(correlaciones$diversidad,
## correlaciones$abundancia, : Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: correlaciones$diversidad and correlaciones$abundancia
## S = 4206.6, p-value = 0.8524
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## -0.0361165
No hay relación significativa entre las variables, no hay correlación.
Lo representamos:
spear<-ggscatter(correlaciones, x = "diversidad", y = "abundancia",
add = "reg.line", conf.int = TRUE,
cor.coef = TRUE, cor.method = "spearman", title = "Spearman",
xlab = "diversidad", ylab = "abundancia",
font.x=10, font.y=10)
spear