diff --git a/module4/ressources/Makefile b/module4/ressources/Makefile index 7b33bb986fc784fcadef60589a7c11232a900d28..0a519c508d88456927431c9573f514862e78060e 100644 --- a/module4/ressources/Makefile +++ b/module4/ressources/Makefile @@ -1,4 +1,4 @@ -all: resources.html +all: resources.html exo1.html exo2.html exo3.html NLINES=10000000 diff --git a/module4/ressources/exo1.org b/module4/ressources/exo1.org new file mode 100644 index 0000000000000000000000000000000000000000..b33b7d0b6a0ddeac50c47f894f8cd0909f293f48 --- /dev/null +++ b/module4/ressources/exo1.org @@ -0,0 +1,97 @@ +# -*- mode: org -*- +#+TITLE: +#+AUTHOR: Arnaud Legrand +#+DATE: June, 2018 +#+STARTUP: overview indent +#+OPTIONS: num:nil toc:t +#+PROPERTY: header-args :eval never-export + +* Exercice 1: Ré-exécuter n'est pas répliquer... +Même si la terminologie peut varier d'un auteur ou d'une communauté à +l'autre, il est important de comprendre que l'on peut distinguer +différent niveau de "réplication" selon que l'on s'est contenté de +vérifier que l'on pouvait ré-exécuter le code et obtenir exactement les +mêmes résultats ou bien que l'on arrivait à reproduire des résultats +similaires en suivant une approche similaire (éventuellement avec un +autre langage, une autre méthode de calcul, etc.). À Ce sujet, vous +pourrez vouloir par exemple lire https://arxiv.org/abs/1708.08205. + +Le diable se cache souvent dans des endroits auxquels on ne penserait +jamais et nous sommes nous-mêmes allés de surprise en surprise en +préparant ce MOOC, notamment avec l'exercice du module 2 sur +Challenger. C'est pourquoi nous vous proposons dans cet exercice, de +refaire une partie de l'analyse des données de Challenger, comme l'ont +fait Siddhartha Dallal et ses co-auteurs il y a presque 30 ans dans +leur article /Risk Analysis of the Space Shuttle: Pre-Challenger +Prediction of Failure/ et publié dans le /Journal of the American +Statistical Association/ (Vol. 84, No. 408, Déc., 1989), mais dans +dans un autre langage de votre choix (Python, R, Julia, SAS, +...). + +Nous savons d'expérience que si les estimations de pente et +d'intercept sont généralement les mêmes, on peut avoir des différences +lorsque l'on regarde un peu plus dans les détails les estimateurs de +variance et le R^2. Il peut également y avoir des surprises dans le +graphique final selon les versions de bibliothèques utilisées. + +L'ensemble des calculs à effectuer est décrit ici: +https://app-learninglab.inria.fr/gitlab/moocrr-session1/moocrr-reproducibility-study/ + +Vous y trouverez notre réplication des calculs de Dallal et al. (en +R), une mise en œuvre en python et une en R (très similaires à ce que +vous avez pu utiliser dans le module 2). Cet exercice peut donc se +faire à deux niveaux: +1. un niveau facile pour ceux qui repartiront du code dans le langage + qu'ils n'auront initialement pas utilisé et se contenteront de le + ré-exécuter. Pour cela, nul besoin de maîtriser la régression + logistique, il suffit de bien inspecter les sorties produites et de + vérifier qu'elles correspondent bien aux valeurs attendues. Pour + ceux qui ré-exécuteraient le notebook Python dans l'environnement + Jupyter du MOOC, n'hésitez pas à consulter [[https://www.fun-mooc.fr/courses/course-v1:inria+41016+session01bis/courseware/66bc811404b8481da5f794de54681c5e/f8608bfb261b4c289b35b2cd19d5baf3/][les ressources de la + section 4A du module 2]] qui expliquent comment y importer un + notebook. +2. un niveau plus difficile pour ceux qui souhaiteront le réécrire + complètement (éventuellement dans un autre langage que R ou python, + l'expérience peut être d'autant plus intéressante que nous n'avons + pas testé ces variations). Là, si les fonctions de calcul d'une + régression logistique ne sont pas présente, il y a par contre + intérêt à en savoir un minimum pour pouvoir les + implémenter. L'exercice en est d'autant plus instructif. + +Vous pourrez alors discuter sur le forum des succès et des échecs que +vous avez pu rencontrer. Pour cela: +- Vous publierez auparavant dans votre dépôt les différents notebooks + en prenant bien soin d'enrichir votre document des informations + (numéros de version, etc.) sur votre système et sur les + bibliothèques installées. +- Vous indiquerez votre résultat (que ça soit un succès ou échec à + obtenir les mêmes résultats) en remplissant le [[https://app-learninglab.inria.fr/gitlab/moocrr-session1/moocrr-reproducibility-study/blob/master/results.org][tableau]] dans ce même + dépôt (vous avez les droits d'édition donc il vous suffit d'éditer + les fichiers via l'interface GitLab). Vous vérifierez les valeurs + obtenues pour + 1) les coefficients de la pente et de l'intercept + 2) les estimations d'erreur de ces coefficients + 3) le goodness of fit + 4) la figure + 5) la zone de confiance +- Pour chacun vous indiquerez si le résultat est: + - identique + - proche à moins de trois décimales + - très différent + - non fonctionnel (pas de résultat obtenu) + Vous indiquerez également dans ce tableau: + - Un lien vers votre espace gitlab contenant les différents notebooks + - Le nom du système d'exploitation utilisé + - Le langage utilisé et son numéro de version + - Les numéros des principales bibliothèques utilisées + - Python: numpy, pandas, matplotlib, statsmodels, ... + - R: BLAS, ggplot, dplyr si chargées + +Ne vous inquiétez pas si ces consignes vous semblent peu claires sur l'instant, +elles sont rappelées en haut du [[https://app-learninglab.inria.fr/gitlab/moocrr-session1/moocrr-reproducibility-study/blob/master/results.org][tableau]] et vous vous rendrez vite +compte s'il vous manque quelque chose quand vous essaierez de remplir +ce tableau. + +Nous effectuerons une synthèse illustrant les principales divergences +observées et nous vous l'enverrons à la fin du MOOC. + diff --git a/module4/ressources/exo2.org b/module4/ressources/exo2.org new file mode 100644 index 0000000000000000000000000000000000000000..139d9c774f25112233436ebdb58e4a6b49b631a2 --- /dev/null +++ b/module4/ressources/exo2.org @@ -0,0 +1,27 @@ +# -*- mode: org -*- +#+TITLE: +#+AUTHOR: Arnaud Legrand +#+DATE: June, 2018 +#+STARTUP: overview indent +#+OPTIONS: num:nil toc:t +#+PROPERTY: header-args :eval never-export + +* Exercice 2: L'importance de l'environnement +Dans cet exercice, nous vous proposons de reprendre l'exercice +précédent mais en mettant à jour l'environnement de calcul. En effet, +nous avons rencontré des surprises en préparant ce MOOC puisqu'il nous +est arrivé d'avoir des résultats différents entre nos machines et +l'environnement jupyter que nous avions mis en place pour le MOOC. Ça +sera peut-être également votre cas! + +1. Pour ceux qui ont suivi le parcours jupyter, recréer + l'environnement du MOOC sur votre propre machine en suivant les + instructions données + [[https://www.fun-mooc.fr/courses/course-v1:inria+41016+session01bis/courseware/66bc811404b8481da5f794de54681c5e/f8608bfb261b4c289b35b2cd19d5baf3/][dans les ressources de la section 4A du module 2]]. +2. Vérifier si vous obtenez bien les même résultats que ceux + attendus. +3. Mettre à jour (vers le haut ou vers la bas) cet environnement et + vérifier si vous obtenez les mêmes résultats + +Comme précédemment, vous mettrez à jour le [[https://app-learninglab.inria.fr/gitlab/moocrr-session1/moocrr-reproducibility-study/blob/master/results.org][tableau]] et vous discuterez +sur le forum des succès et des échec que vous aurez rencontrés. diff --git a/module4/ressources/exo3.org b/module4/ressources/exo3.org new file mode 100644 index 0000000000000000000000000000000000000000..886f560a8c4dd4360de3b4b3c8e6ade5d92cb4a7 --- /dev/null +++ b/module4/ressources/exo3.org @@ -0,0 +1,24 @@ +# -*- mode: org -*- +#+TITLE: +#+AUTHOR: Arnaud Legrand +#+DATE: June, 2018 +#+STARTUP: overview indent +#+OPTIONS: num:nil toc:t +#+PROPERTY: header-args :eval never-export + +* Exercice 3: Répliquer un papier de Rescience +Rescience (http://rescience.github.io/) est un journal de sciences +computationnelles entièrement ouvert dont l'objectif est d'encourager +la réplication de travaux déjà publiés en s'assurant que l'ensemble du +code et des données soit disponible. Pour chacun des articles publiés +dans Rescience, nous avons la garantie qu'au moins trois chercheurs +indépendants ont réussi à suivre les indications, à ré-exécuter le +code et à ré-obtenir les mêmes résultats que ceux décrits par les +auteurs. Cela ne veut pas dire que cela soit parfaitement automatique +pour autant et il peut être intéressant de voir comment ils ont +procédé. + +Nous vous proposons donc de choisir l'un de ces articles (celui avec +lequel vous avez le plus d'affinité) et d'essayer de réexécuter les +codes et les calculs décrits dans l'article. N'hésitez pas à indiquer +vos difficultés éventuelles sur le forum où nous répondrons à vos questions.