Marco Antonio Mauricio Martínez
Aranza Estefanía García Alvarado
Juan Antonio Gonzales Ramos
Elaborar un documento markdown que describa la relación entre dos variables numéricas de publications y rank de una muestra del conjunto de datos universidades determinando la dispersión de los datos con diagrama de dispersión, la covarianza, la correlación de Pearson y la regresión lineal simple que servirá para simular predicciones de la variable dependiente rank.
library(ggplot2)
library(readr)
library(dplyr)
library(knitr)
library(DT)
library(mosaic)
library(PerformanceAnalytics) # Para coorelaciones gráficas
source("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/funciones/funciones%20para%20dispersion%20correlacion%20regresion.R", encoding = "UTF-8")
datos_bruto <- read.csv("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/datos/universidades_clean.csv", encoding = "UTF-8", stringsAsFactors = TRUE)
# str(datos_bruto)
Ejecutar esta instrucciones para limpiar los datos y dejar solo las variable de interés
datos <- select(datos_bruto, publications, rank)
kable(head(datos, 70))
| publications | rank |
|---|---|
| 89633 | 150 |
| 99086 | 61 |
| 36231 | 83 |
| 97754 | 88 |
| 74922 | 60 |
| 82676 | 204 |
| 25757 | 133 |
| 107676 | 49 |
| 36150 | 193 |
| 80596 | 76 |
| 138415 | 51 |
| 75474 | 195 |
| 92979 | 43 |
| 94862 | 111 |
| 166908 | 77 |
| 52453 | 77 |
| 66210 | 172 |
| 83632 | 158 |
| 37571 | 79 |
| 60672 | 142 |
| 205011 | 9 |
| 86698 | 144 |
| 210564 | 13 |
| 51482 | 60 |
| 46082 | 125 |
| 82950 | 140 |
| 63645 | 136 |
| 45569 | 41 |
| 178305 | 22 |
| 78063 | 178 |
| 110482 | 83 |
| 81477 | 189 |
| 87775 | 120 |
| 77881 | 175 |
| 90932 | 19 |
| 92538 | 87 |
| 60031 | 157 |
| 58127 | 135 |
| 68328 | 167 |
| 60237 | 152 |
| 51928 | 102 |
| 41512 | 94 |
| 120614 | 164 |
| 38355 | 132 |
| 52663 | 132 |
| 41162 | 136 |
| 107016 | 67 |
| 33869 | 144 |
| 99103 | 116 |
| 478072 | 1 |
| 87321 | 143 |
| 107043 | 74 |
| 104130 | 196 |
| 67052 | 5 |
| 121410 | 110 |
| 57371 | 153 |
| 186925 | 45 |
| 138093 | 52 |
| 97889 | 89 |
| 63859 | 82 |
| 222807 | 14 |
| 40059 | 178 |
| 73722 | 181 |
| 103846 | 145 |
| 65910 | 162 |
| 50338 | 154 |
| 105737 | 79 |
| 59116 | 135 |
| 196412 | 55 |
| 130650 | 177 |
Cada equipo decide el valor de la semilla random, por ejemplo 2023, ustedes pongan los cuatro o tres últimos dígitos de su número de control o el de uno de ustedes
set.seed(22041156)
muestra = datos[sample(x = 1:nrow(datos), size = round(nrow(datos) * 0.20), replace = FALSE), ]
kable(muestra)
| publications | rank | |
|---|---|---|
| 193 | 57498 | 110 |
| 29 | 178305 | 22 |
| 240 | 100320 | 151 |
| 195 | 54962 | 126 |
| 241 | 232058 | 12 |
| 244 | 57373 | 91 |
| 31 | 110482 | 83 |
| 196 | 61271 | 161 |
| 227 | 62717 | 186 |
| 142 | 49569 | 169 |
| 96 | 208615 | 24 |
| 292 | 72575 | 194 |
| 17 | 66210 | 172 |
| 80 | 90533 | 114 |
| 179 | 104806 | 58 |
| 297 | 198095 | 11 |
| 25 | 46082 | 125 |
| 197 | 80199 | 133 |
| 113 | 64180 | 145 |
| 268 | 61369 | 190 |
| 204 | 71719 | 113 |
| 214 | 151596 | 60 |
| 72 | 65006 | 165 |
| 84 | 99798 | 136 |
| 78 | 89024 | 141 |
| 286 | 82976 | 95 |
| 217 | 56037 | 46 |
| 164 | 155482 | 34 |
| 115 | 85888 | 157 |
| 185 | 76010 | 124 |
| 24 | 51482 | 60 |
| 122 | 105481 | 165 |
| 131 | 101800 | 119 |
| 20 | 60672 | 142 |
| 203 | 96816 | 69 |
| 106 | 50624 | 76 |
| 145 | 68176 | 183 |
| 16 | 52453 | 77 |
| 12 | 75474 | 195 |
| 74 | 68688 | 160 |
| 135 | 92622 | 55 |
| 26 | 82950 | 140 |
| 146 | 75882 | 42 |
| 295 | 97744 | 136 |
| 56 | 57371 | 153 |
| 69 | 196412 | 55 |
| 147 | 44011 | 192 |
| 73 | 34969 | 148 |
| 64 | 103846 | 145 |
| 192 | 90413 | 91 |
| 141 | 54629 | 182 |
| 231 | 164047 | 29 |
| 252 | 64274 | 154 |
| 27 | 63645 | 136 |
| 116 | 138535 | 104 |
| 126 | 109500 | 62 |
| 149 | 125528 | 68 |
| 172 | 260850 | 7 |
| 208 | 56904 | 176 |
| 209 | 52599 | 197 |
¿De cuántos registros es la muestra?
La muestra es de 60.
Convarianza entre publications y rank ¿Cuál es el valor de la covarianza?
Se observa una covarianza de -1901474, siendo negativa indica una relación inversa entre las variables, lo que significa que cuando el valor de una variable aumenta, el valor de la otra tiende a disminuir.
cov(x = muestra$publications, y = muestra$rank)
## [1] -1901474
Correlación \(r\) entre publications y rank ¿Cuál es el valor de la correlación de Pearson y cómo se interpreta?
Se observa una correlación con una valor de -0.69 lo que indica una correlación negativa de media a considerable, esto significa que a medida que una variable aumenta la otra tiende a disminuir.
cor(x = muestra$publications, y = muestra$rank)
## [1] -0.6959672
Diagrama de dispersión entre publications y rank ¿Cómo se observa el diagrama de dispersión de las dos variables x publications e y rank?
Con respecto al diagrama de dispersión, este muestra que mientras el valor de publications es menor, el valor de rank es mayor, y viceversa, mostrando una tendencia a que el rank baje si publications aumenta de valor.
f_diag.dispersion(data.frame(muestra$publications, muestra$rank))
Construir el modelo de regresión entre publications y rank ¿Cuáles son los estadísticos del modelo de regresión: summary(modelo)
modelo = lm(data = muestra, formula = rank ~ publications)
summary(modelo)
##
## Call:
## lm(formula = rank ~ publications, data = muestra)
##
## Residuals:
## Min 1Q Median 3Q Max
## -97.339 -26.098 6.874 27.218 66.799
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 186.9804206 11.1052174 16.837 < 0.0000000000000002 ***
## publications -0.0007788 0.0001055 -7.381 0.00000000067 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 40.05 on 58 degrees of freedom
## Multiple R-squared: 0.4844, Adjusted R-squared: 0.4755
## F-statistic: 54.48 on 1 and 58 DF, p-value: 0.0000000006701
¿Cuál es el valor del estadístico R Square en el modelo de regresión construído y cómo se interpreta?
La interpretación del coeficiente R Square es que cuanto más cercano esté a 1, mayor es la capacidad del modelo para predecir los valores observados. En este caso, el resultado obtenido de R cuadrado es de 0.4844, lo cual indica que el modelo solo explica aproximadamente el 48% de la variabilidad en los datos. Por lo tanto, podemos concluir que el modelo tiene un desempeño deficiente en términos de predicción. Dado que el valor de R cuadrado está lejos de 1, no podemos confiar plenamente en las predicciones generadas por este modelo en particular.
round(cor(x = muestra$publications, y = muestra$rank) ^ 2, 4)
## [1] 0.4844
\[ Y = a + b \cdot x \]
Coeficientes \(a\) y \(b\) de la fórmula de regresión lineal simple ¿Cuál es el valor de los coeficientes?
El valor de a es de: 186.9804
El valor de b es de: -0.0007787989
a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept)
## 186.9804
## publications
## -0.0007787989
¿Cómo se observa la línea de tendencia?
ggplot() +
geom_point(data = muestra, aes(x = publications, y = rank), colour='blue') +
geom_point(aes(x= mean(muestra$publications), y = mean(muestra$rank)), col = 'green') +
geom_line(aes( x = muestra$publications, y = predict(modelo, muestra)), color = "red") +
xlab("Publications") +
ylab("Rank") +
ggtitle("Linea de tendencia sobre Conjunto de Datos")
x <- 15000
prediccion <- predict(object = modelo, newdata = data.frame(publications = x))
prediccion
## 1
## 175.2984
# Comprobar
y = a + b * x
y
## (Intercept)
## 175.2984
La predicción es de 175.2984376 usando a x como 15000.
x <- 20000
prediccion <- predict(object = modelo, newdata = data.frame(publications = x))
prediccion
## 1
## 171.4044
# Comprobar
y = a + b * x
y
## (Intercept)
## 171.4044
La predicción es de 171.4044433 usando a x como 20000.
x <- 25000
prediccion <- predict(object = modelo, newdata = data.frame(publications = x))
prediccion
## 1
## 167.5104
# Comprobar
y = a + b * x
y
## (Intercept)
## 167.5104
La predicción es de 167.510449 usando a x como 25000.
En este ejercicio, se trabajó con una muestra de datos que representaba el 20% del conjunto total. Se calculó la covarianza utilizando la función “cov()”, obteniendo un resultado de -1901474. Posteriormente, se utilizó la función “cor()” para calcular la correlación, obteniendo un valor de -0.6959672.
Al analizar el diagrama de dispersión, se observa una tendencia clara: a medida que el valor de “publications” disminuye, el valor de “rank” tiende a aumentar, y viceversa. Esta relación sugiere que existe una asociación entre ambas variables, indicando que es probable que el “rank” disminuya a medida que el valor de “publications” aumente.
Se realizó una regresión lineal para crear un modelo lineal y calcular el valor de R cuadrado, que en este caso fue de 0.4844. Un R cuadrado más cercano a 0 indica que el modelo tiene una capacidad limitada para explicar la variabilidad en los datos observados. Por lo tanto, podemos concluir que este modelo en particular no es confiable, ya que su capacidad de predicción es baja.
Los coeficientes del modelo lineal (a y b) se calcularon como 186.9804 y -0.0007787989, respectivamente. Estos coeficientes representan la pendiente y el término constante de la línea de regresión.
Al analizar la línea de tendencia generada por el modelo, se observa que no se ajusta de manera óptima a los datos dispersos. Esto sugiere que una línea recta no puede capturar completamente la relación entre las variables.
Finalmente, las predicciones confirman la tendencia observada en el diagrama de dispersión: a medida que el valor de “publications” aumenta, se espera que el valor de “rank” disminuya.
En resumen, el análisis de los datos sugiere una asociación entre las variables “publications” y “rank”. Sin embargo, el modelo lineal utilizado tiene una capacidad limitada para explicar y predecir esta relación, lo que lo hace poco confiable en este contexto.