Organisation des procédures de base pour l'analyse des données et le traitement statistique (2)

De Hier, j'ai organisé la procédure de base de l'analyse des données, mais c'est une continuation.

Sélectionnez les outils d'analyse

Lors de PyCon JP 2014 qui a eu lieu le week-end, l'histoire qu'il y a de nombreux utilisateurs de Python 2 / entry / pycon-jp-2014) était là, et Kenneth Reitz de Heroku a dit No Benefit 81% AE1% E6% 97% A5% E7% 9B% AE_keynote_% E3% 81% AB% E3% 81% A4% E3% 81% 84% E3% 81% A6) Si vous utilisez, vous pouvez choisir la série 3.x. En passant, je pense que la plupart des gens ont recommandé Python 3 dans l'annonce japonaise ultérieure.

Pourquoi utiliser Python 3

Voici mon idée pourquoi j'utilise Python 3 pour l'analyse des données.

Ces deux ne suffisent plus.

Les lecteurs de cet article sont probablement majoritairement japonais, et bien sûr l'auteur est également japonais. Pour les anglophones, les avantages d'Unicode sont difficiles à obtenir, mais aujourd'hui, il ne peut y avoir de langue où UTF-8 n'est pas la valeur par défaut. Une fois que vous avez touché à Python 3, aucun Japonais ne voudra jamais revenir à Python 2. À une époque où il n'y a presque pas de distance entre les pays sur Internet, les langues difficiles à utiliser dans une région spécifique ne devraient pas être utilisées telles quelles et devraient être conformes aux normes mondiales.

De plus, la série Python 2 n'ajoutera plus de nouvelles fonctionnalités. En revanche, de puissantes bibliothèques telles que pandas, qui sont apparues vers 2008, se sont développées rapidement ces dernières années, et combiné avec le boom du big data, Python est analysé pour les données. Élever à un statut linguistique majeur fort pour. Depuis Python 3 a été introduit en 2008, les actifs avant cela seront petits ou obsolètes dans ce domaine, nous devrions donc passer immédiatement à la série Python 3. Il est peu probable que le coût de la migration soit aussi élevé.

Analyse des données Trois types de trésors sacrés

Maintenant MATLAB et R Language, Lorsque vous essayez d'effectuer une analyse numérique, l'accent est mis sur le calcul des vecteurs et des matrices. Les outils nécessaires à ce moment sont les suivants, si je les énumère comme trois sortes de trésors sacrés à ma discrétion.

Encore une fois, d'après j'ai traité de beaucoup de choses dans les articles jusqu'à présent, aucune explication supplémentaire n'est nécessaire.

Avez-vous vraiment besoin de Hadoop?

Quand on parle de big data dans une entreprise privée, on pense que le nom Hadoop sort immédiatement après la saisie du mot-clé ou du nom du produit. Mais étant donné le contenu de l'analyse, est-ce vraiment nécessaire? Veuillez bien réfléchir à la taille des données ainsi qu'à la nature du calcul à chaque fois.

MapReduce et Spark sont des outils très puissants s'ils sont utilisés correctement, par exemple, Utilisez-le pour échantillonner la population ou [faites-le dans un langage simple comme Pig ou Hive](http: // qiita. com / ynakayama / items / d2a8c125360e053d5a2f), mais la partie applicable n'est qu'une petite partie de la phase d'analyse des données. Dans les temps modernes, l'ordinateur disponible est suffisant pour analyser et visualiser les données de l'échantillon, et dans ce cas, il est possible d'utiliser non seulement Python mais aussi un logiciel de calcul de table tel que R ou Excel.

Assurez-vous que l'utilisation de certains logiciels ou outils n'est pas une fin en soi.

Écrire un exemple de code

La meilleure façon de voir l'utilité d'un outil d'analyse de données est de bouger les mains et d'écrire du code de toute façon.

E / S de fichier

