[PYTHON] [Statistiques] Comprendre le mécanisme des graphiques Q-Q avec animation.

Cette fois, en suivant la précédente courbe ROC, une animation sur la signification de ** QQ plot ** publiée dans le manuel officiel de Statistics Test Level 2 J'écrirai un article qui explique l'utilisation de graphiques. C'est aussi un graphique un peu bizarre, et je pense qu'il nécessite quelques conseils pour le comprendre, alors j'aimerais essayer de l'expliquer. Je peux écrire des graphiques Q-Q avec qqnorm même en R, mais je ne comprends pas comment cela fonctionne dans la boîte noire, alors je l'ai écrit moi-même en Python.

1. À propos des données utilisées cette fois

Par conséquent, les données utilisées sont les données de loyer de l'appartement dans le manuel. Ce sont les données.

Mansion2.data

<tr>
  <th>185</th>
  <td>11</td>
  <td>B</td>
  <td>8600</td>
  <td>1K</td>
  <td>20.79</td>
Walk_min distance Price Type Area Direction Year
0 8 B 7900 1K 30.03 Sud 3
1 9 B 8500 1K 21.9 Sud 5
2 10 B 10800 1K 27.05 Sud 4
3 10 B 10800 1K 29.67 Sud 4
... ... ... ... ... ... ... ...
Nord-est 0
186 8 B 7100 1K 22 Ouest 17
187 9 B 18400 1LDK 54.68 Ouest 10

Téléchargez ces données ici au milieu du manuel officiel de Statistics Test Level 2 Vous pouvez le faire à partir du lien "Données à télécharger" dans. Décompressez le fichier zip téléchargé et ** Mansion2.data ** dans le dossier [Chapter 2] - [Body] contient les données utilisées cette fois.

Et une fois que j'ai obtenu les données, je voudrais d'abord dessiner un graphique et donner une image des données: blush:

mansion-plot-compressor.png Fig.1

La fourchette de prix est plus proche du côté gauche et il s'agit d'un type d'histogramme avec un long ourlet sur le côté droit. En outre, on peut voir qu'il semble y avoir une corrélation entre le prix et la taille.

Puisque ce graphique Q-Q se concentre sur le prix, nous irons plus loin sur le prix et essayerons d'interpréter le graphique. Il s'agit de "savoir si cette distribution suit ou non une distribution normale".

Eh bien, en fait, comme indiqué ci-dessous, lorsque j'applique la fonction de densité de la distribution normale basée sur la moyenne et l'écart-type obtenus à partir de ces données, cela ne correspond clairement pas, mais je vais continuer sans m'en soucier w

qq-_02-compressor.png Fig.2

cum_hist_norm-compressor.png Fig.3

Le code Python pour dessiner la série de graphiques ci-dessus est ici.

2. Qu'est-ce qu'un tracé Q-Q?

Quoi qu'il en soit, jetons un coup d'œil au graphique du tracé Q-Q lui-même.

Q-Q_plot-compressor.png Fig.4

Oui, il s'agit du graphique Q-Q pour les données cibles "Prix", c'est-à-dire les données de loyer. À première vue, je ne suis pas sûr de ce que montre le graphique. L'explication du manuel est "Le diagramme Q-Q est un graphique pour comparer les données obtenues avec la distribution théorique et examiner la similitude." ** S'ils sont similaires, les points tracés s'aligneront en ligne droite **, c'est vrai.

Alors, comment interprétez-vous le graphique ci-dessus? La figure 4 ci-dessus est considérée comme une modification de la forme de la figure 2. En d'autres termes, c'est un graphique qui vous permet de comprendre visuellement à quel point les données de loyer obtenues et la fonction de densité de distribution normale, qui est la distribution théorique, sont similaires, qu'elles soient droites ou non.

3. L'origine du graphique Q-Q

Au fait, ce graphique consiste à mesurer la similitude avec la distribution théorique par le degré de rectitude, mais je pense que je dois comprendre comment dessiner ce graphique, donc je vais expliquer pourquoi on peut le dire.

Expliquons à nouveau en utilisant les données de loyer. C'est la forme de la distribution. price_hist-compressor.png Fig.5

À partir de là, nous utiliserons deux graphiques de produits intermédiaires pour créer le graphique Q-Q.

La première chose à utiliser est d'organiser ces données de location une par une dans l'ordre croissant et de dessiner des points pour dessiner un graphique. Il y a un total de 188 données, qui sont réparties uniformément entre 0 et 1. House_price_sorted-compressor.png Fig.6

En tant que deuxième graphique, nous supposerons une distribution normale comme distribution théorique cette fois, nous allons donc écrire un graphique de la fonction de distribution cumulative normale et l'utiliser. Cela représente également la fonction de densité cumulée avec 188 points, le même nombre que les données de loyer. cumulative_norm-compressor.png Fig.7

En combinant ces deux graphiques, vous pouvez dessiner un graphique du graphique Q-Q. Voyons cela dans un graphique d'animation.

