Raisonnement causal et recherche causale par Python (pour les débutants)

Pour les débutants qui souhaitent apprendre le raisonnement causal et l'exploration causale, j'ai écrit un livre pour apprendre tout en implémentant un programme Python pour l'analyse causale dans Google Colaboratory.

En un seul livre, ce sera le premier nouveau numéro depuis environ un an depuis "Apprenez en créant! Deep learning by PyTorch".

Dans cet article, je donnerai un aperçu de la motivation pour écrire un livre sur l'analyse causale, le raisonnement causal à l'aide de Python et la recherche causale.


** "Apprenez en créant! Analyse causale avec Python ~ Introduction au raisonnement causal et à la recherche causale" ** ● Sortie le 30 juin 2020 ● Auteur: Yutaro Ogawa (Auto-introduction, Twitter) @ Dentsu International Information Service (ISID) ● Éditeur: My Navi Publishing

q1.png

https://www.amazon.co.jp/dp/4839973571/


** Contenu de cet article **

● 0. Motivation pour écrire ce livre ● 1. Cas nécessitant un raisonnement causal ● 2. Données pour lesquelles une inférence causale est souhaitée ● 3. Méthode de raisonnement causal ● 4. Méthode de recherche causale ● 5. Apprentissage profond × recherche causale

0. Motivation pour écrire ce livre

Le DX est devenu un sujet brûlant ces jours-ci, et l'importance de la numérisation des pratiques commerciales et axées sur les données augmente.

Parallèlement à cela, il est nécessaire d'analyser les résultats de la mise en œuvre de diverses mesures pour les entreprises axées sur les données et de vérifier correctement les effets.

Par conséquent, un raisonnement causal est nécessaire.

Cependant (à mon avis),

  1. Il n'y a pas de livres traitant à la fois du raisonnement causal et de la recherche causale (peu

  2. Il n'y a pas de livre pour les débutants qui implémente et explique les programmes d'analyse par inférence causale en Python. (Petit, surtout pour les gens d'affaires)

  3. Dans le domaine de la recherche causale, je m'intéresse aussi au réseau basien, mais il n'y a pas de livre qui explique le réseau basien ensemble dans le livre de recherche causale (peu).

  4. Il n'y a pas de livres (peu) qui expliquent les méthodes récentes d'analyse de raisonnement causal / recherche causale utilisant l'apprentissage automatique / l'apprentissage profond.

J'ai ressenti (même si c'est ma subjectivité).

** Je peux comprendre le raisonnement causal et la recherche causale dans une certaine mesure avec un seul livre, et il n'y a pas de livre d'introduction qui analyse l'implémentation et l'analyse en Python ~ ** Écrivons-le nous-mêmes! Ce que je pensais était la motivation pour écrire ce livre.

1. Cas nécessitant un raisonnement causal

Extrait de ce livre, ** Apprendre en faisant! Analyse causale avec Python ~ Introduction à la pratique du raisonnement causal et de la recherche causale ** Cependant, je vais expliquer le raisonnement causal et la recherche causale.

Tout d'abord, je présenterai un ** cas fictif ** qui nécessite une inférence causale.


Vous travaillez pour une entreprise et vous êtes responsable de la direction des ressources humaines.

De M. A, en charge de la formation des employés

Réalisé pour tous les employés qui ont des subordonnés et souhaitent participer ** "Pour les patrons: formation ponctuelle pour les entretiens de carrière avec les subordonnés" **

J'ai reçu un rapport sur l'efficacité de la formation.

L'effet attendu est que le patron qui a reçu cette formation pourra mener de bons entretiens de carrière avec ses subordonnés. Il s'agit d'améliorer la satisfaction des employés subalternes avec des entretiens de carrière.

