#Librerías a instalar install.packages("dplyr") install.packages("corrplot") install.packages("FactoMineR") install.packages("factoextra") install.packages("ggplot2") install.packages("rpart") install.packages("rpart.plot") install.packages("traineR") install.packages("caret") #llamamos a las librerías library(dplyr) library(corrplot) library(FactoMineR) library(factoextra) library(ggplot2) library(rpart.plot) library(rpart) library(traineR) library(caret) #Analisis Exploratorio de datos #Fijar la dirección donde se encuentran los datos a utilizar en el analisis setwd("C:/Users/cartavia/OneDrive - Comision Nacional de Emergencias/Escritorio/Clase2") #Cargar los datos a R Datos <- read.table("abandono.csv", header=TRUE, sep=',',dec='.') #Resumen de los datos summary(Datos) #Eliminar valores pérdidos o NA Datos <- na.omit(Datos) #Verificar que se eliminaron los NA summary(Datos) #Visualizar una muestra delos datos cargados en el objeto Datos head(Datos) #Observar las características del objeto Datos str(Datos) #Observar valores extremos Datos$Balance_mensual boxplot(Datos$Balance_mensual) boxplot(Datos$Numero_tarjetas) #Si quisieramos por ejemplo eliminar los datos cuando el numero de tarjetas # es mayor a 4 se ejecuta el siguiente código Datos = Datos[Datos$Numero_tarjetas < 4,] boxplot(Datos$Numero_tarjetas) ############################################################ # Componentes Principales ############################################################ incendios <- read.table( "incendios.csv", header = TRUE,sep = ',' ,dec = '.') #Seleccionamos las variables numericas incendios2 <- select(incendios, is.numeric) #Grafico de correlaciones correlaciones <- cor(incendios2) corrplot(correlaciones, method = 'number') #Interpretaciones #Temperature-RH: Correlación alta y negativa, a mayor temperatura a medio día menor será el porcentaje de la humedad relativa y viceversa #Temperature-Ws: Correlación negativa, a mayor temperatura a medio día menor será la velocidad del viento y viceversa. #Temperature-Rain: Correlación negativa, a mayor temperatura a medio día menor será la lluvia del día total y viceversa. #Temperature-FFMC: Correlación alta y positiva, a mayor temperatura a medio día mayor será el Indice de Código de Humedad de Combustible Fino del Sistema #Generacion del modelo de componentes principales res<-PCA(incendios2, scale.unit=TRUE, ncp=2, graph = FALSE) #Visualizacion de componentes fviz_pca_biplot(res,col.var = "#2E9FDF",col.ind = "#696969", select.var = list(cos2 = 0.05), select.ind = list(cos2 = 0.05)) #Interpretacion #Los datos del conglomerado 1 se caracterizan por tener mayor temperatura, #un mayor Indice de Código de Humedad de Combustible Fino del Sistema FWI, #un mayor valor del Índice de código de humedad Duff del sistema FWI #,un mayor valor del índice de código de sequía del sistema FWI #, un mayor valor del índice del índice de propagación inicial del Sistema FWI, un mayor valor del índice de acumulación del sistema FWI , #un valor mayor del índice de clima de incendios que los datos del conglomerado 2 #, mientras que los datos del conglomerado 2 se caracterizan por tener una mayor cantidad de lluvia #total por día una mayor velocidad del viento, y una mayor humedad relativa. #Clustering jerarquico modelo1 <- hclust(dist(incendios2),method = "ward.D") plot(modelo1,hang=-1) rect.hclust(modelo1, k=2, border="green") ####################################################################### # Arboles de decision ####################################################################### datos <- read.csv("Clientes.csv", header = TRUE, sep = ",", dec = ".", stringsAsFactors = TRUE) datos <- na.omit(datos) head(datos) #De la base de datos tomo una muestra del 75% muestra <- createDataPartition(y = datos$Salida, p = 0.75, list = F) #Se crean los objetos de aprendizaje y testeo taprendizaje <- datos[muestra, ] ttesting <- datos[-muestra, ] #Se crea el modelo de arboles de decision tomando como datos los del aprendizaje modelo <- train.rpart(Salida~.,data = taprendizaje) # Se realiza la prediccion con la base de testeo prediccion <- predict(modelo, ttesting, type = 'class') mcarboles <- confusion.matrix(newdata = ttesting, prediccion) general.indexes(mc = mcarboles) ####################################################################### # Redes Neuronales ####################################################################### modelo <- train.nnet(formula = Salida~.,data = taprendizaje, size = 4) prediccion <- predict(modelo, ttesting, type = "class") MCRedes <- confusion.matrix(ttesting, prediccion) general.indexes(mc = MCRedes)