Alumnos:

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)

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

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(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.

Determinar la covarianza

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

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?

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

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

Regresión

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

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?

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

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?

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

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 Conjunto de Datos")

Predicciones

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

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.

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

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.

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

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.

Intrepretación

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.