[PYTHON] Regardons le diagramme de dispersion avant l'analyse des données

Lorsque vous démarrez l'analyse des données, [statistiques récapitulatives] telles que la moyenne et la distribution des données (https://ja.wikipedia.org/wiki/%E8%A6%81%E7%B4%84%E7%B5%B1% Je pense que vous devriez vérifier E8% A8% 88% E9% 87% 8F). Cependant, il ne suffit parfois pas de vérifier les statistiques récapitulatives.

Par exemple, dans le cas de Ces données [^ 1]

import pandas as pd
import seaborn as sns

#Lire les données
df = pd.read_csv('https://git.io/vD7ui')

#Nuage de points
sns.lmplot(x='x', y='y', col='data', hue='data', col_wrap=2, fit_reg=False, data=df)

散布図

Si vous regardez le diagramme de dispersion, vous pouvez voir que les données sont différentes, mais la moyenne et l'écart type prennent la même valeur.

#moyenne
df.groupby('data').mean()
data x y
0 9 7.500909
1 9 7.500909
2 9 7.500000
3 9 7.500909
#écart-type
df.groupby('data').std()
data x y
0 3.316625 2.031568
1 3.316625 2.031657
2 3.316625 2.030424
3 3.316625 2.030579

Vous pouvez voir que les valeurs fines sont différentes, mais elles sont presque les mêmes.

De plus, la ligne de régression sera exactement la même.

#Nuage de points+Retour en ligne droite
sns.lmplot(x='x', y='y', col='data', hue='data', col_wrap=2, fit_reg=True, data=df)

散布図 + 回帰直線

Dans les pandas, vous pouvez afficher des statistiques récapitulatives collectivement avec la méthode describe.

#Statistiques récapitulatives
df.groupby('data').describe()
x	y
data			
0	count	11.000000	11.000000
mean	9.000000	7.500909
std	3.316625	2.031568
min	4.000000	4.260000
25%	6.500000	6.315000
50%	9.000000	7.580000
75%	11.500000	8.570000
max	14.000000	10.840000
1	count	11.000000	11.000000
mean	9.000000	7.500909
std	3.316625	2.031657
min	4.000000	3.100000
25%	6.500000	6.695000
50%	9.000000	8.140000
75%	11.500000	8.950000
max	14.000000	9.260000
2	count	11.000000	11.000000
mean	9.000000	7.500000
std	3.316625	2.030424
min	4.000000	5.390000
25%	6.500000	6.250000
50%	9.000000	7.110000
75%	11.500000	7.980000
max	14.000000	12.740000
3	count	11.000000	11.000000
mean	9.000000	7.500909
std	3.316625	2.030579
min	8.000000	5.250000
25%	8.000000	6.170000
50%	8.000000	7.040000
75%	8.000000	8.190000
max	19.000000	12.500000

Les écarts moyen et standard sont comme vous l'avez vu précédemment, mais vous pouvez voir que les quadrants sont légèrement différents. Surtout data3 est très différent.

De cette façon, des données avec différents diagrammes de dispersion mais les mêmes statistiques et la même ligne de régression [exemple Anscom](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83% Il est appelé B3% E3% 82% B9% E3% 82% B3% E3% 83% A0% E3% 81% AE% E4% BE% 8B). Par conséquent, il est important de dessiner un diagramme de dispersion ainsi que des statistiques.

Cependant, dans les données réelles, je pense que c'est rarement bidimensionnel. Dans ce cas, [Analyse primaire (PCA)](https://ja.wikipedia.org/wiki/%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6 Il est nécessaire de concevoir comme utiliser% 9E% 90) pour réduire la dimension à 2 dimensions et la visualiser.

[^ 1]: les lignes avec la même valeur dans la colonne de données représentent les mêmes données

Recommended Posts

Regardons le diagramme de dispersion avant l'analyse des données
Analysons les données de l'enquête par questionnaire [4e: Analyse des émotions]
Faisons l'analyse des données de naufrage du Titanic comme ça
Challenge classification des images par TensorFlow2 + Keras 2 ~ Regardons de plus près les données d'entrée ~
Jetons un coup d'œil à la carte des fonctionnalités de YOLO v3
Jouons avec le jeu de données d'analyse d'entreprise "CoARiJ" créé par TIS ②
Tracez plusieurs cartes et données en même temps avec matplotlib de Python
Analyse des données avant la génération de fonctionnalités titanesques de Kaggle
[Analyse des données] Analysons les actions automobiles américaines
Analyse des données en Python Résumé des sources que les débutants devraient d'abord consulter
Jetons un coup d'œil au code Scapy. Comment traitez-vous la structure?
Étiquetez chaque point sur le diagramme de dispersion Seaborn
[Python] Tracé de carte en couleur au niveau de la ville / quartier / ville / village
J'ai essayé l'analyse du SRAS avant le virus corona
[Analyse des données] Dois-je acheter le drapeau Harumi?