Netflix IMDB Scores

Autor: Benjamin Huaman
Fecha: 21/12/2023

Aspectos generales

1.1 Nombre de la organización y/o empresa (real o propuesta)

Nombre de la Empresa: Netflix, Inc.

1.2 Misión y visión

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.

1.3 Descripción del servicio/productos que se va a analizar

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

1.4 Problemática de estudio

Analizar las puntuaciones realizadas en IMDB para las series y peliculas de netflix.

Fundamentos básicos de la Estadística

2.1 Objetivo de estudio

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.

2.2 Población de estudio

La población de estudio comprende todas las personas que puntuaron en IMDB de Netflix

2.3 Muestra

Conjunto de datos recopilados por IMDB para las series y peliculas de netflix.

2.4 Unidad de análisis

Las peliculas y series de netflix mas puntuadas.

2.5 Tipo de muestreo a utilizar

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.

Variables y tipo de variables

3.1 Importación al entorno de trabajo

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

3.2 Variables y descripción de cada variable

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)

Tablas estadísticas y gráficos adecuados (Considerar todos los estudiados)

Tabla estadística descriptiva

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

Tabla de frecuencia de la variable Quantity(Cantidad)

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

Grafico de Barras

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")

Grafico Circular

ggplot(dt, aes(x = "", y = "", fill = type)) +
  geom_bar(stat = "identity") +
  coord_polar(theta = "y") +
  labs(title = "Grafico Circular de Tipos") +
  theme_void()

Histograma

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()

Diagrama de Caja

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()

Grafico de Densidad

ggplot(dt, aes(x = imdb_score))+
  geom_density(fill = "blue3")+
  labs(title = "Grafico de Densidad Puntajes")+
  xlab("Puntuación")+
  ylab("Densidad")+
  theme_classic()

Medidas estadísticas (Considerar todas las medidas estudiadas)

Medidas estadísticas de tendencia central

Media aritmetica
#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 Aritmetica
#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

Moda Aritmetica
#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

Medidas de Variabilidad O Dispercion

Rango
#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
#Varianza de Puntajes
var(dt$imdb_score)
## [1] 1.347762
Deviacion estandar
#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
#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.

Otra forma de obtenerlo es:
#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

Medidas de posición no central

Calcular e interpretar los Cuartiles para el tiempo de duración de las series y peliculas.
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

Cuartil 1 \((Q_1)\)

interpretacion es 45 minutos; El 25% de las peliculas y series su tiempo maximo es 45 minutos

Cuartil 2 \((Q_2)\)

interpretacion es 87 minutos; El 25% de las peliculas y series su tiempo maximo es 87 minutos

Cuartil 3 \((Q_3)\)

interpretacion es 106 minutos; El 25% de las peliculas y series su tiempo maximo es 106 minutos

Dividir en 10 grupos(deciles)
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
Dividir en 100 grupos(percentiles)
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

Medidas de forma: asimetría y curtosis

Asimetria
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)

Curtosis
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.