J'ai reçu le rapport spécifique suivant de M. A.

  1. Parmi les employés subordonnés (le patron assiste à la formation ponctuelle susmentionnée pour l'entretien de carrière) et les employés subalternes (le patron ne suit pas la formation), 100 personnes sont sélectionnées au hasard et [Satisfaction de l'entretien de carrière] A été interrogé

  2. Du fait du calcul de la moyenne de [satisfaction des entretiens de carrière] pour 100 personnes, la satisfaction moyenne des salariés dont le patron a suivi cette formation est supérieure à la satisfaction moyenne des salariés dont le patron n'a pas reçu de formation. Était également élevé

  3. 100 employés subalternes qui ont mené l'enquête par questionnaire cette fois sont sélectionnés au hasard. La seule différence est de savoir si le patron a été formé ou non

  4. Par conséquent, «Pour les supérieurs: formation ponctuelle pour les entretiens de carrière avec les subordonnés» a pour effet d'améliorer le niveau de satisfaction des entretiens de carrière avec les subordonnés.

  5. L'ampleur de l'effet de la formation sera la différence entre les valeurs moyennes de [Satisfaction aux entretiens de carrière] des subordonnés interrogés cette fois.

Ce qui précède est le rapport que j'ai reçu de mon subordonné M. A.

Si vous recevez un tel rapport, vous pourriez ressentir un ** inconfort **.

Et la conversation suivante se poursuivra.

"Merci, M. A, pour la formation et la vérification de l'effet.

Vous vérifiez l'effet de la formation sur [la satisfaction des entretiens de carrière des subordonnés des employés].

Je confirme, mais cette formation a été dispensée à tous les patrons qui voulaient participer en sollicitant des candidatures, non? "

"Oui."

"Hmm ... Le patron qui veut suivre cette ** "Pour les patrons: formation ponctuelle pour les entretiens de carrière avec des subordonnés" ** En premier lieu, je pense que c'est un patron qui a un grand ** [enthousiasme pour la formation des subordonnés] **.

Si vous êtes un employé dont un patron est enthousiaste à l'idée de former ces subordonnés, ** "Même si ce patron n'a pas reçu cette formation" **, J'estime que le ** [niveau de satisfaction des entretiens de carrière] ** de ce subordonné est plus élevé que le niveau de satisfaction d'un subalterne dont un patron n'a pas suivi de formation. "

・ ・ ・

Peut-être qu'une telle conversation se développera.

● Pour un raisonnement causal

Maintenant, dessinons le contenu de cette conversation que vous, le directeur du service du personnel, vous êtes demandé (Fig. 1.1.1).

q2.png

En regardant la figure 1.1.1, ・ ** Flèche ①: Plus l '[enthousiasme de la formation des subordonnés du boss] est élevé, plus la probabilité que le patron accepte [pour les patrons: formation ponctuelle pour les entretiens de carrière avec les subordonnés] **