Tout d'abord, l'analyse consiste à lire les données préparées à partir du fichier. Également dans NumPy / SciPy, genfromtxt et [loadtxt](http://docs.scipy.org/doc/ Il existe des fonctions de haut niveau telles que numpy / reference / generated / numpy.loadtxt.html # numpy.loadtxt), mais si vous pouvez utiliser des pandas, essentiellement read_csv C'est une bonne idée d'utiliser des fonctions pandas comme /stable/generated/pandas.io.parsers.read_csv.html).

Générer des nombres aléatoires selon une distribution spécifique

La génération aléatoire est souvent utilisée lors de l'écriture et de l'essai d'exemples de code. NumPy / SciPy est utile car il a divers générateurs de nombres aléatoires implémentés. En particulier, des nombres aléatoires peuvent être générés avec une moyenne et une variance arbitraires selon la distribution normale standard (distribution gaussienne) [numpy.randam.normal](http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal] .html) est pratique.

À titre de test, générons une bivariée à partir de nombres aléatoires qui suivent une distribution normale standard avec une moyenne et une variance arbitraires, trouvons les statistiques de base, calculons la covariance et le coefficient de corrélation, et visualisons-les dans un diagramme de dispersion.

#Générez 50 nombres aléatoires qui suivent une distribution normale standard avec une moyenne de 10 et un écart type de 5.
a = np.random.normal(10, 5, size=50)
#Générez 50 nombres aléatoires qui suivent une distribution normale standard avec une moyenne de 20 écarts types de 8.
b = np.random.normal(20, 8, size=50)
#Visualiser
plt.figure()
plt.scatter(a, b)
plt.savefig("image.png ")

image.png

J'ai pu tracer un diagramme de dispersion qui visualise la relation entre les deux variables.

Utiliser des blocs de données

Si vous faites la même chose avec les pandas, ce sera comme ça.

#Créer un bloc de données
df = pd.DataFrame({
    "a": np.random.normal(10, 5, size=50),
    "b": np.random.normal(20, 8, size=50)
})

#Visualiser
plt.scatter(df['a'], df['b'])

Les images générées sont les mêmes, je vais donc les omettre.

Référence et manipulation de la matrice

L'utilisation de trames de données avec des pandas de cette manière a l'avantage de faciliter le calcul et la manipulation des statistiques matricielles.

#Jetez un œil au contenu des nombres aléatoires générés
df
#=>
#             a          b
# 0   14.104370  13.301508
# 1    9.053707  32.101631
# 2    7.731780  14.075792
# 3    8.629411  38.876371
# 4   15.604993  24.380662
# 5   13.678605  16.517300
# ... (Omis en chemin)
# 46  12.229324  24.926788
# 47  16.650234  23.308550
# 48   8.101379  20.404972
# 49   0.807786  34.109284

#Calculer les statistiques de base clés
df.describe()
#=>
#                a          b
# count  50.000000  50.000000
# mean   10.517972  20.291032
# std     4.229104   8.104303
# min    -0.618973   4.451698
# 25%     8.006941  14.085385
# 50%    11.442714  20.018789
# 75%    13.828762  24.770515
# max    17.617583  39.991811

#Trouver la covariance entre les matrices
df.cov()
#=>
#            a          b
# a  17.885320  -5.215284
# b  -5.215284  65.679722

#Trouvez le coefficient de corrélation
df.corr()
#=>
#           a         b
# a  1.000000 -0.152165
# b -0.152165  1.000000

#Trouvez la matrice de translocation
df.T
#=>
#           0          1          2          3          4          5   \
# a  14.104370   9.053707   7.731780   8.629411  15.604993  13.678605   
# b  13.301508  32.101631  14.075792  38.876371  24.380662  16.517300   

#           6          7          8          9     ...             40  \
# a  12.321283   3.325300   5.439189  15.693431    ...      15.220284   
# b  30.198993  24.853103  10.381890  32.567924    ...      15.801350   

#           41         42         43         44         45         46  \
# a  13.493986   6.756807   9.030604  11.044724  11.443239  12.229324   
# b  14.278252  20.388216  20.582722  25.731553  18.479491  24.926788   

#           47         48         49  
# a  16.650234   8.101379   0.807786  
# b  23.308550  20.404972  34.109284  

C'est facile.

Et dans d'autres langues

Soit dit en passant, il existe de nombreux cas où, par exemple, le développement en Java est l'activité principale des entreprises dont l'activité principale est le développement de contrats de type contrat. Cependant, quelle que soit votre activité, il est préférable d'utiliser un langage adapté à l'analyse des données.

À titre d'essai, j'ai mentionné dans l'exemple de code ci-dessus: "Générez une bivariée à partir de nombres aléatoires qui suivent une distribution normale standard avec une moyenne et une variance arbitraires, trouvez les statistiques de base, calculez la covariance et le coefficient de corrélation et visualisez-les dans un diagramme de dispersion." Il est facile de voir qu'essayer de résoudre un problème simple dans un langage commun autre que les langages statistiques tels que R peut rapidement devenir difficile.

Trois points de statistiques sociales dans l'analyse des données

Maintenant que la préparation est un peu longue, il y a trois points majeurs dans les statistiques sociales de la série d'analyses sur les données issues de l'enquête.

1. Comprendre la distribution des données

La façon dont les variables des nombres sont distribuées est une prémisse très importante. La distribution est la dispersion des variables, mais certaines ** statistiques ** sont utilisées pour représenter l'état. Par exemple, «valeur moyenne» et «dispersion».

Pour capturer l'état de la distribution, utilisez un tableau de distribution de fréquence qui présente la distribution des valeurs de variable dans un format tabulaire, ou un diagramme de moustaches pour visualiser les statistiques résumées.

2. Déduire l'état de la population à partir du spécimen

Le point suivant est de déduire l'état de la population entière, appelée la ** population **, à partir des statistiques des données. La plupart des enquêtes sociales seront basées sur des ** échantillons ** extraits d'une partie d'une population.

Puisque l'échantillon a été prélevé dans le cadre de la population, les données ne reflètent pas nécessairement avec exactitude les valeurs de la population et contiendront certaines erreurs. Il est nécessaire d'acquérir l'idée et la technique des «statistiques de supposition» pour interpréter le résultat de l'analyse obtenu à partir de l'échantillon comme l'état de la population extraite. Dans les statistiques de spéculation, après avoir supposé la probabilité résultant de l'erreur, une «estimation» qui spécifie la valeur de la population et un «test» qui pose une hypothèse et juge si elle correspond ou non sont effectuées.

3. Examiner l'association entre plusieurs variables

Enfin, découvrez dans quelle mesure ou dans quelle mesure il existe une relation entre plusieurs variables. De cette manière, nous clarifierons la relation entre quels facteurs affectent quoi. Il est également courant de déduire s'il existe une relation entre les variables de la population à partir de laquelle les données ont été obtenues.

Résumé

Chacun de ces trois points est destiné à être présenté comme un simple indicateur (= statistiques) ou une conclusion (= estimation) en se concentrant sur un point de vue. L'analyse statistique joue le rôle d'extraire et de présenter des informations en fonction de l'objectif sous une forme résumée à partir d'une énorme quantité de données.

Dans la plupart des cas, les méthodes d'analyse statistique et les statistiques ne peuvent être comprises qu'en accumulant des éléments à apprendre à l'avance. Par conséquent, même si vous jetez des données dans les nuages sombres et voyez les résultats, vous ne pouvez pas passer à l'étape suivante sans connaissances suffisantes.

À partir de la prochaine fois, nous prendrons des mesures pour clarifier le contenu des trois points ci-dessus.

Recommended Posts

Organisation des procédures de base pour l'analyse des données et le traitement statistique (4)
Organisation des procédures de base pour l'analyse des données et le traitement statistique (2)
JupyterLab Basic Setting 2 pour l'analyse des données (pip)
Configuration de base de JupyterLab pour l'analyse des données (pip)
Introduction à la modélisation statistique pour l'analyse des données Test de rapport de ressemblance GLM et asymétrie de test
Introduction à la modélisation statistique pour l'analyse des données
Traitement et jugement de la collecte du plan d'analyse des données (partie 1)
Traitement et jugement de la collecte du plan d'analyse des données (partie 2)
[Français] Tutoriel scikit-learn 0.18 Tutoriel d'apprentissage statistique pour le traitement des données scientifiques
Méthodes de traitement des données pour les ingénieurs mécaniciens et les ingénieurs non informaticiens (Introduction 2)
Méthodes de traitement des données pour les ingénieurs mécaniciens et les ingénieurs non informaticiens (Introduction 1)
[Français] didacticiel scikit-learn 0.18 Didacticiel d'apprentissage statistique pour le traitement des données scientifiques Apprentissage statistique: paramètres et objets d'estimation dans scikit-learn
Python pour l'analyse des données Chapitre 4
Python pour l'analyse des données Chapitre 2
Conseils et précautions lors de l'analyse des données
Python pour l'analyse des données Chapitre 3
Introduction à la modélisation statistique pour l'analyse des données Sélection du modèle GLM
[Français] scikit-learn 0.18 Tutorial Tutoriel d'apprentissage statistique pour le traitement des données scientifiques Sélection du modèle: sélection de l'estimateur et de ses paramètres
Notes de lecture (en Python et Stan) pour une introduction à la modélisation statistique pour l'analyse de données (Midorimoto)
Introduction à la modélisation statistique pour le modèle linéaire généralisé d'analyse de données (GLM)
Modèle de prétraitement pour l'analyse des données (Python)
Analyse de données pour améliorer POG 3 ~ Analyse de régression ~
[Français] didacticiel scikit-learn 0.18 Didacticiel d'apprentissage statistique pour le traitement des données scientifiques Mettre le tout ensemble
Visualisation et analyse des informations de localisation des données Twitter Stava
Outil de visualisation Python pour le travail d'analyse de données
Installation d'Elasticsearch et fonctionnement de base pour ubuntu
À propos du traitement d'expansion des données pour l'apprentissage en profondeur
[Français] scikit-learn 0.18 Tutorial Rechercher de l'aide pour des tutoriels d'apprentissage statistique pour le traitement des données scientifiques
Pratique de création d'une plateforme d'analyse de données avec BigQuery et Cloud DataFlow (traitement de données)
[Explication pour les débutants] Syntaxe et concept de base de TensorFlow
Analyse des données pour améliorer POG 2 ~ Analyse avec le notebook jupyter ~
Préparer un environnement de langage de programmation pour l'analyse des données
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: chargement des données
Comment utiliser les outils d'analyse de données pour les débutants
[Python / Chrome] Paramètres de base et opérations de scraping
Jusqu'à ce que vous installiez Anaconda pour l'analyse des données sur votre Mac et que vous lanciez l'IDE