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)
## '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(1316)
muestra <- datos[sample(x = 1:nrow(datos), size = round(nrow(datos) * 0.20), replace = FALSE), ]
muestra
## publications rank
## 183 34363 126
## 105 65144 91
## 191 81584 80
## 280 51711 199
## 52 107043 74
## 89 150565 25
## 164 155482 34
## 39 68328 167
## 95 60015 111
## 278 209504 15
## 35 90932 19
## 120 45185 129
## 190 58581 168
## 203 96816 69
## 16 52453 77
## 231 164047 29
## 27 63645 136
## 119 183572 110
## 94 169284 28
## 212 80122 83
## 238 78874 179
## 56 57371 153
## 106 50624 76
## 117 123239 159
## 295 97744 136
## 267 110449 63
## 226 145451 57
## 297 198095 11
## 59 97889 89
## 185 76010 124
## 163 241635 5
## 173 56979 176
## 188 174050 32
## 227 62717 186
## 257 40752 67
## 248 261797 48
## 279 54472 166
## 260 185242 26
## 77 144724 47
## 141 54629 182
## 23 210564 13
## 137 188228 54
## 71 63164 116
## 265 75185 146
## 222 124921 124
## 277 76861 184
## 125 117251 109
## 286 82976 95
## 44 38355 132
## 197 80199 133
## 28 45569 41
## 91 99156 166
## 62 40059 178
## 169 72006 84
## 76 242073 4
## 294 87102 134
## 217 56037 46
## 259 76418 138
## 126 109500 62
## 46 41162 136
¿De cuántos registros es la muestra?
Convarianza entre publications y rank ¿Cuál es el valor de la covarianza ?
cor(datos)
## publications rank
## publications 1.0000000 -0.5706275
## rank -0.5706275 1.0000000
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(datos$publications, datos$rank)
r
## [1] -0.5706275
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?
ggplot(data = datos, aes(x = publications, y = rank)) +
geom_point(colour = 'blue')
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 = datos, formula = rank~publications)
modelo
##
## Call:
## lm(formula = rank ~ publications, data = datos)
##
## Coefficients:
## (Intercept) publications
## 154.1858470 -0.0005367
¿Cuál es el valor del estadístico R Square en el modelo de regresión construído y cómo se interpreta?
r_cuadrado <- summary(modelo)$r.squared
r_cuadrado
## [1] 0.3256157
\[ 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?
modelo=lm(data = datos,formula=rank ~ publications)
a=modelo$coefficients[1]
b=modelo$coefficients[2]
modelo
##
## Call:
## lm(formula = rank ~ publications, data = datos)
##
## Coefficients:
## (Intercept) publications
## 154.1858470 -0.0005367
¿Cómo se observa la linea de tendencia?
ggplot() +
geom_point(data = datos, aes(x = publications, y = rank), colour='blue') +
geom_point(aes(x= mean(datos$publications), y = mean(datos$rank)), col = 'green') +
geom_line(aes( x = datos$publications, y = predict(modelo, datos)), color = "red") +
xlab("publications") +
ylab("rank") +
ggtitle("Linea de tendencia sobre Conjunto de Datos")
nuevos_datos <- data.frame(publications = 15000)
predicciones <- predict(modelo, newdata = nuevos_datos)
predicciones
## 1
## 146.1356
nuevos_datos <- data.frame(publications = 20000)
predicciones <- predict(modelo, newdata = nuevos_datos)
predicciones
## 1
## 143.4522
nuevos_datos <- data.frame(publications = 25000)
predicciones <- predict(modelo, newdata = nuevos_datos)
predicciones
## 1
## 140.7688
al menos 50 palabras
¿El modelo es eficiente por encima del 60% en Multiple R Suqare? , ¿se acepta o se descarta? Se considera que un valor de R cuadrado por encima del 60% es bastante bueno y sugiere que el modelo es eficiente. Sin embargo, la interpretación y aceptación del modelo también dependerán de otros factores, como el contexto del estudio, la significancia estadística de los coeficientes, la validez de las suposiciones del modelo y la interpretación práctica de los resultados.
Se cargaron los datos de universidades con 300 observaciones de las cuales se extrae una muestra el 20% que equivale a 60 observaciones
El valor de la covarianza es: -0.5706275 y significa que hay una relación inversa moderada entre las variables. Una covarianza negativa sugiere que a medida que una variable aumenta, la otra tiende a disminuir.
El valor de la correlación es: -0.5706275 y significa una correlación negativa moderada entre las variables. Una correlación negativa sugiere que a medida que una variable aumenta, la otra tiende a disminuir.
El valor de los coeficientes en la regresión son: 154.1858470 y significan el cambio esperado en la variable dependiente (y) por cada unidad de cambio en la variable independiente (x). Sin conocer el contexto y las unidades de las variables, es difícil proporcionar una interpretación precisa.
Las predicciones fueron 146.1356, 143.4522, 140.7688 para cada valor de x son los valores estimados de la variable dependiente (x) basados en el modelo de regresión.