library(tidyverse)
## -- Attaching packages ----------------------------------------------------------------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.0 v purrr 0.3.4
## v tibble 3.0.3 v dplyr 0.8.5
## v tidyr 1.1.0 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.5.0
## Warning: package 'tibble' was built under R version 4.0.2
## -- Conflicts -------------------------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
Si listamos los primeros seis números primos: 2, 3, 5, 7, 11, y 13, podemos ver que el 6to primo es el 13. ¿Cuál es el primo número 1000?. Recordar: En matemáticas, un número primo es un número natural mayor que 1 que tiene únicamente dos divisores positivos distintos: él mismo y el 1.
Resolución:
Diagrama de flujo:
numero_primo <- function(que_numero) {
n=10000
if (n >= 2) {
x = seq(2, n)
numero = c()
for (i in seq(2, n)) {
if (any(x == i)) {
numero = c(numero, i)
x = c(x[(x %% i) != 0], i)
}
}
return((numero)[que_numero])
}
else
{ FALSE
}
}
numero_primo(que_numero=1000)
## [1] 7919
¿Cual es la probabilidad de obtener una generala, para cinco dados al cabo de 3 intentos (es decir un turno)? (ver https://es.wikipedia.org/wiki/Generala )
Resolución:
Generala: se forma cuando después del segundo o tercer tiro se logran los cinco dados con un mismo número y vale 60 puntos. Cuando esto se logra de un solo tiro, se llama generala servida y el jugador automáticamente gana el juego.
dado1<-as.character(1:6) ##Primer Dado
dado2<-as.character(1:6) ##Segundo Dado
dado3<-as.character(1:6) ##Tercer Dado
dado4<-as.character(1:6) ##Cuarto Dado
dado5<-as.character(1:6) ##Quinto Dado
##Espacio muestral en forma de DataFrame
espacio_muestral<-expand.grid(dado1,dado2, dado3, dado4, dado5)
colnames(espacio_muestral)<-c('D1','D2', 'D3', 'D4', 'D5')
Generala <-espacio_muestral %>%
filter(D1==1 & D2==1 & D3==1 & D4==1 & D5==1 |
D1==2 & D2==2 & D3==2 & D4==2 & D5==2 |
D1==3 & D2==3 & D3==3 & D4==3 & D5==3 |
D1==4 & D2==4 & D3==4 & D4==4 & D5==4 |
D1==5 & D2==5 & D3==5 & D4==5 & D5==5 |
D1==6 & D2==6 & D3==6 & D4==6 & D5==6)
Generala
## D1 D2 D3 D4 D5
## 1 1 1 1 1 1
## 2 2 2 2 2 2
## 3 3 3 3 3 3
## 4 4 4 4 4 4
## 5 5 5 5 5 5
## 6 6 6 6 6 6
# Probabilidad de obtener una generala servida (un lanzamiento) es de :
prob_generala_servida <- nrow(Generala)/nrow(espacio_muestral)
# Probabilidad de obtener una generala en dos lanzamientos es :
prob_generala_2<- (nrow(Generala)/nrow(espacio_muestral) *2)
# Probabilidad de obtener una generala en tres lanzamientos es :
prob_generala_3<- (nrow(Generala)/nrow(espacio_muestral) *3)
La probabilidad de obtener una generala servida (un lanzamiento) es de 7.7160494^{-4}
La probabilidad de obtener una generala en dos lanzamientos es 0.0015432
La probabilidad de obtener una generala en tres lanzamientos es 0.0023148
Usar una reg. lineal para explicar la variable Pts (puntos) a partir de las variables Pts_2012_13, Pts_2013_14, Pts_2014, inversion_abs (inversión absoluta), inversion_relativa (inversión relativa), valor (valor en millones de euros), libertadores (si participó en el 2015 en la Copa Libertadores), sudamericana (si participó en el 2015 en la Copa Sudamericana), ascenso (si ascendió).
Resolución:
Importación de datos
datos_2015 <- read_delim("datos_2015.csv",
";", escape_double = FALSE, locale = locale(encoding = "WINDOWS-1252"),
trim_ws = TRUE)
## Parsed with column specification:
## cols(
## .default = col_double(),
## club = col_character()
## )
## See spec(...) for full column specifications.
head(datos_2015,10)
## # A tibble: 10 x 49
## club Pts_2012_13 Pts_2013_14 Pts_2014 inversion_abs inversion_relat~ valor
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Quil~ 50 45 12 6.33 0.651 13.2
## 2 Olim~ 0 50 19 2.25 0.255 10
## 3 Banf~ 0 0 20 7.55 0.591 16.9
## 4 Godo~ 0 0 20 3.4 0.301 13.1
## 5 Rosa~ 0 54 21 10.8 1.09 16.3
## 6 Defe~ 49 56 21 1.27 0.203 6.9
## 7 Gimn~ 0 57 24 2.25 0.246 10.3
## 8 Atlé~ 43 49 25 -2.15 -0.224 8.58
## 9 Estu~ 59 49 25 6.35 0.379 20.2
## 10 Aldo~ 74 56 25 0.18 0.0271 6.73
## # ... with 42 more variables: libertadores <dbl>, sudamericana <dbl>,
## # ascenso <dbl>, Pos <dbl>, Pts <dbl>, PJ <dbl>, PG <dbl>, PE <dbl>,
## # PP <dbl>, GF <dbl>, GC <dbl>, Dif <dbl>, Pos_Fecha_1 <dbl>,
## # Pos_Fecha_2 <dbl>, Pos_Fecha_3 <dbl>, Pos_Fecha_4 <dbl>, Pos_Fecha_5 <dbl>,
## # Pos_Fecha_6 <dbl>, Pos_Fecha_7 <dbl>, Pos_Fecha_8 <dbl>, Pos_Fecha_9 <dbl>,
## # Pos_Fecha_10 <dbl>, Pos_Fecha_11 <dbl>, Pos_Fecha_12 <dbl>,
## # Pos_Fecha_13 <dbl>, Pos_Fecha_14 <dbl>, Pos_Fecha_15 <dbl>,
## # Pos_Fecha_16 <dbl>, Pos_Fecha_17 <dbl>, Pos_Fecha_18 <dbl>,
## # Pos_Fecha_19 <dbl>, Pos_Fecha_20 <dbl>, Pos_Fecha_21 <dbl>,
## # Pos_Fecha_22 <dbl>, Pos_Fecha_23 <dbl>, Pos_Fecha_24 <dbl>,
## # Pos_Fecha_25 <dbl>, Pos_Fecha_26 <dbl>, Pos_Fecha_27 <dbl>,
## # Pos_Fecha_28 <dbl>, Pos_Fecha_29 <dbl>, Pos_Fecha_30 <dbl>
Selección de las variables, dependiente = Pts, y variables independientes = Pts_2012_13, Pts_2013_14, Pts_2014, inversion_abs, inversion_relativa, valor, libertadores,sudamericana y ascenso
datos_2015 <- datos_2015 %>%
select(Pts,Pts_2012_13, Pts_2013_14, Pts_2014, inversion_abs, inversion_relativa, valor, libertadores,sudamericana, ascenso ) %>%
arrange(desc(Pts))
head(datos_2015,10)
## # A tibble: 10 x 10
## Pts Pts_2012_13 Pts_2013_14 Pts_2014 inversion_abs inversion_relat~ valor
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 64 51 61 31 8.53 0.248 38.8
## 2 61 58 60 26 0.75 0.0200 37.8
## 3 59 0 54 21 10.8 1.09 16.3
## 4 57 62 33 41 -2.9 -0.139 19.4
## 5 54 0 0 33 4.3 0.294 16.9
## 6 51 59 49 25 6.35 0.379 20.2
## 7 51 48 59 31 -0.05 -0.00568 8.78
## 8 50 0 0 20 7.55 0.591 16.9
## 9 49 64 58 39 11.2 0.298 43.4
## 10 46 34 49 26 2.97 0.239 14.0
## # ... with 3 more variables: libertadores <dbl>, sudamericana <dbl>,
## # ascenso <dbl>
Modelo de Regresión Lineal
mod <- lm(Pts ~ ., data=datos_2015)
summary(mod)
##
## Call:
## lm(formula = Pts ~ ., data = datos_2015)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12.1568 -3.9097 -0.2494 3.4886 15.7965
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 15.058086 7.459359 2.019 0.0571 .
## Pts_2012_13 -0.084927 0.103988 -0.817 0.4237
## Pts_2013_14 0.008748 0.106711 0.082 0.9355
## Pts_2014 0.575616 0.223596 2.574 0.0181 *
## inversion_abs -2.173272 1.268791 -1.713 0.1022
## inversion_relativa 40.110542 15.874772 2.527 0.0201 *
## valor 0.834816 0.338797 2.464 0.0229 *
## libertadores 3.896544 5.391639 0.723 0.4782
## sudamericana -1.348871 3.915157 -0.345 0.7340
## ascenso 7.400458 5.703893 1.297 0.2092
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.973 on 20 degrees of freedom
## Multiple R-squared: 0.7028, Adjusted R-squared: 0.5691
## F-statistic: 5.256 on 9 and 20 DF, p-value: 0.0009804
Se observa en la columa “Estimate” el efecto que ejercen las variables independientes sobre la variable dependiente. Asimismo, la columna Pr(>|t|) nos permite visualizar las variables estadísticamente significativas.
Para este modelo observamos que las variables Pts_2014, inversion_relativa y tienen un valor de Pr(>|t|) menor a 0.05, aceptando un intervalo de confianza del 95%.
El valor de R-squared es calculado a partir de los residuos, el cual varía entre 0 y 1 y debería ser lo más alto posible. Para este modelo se obtuvo un R-squared de 0.7028 y un Adjusted R-squared de 0.5691.
residuals(mod)
## 1 2 3 4 5 6
## 7.1717992 0.7096424 -2.3649342 2.5119302 4.7550098 4.0324764
## 7 8 9 10 11 12
## 15.7964906 2.0187893 -9.9899193 4.9899541 3.4888285 1.0411590
## 13 14 15 16 17 18
## -2.0091453 13.4360356 2.6312468 3.2642099 9.2053469 -4.1143333
## 19 20 21 22 23 24
## 3.4879176 -2.1105457 -10.1748466 -2.6336160 -4.4359289 -2.5162024
## 25 26 27 28 29 30
## -1.2085153 -6.3325750 -3.2956154 -9.1064610 -6.0914183 -12.1567796
Plot de los residuos del modelo calculado
par(mfrow=c(2,2)) # Change the panel layout to 2 x 2
plot(mod)
Análisis de los Residuos
Este gráfico muestra si los residuos tienen patrones no lineales. Se puede evidenciar en este primer gráfico que los residuos se presentan en general distribuidos equitativamente por encima y por debajo de la línea horizontal, por lo cual no se observa patrones no lineales.
Este gráfico muestra si los residuos son distribuidos de forma normal. En este caso se muestra que los residuos se distribuyen linealmente a través de la línea punteada, lo cual es aceptable. Sin embargo se observan dos casos asilados, el N° 14 y el N°7.
Este gráfico muestra si los residuos están distribuidos equitativamente a lo largo de los rangos de las variables predictoras. Se muestra en este gráfico para este modelo en particular que los residuos se disribuyen efectiavemnte equitativamente y en forma dispersa a lo largo de la línea horizontal.
Este gráfico nos ayuda a identificar casos influyentes en el modelo.
Se puede observar en este gráfico y para este modelo que los residuos se encuentran distribuidos dentro de las líneas de Cook´s distance por lo cual nos indica que en general no se encuentran valores que influyen fuertemente en el modelo.