Outils pour utilisateurs

Outils du site


besson_sylvain:traitements_statistiques

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
besson_sylvain:traitements_statistiques [2021/07/22 18:46]
Sylvain Besson [Analyse de réseaux]
besson_sylvain:traitements_statistiques [2021/07/23 18:33] (Version actuelle)
Sylvain Besson [Analyse des correspondances multiples]
Ligne 3: Ligne 3:
 ====== traitements statistiques ====== ====== traitements statistiques ======
  
-Nous allons dorénavant réaliser différents traitements statistiques et étudier notre population d'​économiste et de juriste. Nous allons concentrer notre étude sur les données présentes sur Wikidata, car cette base de données fournie suffisamment d'​individu (env. 130 000) pour réaliser une étude complète. Mais bien sûr, il faudrait aussi ajouter les données présentes sur BnF Data et DBpedia pour avoir une étude plus large. ​+Nous allons dorénavant réaliser différents traitements statistiques et étudier notre population d'​économiste et de juriste. Nous allons concentrer notre étude sur les données présentes sur Wikidata, car cette base de données fournie suffisamment d'​individu (env. 130 000) pour réaliser une étude complète. Mais bien sûr, il faudrait aussi ajouter les données présentes sur BnF Data et DBpedia pour avoir une étude plus large. La totalité des analyses statistiques est réalisée sur des carnets jupyterlab.
  
  
Ligne 75: Ligne 75:
 </​code>​ </​code>​
  
