Calcular covarianza y correlación así como visualizar la dispersión entre dos variables para su adecuada y correcta interpretración.
Se cargan o se construyen datos y se determinan covarianza, correlación y diagrama de dispersión
Se presentan ejercicios relacionados con datos de llamadas y ventas, daos de jugadores de FIFA, calificaciones de matemática e inglés y datos de ranking de universidades.
De estos conjuntos de datos se construye la covarianza y la correlación así como la gráfica de dispersión de las variables numéricas de interés.
Se hace la interpretación de cada ejercicio.
Se necesitan datos para calcular la covarianza, la correlación y mostrar el diagrama de dispersión.
La covarianza se establece como una medida descriptiva de la asociación entre dos variables \(x\) e \(y\). [@anderson2008].
\[ S_{xy} = \frac{\sum(x_i - \bar{x}) \cdot (y_i - \bar{y})}{n - 1} \]
Se necesitan dos variable de interés:
Se requiere la media de la variable \(x\)
Se requiere la media de la variable \(y\)
Se necesita el número de observaciones del conjunto de datos. \(n\)
La covarianza muestral dividida entre el producto de las desviaciones estándar de cada variable de interés identifica la correlación entre dos variables
\[ r = \frac{S_{xy}}{S_x \cdot S_y} \]
El coeficiente de correlación del producto–momento de Pearson para datos muestrales (llamado coeficiente de correlación muestral) se calcula dividiendo la covarianza muestral entre el producto de la desviación estándar muestral de \(x\) por la desviación estándar muestral de \(y\).
De acuerdo a Hernández Sampiere [@hernándezsampieri2014][@hernándezsampieri2014], los valores del coeficiente de correlación de Pearson se interpreta de la siguiente manera:
El coeficiente de correlación va desde -1 hasta +1. Los valores cercanos a -1 o a +1 corresponden a una relación lineal fuerte. Entre más cercano a cero sea el valor de la correlación, más débil es la relación lineal[@anderson_estadistica_2008].
Se requiere install.packages() para cada librería a utilizar
{r message=FALSE, warning=FALSE} library(ggplot2) library(readr) library(dplyr) library(knitr) library(DT) library(mosaic) library(PerformanceAnalytics) # Para coorelaciones gráficas
{r message=FALSE, warning=FALSE} source("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/funciones/funciones%20para%20dispersion%20correlacion%20regresion.R", encoding = "UTF-8")
Se tienen unos datos de interés de una tienda que tiene vendedores y hacen ventas; los vendedores hacen llamadas a prospectos y clientes y en razón de ello tal vez realizan cierta cantidad de ventas de cada uno de ellos.
Las variables de interés son llamadas que hacen los vendedores y la cantidad de ventas.
vendedores <- paste("V",1:15, sep="")
llamadas <- c(96, 40, 104, 128, 164, 76, 72, 80 , 36, 84, 180, 132, 120, 44, 84)
ventas <- c(41, 41, 51, 60, 61, 29, 39, 50, 28, 43, 70, 56, 45, 31, 30)
datos <- data.frame(vendedores, llamadas, ventas)
datos
\[ S_{xy} = \frac{\sum(x_i - \bar{x}) \cdot (y_i - \bar{y})}{n - 1} \]
Se construye una tabla para determinar la covarianza manualmente.
tabla <- data.frame(x = llamadas, y = ventas, x.med = mean(llamadas), y.med=mean(ventas))
tabla <- cbind(tabla, xi.menos.x.med = tabla$x-mean(tabla$x))
tabla <- cbind(tabla, yi.menos.y.med = tabla$y-mean(tabla$y))
tabla <- cbind(tabla, prod = tabla$xi.menos.x.med * tabla$yi.menos.y.med)
tabla <- rbind(tabla, apply(tabla, 2, sum))
tabla[nrow(tabla), c(1:6)] <- '*'
kable(tabla)
\[ S_{xy} = \frac{\sum(x_i - \bar{x}) \cdot (y_i - \bar{y})}{n - 1} \therefore \\ covarianza = S_{xy} = \frac{6672}{n-1} = \frac{6672}{14} = 476.5714 \]
n <- nrow(datos)
numerador <- sum((datos$llamadas - mean(datos$llamadas)) * (datos$ventas - mean(datos$ventas)))
# numerador ; sum(tabla$prod)
denominador <- n - 1
covarianza <- numerador / denominador
covarianza
El diagrama de dispersión es una gráfica que identifica la relación entre dos variables con respectos a sus medias.
Se observa el diagrama de dispersión de llamadas y ventas
f_diag.dispersion(datos = datos[,c(2,3)])
\[ correlación = r = \frac{covarianza}{S_x \cdot S_y} = \frac{476.5714}{42.7618\cdot12.88964}=\frac{476.5714}{551.1843}=0.8646318 \]
\[ S_{xy}\text{ es la covarianza muestral previamente calculada} \\ S_x \text{ es la desviación std. de la variable x} \\ S_y \text{ es la desviación std. de la variable y} \\ S_x\cdot S_y \text { es el producto de ambas desviaciones} \]
prod.dispersion = sd(datos$llamadas) * sd(datos$ventas)
prod.dispersion
r <- covarianza / prod.dispersion
r
Se determina la covarianza y la correlación con funciones de los paquete base de R y R Studio. La función cov() determina la covarianza de un conjunto de datos de dos variables numéricas y cor() calcula la correlación; de manera natural la correlación que se genera con la función de cor() es la de Pearson.
Las variables cov y r identifican a la covarianza y la correlación de Pearson respectivamente y deben ser los mismos valores que aquellos que se calcularon manualemnte arriba.
covarianza <- cov(x = datos$llamadas, y = datos$ventas, )
r <- cor(x = datos$llamadas, y = datos$ventas)
covarianza; r
Se visualiza la correlación entre dos variables de interés usando chart.Correlation de la librería PerformanceAnalytics.
{r warning=FALSE, message=FALSE} chart.Correlation(datos[,2:3], histogram = TRUE)
Se cargan datos de la dirección de internet registro de Jugadores de FIFA
datos.bruto <- read.csv("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/datos/players_20.csv", stringsAsFactors = TRUE, encoding = "UTF-8")
str(datos.bruto)
Son 18278 observaciones o registros y 104 variables.
Se seleccionan dos variables numéricas de interés, height_cm y weight_kg; se modifican los nombres de variables o columnas en el conjunto de datos y se muestran los primeros 10 y últimos 10 registros.
datos <- datos.bruto %>%
select(height_cm, weight_kg)
colnames(datos) <- c("altura", "peso")
head(datos, 10)
tail(datos, 10)
Se muestran los estadísticos descriptivos principales de datos
summary(datos)
f_diag.dispersion(datos)
chart.Correlation(datos, histogram = TRUE)
r <- cor(x = datos$altura, y = datos$peso)
r
La correlación de las variables peso y estatura o estatura y peso es
de r round(r, 4)
y se interpreta como positiva
considerable.
Se describen otros ejercicios con datos de ejemplo que se identifican en el caso 22 y se utilizan para determinar la covarianza y la correlación entre dos variables.
Se construye un conjunto de datos de 100 alumnos con calificaciones de asignaturas de matemáticas e inglés y se hace diagrama de dispersión
matematicas <- sort(rnorm(n = 100, mean = 80, 5))
ingles <- sort(rnorm(n = 100, mean = 80, sd = 8))
datos <- data.frame(matematicas, ingles)
datatable(datos, caption = "Calificaciones")
Las variables de interés son calificaciones de matemáticas e inglés
summary(datos)
f_diag.dispersion(datos)
cov(datos$matematicas, datos$ingles)
cor(datos)
{r warning=FALSE, message=FALSE} chart.Correlation(datos, histogram = TRUE )
Existe una correlación muy muy fuerte entre calificaciones de matemáticas e inglés.
datos <- read.csv("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/datos/world%20ranking%20universities.csv", encoding = "UTF-8", stringsAsFactors = TRUE)
Se presentan los dos diagramas de dispersión de la relación de variables pares: entre publications y acceptance_num ; luego publications y rank.
Se construyen dos gráficas g1 y g2 y se presentan en el mismo renglón.
g1 <- f_diag.dispersion(select(datos, publications, acceptance_num))
g2 <- f_diag.dispersion(select(datos, publications, rank))
plot_grid(g1, g2)
Como se analizó en el caso 22 no observa visualmente una relación importante entre las variables pubications y acceptance_num pero si una relación negativa entre pubications y rank en el conjunto de datos de ranking de universidades.
publications y acceptance_num, quintando los valores NA
cov(x = datos$publications, y = datos$acceptance_num, use="complete.obs")
publications y rank quitando los registros con NA
cov(x = datos$publications, y = datos$rank, use="complete.obs")
cor(x = datos$publications, y = datos$acceptance_num, use="complete.obs")
cor(x = datos$publications, y = datos$rank, use="complete.obs")
{r warning=FALSE, message=FALSE} chart.Correlation(datos[,c('publications','acceptance_num', 'rank')], histogram = TRUE )
¿Que significa una covarianza?
En probabilidad y estadística, la covarianza es un valor que indica el grado de variación conjunta de dos variables aleatorias respecto a sus medias. Es el dato básico para determinar si existe una dependencia entre ambas variables y además es el dato necesario para estimar otros parámetros básicos, como el coeficiente de correlación lineal o la recta de regresión.
¿Cómo se interpreta una una correlación?
En estadística, el coeficiente de correlación de Pearson es una medida de dependencia lineal entre dos variables aleatorias cuantitativas. A diferencia de la covarianza, la correlación de Pearson es independiente de la escala de medida de las variables.
De manera menos formal, podemos definir el coeficiente de correlación de Pearson como un índice que puede utilizarse para medir el grado de relación de dos variables siempre y cuando ambas sean cuantitativas y continuas.
¿Que relación existe entre un diagrama de dispersión y la correlación de Pearson?
El coeficiente de correlación de Pearson tiene el objetivo de indicar cuán asociadas se encuentran dos variables entre sí por lo que: Correlación menor a cero: Si la correlación es menor a cero, significa que es negativa, es decir, que las variables se relacionan inversamente.
¿Cuáles fueron las correlaciones en los diferentes ejercicios, fueron positivas o negativas y que significado tienen?
En este Caso se dio un aprendizaje sobre la Covarianza y la Correlacion que su definicion es:
La Covarianza es el valor que refleja en qué cuantía dos variables aleatorias varían de forma conjunta respecto a sus medias que presentan.
La Correlacion es un tipo de asociación entre dos variables numéricas, específicamente evalúa la tendencia (creciente o decreciente) en los datos que se presentan.
Para Diferenciarlas de una a la otra es que la covarianza nos da el valor que refleja en qué cuantía dos variables aleatorias y tambien nos permite saber cómo se comporta una variable en función de lo que hace otra variable. y con la correlacion se da una medida de la relación lineal entre dos variables cuantitativas contínuas (x, y).
Otra Manera Sencilla de saber si dos variables están correlacionadas es determinar si co-varían (varían conjuntamente).
http://mathworld.wolfram.com/Covariance.html
Croxton, Frederick Emory; Cowden, Dudley Johnstone; Klein, Sidney (1968) Applied General Statistics, Pitman. ISBN 9780273403159 (página 625)
↑ Dietrich, Cornelius Frank (1991) Uncertainty, Calibration and Probability: La Estadística de la Medición Científica e Industrial 2ª Edición, A. Higler. ISBN 9780750300605 (Página 331)
↑ Aitken, Alexander Craig (1957) Statistical Mathematics 8ª Edición. Oliver & Boyd. ISBN 9780050013007 (Página 95)
↑ Rodgers, J. L.; Nicewander, W. A. (1988). «Trece formas de ver el coeficiente de correlación». The American Statistician 42 (1): 59-66. JSTOR 2685263. doi:10.1080/00031305.1988.10475524.
↑ Dowdy, S. y Wearden, S. (1983). “Estadística para la investigación”, Wiley. ISBN 0-471-08602-9 pp 230
↑ Kenney, J. F. and Keeping, E. S., Mathematics of Statistics, Pt. 2, 2nd ed. Princeton, NJ: Van Nostrand, 1951.
↑ Taraldsen, Gunnar (2021). «The Confidence Density for Correlation». Sankhya A (en inglés). ISSN 0976-8378. S2CID 244594067. doi:10.1007/s13171-021-00267-y.
↑ Taraldsen, Gunnar (2020). Confidence in Correlation (en inglés). doi:10.13140/RG.2.2.23673.49769.