Paquetes utilizados:
library(readxl)
library(ggplot2)
library(dplyr)
Base de datos:
data <- read_excel('C:/Users/matir/OneDrive/Escritorio/Mati/Universidad/2022/Segundo Trimestre/Analitica aplicada a Negocios-Finanzas/Examen/data_ex1.xlsx')
Head de la base:
head(data)
## # A tibble: 6 × 31
## CHK_ACCT DURATION HISTORY NEW_CAR USED_CAR FURNITURE `RADIO/TV` EDUCATION
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0 6 4 0 0 0 1 0
## 2 1 48 2 0 0 0 1 0
## 3 3 12 4 0 0 0 0 1
## 4 0 42 2 0 0 1 0 0
## 5 0 24 3 1 0 0 0 0
## 6 3 36 2 0 0 0 0 1
## # … with 23 more variables: RETRAINING <dbl>, AMOUNT <dbl>, SAV_ACCT <dbl>,
## # EMPLOYMENT <dbl>, INSTALL_RATE <dbl>, MALE_DIV <dbl>, MALE_SINGLE <dbl>,
## # MALE_MAR_or_WID <dbl>, `CO-APPLICANT` <dbl>, GUARANTOR <dbl>,
## # PRESENT_RESIDENT <dbl>, REAL_ESTATE <dbl>, PROP_UNKN_NONE <dbl>, AGE <dbl>,
## # OTHER_INSTALL <dbl>, RENT <dbl>, OWN_RES <dbl>, NUM_CREDITS <dbl>,
## # JOB <dbl>, NUM_DEPENDENTS <dbl>, TELEPHONE <dbl>, FOREIGN <dbl>,
## # RESPONSE <dbl>
A- Análisis Exploratorio de Datos (5 puntos)
1- Concéntrese primero en las variables DURATION y AMOUNT. Explore estas variables en el conjunto de datos: ¿Hay valores atípicos y/o faltantes? Si encuentra valores atípicos, elimínelos.
Primero es necesario hacer una tabla de resumen con estadisticos basicos para identificar posibles outliers y NA´s (datos faltantes).
-Primero con la variable “DURATION”:
summary(data$DURATION)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.0 12.0 18.0 20.9 24.0 72.0
print(paste("cantidad de NA´s: ", sum(is.na(data$DURATION))))
## [1] "cantidad de NA´s: 0"
Representación gáfica de la distribucion de datos:
plot1 <- ggplot(data, aes(x=DURATION)) +
geom_density(color="darkblue", fill="lightblue",alpha=0.7)
plot1+ geom_vline(aes(xintercept=mean(DURATION)),
color="blue", linetype="dashed", size=1) + theme_classic()
Un boxplot para visualizar posibles outliers:
ggplot(data, aes(x=DURATION)) + geom_boxplot(outlier.colour="red", outlier.shape=8,
outlier.size=3, dotsize=3, fill='#A4A4A4', color="black") + theme_classic()
Suposicion: Asumiremos que un outlier corresponderá a una observación que se encuentre sobre los 60 meses de duración. Si usamos otro criterio, la base tenderá a reducirse demasiado.
dim(data)
## [1] 1000 31
data <- subset(data, DURATION < 60)
dim(data)
## [1] 986 31
Visualizamos nuevamente el boxplot y distribuciónr:
ggplot(data, aes(x=DURATION)) + geom_boxplot(outlier.colour="red", outlier.shape=8,
outlier.size=3, dotsize=3, fill='#A4A4A4', color="black") + theme_classic()
ggplot(data, aes(x=DURATION)) +
geom_density(color="darkblue", fill="lightblue",alpha=0.7)+ geom_vline(aes(xintercept=mean(DURATION)),
color="blue", linetype="dashed", size=1) + theme_classic()
-Ahora, con la variable “AMOUNT.”:
summary(data$AMOUNT)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 250 1360 2290 3181 3911 18424
print(paste("cantidad de NA´s: ", sum(is.na(data$AMOUNT))))
## [1] "cantidad de NA´s: 0"
Representación gáfica de la distribucion de datos:
plot1 <- ggplot(data, aes(x=AMOUNT)) +
geom_density(color="darkblue", fill="lightblue",alpha=0.7)
plot1+ geom_vline(aes(xintercept=mean(AMOUNT)),
color="blue", linetype="dashed", size=1) + theme_classic()
Un boxplot para visualizar posibles outliers:
ggplot(data, aes(x=AMOUNT)) + geom_boxplot(outlier.colour="red", outlier.shape=8,
outlier.size=3, dotsize=3, fill='#A4A4A4', color="black") + theme_classic()
Como vemos nuevamente que existen outliers, haremos lo mismo que con la variable anterior:
Consideraremos outliers a montos sobre los 15.000. Si usamos un criterio mas acotado tenderemos a eliminar demasiadas observaciones en la base.
dim(data)
## [1] 986 31
data <- subset(data, AMOUNT < 15000)
dim(data)
## [1] 982 31
Visualizamos nuevamente el boxplot y distribuciónr:
ggplot(data, aes(x=AMOUNT)) + geom_boxplot(outlier.colour="red", outlier.shape=8,
outlier.size=3, dotsize=3, fill='#A4A4A4', color="black") + theme_classic()
ggplot(data, aes(x=AMOUNT)) +
geom_density(color="darkblue", fill="lightblue",alpha=0.7)+ geom_vline(aes(xintercept=mean(AMOUNT)),
color="blue", linetype="dashed", size=1) + theme_classic()