Se dispone de un data set con información sobre diferentes personas con respecto a su edad e Indice de Masa Corporal.Se quiere estudiar si existe una correlación entre su edad y su IMC.
R contiene funciones que permiten calcular los diferentes tipos de correlaciones y sus niveles de significancia: cor() y cor.test(). La segunda función es más completa ya que además de calcular el coeficiente de correlación indica su significancia (p-value) e intervalo de confianza.
#install.packages("readxl")
library(MASS)
library(ggplot2)
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
datos_cor<-read_excel("Edad_IMC.xlsx")
En primer lugar se representan las dos variables mediante un diagrama de dispersión para intuir si existe relación lineal o monotona. Si no la hay, no tiene sentido calcular este tipo de correlaciones.
plot(datos_cor$Edad,datos_cor$IMC)
El diagrama de dispersión parece indicar una posible relación lineal positiva entre ambas variables.
Para poder elegir el coeficiente de correlación adecuado, se tiene que analizar el tipo de variables y la distribución que presentan. En este caso, ambas variables son cuantitativas continuas y pueden transformarse en rangos para ordenarlas, por lo que a priori los tres coeficientes podrían aplicarse. La elección se hará en función de la distribución que presenten las observaciones.
# Representación gráfica
library(ggplot2)
library(MASS)
par(mfrow = c(1, 2))
hist(datos_cor$Edad, breaks = 10, main = "", xlab = "Edad", border = "1")
hist(datos_cor$IMC, breaks = 10, main = "", xlab = "IMC",
border = 1)
Ahora es importante hacer el diagrama de Quartiles para comprobar la linealidad de las variables con respecto a la normalidad
par(mfrow = c(1,2))
qqnorm(datos_cor$Edad, main = "Normal Q-Q Plot Edad")
qqline(datos_cor$Edad)
qqnorm(datos_cor$IMC, main = "Normal Q-Q Plot IMC")
qqline(datos_cor$IMC)
Test de Shapiro para determinar la normalidad de los datos
Edad
shapiro.test(datos_cor$Edad)
##
## Shapiro-Wilk normality test
##
## data: datos_cor$Edad
## W = 0.95558, p-value = 0.05809
shapiro.test(datos_cor$IMC)
##
## Shapiro-Wilk normality test
##
## data: datos_cor$IMC
## W = 0.97817, p-value = 0.4775
El análisis gráfico y el contraste de normalidad muestran que para la variable IMC se puede asumir normalidad, sin embargo, la variable Edad está en el límite. Siendo estrictos, este hecho podría excluir la posibilidad de utilizar el coeficiente de Pearson, dejando como alternativas el de Spearman o Kendall. Sin embargo, dado que la distribución de la Edad no se aleja mucho de la normalidad y que el coeficiente de Pearson tiene cierta robustez, para fines prácticos, sí que se podría utilizar Pearson siempre y cuando se tenga en cuenta este hecho en los resultados. Otra posibilidad es tratar de transformar las variables para mejorar su distribución.
La homocedasticidad implica que la varianza se mantenga constante. Puede analizarse de forma gráfica representando las observaciones en un diagrama de dispersión y viendo si mantiene una homogeneidad en su dispersión a lo largo del eje X. Una forma cónica es un claro indicativo de falta de homocedasticidad.
#Homocedasticidad
fligner.test(datos_cor$Edad ~ datos_cor$IMC)
##
## Fligner-Killeen test of homogeneity of variances
##
## data: datos_cor$Edad by datos_cor$IMC
## Fligner-Killeen:med chi-squared = 14.537, df = 15, p-value = 0.4853
ggplot(datos_cor, aes(y = Edad)) +
stat_boxplot(geom = "errorbar",
width = 0.15,
color = 1) + # Color barras error
geom_boxplot(fill = 2, # Color caja
alpha = 0.5, # Transparencia
color = 1, # Color del borde
outlier.colour = 2)
ggplot(datos_cor, aes(y = IMC)) +
stat_boxplot(geom = "errorbar",
width = 0.15,
color = 1) + # Color barras error
geom_boxplot(fill = 2, # Color caja
alpha = 0.5, # Transparencia
color = 1, # Color del borde
outlier.colour = 2)
Como se puede ver no tenemos valores atípicos
cor(datos_cor$Edad,datos_cor$IMC, method = "pearson")
## [1] 0.7501525
El test muestran una correlación alta (>0.7). Sin embargo para poder considerar que existe realmente correlación entre las dos variables es necesario calcular su significancia, de lo contrario podría deberse al azar.
cor.test(x = datos_cor$Edad,
y = datos_cor$IMC,
alternative = "two.sided",
conf.level = 0.95,
method = "pearson")
##
## Pearson's product-moment correlation
##
## data: datos_cor$Edad and datos_cor$IMC
## t = 7.8595, df = 48, p-value = 3.593e-10
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.5963179 0.8508417
## sample estimates:
## cor
## 0.7501525
R2_pearson <- cor(x = datos_cor$Edad,
y = datos_cor$IMC,
method = "pearson")
R2_pearson <- R2_pearson^2
R2_pearson
## [1] 0.5627288
El tamaño del efecto, es una medida que describe cuánta variabilidad de una variable (dependiente) es explicada por la otra variable (independiente). En este caso, el R^2 significa que aproximadamente el 56.27% de la variabilidad de la variable de IMC se puede explicar por la edad. Lo cual es útil para entender la relación entre estas dos variables en el contexto de una investigación o aplicación práctica
Cuando exista alguna duda acerca de si se cumplen las relativamente rigurosas premisas para la aplicación del coeficiente de correlación de Pearson, entonces debemos considerar el uso de alguna alternativa no paramétrica
cor(datos_cor$Edad, datos_cor$IMC, method = "spearman")
## [1] 0.7282435
cor.test(datos_cor$Edad, datos_cor$IMC, method = "spearman")
## Warning in cor.test.default(datos_cor$Edad, datos_cor$IMC, method =
## "spearman"): Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: datos_cor$Edad and datos_cor$IMC
## S = 5659.3, p-value = 2.052e-09
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.7282435
El coeficiente de correlación de Spearman ρ es aproximadamente 0.728. Este es un valor positivo y moderadamente alto, lo que indica una relación monótona positiva bastante fuerte entre la edad y el IMC. En otras palabras, a medida que la edad de los individuos en la muestra aumenta, su IMC también tiende a aumentar
El valor p asociado con esta prueba de correlación es muy pequeño, por tanto, podemos rechazar la hipótesis nula de que no hay correlación.
La hipótesis alternativa en este contexto es que la verdadera correlación de Spearman (ρ) no es igual a 0, lo que sugiere que hay alguna asociación no aleatoria entre las variables. El resultado del test apoya la hipótesis alternativa
Se de desea investigar si existe una relación monótona entre la calidad de las libretas (1=Básica, 2=Estándar, 3=Premium) y la satisfacción del usuario (1= Muy insatisfecho, 2=Insatisfecho, 3=Neutral, 4=Satisfecho, 5=Muy satisfecho) ; es decir, si las libretas de mayor calidad tienden a correlacionarse con niveles más altos de satisfacción. Por tanto, se utilizará un coeficiente de correlación de Kendall para investigar esta asociación.
datos_mon<-read_excel("Libretas.xlsx", sheet = 1)
datos_mon
## # A tibble: 99 × 2
## Libretas Satisfaccion
## <chr> <chr>
## 1 Estándar Satisfecho
## 2 Básica Neutral
## 3 Básica Muy insatisfecho
## 4 Estándar Satisfecho
## 5 Básica Muy satisfecho
## 6 Estándar Satisfecho
## 7 Básica Muy satisfecho
## 8 Estándar Muy insatisfecho
## 9 Estándar Satisfecho
## 10 Básica Satisfecho
## # ℹ 89 more rows
str(datos_mon)
## tibble [99 × 2] (S3: tbl_df/tbl/data.frame)
## $ Libretas : chr [1:99] "Estándar" "Básica" "Básica" "Estándar" ...
## $ Satisfaccion: chr [1:99] "Satisfecho" "Neutral" "Muy insatisfecho" "Satisfecho" ...
datos_mon$Libretas <- factor(datos_mon$Libretas, levels = c("Básica", "Estándar", "Premium"), ordered = TRUE)
datos_mon$Satisfaccion <- factor(datos_mon$Satisfaccion, levels = c("Muy insatisfecho", "Insatisfecho", "Neutral", "Satisfecho", "Muy satisfecho"), ordered = TRUE)
datos_mon$Libretas <- as.numeric(datos_mon$Libretas)
datos_mon$Satisfaccion <- as.numeric(datos_mon$Satisfaccion)
cor.test(datos_mon$Libretas, datos_mon$Satisfaccion, method = "kendall")
##
## Kendall's rank correlation tau
##
## data: datos_mon$Libretas and datos_mon$Satisfaccion
## z = 0.30779, p-value = 0.7582
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau
## 0.02632207
El valor p es de 0.7582. Esto es muy por encima de los niveles de significancia comunes (0.05, 0.01), lo que indica que no hay suficiente evidencia para rechazar la hipótesis nula de que no hay asociación entre las dos variables. En otras palabras, basándonos en los datos proporcionados, no parece haber una relación significativa entre el tipo de libretas y el nivel de satisfacción reportado.
La baja magnitud del coeficiente tau de Kendall sugiere que cualquier relación monótona entre la calidad de las libretas y la satisfacción del cliente es débil.
Desde un punto de vista práctico, esto podría significar que la calidad percibida de las libretas (clasificada en categorías de “Básica”, “Estándar”, “Premium”) no tiene un impacto fuerte y estadísticamente significativo en la satisfacción de los usuarios