{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Journal de bord du Mooc / Mooc's logbook\n", "\n", "## Module 1\n", "\n", "Voir *Notes*.\n", "\n", "## Module 2\n", "\n", "*2021-02-17*\n", "\n", "\n", "\n", "### 0. Introduction\n", "\n", "Document computationnel, qui permet de présenter à d'autres ses travaux, mais aussi montrer le détail du code et des calculs.\n", "\n", "### 1. Document computationnel\n", "\n", "- Étude liée aux politiques d'austérité: Erreurs liées à la non-publication des calculs qui ont conduit à la publication.\n", "- Imagerie cérébrale: saumon mort qui présente des signes d'activités cérébrales >> données bruitées, menant à des erreurs d'interprétation. Potentielle remise en cause des résultats publiés ces 15 dernières années (40 000 articles environ), et données pas archivées.\n", "- Fausses structures de protéines >> erreurs de programmation, même si l’acquisition des données était correcte.\n", "\n", "Pas un domaine de science est épargné. Problème méthodologique, mais également certainement sociologique. Dans les cas cités, manque de rigueur et de transparence.\n", "\n", "*2021-02-18*\n", "\n", "### 2. Pourquoi est-ce si difficile?\n", "\n", "\n", "\n", "* Manque d'information:\n", " - Disponibilité des données\n", " - Explication des choix\n", " - D'où, utilisation d'un **cahier de laboratoire**.\n", "\n", "\n", "* Ordinateur, source d'erreurs:\n", " - ERP meilleur que tableur pour la compta. Idem pour l'analyse de données.\n", " - Pile logicielle complexe, notamment avec logiciels propriétaires. Tout reprogrammer nous-même n'est pas non plus une solution. Analyser chaque brique.\n", "\n", "\n", "* Manque de rigueur et d'organisation.\n", " - Sauvegarde\n", " - Mauvaise gestion de versions\n", " - Revue de code, intégration continue rarement utilisées dans la recherche\n", " - Dimension culturelle et sociale. La description d'un article ne devrait pas être la norme! Données trop nombreuses pour être décrites de façon exhaustive, idem pour les protocoles. Si personne n'exige les infos à quoi bon s'embêter à les fournir?\n", " - Cacher des infos peut être suspicieux. Mieux vaut prendre le risque que l'on détecte des erreurs.\n", " - Qn pourrait en tirer avantage? Oui mais il doit citer notre travail. De plus, les articles les plus cités sont des articles méthodologiques.\n", " - Possibilité de se faire une carte de visite avec GitHub, en mettant ses travaux à disposition.\n", " - Données sensibles? Dans ce cas, définir qui peut avoir accès aux infos. Méthodes cryptographiques. >> Informations semi-publiques.\n", "\n", "\n", "**Outils à éviter**\n", "- Logiciels propriétaires. Aucune garantie sur le long terme.\n", "- Formats binaires non ouverts mènent presque systématiquement à de la perte de données.\n", "- Services d'hébergement propriétaires.\n", "- Tableurs et outils graphiques\n", "\n", "\n", "**Meilleurs attitude à avoir: transparence.**\n", "\n", "\n", "\n", "### 3. Document computationnel\n", "\n", "Permettre la transparence la plus complète possible.\n", "\n", "- Acquisition de données: majeure partie du temps derrière un ordinateur.\n", "- Visualisation\n", "- Publication. Attention, l'article est la partie émergée de l'iceberg!\n", "\n", "Permettre de refaire le calcul:\n", "- Vérifier\n", "- Corriger\n", "- Réutiliser\n", "\n", "Exemples document computationnel: Jupyter notebook, R studio ou Org mode. Principes:\n", " - Un seul document\n", " - Session\n", " - Export\n", "\n", "Jupyter: un peu compliqué d'eporter vers un PDF avec un template particulier. Avec Org mode, capacité à écrire directement du LaTeX.\n", "\n", "\n", "On exporte souvent ensuite vers du PDF ou du HTML. Possibilité de spécifier si ou souhaite cacher certaines sections lors de l'export. Choix de partager le document final, ou bien le doc computationnel lui-même.\n", "\n", "\n", "### 4. Prise en main de Jupyter\n", "\n", "\n", "\n", "Réexécuter le kernel afin d'avoir un notebook dans un état cohérent.\n", "\n", "Voir `Help > Keybord shortcuts`\n", "\n", "`tab`: complétion automatique\n", "\n", "`%matplotlib inline` utile?? Autres commandes magiques pour intéragir avec d'autres langages. Ex.: `%load_ext rpy2.python`, puis `%%R`.\n", "\n", "`commit & push` pour commiter le doc dans GitHub (uniquement dans le cas du MOOC?)\n", "\n", "`View > Cell toolbar > Hide code` pour cacher certaines parties.\n", "\n", "\n", "### 5. Travailler avec d'autres\n", "\n", "Produire un document prêt à l'impression demande à avoir un environnement parfaitement configuré.\n", "\n", "- Co-auteurs enthousiastes: assurer le service après-vente, pas évident. Différents environnement, prise en main nécessaire... Ceci dit, favorise la reproductibilité.\n", "\n", "- Co-auteurs bienveillants: pas de soucis si le document est hébergé sur un cloud. Sinon, les co-auteurs peuvent uniquement éditer l'article avec un éditeur de texte. Le reste est de ma responsabilité.\n", "\n", "- Co-auteurs réfractaires:\n", " - un doc computationnel;\n", " - et un document plus classiques qui inclut les figures générées par le doc computationnel.\n", "\n", "Publier / partager documents:\n", "- Attention à la pérénité! (ex.: Dropbox)\n", "- GitHub ou GitLab: attention, on rend tout l'historique publique! Garder à l'esprit que à terme, les choses seront publiques. Sinon, faire le ménage et archiver l'état courant dans un site compagnon. Ex. archives ouvertes comme HAL. Possibilité de déposer des documents en annexe.\n", "\n", "\n", "*2021-02-19*\n", "\n", "\n", "### 6. Analyse comparée des outils\n", "\n", "- Cas d'un journal pour la prise de notes avec Org mode. Organisation chronologique, utilisation du mécanisme d'étiquettes pour s'y retrouver. Permet aussi de garder note du code associé si besoin, et de réexécuter à n'importe quel moment. Ensemble hétérogène mais facile à utiliser.\n", "\n", "- **Cahier de laboratoire**. Organisation sémantique. Sections avec expériences, analyses... Conventions à expliciter au début du document.\n", "\n", "- Article reproductible. Sections :noexport: avec des morceaux de code. Possibilité d'exporter le doc Org mode en Latex, avec un aspect tout à fait normal d'article. Possibilité de modifier facilement une figure en ré-exécutant le code intégré dans le documents. Liens vers le journal correspondant et vers GitHub permettant de revenir aux sources.\n", "\n", "Jupyter: lecture directe du ficheir JSOM un peu délicate. A l'inverse, ficheirs Rmd ou Org plus faciles à lire pour un être humain. Rédiger un article de bout en bout avec RStudio ou Org mode de plus en plus souvent faits; possible mais plus compliqué avec Jupyter.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ <<<<<<< HEAD "### Exercice 4" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from numpy import genfromtxt\n", "x = genfromtxt('data.csv', delimiter=',')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean = 14.11\n", "Standard deviation = 4.31\n", "Minimum = 2.80\n", "Maximum = 23.40\n", "Median = 14.50\n" ] } ], "source": [ "import numpy as np\n", "print(\"Mean = {:.2f}\".format(np.mean(x)))\n", "print(\"Standard deviation = {:.2f}\".format(np.std(x)))\n", "print(\"Minimum = {:.2f}\".format(np.min(x)))\n", "print(\"Maximum = {:.2f}\".format(np.max(x)))\n", "print(\"Median = {:.2f}\".format(np.median(x)))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(x)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([ 4., 3., 5., 9., 16., 20., 22., 9., 8., 4.]),\n", " array([ 2.8 , 4.86, 6.92, 8.98, 11.04, 13.1 , 15.16, 17.22, 19.28,\n", " 21.34, 23.4 ]),\n", " )" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(x)" ======= "## Module 3\n", "\n", "### 1. Une analyse réplicable, c'est quoi?\n", "\n", "Analyse de données traditionnelles: résultats, méthodologie et conclusion\n", "Analyse réplicable: remplace méthodo par détail du code, + explication détaillée. Plus d'efforts, mais analyse plus facile à:\n", "- refaire\n", "- modifier\n", "- vérifier\n", "\n", "### 2. Etude de cas: syndromes grippaux\n", "\n", "Réseau Sentinelles (médecins généralistes)\n", "Données au format CSV. Année et semaine au format ISO. Anomalie fréquente: semaines pour lesquelles il n'y a pas de données. Pour garder la réplicabilité, il ne faut pas supprimer les lignes concernées. Toutes les modifications doivent se faire dans du code.\n", "\n", "### 3. Importer les données\n", "\n", "Possibilité de masquer le titre dans Jupyter.\n", "\n", "Ne pas oublier `%matplotlib inline`.\n", "\n", "`pd.read_csv(, skiprows=1)` Pour l'URL, voir dans le document téléchargé.\n", "\n", "Identifier la ligne sans données avec `isnull`. Supprimer la ligne avec `dropna`, et ajouter un commentaire pour le justifier. Ne pas oublier `.copy()`.\n", "\n", "### 4. Vérification et inspection\n", "\n", "Utiliser `isoweek.Week(year, week)`. Puis `pd.Period`.\n", "\n", "`set_index` pour utiliser une colonne comme indice.\n", "\n", "Les données sont sous forme de chaîne de caractère car il y avait une ligne avec des tirets. Convertir les données.\n", "\n", "Utiliser à la fois l'inspection visuelle et le code de validation.\n", "\n", "### 5. Questions et réponses\n", "\n", "Afin de minimiser les biais, choisir comme point de départ de l'année les creux de l'épidémie.\n", "\n", "**Attention!** Pandas ne respecte pas la convention de slice très utilisée en Python. Il faut donc écrire `[a:b-1]`.\n", "\n", "Séries temporelles avec Pandas: `Series`.\n", "\n", "Toutes les étapes de traitement des données doivent être fournies sous forme exécutable. C'est à ce niveau que l'on fait le plus d'erreurs." >>>>>>> c36d483a8c3cb325dd47aacc672a413b99456448 ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 2 }