-C'est une requête qui semble assez complexe, mais on peut la comprendre assez facilement ​ si on la découpe. Tout d'​abord,​ le cœur de la requête ​est les propriétés et nous cherchons à toutes les exporter. Dans ce cas, il est préférable d'​utiliser la clause OPTIONAL afin de ne pas enlever des personnes dont certaines propriétés manqueraient. Ensuite, pour chaque propriété,​ il faut les importer avec leur étiquette donc il faut utiliser la propriété "​rdfs:​label"​. Puis, dans le SELECT, il faut utiliser pour chaque propriété,​ la clause GROUP CONCAT qui permet de concaténer les différentes valeurs dans une même propriété pour un même individu (ex: les différents établissements d'un individu). Il est préférable d'​ajouter à l'​intérieur la clause DISTINCT sinon chaque valeur est répétée le nombre de fois où il y a d'​autres propriétés. Pour en apprendre davantage sur la façon d'​utiliser le GROUP CONCAT, référez-vous à cette [[https://​docs.cambridgesemantics.com/​anzograph/​v2.3/​userdoc/​group-concat.htm|ressource]].+C'est une requête qui semble assez complexe, mais on peut la comprendre assez facilement ​ si on la découpe. Tout d'​abord,​ le cœur de la requête ​sont les propriétés et nous cherchons à toutes les exporter. Dans ce cas, il est préférable d'​utiliser la clause OPTIONAL afin de ne pas enlever des personnes dont certaines propriétés manqueraient. Ensuite, pour chaque propriété,​ il faut les importer avec leur étiquette donc il faut utiliser la propriété "​rdfs:​label"​. Puis, dans le SELECT, il faut utiliser pour chaque propriété,​ la clause GROUP CONCAT qui permet de concaténer les différentes valeurs dans une même propriété pour un même individu (ex: les différents établissements d'un individu). Il est préférable d'​ajouter à l'​intérieur la clause DISTINCT sinon chaque valeur est répétée le nombre de fois où il y a d'​autres propriétés. Pour en apprendre davantage sur la façon d'​utiliser le GROUP CONCAT, référez-vous à cette [[https://​docs.cambridgesemantics.com/​anzograph/​v2.3/​userdoc/​group-concat.htm|ressource]].
  
-Ensuite, dans ce même SELECT, nous avons utilisé la clause YEAR pour la date de naissance afin de ne garder que l'​année,​ puisque c'est avant tout elle qui nous intéressent (et qu'​elle nous permettra de voir les évolutions des différentes propriétés dans le temps). ​ON finit la sous-requête avec une clause GROUP BY pour indiquer que c'est par personnes que les autres propriétés doivent être regroupées (nécessaire si l'on souhaite utiliser un GROUP CONCAT). ​+Ensuite, dans ce même SELECT, nous avons utilisé la clause YEAR pour la date de naissance afin de ne garder que l'​année,​ puisque c'est avant tout elle qui nous intéressent (et qu'​elle nous permettra de voir les évolutions des différentes propriétés dans le temps). ​On finit la sous-requête avec une clause GROUP BY pour indiquer que c'est par les personnes que les autres propriétés doivent être regroupées (nécessaire si l'on souhaite utiliser un GROUP CONCAT). ​
  
-Dans la clause SELECT supérieure,​ nous avons utilisé la clause AVG pour l'​année afin de prendre la moyenne des années si plusieurs années sont mentionnées. Nous avons ajouté une clause ROUND pour que l'​année soit arrondie et reste une date. Il faut cette fois encore utiliser un GROUP BY mais avec cette fois toutes les propriétés sauf celle dont nous avons changé le format (la date de naissance ici) +Dans la clause SELECT supérieure,​ nous avons utilisé la clause AVG pour l'​année afin de prendre la moyenne des années si plusieurs années sont mentionnées. Nous avons ajouté une clause ROUND pour que l'​année soit arrondie et reste une date. Il faut cette fois encore utiliser un GROUP BY mais avec cette fois toutes les propriétés sauf celle dont nous avons changé le format (la date de naissance ici).
  
-Le dernier niveau de SELECT permet de s'​assurer que les propriétés sont bien avec l'​étiquette ​que l'on souhaite ​et qu'il n'​y ​ait pas de clause.+Le dernier niveau de SELECT permet de s'​assurer que les propriétés sont bien avec l'​étiquette ​souhaité ​et qu'il n'​y ​pas de clause.
  
 ====Étude des propriétés==== ====Étude des propriétés====
  
-Après avoir réalisé cette étape préliminaire,​ nous pouvons importer les données dans python ​afin de pouvoir réaliser à proprement parler les traitements statistiques. Nous n'​allons pas présenter ici, l'​ensemble du script, mais seulement les parties. L'​ensemble de la méthode se trouve dans le  [[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Sounding_properties_Wikidata.ipynb|carnet]] dédié.+Après avoir réalisé cette étape préliminaire,​ nous pouvons importer les données dans Jupyterlab ​afin de pouvoir réaliser à proprement parler les traitements statistiques. Nous n'​allons pas présenter ici, l'​ensemble du script, mais seulement les parties. L'​ensemble de la méthode se trouve dans le  [[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Sounding_properties_Wikidata.ipynb|carnet]] dédié.
  
 Pour commencer, il est nécessaire de connaître le nombre de valeurs dans chaque propriété. Pour cela, il faut couper et compter les valeurs des propriétés :  Pour commencer, il est nécessaire de connaître le nombre de valeurs dans chaque propriété. Pour cela, il faut couper et compter les valeurs des propriétés : 
Ligne 130: Ligne 130:
 </​code>​ </​code>​
  
-Pour chaque propriété,​ si la longueur est supérieure alors cela ajoute l'​étiquette de la propriété,​ et ce, pour chaque personne. On peut ensuite créer un //​dataframe//​ de "​properties_persons"​. On peut ensuite ​calculer la distribution des effectifs des personnes et des propriétés.+Pour chaque propriété,​ si la longueur est supérieure alors cela ajoute l'​étiquette de la propriété,​ et ce, pour chaque personne. On peut ensuite créer un //​dataframe//​ de "​properties_persons" ​et calculer la distribution des effectifs des personnes et des propriétés.
  
 <code python> <code python>
Ligne 181: Ligne 181:
 On peut aussi l'​obtenir sous forme de visualisation :  On peut aussi l'​obtenir sous forme de visualisation : 
  
-{{ :projets_individuels:frequency_per_available_property_without_doctorate.png?direct&​700  ​Distribution des propriétés disponibles}}+{{ :besson_sylvain:number_individuals_per_property.png?direct |nombre d'​individus par propriété}}
  
-Cette visualisation nous renseigne que c'est la propriété "​genre"​ qui est la plus renseignée,​ sans doute, car c'est l'une des plus simples à obtenir. ​ +Cette visualisation nous renseigne que c'est la propriété "​genre"​ qui est la plus renseignée,​ sans doute, car c'est l'une des plus simples à obtenir. ​Les propriétés ​"nationalités", ​"lieu de naissance",​ "lieu d'​étude"​ et "​professions" ​sont aussi bien représentées.
-On peut remarquer aussi que la propriété ​"profession" ​est peu utilisée alors que c'est par cette même propriété que nous avons définie notre population. Mais cela s'​expliquecar ce sont seulement ceux avec une étiquette en anglais qui sortent+
  
  
Ligne 433: Ligne 432:
  
 {{ :​projets_individuels:​properties_combination_occupation_educatedat_nationality_gender_.png?​direct&​700 | Distribution avec les propriétés combinées: "​profession",​ "lieu d'​étude",​ "​nationalité et "​genre"​}} {{ :​projets_individuels:​properties_combination_occupation_educatedat_nationality_gender_.png?​direct&​700 | Distribution avec les propriétés combinées: "​profession",​ "lieu d'​étude",​ "​nationalité et "​genre"​}}
- 
- 
-Allez vers la [[etapes|page précédente - étapes du projet]] 
  
 ====== traitements statistiques ====== ====== traitements statistiques ======
Ligne 726: Ligne 722:
 Une fois que le graphe est totalement créé, il est possible de le visualiser. Cela se présente de la façon suivante: ​ Une fois que le graphe est totalement créé, il est possible de le visualiser. Cela se présente de la façon suivante: ​
  
-{{ :projets_individuels:weigth_graph_properties_without_doctorate_bis.png?direct&​900 ​|Graphe des propriétés}}+{{ :besson_sylvain:weigth_graph_properties.png?direct | Graphe des propriétés}}
  
  
Ligne 733: Ligne 729:
 Tout d'​abord,​ il faut choisir les propriétés que l'on souhaite observer plus précisément. Pour cela, les précédentes analyses peuvent être d'une grande aide.  Tout d'​abord,​ il faut choisir les propriétés que l'on souhaite observer plus précisément. Pour cela, les précédentes analyses peuvent être d'une grande aide. 
  
-Dans notre casn nous avons retenu le "lieu de naissance, le "​genre",​ la "​nationalité", ​la le "lieu d'​étude",​ la "​profession",​ l'"​employeur"​ et le "​poste"​.+Dans notre cas, nous avons retenu le "lieu de naissance, le "​genre",​ la "​nationalité",​ le "lieu d'​étude",​ la "​profession",​ l'"​employeur"​ et le "​poste"​.
  
 On commence par les mettre sous forme de série : On commence par les mettre sous forme de série :
Ligne 818: Ligne 814:
 Dans ces représentations,​ il y a quelques éléments qui faut faire attention pour bien les comprendre. Tous d'​abord,​ chaque propriété est représentée dans sa visualisation. Et étant donné qu'​elle est comparée à elle-même, elle a nécessairement le maximum d'​effectif. Ensuite, dans toutes les visualisations l'​échelle n'est pas la même, car cela dépend de l'​effectif de la propriété (ex: la propriété "​genre"​ a quasiment 140 000 individus alors que "​employer"​ n'en a que 25 000). C'est un biais visuel qui faut prendre en compte lors d'une analyse. Dans ces représentations,​ il y a quelques éléments qui faut faire attention pour bien les comprendre. Tous d'​abord,​ chaque propriété est représentée dans sa visualisation. Et étant donné qu'​elle est comparée à elle-même, elle a nécessairement le maximum d'​effectif. Ensuite, dans toutes les visualisations l'​échelle n'est pas la même, car cela dépend de l'​effectif de la propriété (ex: la propriété "​genre"​ a quasiment 140 000 individus alors que "​employer"​ n'en a que 25 000). C'est un biais visuel qui faut prendre en compte lors d'une analyse.
  
-Une autre façon de faire qui permet d'​être plus précis dans l'​analyse de filtrer avec les différentes variables que l'on souhaite. Par exemple, il est possible de filtrer les propriétés "​profession",​ "lieu d'​étude"​ et "​nationalité"​ et de vérifier le nombre de fois où ces trois propriétés apparaissaient ensembles. La fonction se présente de la façon suivante :+Une autre façon de faire qui permet d'​être plus précis dans l'​analyse ​est de filtrer avec les différentes variables que l'on souhaite. Par exemple, il est possible de filtrer les propriétés "​profession",​ "lieu d'​étude"​ et "​nationalité"​ et de vérifier le nombre de fois où ces trois propriétés apparaissaient ensembles. La fonction se présente de la façon suivante :
  
 <code python> <code python>
Ligne 907: Ligne 903:
 =====Étude des nationalités===== =====Étude des nationalités=====
  
-Ensuite, il est possible de faire une [[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Analysis_nationalities_wikidata.ipynb|étude des nationalités]]. La totalité de la méthode est expliquée dans le carnet dédié. L'​étude des nationalités est réalisée à partir de la propriété “pays de citoyenneté” (P27) de Wikidata. Le problème est que ces pays évoluent dans le temps (les frontières évoluent, il peut avoir des changements de régime, etc.). Il est d'​autant plus difficile que leur nombre est trop grand pour être bien étudier. La solution est d’agréger les pays par continent ou bien par région. La solution est d’agréger les pays par continent ou bien par région. Il est ensuite possible de réaliser une bivariée avec d'​autres propriétés (genre, autres professions et type) et l'​évolution dans le temps.+Ensuite, il est possible de faire une **[[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Analysis_nationalities_wikidata.ipynb|étude des nationalités]]**. La totalité de la méthode est expliquée dans le carnet dédié. L'​étude des nationalités est réalisée à partir de la propriété “pays de citoyenneté” (P27) de Wikidata. Le problème est que ces pays évoluent dans le temps (les frontières évoluent, il peut avoir des changements de régime, etc.). Il est d'​autant plus difficile que leur nombre est trop grand pour être bien étudier. La solution est d’agréger les pays par continent ou bien par région. La solution est d’agréger les pays par continent ou bien par région. Il est ensuite possible de réaliser une bivariée avec d'​autres propriétés (genre, autres professions et type) et l'​évolution dans le temps.
  
 ------------------------------------- -------------------------------------
Ligne 913: Ligne 909:
 =====Étude des professions===== =====Étude des professions=====
  
-De la même façon il est possible de faire une [[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Analysis_occupations.ipynb|analyse des professions]]. Les professions sont celles que les individus de la population effectuent en plus d'​être économiste,​ juriste ou les deux. Il est possible ensuite de voir les différences entre les économistes et les juristes. Il est aussi possible de voir l'​évolution dans le temps, ainsi que les différences de genre.+De la même façon il est possible de faire une **[[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Analysis_occupations.ipynb|analyse des professions]]**. Les professions sont celles que les individus de la population effectuent en plus d'​être économiste,​ juriste ou les deux. Il est possible ensuite de voir les différences entre les économistes et les juristes. Il est aussi possible de voir l'​évolution dans le temps, ainsi que les différences de genre.
  
 ---------------------------------------- ----------------------------------------
Ligne 919: Ligne 915:
 =====Analyse des correspondances multiples===== =====Analyse des correspondances multiples=====
  
-L'​analyse des correspondances multiples est une méthode permettant d'​étudier plusieurs variables qualitatives en même temps. Cela consiste à encoder les variables de façon à ce qu'​elles soient interprétées comme des variables quantitatives. C'​est-à-dire que chaque ​modalités ​d'une variable est replacé par des 0 et des 1. Il est ensuite possible de voir les proximités qu'il peut avoir entre les modalités et les proximités entre les individus. Pour réaliser l'ACM sur Python, vous pouvez consulter ce [[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Analysis_MCA.ipynb|carnet]].+L'​analyse des correspondances multiples est une méthode permettant d'​étudier plusieurs variables qualitatives en même temps. Cela consiste à encoder les variables de façon à ce qu'​elles soient interprétées comme des variables quantitatives. C'​est-à-dire que chaque ​modalité ​d'une variable est replacé par des 0 et des 1. Il est ensuite possible de voir les proximités qu'il peut avoir entre les modalités et les proximités entre les individus. Pour réaliser l'ACM sur Python, vous pouvez consulter ce **[[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Analysis_MCA.ipynb|carnet]]**.
  
 ---------------------------------------- ----------------------------------------
Ligne 925: Ligne 921:
 =====Analyse par les cartes===== =====Analyse par les cartes=====
  
-Une autre méthode pour étudier les individus est la réalisation de carte. Il est possible de réaliser ces cartes sur Python. Deux méthodes sont développées. La première utilise les coordonnées géographiques et groupe sur une carte les individus avec les mêmes coordonnées. Il est ensuite possible d'​ajouter de l'​interactivité en affichant ces cartes sur une page HTML. L'​autre méthode utilise les polygones (forme géométrique avec un nombre de sommet variable) en dessinant les contours des continents et ensuite en les affichant sur une carte. L'​ensemble de la méhode est disponible dans ce [[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Analysis_maps.ipynb|carnet]].+Une autre méthode pour étudier les individus est la réalisation de carte. Il est possible de réaliser ces cartes sur Python. Deux méthodes sont développées. La première utilise les coordonnées géographiques et groupe sur une carte les individus avec les mêmes coordonnées. Il est ensuite possible d'​ajouter de l'​interactivité en affichant ces cartes sur une page HTML. L'​autre méthode utilise les polygones (forme géométrique avec un nombre de sommet variable) en dessinant les contours des continents et ensuite en les affichant sur une carte. L'​ensemble de la méhode est disponible dans ce **[[https://​github.com/​Semantic-Data-for-Humanities/​Economists_Jurists/​blob/​main/​Notebooks/​Analysis_maps.ipynb|carnet]]**.
  
 ---------------------------------------- ----------------------------------------
besson_sylvain/traitements_statistiques.1626972391.txt.gz · Dernière modification: 2021/07/22 18:46 par Sylvain Besson