EmpezarEmpieza gratis

Evaluar el ajuste del modelo fuera de muestra

Ya sabes que tiene más sentido fijarse en el ajuste del modelo fuera de muestra que en el ajuste dentro de muestra. En este ejercicio, por tanto, quieres proponer una medida de precisión fuera de muestra.

Antes, tendrás que realizar algunos pasos de preparación. Vuelve a usar defaultData. logitModelNew ya está cargado en tu entorno.

Ten en cuenta que, para un análisis completo, siempre deberías comparar distintos modelos candidatos también (y especialmente) utilizando datos fuera de muestra.

La precisión dentro de muestra, usando el umbral óptimo de 0.3, es 0.7922901. Asegúrate de entender si hay sobreajuste.

Este ejercicio forma parte del curso

Machine Learning para analítica de marketing en R

Ver curso

Instrucciones del ejercicio

  • Primero, divide aleatoriamente el conjunto de datos en entrenamiento y prueba. El conjunto de entrenamiento debe contener 2/3 del total de datos.

  • Después, ejecuta rápidamente el modelo y llámalo logitTrainNew. Usa la fórmula proporcionada.

  • Haz predicciones sobre el conjunto de prueba y luego calcula la precisión fuera de muestra con ayuda de una matriz de confusión. Ten en cuenta que SDMTools ya no se puede descargar desde CRAN. En tu ordenador personal, instálalo en su lugar mediante remotes::install_version("SDMTools", "1.1-221.2").

  • Compara la precisión fuera de muestra con el valor dentro de muestra indicado arriba.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Split data in train and test set
set.seed(534381) 
defaultData$isTrain <- rbinom(nrow(defaultData), 1, 0.66)
train <- subset(defaultData, ___ == 1)
test <- subset(defaultData, ___  == 0)

logitTrainNew <- glm(formulaLogit, family = binomial, data = ___) # Modeling
test$predNew <- predict(logitTrainNew, type = "response", newdata = ___) # Predictions

# Out-of-sample confusion matrix and accuracy
confMatrixModelNew <- confusion.matrix(___, ___, threshold = 0.3) 
sum(diag(confMatrixModelNew)) / sum(confMatrixModelNew) # Compare this value to the in-sample accuracy
Editar y ejecutar código