En esta sección, se cargan las librerías necesarias para realizar el análisis de datos y la visualización.
readr: Se utiliza para cargar conjuntos de datos en formato CSV. ggplot2: Es una de las librerías más populares para la creación de gráficos en R. dplyr: Proporciona herramientas para realizar manipulaciones de datos de forma sencilla y eficiente. corrplot: Permite visualizar matrices de correlación de una manera más atractiva y comprensible. lubridate: Facilita el manejo y la manipulación de fechas y horas en R.
library(readr)
library(ggplot2)
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(corrplot)
## Warning: package 'corrplot' was built under R version 4.1.3
## corrplot 0.92 loaded
library(lubridate)
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
library(readr)
Cargar datos: En esta parte, se carga el conjunto de datos desde un archivo CSV ubicado en la ruta especificada. Los datos se almacenan en un objeto llamado datos_clasificadora.
datos_clasificadora <- read.csv("C:/R/unidad 4/datos_clasificadora.csv")
knitr::kable(head(datos_clasificadora))
| tomates_no_maduros | temperatura | tomates_maduros | humedad | fecha |
|---|---|---|---|---|
| 10 | 10.0 | 8 | 8 | 2024-04-23T02:56:11.026Z |
| 8 | 8.0 | 10 | 10 | 2024-04-23T02:56:11.026Z |
| 9 | 4.0 | 15 | 12 | 2024-04-23T02:57:15.125Z |
| 3 | 20.0 | 14 | 18 | 2024-04-23T02:58:07.649Z |
| 0 | 26.2 | 0 | 57 | 2024-04-23T03:03:23.818Z |
| 1 | 26.7 | 0 | 56 | 2024-04-23T03:04:28.639Z |
Inspeccionar los datos: Se utiliza la función View() para visualizar los datos en forma de tabla en el entorno de RStudio. Esto permite una inspección rápida de las primeras filas y columnas del conjunto de datos.
Contar los valores faltantes (NA’s): Se cuentan los valores faltantes en las columnas relevantes del conjunto de datos, incluyendo tomates_maduros, tomates_no_maduros, humedad, temperatura y fecha. Identificar valores faltantes es crucial para determinar si se necesitan imputaciones de datos o si se pueden eliminar observaciones incompletas.
Reemplazar los NA’s con valores vacíos: Los NA’s en la columna de fechas (fecha) se eliminan utilizando la función na.omit(). Esto asegura que las observaciones con fechas faltantes se eliminen del conjunto de datos.
Convertir la columna ‘fecha’ a tipo Date: La columna fecha se convierte al tipo de dato Date utilizando la función as.Date(). Esto es importante para poder realizar análisis de series temporales y otros cálculos relacionados con fechas.
View(datos_clasificadora)
sum(is.na(datos_clasificadora$tomates_maduros))
## [1] 0
sum(is.na(datos_clasificadora$tomates_no_maduros))
## [1] 0
sum(is.na(datos_clasificadora$humedad))
## [1] 0
sum(is.na(datos_clasificadora$temperatura))
## [1] 0
sum(is.na(datos_clasificadora$fecha))
## [1] 0
datos_clasificadora <- datos_clasificadora[!is.na(datos_clasificadora$fecha), ]
datos_clasificadora$fecha <- as.Date(datos_clasificadora$fecha)
Exploración de correlaciones: Se calcula la matriz de correlación entre las variables numéricas del conjunto de datos, excluyendo la columna de fechas. La matriz de correlación ayuda a identificar relaciones lineales entre las variables, lo que puede ser útil para el modelado predictivo y la selección de características.
correlation_matrix <- cor(datos_clasificadora[, -5])
corrplot(correlation_matrix, method = "circle")
Análisis de tendencias temporales: Se crea un gráfico de líneas para visualizar cómo cambian la temperatura y la humedad a lo largo del tiempo (por fecha). Esto permite identificar patrones estacionales o tendencias en los datos a lo largo del tiempo.
ggplot(datos_clasificadora, aes(x = fecha)) +
geom_line(aes(y = temperatura, color = "Temperatura")) +
geom_point(aes(y = humedad, color = "Humedad")) +
labs(x = "Fecha", y = "Valor", title = "Temperatura y Humedad por Día") +
scale_color_manual(values = c("Temperatura" = "red", "Humedad" = "blue")) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
Segmentación de datos por hora del día: Se calcula la hora del día a partir de la columna de fechas utilizando la función hour() de la librería lubridate. Luego, se realiza un análisis de la variación de la temperatura por hora del día mediante un gráfico de cajas (boxplot). Esto puede revelar patrones de comportamiento diario en los datos.
datos_clasificadora$hora <- hour(datos_clasificadora$fecha)
ggplot(datos_clasificadora, aes(x = hora, y = temperatura)) +
geom_boxplot() +
labs(x = "Hora del Día", y = "Temperatura", title = "Variación de Temperatura por Hora del Día")
Análisis de outliers: Se crean boxplots para detectar outliers en las variables de temperatura y humedad. Los outliers pueden ser indicativos de errores en los datos o de eventos inusuales que deben ser investigados más a fondo.
ggplot(datos_clasificadora, aes(x = "", y = temperatura)) +
geom_boxplot() +
labs(y = "Temperatura", title = "Boxplot de Temperatura")
ggplot(datos_clasificadora, aes(x = "", y = humedad)) +
geom_boxplot() +
labs(y = "Humedad", title = "Boxplot de Humedad")
Análisis de distribuciones: Se crean histogramas para visualizar la distribución de las variables de temperatura y humedad. Esto proporciona información sobre la forma y la dispersión de los datos, lo que puede ayudar en la selección de técnicas de modelado apropiadas.
ggplot(datos_clasificadora, aes(x = temperatura)) +
geom_histogram(binwidth = 1, fill = "blue", color = "black") +
labs(x = "Temperatura", y = "Frecuencia", title = "Distribución de Temperatura")
ggplot(datos_clasificadora, aes(x = humedad)) +
geom_histogram(binwidth = 1, fill = "green", color = "black") +
labs(x = "Humedad", y = "Frecuencia", title = "Distribución de Humedad")
Gráfico de pastel del porcentaje de tomates maduros y no maduros:
-Se calcula el porcentaje de tomates maduros y no maduros en el conjunto de datos. -Se crea un gráfico de pastel para visualizar el porcentaje de tomates maduros y no maduros.
porcentaje_maduros <- mean(datos_clasificadora$tomates_maduros, na.rm = TRUE)
porcentaje_no_maduros <- mean(datos_clasificadora$tomates_no_maduros, na.rm = TRUE)
datos_paste <- data.frame(
Categoria = c("Maduros", "No Maduros"),
Porcentaje = c(porcentaje_maduros, porcentaje_no_maduros)
)
ggplot(datos_paste, aes(x = "", y = Porcentaje, fill = Categoria)) +
geom_bar(stat = "identity") +
geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), position = position_stack(vjust = 0.5)) +
coord_polar("y", start = 0) +
labs(title = "Porcentaje de Tomates Maduros y No Maduros")