Q-Q_plot_House_price-compressor.gif Fig.8

Le graphique de produit intermédiaire La figure 6 ci-dessus est le graphique supérieur droit et la figure 7 est le graphique inférieur gauche. Le coin supérieur gauche est le graphique Q-Q cible. Tout d'abord, l'axe horizontal du graphique de données sur les loyers en haut à droite représente le nombre de fractions, et l'axe vertical de la fonction de distribution cumulative normale en bas à gauche représente également le nombre de fractions. Faites glisser cette fraction de 0 à 1 en même temps dans le coin supérieur droit et inférieur gauche respectivement. La ligne noire le représente. Les points qui coupent la ligne noire sont affichés sous forme de points rouges. Le tracé Q-Q est un tracé simultané de ces points rouges. La ligne pointillée le représente. Le "Q" dans ce graphique Q-Q représente Quantile, et je pense qu'il porte ce nom car il déplace les fractions dans les graphiques supérieur droit et inférieur gauche en même temps.

(Le code Python est ici)

4. Graphique Q-Q de nombres aléatoires suivant une distribution normale

À propos, si les données et la distribution théorique sont les mêmes, le graphique QQ sera une ligne droite, je voudrais donc essayer cela également. Cela signifie utiliser des nombres aléatoires qui suivent une distribution normale. Voici un histogramme de 188 nombres aléatoires qui suivent une distribution normale. Norm_hist-compressor.png

Si vous dessinez un graphique Q-Q ... C'est définitivement une ligne droite: détendue: Q-Q_plot_Norm-compressor.gif

5. Diagramme Q-Q de nombres aléatoires selon la distribution exponentielle

Vient ensuite la distribution exponentielle. C'est une distribution avec un long ourlet à droite. Exp_hist-compressor.png

Avec une telle forme, le tracé Q-Q normal aura une forme convexe dans le coin inférieur droit. Q-Q_plot_Exp_Dist-compressor.gif

6. Graphique Q-Q de nombres aléatoires suivant la distribution F

C'est un type de distribution F avec un ourlet légèrement long vers la droite. F_hist-compressor.png Cela a également un tracé Q-Q légèrement convexe dans le coin inférieur droit. Q-Q_plot_F_Dist-compressor.gif

6. Diagramme Q-Q de nombres aléatoires suivant la distribution β

Ensuite, écrivons un graphique Q-Q en utilisant la distribution de type à longue queue sur la gauche, la distribution bêta de $ \ alpha = 6, \ beta = 2 $. Beta_hist-compressor.png Cette fois, au contraire, un tracé Q-Q convexe est dessiné en haut à gauche. Q-Q_plot_Beta_Dist-compressor.gif

Un peu différente est la distribution bêta de $ \ alpha = 0,5, \ beta = 0,5 $, avec des pics des deux côtés. Dans ce cas, vous pouvez dessiner un diagramme Q-Q qui est convexe à mi-chemin en bas à droite et convexe en haut à gauche dans la seconde moitié. Beta_hist2-compressor.png Q-Q_plot_Beta_Dist2-compressor.gif

Le texte complet du code Python pour dessiner les graphiques sur cette page est ici

Recommended Posts

[Statistiques] Comprendre le mécanisme des graphiques Q-Q avec animation.
[Statistiques] Comprenez ce qu'est la courbe ROC par animation.
[Ev3dev] Comprenons le mécanisme de contrôle LCD (écran)
L'expérience de la CIA pour déchiffrer le mécanisme de l'écoute téléphonique publique
J'ai étudié le mécanisme de connexion flask!
Comprendre le contenu du pipeline sklearn
[Statistiques] Visualisez et comprenez la méthode Hamiltonian Monte Carlo avec animation.
[GWAS] Tracez les résultats de l'analyse en composantes principales (ACP) par PLINK
Tracé de la droite de régression par tracé des résidus
[Objet obligatoire DI] Implémenter et comprendre le mécanisme de DI avec Go
Animation des géodonnées par geopandas
Expliquer le mécanisme de la classe de données PEP557
Comprendre la commodité de Django Rest Framework
[Python3] Comprendre les bases de Beautiful Soup
Comprendre la partie "temporaire" d'UNIX / Linux
Pandas du débutant, par le débutant, pour le débutant [Python]
Examinons le mécanisme de la chinchirorine de Kaiji
[Python3] Comprendre les bases des opérations sur les fichiers
Vérifiez le fonctionnement d'OpenCV3 installé par Anaconda
Trier les éléments d'un tableau en spécifiant des conditions
Animation de transition du langage de programmation le plus populaire (#programming language #popular)
Linux: comprendre les informations affichées par la commande top
Minimisez le nombre de polissages en optimisant la combinaison
Juger la finition du mahjong par l'optimisation des combinaisons
La base de la théorie des graphes avec l'animation matplotlib
Rechercher par la valeur de l'instance dans la liste
Comment éviter l'étiquette de coupure du graphique créé par le module système de tracé à l'aide de matplotlib