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(2023)
muestra <- datos[sample(x = 1:nrow(datos), size = round(nrow(datos) * 0.20), replace = FALSE), ]
muestra
##     publications rank
## 243       176141   38
## 282        93456  106
## 44         38355  132
## 193        57498  110
## 29        178305   22
## 49         99103  116
## 133       144192   41
## 72         65006  165
## 207        92009  108
## 45         52663  132
## 260       185242   26
## 224        73560  112
## 294        87102  134
## 280        51711  199
## 137       188228   54
## 166       247701    6
## 169        72006   84
## 242        63169   40
## 95         60015  111
## 295        97744  136
## 176        59554   75
## 30         78063  178
## 33         87775  120
## 70        130650  177
## 196        61271  161
## 198       100167   87
## 40         60237  152
## 152        99036  107
## 71         63164  116
## 160       184212   33
## 46         41162  136
## 110        35120  149
## 172       260850    7
## 228        54930  126
## 145        68176  183
## 271        87773   92
## 289        44145  234
## 241       232058   12
## 218        74126   90
## 114       143641   35
## 171       179956   30
## 121       287025    2
## 107        70384  134
## 188       174050   32
## 190        58581  168
## 208        56904  176
## 234        48417   94
## 212        80122   83
## 265        75185  146
## 122       105481  165
## 64        103846  145
## 195        54962  126
## 291       147171   44
## 299        41257  161
## 62         40059  178
## 253        90361  147
## 20         60672  142
## 209        52599  197
## 182        48999   76
## 178        60512  185

¿De cuántos registros es la muestra?

Determinar la covarianza de muestra

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

# Pendiente
cov(muestra)
##              publications         rank
## publications   3656772777 -2686838.211
## rank             -2686838     3323.201

Determinar la correlación de muestra

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

# Pendiente
cor(muestra)
##              publications       rank
## publications    1.0000000 -0.7707512
## rank           -0.7707512  1.0000000

Diagrama de dispresión de muestra

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?

# Pendiente
f_diag.dispersion(muestra)

Regresión de muestra

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

# Pendiente
modelo <- lm(data = muestra, formula = rank ~ publications)
summary(modelo)
## 
## Call:
## lm(formula = rank ~ publications, data = muestra)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -95.704 -22.010  -4.432  25.412  90.878 
## 
## Coefficients:
##                  Estimate   Std. Error t value             Pr(>|t|)    
## (Intercept)  182.11774104   9.21492369  19.763 < 0.0000000000000002 ***
## publications  -0.00073476   0.00007975  -9.213    0.000000000000592 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 37.04 on 58 degrees of freedom
## Multiple R-squared:  0.5941, Adjusted R-squared:  0.5871 
## F-statistic: 84.88 on 1 and 58 DF,  p-value: 0.0000000000005917

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?

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?

# Pendiente
a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a; b
## (Intercept) 
##    182.1177
##  publications 
## -0.0007347567

Linea de tendencia

¿Cómo se observa la línea de tendencia?

# Pendiente
f_linea_tendencia_reg_lineal(datos = muestra, modelo = modelo)

Predicciones

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

# Pendiente
x = 15000
pred1 <- predict(object = modelo, newdata = data.frame(publications = x))
paste("La predicción para un valor de x igual a ", x, " es: ", round(pred1, 4))
## [1] "La predicción para un valor de x igual a  15000  es:  171.0964"

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

x = 20000
pred1 <- predict(object = modelo, newdata = data.frame(publications = x))
paste("La predicción para un valor de x igual a ", x, " es: ", round(pred1, 4))
## [1] "La predicción para un valor de x igual a  20000  es:  167.4226"

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

x = 25000
pred1 <- predict(object = modelo, newdata = data.frame(publications = x))
paste("La predicción para un valor de x igual a ", x, " es: ", round(pred1, 4))
## [1] "La predicción para un valor de x igual a  25000  es:  163.7488"

Intrepretación

al menos 50 palabras

¿El modelo es eficiente por encima del 60% en Multiple R Suqare? , ¿se acepta o se descarta?