Analizando las calificaciones de las peliculas: Analisis Estadistico, Visualizando resultados y obteniendo predicciones.¶
En este proyecto vamos a continuar analizando recomendaciones de peliculas, pero esta vez vamos a usar estadistica para programar manualmente con pytho la regresion linear y ver como de dispersas estan las recomendaciones de la prediccion que nosotros vamos a hacer. De esta manera podemos obtener la precision de nuestras predicciones de manera visual.¶
- slope, intercept, r_value, p_value, stderr
import pandas as pd
movies = pd.read_csv("fandango_score_comparison.csv")
print(movies.head(3))
%matplotlib inline
import matplotlib.pyplot as plt
plt.hist(movies["Metacritic_norm_round"])
plt.show()
plt.hist(movies["Fandango_Stars"])
plt.show()
- Como podemos ver, hay una gran diferencia entre los ratings de Fandango y Metacritic. Metacritic como podemos observar tiene muchas mas reviews con una puntuacion mas alta de 3 que Fandango.
Media, Mediana y Desviacion Estandar (Mean, Median, And Standard Deviation)¶
- Vamos a cuantificar las diferencias que podemos apreciar en ambos histogramas.
import numpy as np
means =[movies["Fandango_Stars"].mean(), movies["Metacritic_norm_round"].mean()]
print(means)
medians = [np.median(movies["Fandango_Stars"]), np.median(movies["Metacritic_norm_round"])]
print(medians)
std_dev = [movies["Fandango_Stars"].std(), movies["Metacritic_norm_round"].std()]
print(std_dev)
Metodologia para Metacritic y Fandango. ¿Como sacan sus ratings?¶
Esto solo lo podemos saber visitando sus respectivas webs y leyendo sus documentaciones. A continuacion pongo lo que podemos averiguar:¶
Metacritic no usa los votos de los usarios. Puedes ver los votos pero la calificacion principar que aparece es independiente y solo toma votos de gente profesional.
Fandango tomo los votos de los usarios en un sistema de 5 estrellas. Aparentemente todas las peliculas obtienen un rating de 3+
Algunos insigths que obtenemos de los datos:¶
Podemos apreciar que, mientras que la media en Metacritic es menor que la mediana, en Fandango pasa lo contrario. La media es mayor que la mediana. Esto es debido a que los datos en Fandango estan sesgados hacia valores altos, siempre > 3.
La desviacion estandar: Podemos apreciar que es menor en Fandango que en Metacritic. El rango en el que se mueven al final en Fandango es de 3 a 5 por lo que le margen de error es menor.
La media de Fandango es mayor porque los valores van de 3 a 5 y en Metacritic de 1 a 5.
Finalmente, podemos apreciar que la desviacion estandar es menor en Fandango que en Metacritic, esto sugiera que los datos estan mas dispersos que la media en Metacritic y que en Fandango. Asi en Fandango esto esta mas correlacionado. Vamos a verlo a continuación.
Scatter Plots¶
plt.scatter(movies["Fandango_Stars"], movies["Metacritic_norm_round"], c="r")
plt.grid()
plt.show()
# Continue with the second point.
movies["fm_diff"] = np.abs(movies["Metacritic_norm_round"] - movies["Fandango_Stars"])
movies = movies.sort_values(by="fm_diff", ascending=False)
print(movies.head())
Correlaciones.¶
from scipy.stats import pearsonr
r_value, p_value = pearsonr(movies["Fandango_Stars"], movies["Metacritic_norm_round"])
r_value
- Como podemos ver, el r_value que obtenemos de la correlacion entre “Fandango_Stars” y “Metacritic_norm_round” esta cerca de cero, lo que significa que ambas variables tienen una correlacion baja. Por el contrario si esta estuviera cerca de 1 tendrian una alta correlacion.
from scipy.stats import linregress
slope, intercept, r_value, p_value, stderr = linregress(movies["Metacritic_norm_round"], movies["Fandango_Stars"])
r_value
Vamos a predecir que puntuacion tendiran los que votaron 3 en Metacritic a Fandango.¶
value_to_pred = 3
pred_3 = value_to_pred * slope + intercept
pred_3
pred_1 = 1*slope + intercept
pred_1
pred_5 = 5*slope + intercept
pred_5
plt.scatter(movies["Metacritic_norm_round"], movies["Fandango_Stars"])
plt.plot([1.0, 5.0], [pred_1, pred_5])
plt.xlim([1.0, 5.0])
plt.show()