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.
Se cargan librerías necesarias
Se cargan las funciones preparadas
Se cargan los datos “https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/datos/universidades_clean.csv” y se determina una muestra del 20% del total de los registros
Se construye una muestra del 20% y sobre la muestra se hacen los estadísticos
Se requiere el diagrama de dispersión de la muestra de las variables publicactions y rank
Se calcula el valor de la covarianza de las variables publicactions y rank y su interpretación
Se calcula el valor de la correlación de Pearson de las variables publicactions y rank y su interpretación
Se construye el modelo de regresión lineal simple con las variables de las variables publicactions y rank
Se calculan los coeficientes a y b de la fórmula de regresión simple
Se visualiza la linea de tendenncia con la dispersión de los datos
Se calcula predicciones de rank con tres valores de la variable independiente publications
Al final, se interpreta el caso con al menos 50 palabras respondiendo a las preguntas inmersas en el ejercicio. Si el modelo en el valor de Multipel R Square está por encima del 60% entonces el modelo explica un 60% a la variable dependiente por lo que para estos datos y esta muestra se acepta el modelo de lo contrario no se acepta.
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)
## 'data.frame': 300 obs. of 17 variables:
## $ X.1 : int 1 2 3 4 5 6 7 8 9 10 ...
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ name : Factor w/ 300 levels "Aarhus University",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ world_ranking : Factor w/ 200 levels "","#1 of 14,131",..: 59 159 1 188 1 1 1 145 106 175 ...
## $ region_ranking : Factor w/ 200 levels "","#1 of 1,756",..: 101 108 1 115 1 1 1 96 200 126 ...
## $ country_ranking: Factor w/ 198 levels "","#1 of 101",..: 59 118 1 128 1 1 1 102 193 134 ...
## $ region : Factor w/ 6 levels "Africa","Asia",..: 3 3 5 5 3 2 5 3 3 5 ...
## $ country : Factor w/ 34 levels "Argentina","Australia",..: 17 29 34 6 17 18 34 14 33 34 ...
## $ city.state : Factor w/ 153 levels "Aarhus","Adelaide",..: 141 140 150 99 38 64 102 7 39 144 ...
## $ acceptance_rate: Factor w/ 87 levels "","1%","10%",..: 8 1 50 80 4 48 60 1 51 1 ...
## $ publication : Factor w/ 300 levels "100,167","100,238",..: 272 296 113 293 236 255 98 18 112 250 ...
## $ website : Factor w/ 295 levels "auburn.edu","bc.edu",..: 120 119 1 117 219 3 2 6 124 123 ...
## $ phone_no : Factor w/ 297 levels "","+1 (204) 474 8880",..: 96 285 209 137 39 265 256 253 273 212 ...
## $ address : Factor w/ 300 levels "1 Gwanak-ro, Gwanak-gu\n Seoul, Seoul, 151-742 \nSouth Korea",..: 205 275 247 167 152 213 30 217 195 215 ...
## $ rank : int 150 61 83 88 60 204 133 49 193 76 ...
## $ publications : int 89633 99086 36231 97754 74922 82676 25757 107676 36150 80596 ...
## $ acceptance_num : int 15 NA 57 86 11 55 67 NA 58 NA ...
Ejecutar esta instrucciones para limpiar los datos y dejar solo las variable de interés
datos <- select(datos_bruto, publications, rank)
str(datos)
## 'data.frame': 300 obs. of 2 variables:
## $ publications: int 89633 99086 36231 97754 74922 82676 25757 107676 36150 80596 ...
## $ rank : int 150 61 83 88 60 204 133 49 193 76 ...
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(1300)
muestra <- datos[sample(x = 1:nrow(datos), size = round(nrow(datos) * 0.20), replace = FALSE), ]
muestra
## publications rank
## 132 59274 163
## 99 168516 96
## 101 177518 23
## 6 82676 204
## 249 91913 71
## 244 57373 91
## 175 148394 27
## 298 95497 56
## 136 44721 138
## 160 184212 33
## 37 60031 157
## 29 178305 22
## 271 87773 92
## 130 68575 100
## 81 110735 169
## 47 107016 67
## 142 49569 169
## 44 38355 132
## 3 36231 83
## 292 72575 194
## 279 54472 166
## 68 59116 135
## 19 37571 79
## 180 72332 122
## 170 40788 176
## 143 191386 20
## 166 247701 6
## 28 45569 41
## 181 136745 73
## 232 52681 149
## 53 104130 196
## 223 227099 17
## 286 82976 95
## 204 71719 113
## 195 54962 126
## 288 43001 16
## 263 261987 16
## 14 94862 111
## 121 287025 2
## 289 44145 234
## 246 42254 216
## 95 60015 111
## 140 46247 168
## 27 63645 136
## 261 86041 177
## 147 44011 192
## 291 147171 44
## 190 58581 168
## 109 72493 190
## 59 97889 89
## 102 50791 40
## 118 99504 74
## 174 44002 46
## 275 270033 8
## 80 90533 114
## 151 67014 174
## 83 106518 154
## 168 160816 46
## 2 99086 61
## 217 56037 46
¿De cuántos registros es la muestra?
resultado = length(muestra$publications + muestra$rank)
paste("Muestra de: ", resultado)
## [1] "Muestra de: 60"
Convarianza entre publications y rank ¿Cuál es el valor de la covarianza?
covarianzita = cov(muestra$publications, muestra$rank)
paste("La covarianza es de: ", covarianzita)
## [1] "La covarianza es de: -2545513.90338983"
Correlación \(r\) entre publications y rank ¿Cuál es el valor de la correlación de Pearson y cómo se interpreta?
correlacioncita = cor(muestra$publications, muestra$rank)
paste("La correlación es de: ", correlacioncita)
## [1] "La correlación es de: -0.626375989592341"
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?
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 modelos de regresión: summary(modelo)
regresioncita = lm(data = muestra, formula = rank ~ publications)
summary(regresioncita)
##
## Call:
## lm(formula = rank ~ publications, data = muestra)
##
## Residuals:
## Min 1Q Median 3Q Max
## -122.289 -29.899 -4.804 34.851 96.424
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 165.0763992 11.8985244 13.87 < 0.0000000000000002 ***
## publications -0.0006230 0.0001018 -6.12 0.0000000865 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 49.98 on 58 degrees of freedom
## Multiple R-squared: 0.3923, Adjusted R-squared: 0.3819
## F-statistic: 37.45 on 1 and 58 DF, p-value: 0.00000008649
¿Cuál es el valor del estadístico R Square en el modelo de regresión construído y cómo se interpreta?
squarecito = summary(regresioncita)$r.squared
print("Representa el 39.23 % de la variabilidad de su variable dependiente.")
## [1] "Representa el 39.23 % de la variabilidad de su variable dependiente."
paste("El valor del R Square es de: ", squarecito)
## [1] "El valor del R Square es de: 0.392346880337784"
\[ 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?
coeficiencitos = coef(regresioncita)
a = coeficiencitos[1]
b = coeficiencitos[2]
paste("El coeficiente a es: ", a)
## [1] "El coeficiente a es: 165.076399159491"
paste("El coeficiente b es: ", b)
## [1] "El coeficiente b es: -0.00062295570226393"
¿Cómo se observa la línea de tendencia?
f_linea_tendencia_reg_lineal(muestra, regresioncita)
prediccionsita = predict(regresioncita, data.frame(publications = 15000))
paste("La predicción es apróximadamente de: ", prediccionsita)
## [1] "La predicción es apróximadamente de: 155.732063625532"
prediccionsita = predict(regresioncita, data.frame(publications = 20000))
paste("La predicción es apróximadamente de: ", prediccionsita)
## [1] "La predicción es apróximadamente de: 152.617285114212"
prediccionsita = predict(regresioncita, data.frame(publications = 25000))
paste("La predicción es apróximadamente de: ", prediccionsita)
## [1] "La predicción es apróximadamente de: 149.502506602892"
En este trabajo se ha elaborado un documento markdown que describe la relación entre dos variables numéricas de publications y rank, de una muestra del conjunto de datos. Para ello, se ha utilizado el análisis exploratorio de datos, la covarianza, la correlación y la regresión lineal simple. Los resultados obtenidos muestran que existe una relación inversa entre las dos variables, es decir, a mayor número de publications menor es el rank. Esta relación es moderadamente fuerte y estadísticamente significativa, según el coeficiente de correlación. La recta de regresión lineal simple ajusta bien los datos y permite estimar el valor de rank a partir del valor de publications. Esta información puede ser útil para evaluar el desempeño académico de las universidades y simular predicciones de la variable dependiente rank.
¿El modelo es eficiente por encima del 60% en Multiple R Suqare? , ¿se acepta o se descarta?
En este caso el modelo no es eficiente porque nuestro R Square es 39.23 %, por lo tanto, se descarta. No es un modelo adecuado.
El valor de la covarianza es: -2545513.90338983
Significa que las variables tienden a moverse en direcciones opuestas, ya que son negativas.
El valor de la correlación es: -0.626375989592341.
Significa que la relación es inversa y linealmente negativa.
El valor de los coeficientes en la regresión son:
a =165.076399159491.
b = -0.00062295570226393.
El punto a indica el punto donde la línea de regresión cruza el eje vertical (eje y). El punto b indica como cambia la variable dependiente en respuesta a un cambio unitario en la variable predictora(en este caso fue una relación inversa).
Las predicciones fueron:
155.732063625532 para 15000 publicaciones.
152.617285114212 para 20000 publicaciones.
149.502506602892 para 25000 publicaciones.
Significa la estimación del valor esperado respecto a la variable dependiente. Dicho en otra palabras, entre más publicaciones existan estará posicionado en un lugar más alto del ranking.