Une coquille dans la pellicule

Quelques approximations dans les notes Allociné

Introduction

Cet article a pour but de mettre en évidence des petits problèmes quant à la notation de certains films sur le site Allociné. Pour ceux qui ne connaitraient pas ce site, Allocine.fr est un site français se concentrant sur le cinéma et dont la principale caractéristique est de fournir une fiche détaillée pour chaque film avec différents descriptifs sur les acteurs et sur le film en lui-même et qui permet aussi à ses utilisateurs de laisser leurs avis et de donner des notes (entre 0 et 5 étoiles) sur les films. Il existe aussi le site imbd qui est la référence américaine du cinéma et qui fonctionne sur le même principe.

 

Le problème

#RaconteTaLife. Je cherchais récemment à établir une liste des films populaires français. Pour ça je me suis donc tourné vers le site Allociné afin de m'aider à établir cette liste en me basant sur les note données par les spectateurs afin d'être plus neutre. Les notes des spectateurs présentes sur le site forment un échantillon plus représentatif des goûts de la population française que mon simple avis. J'utilise donc fréquemment ce site afin d'avoir une estimation de la qualité des films que je souhaite voir. La règle empirique consiste à dire qu'un film ayant une moyenne supérieure à 4 mérite d'être vu (on peut étendre cette limite jusqu’à 3.5). Les films avec une note supérieure à 3 restent corrects et peuvent être vus, mais ce ne sont pas des indispensables. Enfin, si la note moyenne donnée par les spectateurs est inférieure à 3, il y a de forte chance que le film ne soit pas très bon. Il faut évidemment toujours nuancer ces scores, car les goûts de chacun en matière de cinéma sont très différents. Mais globalement cette tendance se vérifie plutôt bien. (Bon, si comme moi vous n'aimez pas les films d'horreur, ça ne sert à rien de regarder un film d'horreur même si celui-ci a une très bonne note, vous ne l'aimerez pas quand même.)
Donc, en parcourant ces films, je suis alors tombé sur la fiche du film "Les enfants du marais". Je pense qu'on peut s'accorder pour dire que c'est un film plutôt bon et qui mérite d'être vu. Quel ne fut pas mon étonnement de constater que la moyenne des notes données par les spectateur n'est que de 2.5 ! C'est clairement très bas. Je ne comprenais pas comment cela avait pu arriver, le site me semblant très fiable habituellement sur ces moyennes. J'ai donc regardé plus en détail les avis des spectateurs et c'est là que j'ai compris que le site avait une double notation.

La double notation

Habituellement je regarde la note spectateur donnée en en-tête de la fiche du film et qui est donc la moyenne des notes laissées par les utilisateurs. Il existe cependant une autre méthode pour les utilisateurs, consistant à laisser un commentaire sur le film en plus de leur note. Dans ce cas-là, en bas de la fiche se trouve les critiques laissées par les spectateurs ainsi que leurs notes représentées dans un histogrammes. On se rend alors compte, dans le cas de ce film, que la distribution des notes laissées par les gens qui ont fournit une critique est bien meilleure. Cette moyenne n'est pas fournie mais on peut la calculer en regardant la distribution des notes. On obtient environ 4.2, ce qui me semble plus réaliste.


Quasiment aucun des spectateurs ayant laissé une critique n'a donné de notes inférieure à 3. Comment est-ce donc possible qu'il y ai une telle différence?

L'analyse des notes

Pour essayer de comprendre si cette différence était un cas isolé, j'ai donc décidé d'analyser les notes des films en comparant la note moyenne des spectateurs (dont on ne connait pas le détail) et la note moyenne des spectateurs qui ont laissé une critique (que l'on peut recalculer à partir de l'histogramme). Hop hop hop, on récupère les infos des 135 000 films présent sur le site, on supprime ceux avec moins de 50 critiques ce qui nous laisse donc avec 7864 films. On peut alors réaliser un graphique qui apporte les informations suivantes :


1-Chaque point sur le graphique représente un film. Il y a donc 7864 points sur ce graphique. La position sur l'axe horizontal (l'axe des abscisses) correspond à la différence entre la moyenne des notes données par l'ensemble des utilisateurs et la moyenne des notes données par les personnes ayant laissé une critique. On s'attend donc à ce que cette différence soit proche de 0. Cela indique que les deux notes sont à peu près similaires.