・ ** Flèche ②: [La satisfaction à l'égard des entretiens de carrière des subordonnés] augmente lorsque [le patron assiste à la formation] **

Il y a une relation. Cette flèche (2) montre l'effet de la formation vérifiée cette fois.

S'il n'y a que deux flèches (1) et (2), le rapport de M. A est correct, mais comme vous, le directeur du service du personnel, êtes concerné,

・ ** Flèche ③: Plus l '[enthousiasme de la formation des subordonnés du patron] est élevé, plus la [satisfaction des entretiens de carrière des subordonnés] est élevée. **

Il semble que vous pouvez pleinement imaginer la flèche (relation).

Par conséquent, dans la Fig. 1.1.1, il n'est pas possible d'estimer avec précision l'effet de l'entraînement à moins que l'effet de la flèche ② ne soit estimé en considérant l'existence de la flèche ③.

** Le raisonnement causal est une méthode d'estimation de l'effet causal direct que vous souhaitez obtenir tout en considérant l'effet causal (effet de la flèche) d'autres variables (facteurs) de cette manière **.

2. Données pour lesquelles une inférence causale est souhaitée

Vérifions les données de formation du personnel données dans cet exemple.

q3.png

Des données comme celles-ci continuent. La variable Z indique la participation à la formation, 1 indique la participation et 0 indique la non-participation. Si cette variable Z est 1, dans quelle mesure le niveau de satisfaction des entretiens des collaborateurs subordonnés est-il amélioré?

Ensuite, vérifiez les données dans un graphique.

q4.png

À partir du graphique

  1. On constate que ceux qui ont suivi la formation (Z = 1 est plus satisfait que Z = 0) sont plus satisfaits des entretiens avec Y: subordonnés.
  2. Les données des points bleus et oranges ont tendance à monter vers la droite, et on constate que plus le zèle pour la formation des subordonnés de x: boss est élevé, plus le niveau de satisfaction de l'entretien avec Y: subordonnés est élevé.

** "Ensuite, veuillez trouver l'effet de l'entraînement Z à partir de ces données." **

C'est (un exemple) le défi lancé aux data scientists travaillant dans l'entreprise.

3. Méthode de raisonnement causal

Maintenant, déduisons les données ci-dessus de manière causale.

Cependant, il est difficile d'expliquer tout le contenu du raisonnement causal dans cet article.

** Apprenez en créant! Analyse causale avec Python ~ Introduction au raisonnement causal et à la recherche causale **, chapitres 1 à 3 Explique les connaissances préalables requises pour le raisonnement causal.

** Dans «Chapitre 1 Comprenons la différence entre corrélation et effet causal» **, il suffit de calculer la différence de valeur moyenne entre le groupe qui a reçu la mesure et le groupe qui n'a pas reçu la mesure, en utilisant la formation du personnel et TV CM comme exemple. , Je vais expliquer le fait que l'effet du traitement n'est pas nécessaire. En outre, je vais expliquer le concept de pseudo-corrélation, qui est la raison pour laquelle l'estimation par la différence des valeurs moyennes ne fonctionne pas, et expliquer les trois modèles dans lesquels se produit la pseudo-corrélation. Et à la fin du chapitre 1, sur Google Colaboratory, nous allons effectivement programmer-implémenter et confirmer les trois modèles qui génèrent une pseudo-corrélation.

** «Chapitre 2 Comprendre les types d'effets de causalité» ** présente des variables de résultats potentiels anti-réels virtuels et divers effets de causalité (ATE, ATT, etc.). Ensuite, je présenterai l'opérateur do, qui est une opération d'intervention, et expliquerai que le raisonnement causal est difficile si une pseudo-corrélation est créée par un effet causal indirect, mais que la flèche causale peut être effacée par l'opération d'intervention. Enfin, j'expliquerai la formule d'ajustement qui décrit cette opération d'intervention avec une formule mathématique sans utiliser l'opérateur do.

** "Chapitre 3 Comprendre les représentations graphiques et les critères de porte dérobée" ** présente les modèles d'équations structurelles, les diagrammes causaux et les DAG de graphes non circulaires dirigés. Ensuite, afin de réaliser une inférence causale dans DAG, nous expliquerons la séparation en d qui ferme le chemin de la porte dérobée en organisant les variables à prendre en compte et les variables à ignorer.

Les chapitres 1 à 3 expliquent les connaissances nécessaires à l'inférence causale dans l'ordre, et le chapitre 4 met en œuvre et explique un programme concret d'analyse de l'inférence causale.

** «Chapitre 4 Implémentons le raisonnement causal» ** explique et implémente la méthode de raisonnement causal de base, l'analyse de régression, la méthode IPTW utilisant le score de propension et la méthode DR qui combine l'analyse de régression et la méthode IPTW. tenir.

Cependant, les données sur la formation du personnel présentées dans cet article posent un problème dont l'effet ne peut être estimé avec précision par la méthode de raisonnement causal de base du chapitre 4.

Plus précisément, nous posons le problème que chaque variable (facteur) fonctionne de manière non linéaire plutôt que linéaire, et l'effet de l'entraînement Z change en fonction du zèle de x: boss training.

En particulier,

Y = Z×t(x) + 0.3x + 2.0 + 0.1×noize

Je crée des pseudo données avec.

Tout d'abord, comme il existe un terme de 0,3x, plus le x: zèle pour la formation des subordonnés du patron est élevé, plus la satisfaction de l'entretien avec Y: subordonnés est élevée.

Puisqu'il y a une section de Z × t (x), le patron qui assiste à la formation (Z = 1) aura l'effet de t (x) ajouté (** C'est l'effet d'assister à la formation **).

Ce t (x) est cette fois ・ Si le zèle x de l'entraînement subordonné du boss est inférieur à 0, l'effet est faible et le niveau de satisfaction Y augmente de 0,5. ・ La satisfaction Y augmente de 0,7 lorsque x est égal ou supérieur à 0 et inférieur à 0,5. ・ La satisfaction Y augmente de 1,0 lorsque x est égal ou supérieur à 0,5.

ça ira.

En d'autres termes, l'effet d'entraînement change en fonction de la variable x: le zèle d'entraîner les subordonnés du boss, qui est une interaction et un état non linéaire impliquant Z et x.

Je pense que la situation où le patron qui est plus enthousiaste à l'idée de former ses subordonnés a un plus grand effet même s'il suit la même formation est une situation raisonnable comme un réel problème.

Enfin, le Z de suivre ou non une formation en premier lieu, c'est

Z_prob=sigmoid(5.0x-5.0*noise)

La fonction sigmoïde est utilisée pour trouver la probabilité de participation à la formation Z_prob pour chaque personne, et la probabilité Z_prob détermine si chaque personne assistera ou non à la formation. x: Plus le zèle de la formation des subordonnés des patrons est élevé, plus la probabilité de prendre ** "Pour les patrons: formation ponctuelle pour les entretiens de carrière avec les subordonnés" **.

Ce qui précède est la règle de génération de pseudo-données.

Cependant, ce que nous pouvons réellement obtenir sous forme de données, ce sont les valeurs des trois variables indiquées ci-dessus.

x: Enthousiasme pour la formation des subordonnés du boss Y: Satisfaction des entretiens avec les subordonnés Z: Si le patron a suivi la formation

seulement.

Puisque nous voulons faire des inférences causales sur les phénomènes non linéaires cette fois, nous devons construire un modèle de régression non linéaire.

L'apprentissage automatique sort ici.

Les méta-apprenants (T-Learner, S-Learner, X-Learner) et l'apprentissage doublement robuste sont des méthodes courantes de raisonnement causal utilisant l'apprentissage automatique, et ces méthodes sont expliquées et mises en œuvre dans ce document. Je vais.

La procédure spécifique ne peut pas être expliquée dans cet article, mais si vous utilisez S-Learner et X-Learner pour obtenir l'effet d'entraînement, les résultats suivants seront obtenus.

q5.png

X-Learner est plus précis que S-Learner. Dans les deux méthodes, on souhaite à juste titre que l'effet d'entraînement change progressivement en fonction de x: le zèle d'entraîner les subordonnés du boss.

Le résultat de ce raisonnement causal est

** "Veuillez trouver l'effet de l'entraînement Z à partir des données suivantes." **

q4.png

C'est une solution au problème commercial.

Il est important pour un data scientist travaillant dans une entreprise d'acquérir la capacité d'effectuer cette analyse de raisonnement causal.

À partir du chapitre 1 de ce livre, ** Apprendre en faisant! Analyse causale avec Python ~ Introduction à la pratique du raisonnement causal et de la recherche causale ** Jusqu'au chapitre 5 se trouve la «Partie 1 Raisonnement causal».

J'expliquerai la méthode de raisonnement causal jusqu'à présent étape par étape.

4. Méthode de recherche causale

Les chapitres 6 à 8 sont la "Partie 2 Recherche causale".

Dans le raisonnement causal, la relation entre les effets causaux et la direction des effets causaux était connue.

Cette relation causale est inconnue dans la recherche causale et la relation est estimée.

Par exemple

● Questionnaire à grande échelle sur le mode de vie et la maladie ● Enquête sur les attitudes des employés associées aux réformes du style de travail, telles que la facilité de travail, la satisfaction au travail et la satisfaction à l'égard des organisations et des patrons dans les entreprises Tel,

Il s'agit d'une méthode pour trouver la relation causale qui existe entre les éléments de l'enquête après avoir collecté de nombreux éléments par enquête par questionnaire.

** "Chapitre 6 Implémentation de LiNGAM" ** explique et implémente la recherche causale par LiNGAM en supposant un modèle d'équation structurelle avec bruit linéaire, non circulaire et non gaussien. Le point de LiNGAM est qu'il est étroitement lié à l'analyse des composants indépendants et qu'un modèle d'équation structurelle est obtenu, et tout en expliquant ce point, nous expliquerons le déroulement de l'algorithme tout en l'implémentant réellement.

** Le "Chapitre 7 Implémentation du réseau basian" ** présente le squelette, le PDAG et la table de probabilité conditionnelle CPT comme explication du réseau basien. Ensuite, nous prendrons BIC comme score Basian qui montre la qualité des données d'observation pour le réseau Basian, et expliquerons et implémenterons le calcul. Ensuite, nous allons expliquer et mettre en œuvre une méthode pour tester l'indépendance de deux variables, et introduire trois types de méthodes d'estimation de réseau. Enfin, la section 7.5 a présenté l'algorithme PC comme méthode d'apprentissage structurel par des tests indépendants conditionnels, et a estimé et estimé le réseau bayésien avec des données qui ont rendu «Pour les patrons: formation ponctuelle pour les entretiens de carrière avec des subordonnés» un peu compliqué. Estimez la valeur des variables non observées à partir de.

Dans l'analyse causale et la recherche causale, non seulement l'apprentissage automatique et l'apprentissage profond, mais aussi le réseau Basian sont importants, mais je pense qu'il y a peu de livres qui décrivent brièvement le réseau Basian.

** En guise d'introduction au réseau Baysian, j'ai essayé d'en faire une bonne introduction au monde du réseau Baysian **.

Le contenu de ce chapitre est le suivant.

q6.png

q7.png

q8.png

q9.png

5. Apprentissage profond × recherche causale

À la fin de ce livre, le ** «Chapitre 8 Recherche causale à l'aide de l'apprentissage profond» ** traite de la recherche causale basée sur la technologie GAN (Hostile Generation Network) d'apprentissage en profondeur, ses grandes lignes, sa structure de réseau et Nous expliquerons et mettrons en œuvre la recherche causale réelle.

À partir de 2020, les recherches utilisant l'apprentissage profond dans divers domaines se multiplient et la recherche utilisant l'apprentissage profond progresse également dans le domaine de la recherche causale.

Par exemple ・ Recherche causale à l'aide du réseau neuronal graphique ・ Recherche causale utilisant l'apprentissage par renforcement profond ・ Recherche causale à l'aide du GAN (Generative Adversarial Networks) Etc. ont été annoncés.

La méthode de recherche causale utilisant le deep learning est un domaine où la recherche ne fait que commencer et nous pensons que des méthodes plus sophistiquées seront annoncées dans le futur.

Par conséquent, je me demandais s'il fallait publier la recherche causale utilisant l'apprentissage profond dans ce livre, mais j'aimerais que les lecteurs ressentent les domaines qui devraient se développer à l'avenir, je vais donc l'expliquer et l'implémenter à la fin de ce livre. C'était fabriqué.

Dans ce livre, nous expliquerons et implémenterons ** SAM (Structural Agnostic Model) **, qui est une méthode de recherche causale utilisant le GAN, parmi les méthodes de recherche causale utilisant l'apprentissage profond.

Après avoir expliqué graphiquement le concept de SAM et la configuration du réseau avec l'image suivante, nous allons effectivement implémenter le code et effectuer une recherche causale.

q10.png

q11.png

Tout le contenu de ce document peut être réalisé par Google Colaboratory, et la recherche causale par SAM est également effectuée en utilisant GPU dans Google Colaboratory.

La section 8.5 de ce document décrit également comment utiliser le GPU avec Google Colaboratory.

à la fin

Il s'agit de l'introduction des livres sur le raisonnement causal et la recherche causale (pour les débutants) utilisant Python.

** "Apprenez en créant! Analyse causale avec Python ~ Introduction au raisonnement causal et à la recherche causale" ** ● Sortie le 30 juin 2020 ● Auteur: Yutaro Ogawa (Auto-introduction, Twitter) @ Dentsu International Information Service Co., Ltd. (ISID) ) ● Éditeur: My Navi Publishing

Merci d'avoir lu ce qui précède.


[Responsabilité critique] Dentsu International Information Service (ISID) AI Transformation Center Development Group Yutaro Ogawa [Clause de non-responsabilité] Le contenu de cet article lui-même est l'opinion / la transmission de l'auteur, pas l'opinion officielle de la société à laquelle l'auteur appartient. [Remarques] L'équipe de développement du département IA de Dentsu International Information Service (ISID) est à la recherche de membres à saluer. Si vous êtes intéressé, veuillez cliquer ici


Recommended Posts

Raisonnement causal et recherche causale par Python (pour les débutants)
INSÉRER dans MySQL avec Python [Pour les débutants]
[Python] Lire des images avec OpenCV (pour les débutants)
Création WebApi avec Python (création CRUD) Pour les débutants
[Pour les débutants] Essayez le web scraping avec Python
Rechercher et télécharger automatiquement des vidéos YouTube avec Python
Résoudre avec Python [100 questions passées que les débutants et les intermédiaires devraient résoudre] (028 --033 recherche de priorité de largeur)
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ① ~
Manuel python pour les débutants
Dichotomie avec python
Dichotomie avec Python 3
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ② ~
OpenCV pour les débutants en Python
[Introduction pour les débutants] Manipuler MySQL avec Python
Résoudre avec Python [100 questions passées que les débutants et les intermédiaires devraient résoudre] (024 --027 Recherche de priorité en profondeur)
Janken Poi en Python pour les débutants (réponses et explications)
Benchmarks langage C, Java, Python avec factorisation prime
Exploration avec Python et Twitter API 1 - Fonction de recherche simple
Python # Comment vérifier le type et le type pour les super débutants
Recherche récursive de fichiers et de répertoires en Python et sortie
Chiffrement et déchiffrement avec Python
Python et matériel - Utilisation de RS232C avec Python -
Flux d'apprentissage pour les débutants en Python
Construction de l'environnement Python3 (pour les débutants)
Recherche de bits complète avec Python
Python #function 2 pour les super débutants
Grammaire de base Python pour les débutants
Pandas 100 coups pour les débutants en Python
Python #function 1 pour les super débutants
python avec pyenv et venv
Les moteurs de recherche fonctionnent avec python
Rechercher des tweets Twitter avec Python
#List Python pour les super débutants
[Python] Recherche de priorité de profondeur et recherche de priorité de largeur
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Rationalisez la recherche Web avec Python
Fonctionne avec Python et R
Résoudre avec Python [100 anciennes questions sélectionnées que les débutants et les intermédiaires devraient résoudre] (015 --017 Recherche complète: Recherche complète en avant)
Résoudre avec Python [100 questions passées sélectionnées que les débutants et les intermédiaires devraient résoudre] (010 --014 Recherche complète: Recherche complète de bits)
Résoudre avec Python [100 questions passées sélectionnées que les débutants et les intermédiaires devraient résoudre] (001 --004 Toutes les recherches: Toutes les énumérations)
Résolution avec Ruby et Python AtCoder ABC151 D Recherche de priorité de largeur
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Procédure d'installation pour Python et Ansible avec une version spécifique
Méthode d'apprentissage TensorFlow pour les professionnels des arts libéraux et les débutants en Python
Analysez les actions avec python et recherchez des phases de trading favorables
Bibliothèque pour spécifier un serveur de noms en python et dig
Résoudre les problèmes d'AtCoder Boot camp pour les débutants (moyen 100) avec python
[Python] Accès et recadrage des pixels d'image à l'aide d'OpenCV (pour les débutants)
Briller la vie avec Python et OpenCV
Robot fonctionnant avec Arduino et python
Réseau neuronal avec OpenCV 3 et Python 3
Modulation et démodulation AM avec python
Scraping avec Node, Ruby et Python
Exercices Python pour les débutants # 2 [pour instruction / instruction while]
Grattage avec Python, Selenium et Chromedriver
Python pour les super débutants Super débutants Python # dictionnaire type 1