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(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?
Convarianza entre publications y rank ¿Cuál es el valor de la covarianza ?
covarianza <- cov(datos)
covarianza
## publications rank
## publications 3522304522 -1890356.818
## rank -1890357 3115.698
Correlación \(r\) entre publications y rank ¿Cuál es el valor de la correlación de Pearson y cómo se interpreta?
correlacion<- cov2cor(covarianza)
correlacion
## publications rank
## publications 1.0000000 -0.5706275
## rank -0.5706275 1.0000000
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(datos))
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(datos)
summary(modelo)
##
## Call:
## lm(formula = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -115734 -27672 334 22493 318592
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 160086.80 5844.92 27.39 <0.0000000000000002 ***
## rank -606.72 50.58 -11.99 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 48820 on 298 degrees of freedom
## Multiple R-squared: 0.3256, Adjusted R-squared: 0.3234
## F-statistic: 143.9 on 1 and 298 DF, p-value: < 0.00000000000000022
¿Cuál es el valor del estadístico R Square en el modelo de regresión construído y cómo se interpreta? 0.3234 el modelo de regresión explica el 32.34% de la variabilidad de la variable dependiente. ## 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)
## 160086.8
b
## rank
## -606.7202
¿Cómo se observa la linea de tendencia?
modelo <- lm(datos)
plot(datos, main = "Gráfico de dispersión", xlab = "Variable Independiente", ylab = "Variable Dependiente")
abline(modelo)
valor_publications<-(15000)
prediccion<-a+b*valor_publications
prediccion
## (Intercept)
## -8940716
valor_publications<-(20000)
prediccion<-a+b*valor_publications
prediccion
## (Intercept)
## -11974317
valor_publications<-(25000)
prediccion<-a+b*valor_publications
prediccion
## (Intercept)
## -15007918
Para este examen/caso, utilizamos la covarianza, la correlacion y los digramas de dispersion, la regresion, entre otras cosas, para poder sacar un conjunto de informacion representada en graficos y en texto, de nuestros datos, las tecnicas que usamos son esenciales para poder tener exactitud en nuestra representacion de datos.
RStudio es una buena forma de comprobar datos, y practicar las formulas de los casos dados.