Ver Documentos útilizados en la práctica

Revisar documento pdf,csv y puedes cargar el archivo en R markdown Ir a enlace de recursos

Load Library

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

Pregunta 1

Supongamos que tenemos los puntos p1= (0,2), p2=(1,2) y p3=(1,8) y queremos hacer una regresión lineal. ¿Cuál sería el valor constante para el modelo base de este conjunto de datos? Rpta: Modelo base es la media: 4

poinst<-data.frame("X"=c(0,1,1),"Y"=c(2,2,8))
mean(poinst$Y)
## [1] 4

Pregunta 2

Supongamos que tenemos los puntos p1= (0,2), p2=(1,2) y p3=(1,8) y queremos hacer una regresión lineal. Probamos con la recta y=3x+2. ¿Cuál es el valor para este modelo de la medida SSE? Rpta: 18

modelo_simple <- lm(data = poinst,formula = Y ~ X)
modelo_simple
## 
## Call:
## lm(formula = Y ~ X, data = poinst)
## 
## Coefficients:
## (Intercept)            X  
##           2            3
SSE <- sum(modelo_simple$residuals^2)
SSE
## [1] 18

Pregunta 3

Supongamos que tenemos los puntos p1= (0,2), p2=(1,2) y p3=(1,8) y queremos hacer una regresión lineal. Probamos con la recta y=3x+2. ¿Cuál es el valor para este modelo de la medida SST? Rpta: 24

  SST <- sum((poinst$Y-mean(poinst$Y))^2)
SST;
## [1] 24

Pregunta 4

Supongamos que tenemos los puntos p1= (0,2), p2=(1,2) y p3=(1,8) y queremos hacer una regresión lineal. Probamos con la recta y=3x+2. ¿Cuál es el valor para este modelo de la medida R2? Rpta: R2= 0,25 ; Multiple R-squared=0,25

SSR <- SST - SSE
R2 <- SSR/SST
R2;
## [1] 0.25
summary(modelo_simple)
## 
## Call:
## lm(formula = Y ~ X, data = poinst)
## 
## Residuals:
##         1         2         3 
##  2.22e-16 -3.00e+00  3.00e+00 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)    2.000      4.243   0.471    0.720
## X              3.000      5.196   0.577    0.667
## 
## Residual standard error: 4.243 on 1 degrees of freedom
## Multiple R-squared:   0.25,  Adjusted R-squared:   -0.5 
## F-statistic: 0.3333 on 1 and 1 DF,  p-value: 0.6667

Pregunta 5

Para un conjunto de 180 registros y 20 variables, hemos conseguido un valor R2 de 0.81 utilizando 18 de ellas. ¿Cuál es el valor de R2 ajustado? Rpta: El coeficiente de determinación es 0,7887578 utilizando 18 variables

R2 <- 0.81
n <- 180
k <- 18
R2a <- 1-((n-1)/(n-k-1))*(1-R2)
R2a
## [1] 0.7887578

Pregunta 6

¿Cuántas de las variables de nuestro conjunto de datos son de tipo ‘Factor’? (Variables de texto que representan categorías) str(moneyball) Rpta: 2 (Team,League)

setwd("/home/jtorres/master/")
moneyball <- read.csv("baseball.csv")
glimpse(moneyball)
## Rows: 902
## Columns: 15
## $ Team         <chr> "ANA", "ARI", "ATL", "BAL", "BOS", "CHC", "CHW", "CIN", "…
## $ League       <chr> "AL", "NL", "NL", "AL", "AL", "NL", "AL", "NL", "AL", "NL…
## $ Year         <int> 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 200…
## $ RS           <int> 691, 818, 729, 687, 772, 777, 798, 735, 897, 923, 724, 74…
## $ RA           <int> 730, 677, 643, 829, 745, 701, 795, 850, 821, 906, 876, 74…
## $ W            <int> 75, 92, 88, 63, 82, 88, 83, 66, 91, 73, 66, 76, 93, 65, 8…
## $ OBP          <dbl> 0.327, 0.341, 0.324, 0.319, 0.334, 0.336, 0.334, 0.324, 0…
## $ SLG          <dbl> 0.405, 0.442, 0.412, 0.380, 0.439, 0.430, 0.451, 0.419, 0…
## $ BA           <dbl> 0.261, 0.267, 0.260, 0.248, 0.266, 0.261, 0.268, 0.262, 0…
## $ Playoffs     <int> 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, …
## $ RankSeason   <int> NA, 5, 7, NA, NA, NA, NA, NA, 6, NA, NA, NA, 4, NA, NA, N…
## $ RankPlayoffs <int> NA, 1, 3, NA, NA, NA, NA, NA, 4, NA, NA, NA, 4, NA, NA, N…
## $ G            <int> 162, 162, 162, 162, 161, 162, 162, 162, 162, 162, 162, 16…
## $ OOBP         <dbl> 0.331, 0.311, 0.314, 0.337, 0.329, 0.321, 0.334, 0.341, 0…
## $ OSLG         <dbl> 0.412, 0.404, 0.384, 0.439, 0.393, 0.398, 0.427, 0.455, 0…
# Procedimiento para analizar variables tipo factor
# countColumn <- function(df,numColumn){
#   headtitle <- unique(names(df))
#   conteo <- (data.frame(col=moneyball[,c(headtitle[numColumn])]) %>% count(col))
#   names(conteo)[1] <- headtitle[numColumn]
#   return (conteo)
# }
# for(i in 1:length(unique(names(moneyball)))){
#   print(countColumn(moneyball,i))
# }
ggplot(moneyball, aes(Team)) + geom_bar()

ggplot(moneyball, aes(League)) + geom_bar()

