Autor: Benjamin Huaman
Fecha: 21/12/2023
Nombre de la Empresa: Netflix, Inc.
Misión: Entretener al mundo.
Visión: Ofrecer a nuestros usuarios acceso ilimitado a una amplia variedad de contenidos audiovisuales, incluyendo series, documentales, películas y juegos para móviles, a través de una plataforma de transmisión en línea. Queremos permitir a nuestros usuarios elegir lo que quieren ver, cuándo lo quieren ver y proporcionarles una experiencia de entretenimiento sin complicaciones mediante una suscripción simple.
El conjunto de datos de películas y programas de televisión de Netflix proporciona información completa sobre varios títulos disponibles en la popular plataforma de transmisión. El conjunto de datos incluye detalles como el nombre del título, su tipo (si es un programa de televisión o una película), una breve descripción del contenido, el año de lanzamiento, la clasificación de certificación de edad, el tiempo de ejecución (para programas de televisión: duración de los episodios). ; para películas: duración), puntuación de IMDb y votos de IMDb.
Datos obtenidos de: https://www.kaggle.com/datasets/thedevastator/netflix-imdb-scores
Analizar las puntuaciones realizadas en IMDB para las series y peliculas de netflix.
analizar el conjunto de datos, obtener información sobre la distribución de puntuaciones y clasificaciones de IMDb tanto para programas de televisión como para películas disponibles en Netflix. Esta información puede ayudarnos a comprender la popularidad y la recepción de los títulos según las calificaciones de los usuarios.
La población de estudio comprende todas las personas que puntuaron en IMDB de Netflix
Conjunto de datos recopilados por IMDB para las series y peliculas de netflix.
Las peliculas y series de netflix mas puntuadas.
Muestreo Aleatorio Simple, se seleccionan aleatoriamente películas y programas de televisión de Netflix de la base de datos sin restricciones particulares. Cada elemento de la población tiene la misma probabilidad de ser seleccionado.
dt = read.csv("Netflix.csv", sep = ",")
head(dt)
## index id title type
## 1 0 tm84618 Taxi Driver MOVIE
## 2 1 tm127384 Monty Python and the Holy Grail MOVIE
## 3 2 tm70993 Life of Brian MOVIE
## 4 3 tm190788 The Exorcist MOVIE
## 5 4 ts22164 Monty Python's Flying Circus SHOW
## 6 5 tm14873 Dirty Harry MOVIE
## description
## 1 A mentally unstable Vietnam War veteran works as a night-time taxi driver in New York City where the perceived decadence and sleaze feed his urge for violent action, attempting to save a preadolescent prostitute in the process.
## 2 King Arthur, accompanied by his squire, recruits his Knights of the Round Table, including Sir Bedevere the Wise, Sir Lancelot the Brave, Sir Robin the Not-Quite-So-Brave-As-Sir-Lancelot and Sir Galahad the Pure. On the way, Arthur battles the Black Knight who, despite having had all his limbs chopped off, insists he can still fight. They reach Camelot, but Arthur decides not to enter, as "it is a silly place".
## 3 Brian Cohen is an average young Jewish man, but through a series of ridiculous events, he gains a reputation as the Messiah. When he's not dodging his followers or being scolded by his shrill mother, the hapless Brian has to contend with the pompous Pontius Pilate and acronym-obsessed members of a separatist movement. Rife with Monty Python's signature absurdity, the tale finds Brian's life paralleling Biblical lore, albeit with many more laughs.
## 4 12-year-old Regan MacNeil begins to adapt an explicit new personality as strange events befall the local area of Georgetown. Her mother becomes torn between science and superstition in a desperate bid to save her daughter, and ultimately turns to her last hope: Father Damien Karras, a troubled priest who is struggling with his own faith.
## 5 A British sketch comedy series with the shows being composed of surreality, risqué or innuendo-laden humour, sight gags and observational sketches without punchlines.
## 6 When a madman dubbed 'Scorpio' terrorizes San Francisco, hard-nosed cop, Harry Callahan – famous for his take-no-prisoners approach to law enforcement – is tasked with hunting down the psychopath. Harry eventually collars Scorpio in the process of rescuing a kidnap victim, only to see him walk on technicalities. Now, the maverick detective is determined to nail the maniac himself.
## release_year age_certification runtime imdb_id imdb_score imdb_votes
## 1 1976 R 113 tt0075314 8.3 795222
## 2 1975 PG 91 tt0071853 8.2 530877
## 3 1979 R 94 tt0079470 8.0 392419
## 4 1973 R 133 tt0070047 8.1 391942
## 5 1969 TV-14 30 tt0063929 8.8 72895
## 6 1971 R 102 tt0066999 7.7 153463
title(título): El nombre de un programa de televisión o una película.
(Texto)
type(tipo): Indica si una entrada es un programa de televisión o una
película. (Texto)
description(descripción): un breve resumen o descripción de un programa
de televisión o una película. (Texto)
release_year(año de lanzamiento): el año en el que se estrenó un
programa de televisión o una película. (Numérico)
age_certification(clasificacion de edad): la clasificación de
certificación de edad para un programa de televisión o una película.
(Texto)
runtime(tiempo de ejecución): la duración de un episodio de programas de
televisión o la duración de una película. (Texto)
imdb_score(puntuación): la puntuación otorgada por los usuarios en IMDB
para un título en particular. (Numérico)
imdb_votes(votos recibidos): el número de votos recibidos por cada
título en IMDB. (Numérico)
library(summarytools)
summary(dt)
## index id title type
## Min. : 0 Length:5283 Length:5283 Length:5283
## 1st Qu.:1320 Class :character Class :character Class :character
## Median :2641 Mode :character Mode :character Mode :character
## Mean :2641
## 3rd Qu.:3962
## Max. :5282
##
## description release_year age_certification runtime
## Length:5283 Min. :1953 Length:5283 Min. : 0.0
## Class :character 1st Qu.:2015 Class :character 1st Qu.: 45.0
## Mode :character Median :2018 Mode :character Median : 87.0
## Mean :2016 Mean : 79.2
## 3rd Qu.:2020 3rd Qu.:106.0
## Max. :2022 Max. :235.0
##
## imdb_id imdb_score imdb_votes
## Length:5283 Min. :1.500 Min. : 5
## Class :character 1st Qu.:5.800 1st Qu.: 521
## Mode :character Median :6.600 Median : 2279
## Mean :6.533 Mean : 23407
## 3rd Qu.:7.400 3rd Qu.: 10144
## Max. :9.600 Max. :2268288
## NA's :16
library(agricolae)
(table.freq(hist(dt$imdb_score, plot = FALSE, breaks = "Sturges")))
## Lower Upper Main Frequency Percentage CF CPF
## 1 1.5 2.0 1.75 8 0.2 8 0.2
## 2 2.0 2.5 2.25 17 0.3 25 0.5
## 3 2.5 3.0 2.75 24 0.5 49 0.9
## 4 3.0 3.5 3.25 39 0.7 88 1.7
## 5 3.5 4.0 3.75 77 1.5 165 3.1
## 6 4.0 4.5 4.25 132 2.5 297 5.6
## 7 4.5 5.0 4.75 215 4.1 512 9.7
## 8 5.0 5.5 5.25 475 9.0 987 18.7
## 9 5.5 6.0 5.75 597 11.3 1584 30.0
## 10 6.0 6.5 6.25 882 16.7 2466 46.7
## 11 6.5 7.0 6.75 929 17.6 3395 64.3
## 12 7.0 7.5 7.25 898 17.0 4293 81.3
## 13 7.5 8.0 7.75 586 11.1 4879 92.4
## 14 8.0 8.5 8.25 303 5.7 5182 98.1
## 15 8.5 9.0 8.75 90 1.7 5272 99.8
## 16 9.0 9.5 9.25 9 0.2 5281 100.0
## 17 9.5 10.0 9.75 2 0.0 5283 100.0
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
ggplot(dt, aes(x = imdb_score))+
geom_bar(fill = "Red2")+
facet_wrap(facets = ~type, nrow = 1)+
labs(title = "Grafico de Barras del puntaje por tipo")+
theme_classic()+
xlab("Puntaje")+
ylab("Cantidad")
ggplot(dt, aes(x = "", y = "", fill = type)) +
geom_bar(stat = "identity") +
coord_polar(theta = "y") +
labs(title = "Grafico Circular de Tipos") +
theme_void()
ggplot(dt, aes(x = release_year))+
geom_histogram(binwidth = 1, fill = "white", color = "black")+
labs(title = "Histograma de Años de lanzamiento")+
xlab("año de lanzamiento")+
ylab("peliculas")+
theme_classic()
ggplot(dt, aes(x = type, y = imdb_score))+
geom_boxplot(fill = "skyblue")+
labs(title = "Diagrama de caja de las puntuaciones segun el tipo")+
xlab("Tipo")+
ylab("Puntuación")+
theme_classic()
ggplot(dt, aes(x = imdb_score))+
geom_density(fill = "blue3")+
labs(title = "Grafico de Densidad Puntajes")+
xlab("Puntuación")+
ylab("Densidad")+
theme_classic()
#opcion 1
promedio = sum(dt$imdb_score)/length(dt$imdb_score)
promedio
## [1] 6.533447
Interpretación 1: El puntaje promedio de las peliculas es: 6.533447
#Mediana de Pesos (1)
median(dt$release_year)
## [1] 2018
#Mediana de Alturas (2)
median(dt$imdb_score)
## [1] 6.6
Interpretación 1: El 50% de las series y peliculas de netflix su maxima fecha de lanzamiento es en 2018 y el otro 50% su minimo fecha de lanzamiento es 2018.
Interpretación 2: El puntaje maximo del 50% de las series y peliculas es 6.6 y el otro 50% su puntaje minimo 6.6
#Opcion 1
table(dt$release_year)
##
## 1953 1954 1956 1958 1959 1960 1961 1962 1963 1964 1966 1967 1968 1969 1971 1972
## 1 2 1 1 1 1 1 1 1 1 2 1 1 2 2 2
## 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988
## 2 1 2 3 1 1 7 4 3 8 3 5 1 6 6 7
## 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
## 9 7 10 3 21 13 12 8 15 25 12 13 23 20 31 29
## 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
## 36 48 49 60 60 71 97 105 134 151 226 351 555 733 749 657
## 2021 2022
## 687 182
#Unimodal
#Opcion 2
library(modeest)
## Warning: package 'modeest' was built under R version 4.3.2
##
## Attaching package: 'modeest'
## The following object is masked from 'package:agricolae':
##
## skewness
mfv(dt$runtime)
## [1] 90
#Unimodal
Interpretación 1: El año de lanzamiento mas frecuente es 2019
Interpretación 2: La duracion de un episodio o duracion de una pelicula mas frecuente es 90
#Opcion 1
rango = max(dt$release_year) - min(dt$release_year)
rango
## [1] 69
#Opcion 2
range(dt$runtime) #Se tiene que restar las edades
## [1] 0 235
Interpretación 1: El rango que hay entre los años de lanzamiento es de 69.
Interpretación 2: El rango que hay en el tiempo de duracion es de 235.
#Varianza de Puntajes
var(dt$imdb_score)
## [1] 1.347762
#Opcion 1
sqrt(var(dt$release_year))
## [1] 7.346098
#Opcion 2
sd(dt$runtime)
## [1] 38.91597
Interpretación 1: La variabilidad promedio de los años de lanzamiento respecto a la media es de 7.346098 años.
Interpretación 2: La duracion de las peliculas y series se alejan de la media 38.91597 minutos en promedio.
#coeficiente de variación de Pesos
coeficiente_var_p = sd(dt$runtime)/mean(dt$runtime)*100
coeficiente_var_p
## [1] 49.1364
#coeficiente de variación de Puntajes
coeficiente_var_a = sd(dt$imdb_score)/mean(dt$imdb_score)*100
coeficiente_var_a
## [1] 17.76905
Interpretación 1: Como el coeficiente de variacion es 49.1364 > 30%, entonces la distribución no es homogénea y la media no es representativa. En este caso debemos tomar la mediana como medida representativa. representativa.
Interpretación 2: Como el coeficiente de variacion es 17.76905 ≤ 30%, etonces la distribución de las alturas es homogenea y la media es representativa.
#Con la funcion summary (pesos)
summary(dt$imdb_score)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.500 5.800 6.600 6.533 7.400 9.600
#Con la funcion psych (alturas)
library(psych)
describe(dt$runtime)
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 5283 79.2 38.92 87 78.38 43 0 235 235 0.13 -0.55 0.54
quantile(dt$runtime)
## 0% 25% 50% 75% 100%
## 0 45 87 106 235
Resultado / 0% 25% 50% 75% 100%
/ 0 45 87 106 235
Segun los resultados:
El valor minimo del monto de compra es 0
interpretacion es 45 minutos; El 25% de las peliculas y series su tiempo maximo es 45 minutos
interpretacion es 87 minutos; El 25% de las peliculas y series su tiempo maximo es 87 minutos
interpretacion es 106 minutos; El 25% de las peliculas y series su tiempo maximo es 106 minutos
quantile(dt$runtime, probs = seq(0 , 1 , 0.1))
## 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
## 0 25 42 51 66 87 94 102 111 127 235
quantile(dt$runtime, probs = seq(0 , 1 , 0.01))
## 0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10%
## 0.00 8.00 12.00 16.00 20.00 22.00 23.00 23.00 24.00 24.00 25.00
## 11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21%
## 26.00 27.00 28.00 30.00 30.00 33.00 36.00 39.00 41.00 42.00 43.00
## 22% 23% 24% 25% 26% 27% 28% 29% 30% 31% 32%
## 44.00 44.00 45.00 45.00 46.00 47.00 49.00 50.00 51.00 52.00 54.00
## 33% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43%
## 56.00 57.88 59.00 60.00 61.00 63.00 64.00 66.00 68.00 70.00 73.00
## 44% 45% 46% 47% 48% 49% 50% 51% 52% 53% 54%
## 75.00 79.00 81.00 83.00 84.00 85.18 87.00 88.00 89.00 90.00 90.00
## 55% 56% 57% 58% 59% 60% 61% 62% 63% 64% 65%
## 90.00 91.00 92.00 93.00 94.00 94.00 95.00 95.00 96.00 97.00 98.00
## 66% 67% 68% 69% 70% 71% 72% 73% 74% 75% 76%
## 98.00 99.00 100.00 101.00 102.00 102.00 104.00 104.00 105.00 106.00 106.32
## 77% 78% 79% 80% 81% 82% 83% 84% 85% 86% 87%
## 107.00 108.00 110.00 111.00 112.00 113.00 115.00 116.00 118.00 120.00 121.00
## 88% 89% 90% 91% 92% 93% 94% 95% 96% 97% 98%
## 123.00 125.00 127.00 130.00 132.00 135.00 138.00 141.00 146.00 152.00 160.00
## 99% 100%
## 170.00 235.00
library(fBasics)
## Warning: package 'fBasics' was built under R version 4.3.2
##
## Attaching package: 'fBasics'
## The following object is masked from 'package:psych':
##
## tr
## The following objects are masked from 'package:modeest':
##
## ghMode, ghtMode, gldMode, hypMode, nigMode, skewness
## The following objects are masked from 'package:agricolae':
##
## kurtosis, skewness
skewness(dt$runtime)
## [1] 0.1297797
## attr(,"method")
## [1] "moment"
Resultado: 0.1297797, como el valor es positivo, entonces la distribucion de los datos es asimetrica positiva, esto quiere decir que los valores estan concentrados en los puntos minimos (la mayoria de las peliculas y series duran poco)
hist(dt$runtime)
kurtosis(dt$imdb_score)
## [1] 0.7828707
## attr(,"method")
## [1] "excess"
Resultado: 0.7828707, el valor es menor que 3, por lo tanto la distribucion de los datos es platicúrtica, quiere decir que las colas de la distribución son más ligeras (menos pesadas) que las de una distribución normal. En otras palabras, hay menos presencia de valores extremos en comparación con una distribución normal.