Este dataset, disponible en Kaggle y titulado “Netflix Data” por Rohit Grewal, incluye información sobre series y películas disponibles en Netflix, con metadatos relevantes como tipo de contenido, elenco, géneros, fechas, entre otros.
En un proyecto relacionado, se menciona que el dataset contiene alrededor de 16 000 filas (títulos) y 18 columnas, cada fila representando un título —aunque otro análisis del dataset indica que se limita a películas, con 18 variables en total.
Tamaño de muestra: aproximadamente 16 000 títulos, suponiendo que incluye tanto películas como series (pero conviene verificar si solo hay películas o también TV Shows).
Número de variables/columnas: 18 columnas que describen diferentes atributos de cada título
Limpiamos los datos eliminando variables que no son relevantes como: directores, cast y descripción, ya que, en directores y cast había varios datos que no estaban y la descripción era muy larga y no tenía información relevante.
## 5. Gráficos para una visión general de
los datos
#Duracion por minutos(peliculas)
#Cantidad de películas vs series
#Top 10 paises
#Palabra más común en el título
#Estrenos de Netflix por año
#Distribucion de rating
#Top géneros más frecuentes
## Análisis con dos variables
cuantitativas
# Resumen de las variables cuantitativas
summary(netflix_data)
## Show_Id Category Title Director
## Length:7789 Length:7789 Length:7789 Length:7789
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
## Cast Country Release_Date Rating
## Length:7789 Length:7789 Length:7789 Length:7789
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
## Duration Type
## Length:7789 Length:7789
## Class :character Class :character
## Mode :character Mode :character
# Convertir la columna de duración a formato numérico (si es necesario)
netflix_data$Duration <- as.numeric(gsub(" min", "", netflix_data$Duration))
## Warning: NAs introduced by coercion
# Estadísticas específicas de la duración (en minutos)
summary(netflix_data$Duration)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 3.00 86.00 98.00 99.31 114.00 312.00 2410
# Selección de dos variables cuantitativas para el análisis
# Usamos "Release_Date" (convertido a año) y "Duration"
netflix_data$Release_Year <- as.numeric(format(as.Date(netflix_data$Release_Date, format="%B %d, %Y"), "%Y"))
# Correlación entre "Release_Year" y "Duration"
correlation <- cor(netflix_data$Release_Year, netflix_data$Duration, use="complete.obs")
correlation
## [1] 0.1341536
# Gráfico de dispersión entre el año de estreno y la duración
ggplot(netflix_data, aes(x = Release_Year, y = Duration)) +
geom_point() +
theme_minimal() +
labs(title = "Gráfico de Dispersión entre Año de Estreno y Duración",
x = "Año de Estreno", y = "Duración (minutos)")
## Warning: Removed 2410 rows containing missing values or values outside the scale range
## (`geom_point()`).
# Diagrama de cajas para la variable "Duration" por categorías de "Category"
ggplot(netflix_data, aes(x = Category, y = Duration)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Diagrama de Cajas de Duración por Categoría",
x = "Categoría", y = "Duración (minutos)")
## Warning: Removed 2410 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
# Crear una tabla cruzada entre "Category" y "Rating"
table_cruzada <- table(netflix_data$Category, netflix_data$Rating)
table_cruzada
##
## G NC-17 NR PG PG-13 R TV-14 TV-G TV-MA TV-PG TV-Y TV-Y7
## Movie 39 3 79 247 386 663 1272 111 1847 505 117 95
## TV Show 0 0 5 0 0 2 659 83 1018 301 163 176
##
## TV-Y7-FV UR
## Movie 5 5
## TV Show 1 0
# Diagrama de barras apiladas para "Category" y "Rating"
ggplot(netflix_data, aes(x = Category, fill = Rating)) +
geom_bar(position = "fill") +
theme_minimal() +
labs(title = "Distribución de Ratings por Categoría",
x = "Categoría", y = "Proporción")
# Si hay una variable de fecha, podemos realizar un pronóstico
# Asegúrate de que la variable de fecha esté en formato adecuado
library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
netflix_data$Release_Date <- as.Date(netflix_data$Release_Date, format="%B %d, %Y")
# Agrupamos por año y contamos la cantidad de títulos
netflix_yearly <- netflix_data %>%
mutate(year = format(Release_Date, "%Y")) %>%
group_by(year) %>%
summarise(count = n())
# Ajustar un modelo de suavización exponencial
fit <- ets(netflix_yearly$count)
forecast_values <- forecast(fit, h = 5)
plot(forecast_values)