Pregunta 7

Pregunta 1.7 (0.7 pts): ¿Cuál es el valor del primer cuartil (25%) de la variable RS? Rpta: 641,25

quantile(moneyball$RS)[2]
##    25% 
## 641.25

Pregunta 8

¿En qué año se produjo la peor diferencia de carreras? ¿Es decir, en qué año el registro RD es menor? Rpta: Diferencia: 896 y Año: 1962

moneyball$RD = moneyball$RS - moneyball$RA
moneyball[print(which.min(moneyball$RD)), ]$Year
## [1] 896
## [1] 1962
# Grafico de dispersión para ver cuantos partidos debe ganar un equipo para llegar a los Playoffs
# m <- ggplot(moneyball, aes(x = W, y = Team,color = factor(Playoffs)))+
#  geom_point() +
#  scale_color_manual(values = c("#000000", "#FF2D00"), name = "Made Playoffs")
# m + xlab("Wins") 

Pregunta 9

¿Cuál es el valor R2 de este modelo(W vs RD)? Rpta: 0,8808104

# Gráfico de dispersión que muestra la variable RD vs W para 
# ggplot(moneyball, aes(x = RD,y = W,color = factor(Playoffs))) +
#  geom_point() +
#  scale_color_manual(values = c("#000000", "#FF2D00"), name = "Made Playof fs")
modelW <- lm(W ~ RD, data = moneyball)
summary(modelW)["r.squared"]
## $r.squared
## [1] 0.8808104

Pregunta 10

Si, por lo que vimos anteriormente, necesitamos 95 victorias para pasar a los playoffs, ¿cuántas carreras más debemos hacer de las que debemos permitir? Es decir, si W = a0 + a1·RD y 95 ≤ W, entonces, ¿qué valor mínimo de RD cumple la siguiente ecuación? 95 ≤ a0 + a1·RD (donde a0 y a1 son los coeficientes del modelo generado en el ejercicio anterior que podemos ver con summary(modelW)) Rpta: RD mínimo=134

minWin <- 95
valMinRD <-(minWin - modelW$coefficients[1])/modelW$coefficients[2]
print(ceiling(valMinRD))
## (Intercept) 
##         134

Pregunta 11

Si repetimos el mismo modelo “modelRS” eliminando la variable BA. ¿Qué valor de R2 nos proporciona el nuevo modelo? Rpta: R2=0,9296

modelRS = lm(RS~OBP+SLG, data=moneyball)
summary(modelRS)
## 
## Call:
## lm(formula = RS ~ OBP + SLG, data = moneyball)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -70.838 -17.174  -1.108  16.770  90.036 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -804.63      18.92  -42.53   <2e-16 ***
## OBP          2737.77      90.68   30.19   <2e-16 ***
## SLG          1584.91      42.16   37.60   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 24.79 on 899 degrees of freedom
## Multiple R-squared:  0.9296, Adjusted R-squared:  0.9294 
## F-statistic:  5934 on 2 and 899 DF,  p-value: < 2.2e-16
# Modelo de regresión con 3 variables
# modelRS = lm(RS~OBP+SLG+BA, data=moneyball)
# summary(modelRS)

Pregunta 12

¿Cuál es la predicción para RS del modelo modelRS (summary(modelRS)) si utilizamos los valores anteriores de OBP y SLG? Rpta: RS=804,987

valObp <- c(0.339)
valSlg <- c(0.430)
dataTestRS <- data.frame("OBP"=valObp,"SLG"=valSlg)
str(dataTestRS)
## 'data.frame':    1 obs. of  2 variables:
##  $ OBP: num 0.339
##  $ SLG: num 0.43
predictRS <- predict(modelRS,newdata=dataTestRS)
print(predictRS)
##       1 
## 804.987

Pregunta 13

¿Cuál es la predicción para RA del modelo modelRA (summary(modelRA)) si utilizamos los valores anteriores de OOBP y OSLG? Rpta: RA=621,9258

modelRA = lm(RA~OOBP+OSLG, data=moneyball)
summary(modelRA)
## 
## Call:
## lm(formula = RA ~ OOBP + OSLG, data = moneyball)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -82.397 -15.178  -0.129  17.679  60.955 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -837.38      60.26 -13.897  < 2e-16 ***
## OOBP         2913.60     291.97   9.979 4.46e-16 ***
## OSLG         1514.29     175.43   8.632 2.55e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 25.67 on 87 degrees of freedom
##   (812 observations deleted due to missingness)
## Multiple R-squared:  0.9073, Adjusted R-squared:  0.9052 
## F-statistic: 425.8 on 2 and 87 DF,  p-value: < 2.2e-16
valOobp <- c(0.307)
valOsgl<- c(0.373)
dataTestRA <- data.frame("OOBP"=valOobp,"OSLG"=valOsgl)
str(dataTestRA)
## 'data.frame':    1 obs. of  2 variables:
##  $ OOBP: num 0.307
##  $ OSLG: num 0.373
predictRA <- predict(modelRA,newdata=dataTestRA)
print(predictRA)
##        1 
## 621.9258

Pregunta 14

Predice finalmente con los parámetros del modelo W (summary(modelW)) y los valores que acabamos de calcular para RS y RA el número de victorias del equipo en 2002. ¿Cuál es ese número de victorias? Rpta: número de victorias: 100

ajustadoRS <- 805 
ajustadoRA <- 622
ajustadoRD <- ajustadoRS-ajustadoRA
dataTestW<-data.frame("RD"=c(ajustadoRD))
valueWPredict <- predict(modelW,newdata=dataTestW)
print(valueWPredict)
##        1 
## 100.2365