El formato de respuesta es el siguiente:

Importante: Deben ser suprimidos los mensajes y warnings del informe. (3 puntos)

El control constará de cuatro partes la primera es predicción de regresión, la segunda será la predicción de árboles de decisión, la tercera de cluster y la última serán preguntas de desarrollo. Se utilizarán tres bases de datos distintas.

Limpie el entorno

Cargue todos los paquetes que necesita para trabajar con data.table, modelos de predicción de regresión, árboles de decisión, cluster y Cross-Validation. Además, cargue las bases de datos. (1 punto)

Importante: Verifique la clase (class) de las variables que vaya a utilizar en todos sus modelos y si es necesario transformarla a numérica o factor, hágalo!

Para la primera parte cuenta con el siguiente diccionario de variable (casas en París):

Resultado: Variable de clase (0 o 1)

Para la tecera parte tiene este diccionario de variables (tarjetas de crédito)

Enunciado

Parte 1

1. Realice dos modelos de regresión lineal multiple para predecir la variable price ¿Cuál predice mejor dentro de muestra?. Explique y calcule los criterios (8 puntos)

f1 <- formula(price ~.)
f2 <- formula(price ~ squareMeters+numberOfRooms+hasPool+cityPartRange)
regresion <- lm(formula = f1, data = houses_prices)
regresion2 <- lm(formula = f2, data = houses_prices)
summary(regresion)
## 
## Call:
## lm(formula = f1, data = houses_prices)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6988.9 -1192.2    -3.2  1198.7  7005.6 
## 
## Coefficients:
##                     Estimate Std. Error    t value Pr(>|t|)    
## (Intercept)        4.927e+03  4.092e+03      1.204 0.228666    
## squareMeters       1.000e+02  6.602e-04 151480.243  < 2e-16 ***
## numberOfRooms      2.518e-01  6.597e-01      0.382 0.702640    
## hasYard            3.012e+03  3.799e+01     79.289  < 2e-16 ***
## hasPool            2.977e+03  3.799e+01     78.365  < 2e-16 ***
## floors             5.454e+01  6.576e-01     82.943  < 2e-16 ***
## cityCode          -8.039e-04  6.547e-04     -1.228 0.219513    
## cityPartRange      4.737e+01  6.614e+00      7.162 8.51e-13 ***
## numPrevOwners     -3.957e-01  6.654e+00     -0.059 0.952580    
## made              -2.313e+00  2.040e+00     -1.134 0.256940    
## isNewBuilt         1.580e+02  3.800e+01      4.159 3.22e-05 ***
## hasStormProtector  1.412e+02  3.798e+01      3.718 0.000202 ***
## basement          -2.106e-03  6.604e-03     -0.319 0.749846    
## attic             -4.509e-03  6.563e-03     -0.687 0.492064    
## garage             1.134e-01  7.255e-02      1.563 0.117967    
## hasStorageRoom     1.949e+01  3.802e+01      0.512 0.608332    
## hasGuestRoom      -5.620e+00  5.984e+00     -0.939 0.347641    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1898 on 9983 degrees of freedom
## Multiple R-squared:      1,  Adjusted R-squared:      1 
## F-statistic: 1.436e+09 on 16 and 9983 DF,  p-value: < 2.2e-16
summary(regresion2)
## 
## Call:
## lm(formula = f2, data = houses_prices)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -6435  -2261   -262   1891  10864 
## 
## Coefficients:
##                Estimate Std. Error   t value Pr(>|t|)    
## (Intercept)   4.649e+03  9.789e+01    47.496  < 2e-16 ***
## squareMeters  1.000e+02  1.005e-03 99517.895  < 2e-16 ***
## numberOfRooms 8.806e-01  1.003e+00     0.878     0.38    
## hasPool       3.011e+03  5.784e+01    52.056  < 2e-16 ***
## cityPartRange 4.705e+01  1.007e+01     4.673 3.01e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2891 on 9995 degrees of freedom
## Multiple R-squared:      1,  Adjusted R-squared:      1 
## F-statistic: 2.476e+09 on 4 and 9995 DF,  p-value: < 2.2e-16
Observación: No obtendrá puntaje si compara un modelo de regresión de una variable.

2. Realice validación cruzada (CV) a los modelos de la pregunta anterior por el método K-folds con 10 folds. ¿Se mantienen las conclusiones anteriores?. (8 puntos)

set.seed(12345)
setupKCV <- trainControl(method = "cv" , number = 5)

predkfolds1<-train(f1,data=houses_prices,method="lm",trControl= setupKCV)

print(predkfolds1)
## Linear Regression 
## 
## 10000 samples
##    16 predictor
## 
## No pre-processing
## Resampling: Cross-Validated (5 fold) 
## Summary of sample sizes: 8000, 8000, 8000, 8000, 8000 
## Resampling results:
## 
##   RMSE      Rsquared   MAE     
##   1900.376  0.9999996  1480.621
## 
## Tuning parameter 'intercept' was held constant at a value of TRUE
Pista1: Recuerde setear la semilla set.seed(12345).
Pista2: Si existen variables con NA recuerde que puede excluirlas esas observaciones del análisis, pero no las elimine.

Parte 2

1. Realice dos modelos de árboles de clasificación de la variable Outcome. Pruebe cuál modelo clasifica mejor con validación cruzada. Entrene el modelo con un 75% de la muestra y testee con el 25% restante. Explicite qué modelo es mejor y porqué. (12 puntos)

Importante: Recuerde setear la semilla set.seed(12345).
Observación: No obtendrá puntaje si compara un modelo de clasificación de una variable.
arbol_1 <- rpart(Outcome~., data=diabetes, method = "class")
arbol_2 <- rpart(Outcome~Glucose+Insulin+BloodPressure+Age, data=diabetes, method = "class")
rpart.plot(arbol_1, main = "Arbol de decisión: diabetes")

rpart.plot(arbol_2, main = "Arbol de decisión: diabetes")

set.seed(12345)

division <- createDataPartition(diabetes$Outcome, times = 1, p = 0.75, list = F) 

train <- diabetes[division,] 
test <- diabetes[-division,]
arbol_3 <- rpart(Outcome~Glucose+Insulin+BloodPressure+Age, data = train, method = "class")

rpart.plot(arbol_2)

Parte 3

1. Realice un gráfico de correlación con todas las variables.

datacor <- cor(credit_card[,c(2:18)])
corrplot(datacor, method = 'color', tl.cex = 0.5) 

2. Proponga dos modelos sobre las cuales segmentar la muestra, en orden de hacer análisis de clusters con el método de kmeans. Explique el por qué utiliza estas variables. (8 puntos)

Pista1: Si existen outliers recuerde eliminarlos, para esto cree un nuevo objeto donde se encuentren estas dos variables.
Observación: No obtendrá puntaje si compara dos modelos con solo dos variables.

Parte 4 (15 ptos)

1. Explique la importancia de CV

2. ¿Qué es la relación espuria?

3. ¿Qué es overfitting?