2- L'axe des ordonnées (la position verticale de chaque point) indique le nombre total de notes données sur ce film. En effet, en regardant les résultats du film "les enfants du marais" je me suis rendu compte que la moyenne est obtenue à partir de 100 827 notes. Ce qui me paraissait énorme (surtout pour ce film). A titre de comparaison, Titanic a été noté par 70 000 personnes et Bienvenue chez les ch'tis par 62 000 personnes (alors qu'il me semble que le succès de ces films est largement plus important).

3- Comme précisé au point précédent, il semble qu'il y ai une surabondance des notes par rapport aux critiques. La couleur des points indique donc le ratio entre le nombres de notes sans critiques et le nombre de notes avec critique. Sur les 3500 films analysés il y a environ 10 fois plus de gens qui ont simplement laissé une note que de gens qui ont laissé une critique (un ratio de 10 donc) et 90% des films ont un ratio inférieur à 25. La couleur des points représente une approximation de ce ratio. Les points en verts peuvent avoir jusqu'à 600 fois plus de notes que de critiques. (Je ne dis pas que c'est suspicieux mais cela reste notable)


Analyse du graphique

On constate bien que la différence entre la note globale et la note donnée par les utilisateurs ayant laissé un commentaire est proche de 0. Elle est légèrement inférieure à 0 mais cela s'explique probablement par le fait qu'il est possible de laisser des demi-points dans la notations mais que ceux-ci sont agglomérés avec le reste des notes dans l'histogramme. En bas du graphique, sont représentés deux intervalles (50% et 90%) qui montrent que 50% des films ont une différence de notation comprise entre -0.3 et +0.1 et que 90% des films ont une différence de notation comprise entre -0.7 et 0.4. Évidemment ces différences de notation sont parfois assez importantes quand le nombre total de note est plutôt faible (d'où l'étalement des notes pour les valeurs en ordonnées proches de 0).
Ce qui nous intéresse ici sont plutôt les notes avec énormément de votants. Et on retrouve justement notre film "les enfants du marais" à un emplacement très étrange sur le graphe. Il se retrouve très très haut (avec 100 000 notes c'est le 16ème film avec le plus de notes de tout le site) et sa couleur indique qu'il a beaucoup plus de notes que de critiques (le ratio est de 376 dans le cas de ce film)
Je ne sais pas ce qu'il se passe exactement. La seule chose est que ce film a de manière assez improbable énormément de notes sans commentaires et que, comme par hasard, elles font chuter sa moyenne en la faisant passer de 4.2 à 2.5. Un autre film dans ce cas-là est les films "les sept samouraïs". Alors certes, on peut dire qu'il s'agit d'un classique, mais un film de 1956 avec 100 000 notes (donc plus que "bienvenue chez les chtis") et une énorme différence de moyenne (elle passe de 1.8 chez ceux qui ont laissé une note à 4.4 chez ceux qui ont laissé un commentaire) ça semble très étonnant.

On constate aussi qu'il y a un ensemble de films avec un très grosse quantité de notes (mais pas forcement un grosse différence entre ceux qui on laissé des critiques et les autres). Pour les films "Camping", "Taxi" et "Top Gun" on peut (à la rigueur) supposer qu'il y a eu un certain engouement, mais je veux bien qu'on m'explique pourquoi "Palais royal" (film que tout le monde a oublié de 2005 avec Valérie Lemercier) et James bond contre Dr No (film de 1962) arrivent a dépasser les 120 000 votes. Même "les quatre fantastiques" (qui est loin d'avoir fait un carton au box office) fait plus de 200 000 votes (avec seulement 1 300 critiques) alors que dans le même temps "Spider-Man" de Sam Raimi a 50 000 votes et 1 400 critiques. On trouve aussi, de manière étonnante, "Talon aiguille" de Pedro Almodovar avec près de 100 000 votes (et seulement 147 critiques).

Conclusion

La seule explication que j'ai à ces divergences flagrantes viendrait du fait de robots qui auraient voté de façon massive pour ces films. Une personne qui aurait développé un script pour automatiser les votes et qui aurait pris (probablement au hasard) "les enfants du marais" pour faire ses tests.
malgré tout on constate que globalement la moyenne donnée par les utilisateurs correspond en grande majorité à celle donnée par les gens laissant des critiques et qu'à quelques exceptions près (à peine 3 ou 4 films sur les 7800) le site reste fiable.

When should you stop watching a NBA game?

Introduction

Inconditional NBA fans can watch several games a day but we must face it, it could be sometime boring to attend on TV all the 82 games of your favorite team all along the season. You sometime ends up looking negligently at the screen waiting to the game to come to an end. Even more when your team leads by 20 and you just want the game to finish. Hopefully, this article will help you to decide wether or not you should stop watching the game because the result won't change.

Premise

Method is simple and based on well-known analyses already done multiple times by different people named "win probability". The idea is to determine at any moment of a game, the probability of victory, based on impartial elements (game score, home court advantage, team ranking...). To do such, one need to use historical data to infer probability of victory. For example, si 990 out ouf 1000, a team that led by 20 points at the end of the third quarter won the game, we could estimate that in the future, if a team lead by 20 points, there is a 99% probability of victory.

This is the very basic explanation. To create the estimations, we just need to extract data and use a mathematical model to fit the results. In this article,we will keep it simple by only taking into account the score difference and the remaining time. Some websites (like ESPN) also takes into account the team ranking differences, the possessions ans many other parameters. It is possible to gather these data and compute thiese models (that are indeed more accurate) but the obtained results are harder to summazrize. It seems easier to say that :
- If a team leads by 7 with 6 minutes remaining, this team has 90% of chance of winning the game
Instead of :
- If a team leads by 7 with 6 minutes remaining and is ranked ten places better and play at home but has already played the day before and its best scorer is injured then this team has 86% of chance of winning.
It is certainly more precise but it create too many cases to handle and to remember.

Data gathering

To analyze these probabilities, we must collect all the informations about previous games. Specialized sites have huge and comprehensive databases to run these analyses. But as you are not currently reading as ESPN article data has to be gathered differently. The method is simple (and ugly). One just need to look at basketball-reference.com that collect all the NBA games and to extract the play-by-play summary. For every game since 2001, every possession and action is detailled (who missed the shot, when, what was the score ...) that creates the following type of table
Example of play-by-play
It is then possible, for each second of the game to know the score and so, the score differnce of the future wining team at this point of the game. By extracting all these informations from 2001 to the 2017-2018 season (with the playoff as weel), we obtain  23219 games. For the rest of the analysis we will focus only on the last quarter (the last 12 minutes). We just keep the data of the last remaing 720 seconds which create a dataset of 16.7 millions of rows (it is quite big but not that difficult to handle and anyway this is the software that do the computation, you don'y do it manually) and it looks like :


Data subset
First column is the game ID, second column is the number of remaining seconds and last one is the score difference for the winning team. It is then possible to calibrate a model because we have 23219 observations for each second. Let's take for examplethe score difference with 60 secondes remaining. The following graph shows there was 1225 games where the score difference with 60 seconds was 1 point (first bar of the graph) but only 443 games where the score difference at 1 second was 20 points. In blue are presented all the games where the team leading the score (again with 60 seconds remaining) finally won and in orange the number of times where the leading team finally lost.

By looking at the 1225 games with 1 point diffrence and with 60 seconds remaining, 826 times the leading team finally won (blue bar) and 399 times it is the trailing team that finally won (orange). Hence, the "observed" probability of winning a game when leading by 1 at 60 seconds of the end of the game is 826/225 = 67.4% (overtime games were not taken into account to simplify the computation).

We cas easily see that a difference bigger than 10 points with 60 seconds remaining garanty a win (it was always the case the 9637 times it happens). It does not mean that it will never happen (we are just making inference) it just means it never happend before. So, if you are in this case, you team is trailing by more than 10 points with 60 seconds remaining, I advised you to leave, you will hurt yourself for nothing (or, if you stay, you may see an historical moment). The only time when a team was trailing by 10 and finally won was the infamous 2009, Houston Rockets - San Antonio Spurs with 13 points in 35 seconds from Tracy McGrady.

We just saw that a team leading by 1 with 60 seconds remaninig won 67% of the time. Is a team led by 2 it's 84% of victory, with 3 points it's 90%, 4 points 96% etc.. This analysis just need to be done also for all the other remanining seconds.

Analysis

It is then possible to create a model that fit all the data. It is only necessary to smoth these data because there is a slight variability in the results. After making these adjustments we can produce graph with victory levelss to synthetize the outcome.


If you are not vey motivated by watching a game, you just need to look at the 80% slope. It means that 4 times out of 5, the team leading by 5 with 7 minutes remaining (or 6 points with 12 minutes) finally won.

However, if you want to be sure about the winner, look at least at the 95% slope. It shows that a team leading by 10 with 7 minutes remaining will win 95% of the time
I would advise to use the 90% slope, a team leading by 10 at the start of the last quarter will win 9 times out of 10. You will save one useless quarter most of the time.

Conclusion

The "fun" part of this analysis is not really the model (which is fairly simple in order to be synthetic) but more the data gathering and formatting to create a concise answer to a question that arose in every NBA fan : "Does my team still have a chance to win this game ?". Of course numerous parameters has to be considered and this this why sport is magic, it is dur to the uncertainty of the final result. But how many times were you expecting a positive outcome for your time when it was trailed by 6 with 2 minutes remaining. It seems possible but in reality in only happends one time out of 40. So don't expect too much.

Le livre dont vous êtes le héros

Les livres dont vous êtes le héros

Souvenez-vous

Si vous avez été jeune dans les années 80-90, vous connaissez peut-être une catégorie assez spéciale de livres, les "livre dont vous êtes le héros". Pour résumer, il s'agit d'un livre-jeu au cours duquel vous incarnez un aventurier, souvent dans un monde horrifique ou d'heroic fantasy. A la fin de chaque chapitre le joueur est appelé à faire des choix qui l'orienteront vers un autre chapitre situé à un autre emplacement du livre. Le lecteur rebondit donc de chapitre en chapitre au fil de ces choix, affrontant à intervalle régulier des monstres dans le but final de triompher de la menace majeure.

Je ne m'étendrai pas sur la définition de ce sujet, je vous conseille plutôt cet excellent article sur l'histoire et la composition des livres dont vous êtes le héros. L'explication est bien plus complète que ce que je pourrai faire.

Place à l'action

Nous allons regarder comment triompher du livre "Le manoir de l'enfer" (titre original : "House of hell"). De multiples chemins mènent (parfois de manière détournée) à la solution mais certains choix pourront faire s'achever votre aventure plus tôt que prévu (souvent par la mort du héros dans des conditions peu enviables). Il est aussi possible de mourir sans avoir fait de mauvais choix mais uniquement en perdant lors d'un combat (dont l'issue se règle avec des lancers de dés). La malchance aux dès peut donc aussi vous faire échouer.


Méthode 

La première partie du travail consiste à lister les connections qui existent entre chaque paragraphe. Deux manières s'affrontent, la première (que nous nommons de manière habituelle "la méthode bourrine") consiste à noter à la main dans un tableau toutes les paires de connections en tournant une à une les pages du livre. C'est un peu fastidieux (il faut compter deux bonnes heures au moins) mais c'est faisable. La deuxième méthode utilise l'informatique et consiste à récupérer le pdf du livre et d'en interpreter le contenu afin d'extraire les informations utiles. Pour ce faire, j'ai utilisé le package R pdftools qui permet de lire les pdf et après un peu de formatage (la conversion du fichier pdf en contenu texte n'est pas toujours parfaite) il est possible d'obtenir un résultat similaire à la première méthode qui est donc :

IDSUIVANT
1357
1275
1289
2200
2272

Le résultat montre ici que le paragraphe 1 est relié aux paragraphes 357, 275 et 289, que le paragraphe 2 est relié au 200 et 272, etc... Au total nous avons 400 paragraphes et 711 connections. C'est exactement ce dont nous avons besoin pour créer notre graphe et effectuer nos calculs.En utilisant le package R igraph il est aisé d'obtenir le type de résultat suivant :


Chaque disque représente un numéro de chapitre, on commence en haut au chapitre 1 (en orange) et en parcourant les nœuds de ce réseau grâce aux flèches qui les relient il faut se frayer un chemin en évitant la case "Death" (qui regroupe les différentes fins possibles). En rouge se trouvent les paragraphes impliquant des évènements pouvant affecter vos points de vie (principalement des combats)

Le chemin le plus court

Notre objectif est tout d'abord de trouver le chemin le plus court qui permet de terminer l'aventure. Il faut donc aller du paragraphe 1 (début du récit) au paragraphe 400 (fin du récit) en un minimum d'étapes. Ce type de résultat s'obtient très facilement et divers algorithmes existent pour y parvenir. En utilisant la fonction "get.all.shortest.paths" du package igraph on obtient une solution en 28 étapes présentée ci-dessous :



Il s'agit effectivement du chemin "théoriquement" le plus court mais celui-ci ne tient pas compte du récit de votre aventure. En effet, dans le cas du manoir de l'enfer, il existe une particularité au paragraphe 323.
La porte est fermée à clef. Vous remarquez que la serrure et la poignée sont d'une seule et même pièce de métal. Possédez-vous une Clef en Fonte ? Si oui, déduisez le nombre qui y est gravé du nombre servant de référence à ce paragraphe. Le résultat que vous obtiendrez vous donnera le numéro du paragraphe où vous pourrez vous rendre pour ouvrir la porte. Si vous ne possédez pas la Clef en Fonte, précipitez-vous sur la porte opposée, et le plus vite possible, car vous entendez un bruit de pas qui se rapprochent dans le couloir. Rendez-vous au 118.
 
D'une part il est obligatoire de passer par cette étape si vous souhaitez terminer votre aventure, mais d'autre part il faut impérativement être passé par le paragraphe vous permettant d'obtenir la clef en fonte pour pouvoir finir l'aventure (aller à la case 118 vous conduit inéluctablement à la mort). De plus, à cause de cette étape, il a fallu aussi modifier le tableau des liens entre les cases en ajoutant manuellement le lien 323 -> 296 car celui-ci n'est pas écrit explicitement dans le texte. Pour information, le paragraphe permettant de récupérer la clef en fonte est le paragraphe 10. Le chemin permettant donc de terminer le récit passe donc obligatoirement par les étapes suivantes : 1 - 10 - [323 - 296] - 400 (bien évidemment il y a des étapes intermédiaires). 

Cependant, une chose similaire se produit pour accéder au paragraphe 10, il faut au préalable posséder la clé en or pour pouvoir passer de la case 294 à la case 10. Cette clef en or s'obtient au paragraphe 273. Il faut donc obligatoirement passer par le parcours suivant : 1 - 273 - [294 - 10] - [323 - 296] - 400.



En prenant en compte ces contraintes supplémentaires, on obtient un chemin en 38 étapes qui est :

1 - 289 - 345 - 207 - 267 - 173 - 136 - 317 - 287 - 193 - 132 - 222 - 108 - 49 - 217 - 343 - 293 - 113 - 324 - 147 - 184 - 215 - 273 - 160 - 294 - 10 - 204 - 349 - 131 - 58 - 323 - 296 - 318 - 351 - 336 - 181 - 109 - 400

Prenez-garde néanmoins, même si ce trajet est le plus court, il ne garantit pas la victoire à tous les coups puisqu'il contient une quantité importante de combats et d'épreuves qui feront diminuer vos points de vie, il est donc possible d'échouer même en suivant ce chemin

Pour finir, il est a noter qu'il existe une page wikipédia sur le manoir de l'enfer qui propose un schéma simplifié (les 400 paragraphes ne sont pas tous représentés). Je ne sais pas comment ce graphe a été réalisé mais le chemin est plus long que les graphes optimaux que j'ai obtenu alors qu'il ne prend pas en compte les objets nécessaires à la résolution de la quête.

J'ai aussi vu une version de la solution en 101 étapes sur ce site.Elle permet de récupérer les objets qui vous faciliteront la tache dans votre aventure (mais c'est beaucoup plus long)


 1 - 357 - 8 - 304 - 151 - 277 - 394 - 309 - 395 - 196 - 28 - 224 - 5 - 59 - 63 - 158 - 373 - 399 - 220 - 234 - 308 - 350 - 257 - 358 - 117 - 341 - 161 - 385 - 26 - 287 - 86 - 110 - 193 - 377 - 83 - 233 - 374 - 272 - 175 - 103 - 163 - 226 - 246 - 312 - 261 - 380 - 70 - 329 - 335 - 139 - 246 - 170 - 19 - 321 - 88 - 295 - 159 - 132 - 353 - 292 - 303 - 85 - 145 - 64 - 375 - 392 - 397 - 6 - 367 - 210 - 230 - 198 - 93 - 393 - 320 - 310 - 246 - 237 - 174 - 48 - 35 - 293 - 113 - 324 - 147 - 3 - 160 - 294 - 10 - 204 - 349 - 131 - 58 - 323 - 296 - 318 - 351 - 336 - 181 - 109 - 400

Conclusion

Nous avons vu qu'il est possible d'automatiser une très grande partie du traitement des données et du calcul des solutions de manière informatique. Cependant, la composante textuelle reste néanmoins importante afin d’interpréter les conditions permettant de passer d'un paragraphe à un autre (à cause de la présence ou non d'un objet par exemple) mais aussi pour compléter les quelques paragraphes à énigme (comme le paragraphe 323 présenté ci-dessus). Il y a aussi deux cas très spécifique où il faut déduire des connexions pour du paragraphe 61 au 51 et du paragraphe 320 au 310 grâce à des informations pas très claires obtenues au paragraphe 295.