Objetivo

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.

Descripción

Desarrollo

Cargar librerías

library(ggplot2)
library(readr)
library(dplyr)
library(knitr)
library(DT)
library(mosaic)
library(PerformanceAnalytics) # Para coorelaciones gráficas

Cargar funciones preparadas

source("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/funciones/funciones%20para%20dispersion%20correlacion%20regresion.R", encoding = "UTF-8")

Cargar datos

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-1-1 Tennodai\n Tsukuba, Ibaraki, 305-8577 \nJapan",..: 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 ...

Transformar datos

Seleccionar solo las variables de interés publications y rank

Ejecutar esta instrucciones para limpiar los datos y dejar solo las variable de interés

  • publications_Variable x independiente
  • rank: variabel y dependiente
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 ...

Determinar una muestra del 20%

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(1091)
muestra <- datos[sample(x = 1:nrow(datos), size = round(nrow(datos) * 0.20), replace = FALSE), ]
muestra
##     publications rank
## 36         92538   87
## 61        222807   14
## 134       153863  123
## 195        54962  126
## 41         51928  102
## 184       142627   37
## 288        43001   16
## 222       124921  124
## 17         66210  172
## 2          99086   61
## 229        57197  170
## 59         97889   89
## 224        73560  112
## 290        49351  156
## 140        46247  168
## 42         41512   94
## 179       104806   58
## 192        90413   91
## 297       198095   11
## 169        72006   84
## 104       147074   39
## 53        104130  196
## 190        58581  168
## 96        208615   24
## 248       261797   48
## 107        70384  134
## 156       104483  101
## 217        56037   46
## 81        110735  169
## 284        95375   72
## 141        54629  182
## 276        81979  117
## 287        47281   37
## 296        96097   68
## 14         94862  111
## 234        48417   94
## 221       305066    3
## 275       270033    8
## 123        55990   15
## 85         64302  201
## 172       260850    7
## 143       191386   20
## 171       179956   30
## 129       109945   86
## 144        44656  100
## 252        64274  154
## 202       202516   21
## 201        96408  103
## 191        81584   80
## 282        93456  106
## 120        45185  129
## 27         63645  136
## 112        73582  175
## 147        44011  192
## 39         68328  167
## 199        88028  127
## 76        242073    4
## 47        107016   67
## 56         57371  153
## 38         58127  135

¿De cuántos registros es la muestra?

  • La muestra corresponde a 60 datos.

Determinar la covarianza

Convarianza entre publications y rank ¿Cuál es el valor de la covarianza ?

covarianza <- cov(x = muestra$publications, y = muestra$rank, )
paste("El valor de la covarianza es ",covarianza)
## [1] "El valor de la covarianza es  -2532614.89265537"

Determinar la correlación

Correlación \(r\) entre publications y rank ¿Cuál es el valor de la correlación de Pearson y cómo se interpreta?

r <- cor(x = muestra$publications, y = muestra$rank)
paste("El valor de la correlación es ",r)
## [1] "El valor de la correlación es  -0.653814284231175"

Diagrama de dispresión

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(muestra)

Regresión

Construir el modelo de regresión entre publications y rank ¿Cuáles son los estadísticos del modelos de regresión: summary(modelo)

modelo <- lm(data = muestra, formula = rank~publications)
modelo
## 
## Call:
## lm(formula = rank ~ publications, data = muestra)
## 
## Coefficients:
##  (Intercept)  publications  
##  155.4905481    -0.0005647

Valor del R Square

¿Cuál es el valor del estadístico R Square en el modelo de regresión construído y cómo se interpreta?

rsquare = r ^ 2
paste("El valor del R Square es ",rsquare)
## [1] "El valor del R Square es  0.427473118264723"

Coeficientes a y b

\[ 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?

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a 
## (Intercept) 
##    155.4905
b
##  publications 
## -0.0005647431

Linea de tendencia

¿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 muestra")

Predicciones

¿Cuál es la predicción del ranking (rank) para un valor de publications igual a 15000?

x <- c(15000)
prediccion <- predict(object = modelo, newdata = data.frame(publications = x))
prediccion
##        1 
## 147.0194

¿Cuál es la predicción del ranking (rank) para un valor de publications igual a 20000?

x <- c(20000)
prediccion <- predict(object = modelo, newdata = data.frame(publications = x))
prediccion
##        1 
## 144.1957

¿Cuál es la predicción del ranking (rank) para un valor de publications igual a 25000?

x <- c(25000)
prediccion <- predict(object = modelo, newdata = data.frame(publications = x))
prediccion
##       1 
## 141.372

Intrepretación

Comenzamos el caso generando una muestra de 60 datos del total de 300 datos que eran en un inicio, usando la semilla 1091, iniciamos interpretando el diagrama de dispersión observando que está notablemente inclinada hacía la izquierda, estando cerca de la línea de tendencias, y sobre la correlación podemos decir que entre más publicaciones mejor el ranking. Las predicciones pueden decir que a más publicaciones el ranking sube, comprobando de otra manera lo que mencionamos anteriormente sobre la correlación.