"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%matplotlib inline\n",
+ "pd.set_option('mode.chained_assignment',None) # this removes a useless warning from pandas\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "data[\"Frequency\"]=data.Malfunction/data.Count\n",
+ "data.plot(x=\"Temperature\",y=\"Frequency\",kind=\"scatter\",ylim=[0,1])\n",
+ "plt.grid(True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Logistic regression\n",
+ "\n",
+ "Let's assume O-rings independently fail with the same probability which solely depends on temperature. A logistic regression should allow us to estimate the influence of temperature."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "
Generalized Linear Model Regression Results
\n",
+ "
\n",
+ "
Dep. Variable:
Frequency
No. Observations:
23
\n",
+ "
\n",
+ "
\n",
+ "
Model:
GLM
Df Residuals:
21
\n",
+ "
\n",
+ "
\n",
+ "
Model Family:
Binomial
Df Model:
1
\n",
+ "
\n",
+ "
\n",
+ "
Link Function:
logit
Scale:
1.0000
\n",
+ "
\n",
+ "
\n",
+ "
Method:
IRLS
Log-Likelihood:
-3.9210
\n",
+ "
\n",
+ "
\n",
+ "
Date:
Wed, 24 Oct 2018
Deviance:
3.0144
\n",
+ "
\n",
+ "
\n",
+ "
Time:
11:05:55
Pearson chi2:
5.00
\n",
+ "
\n",
+ "
\n",
+ "
No. Iterations:
6
Covariance Type:
nonrobust
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
coef
std err
z
P>|z|
[0.025
0.975]
\n",
+ "
\n",
+ "
\n",
+ "
Intercept
5.0850
7.477
0.680
0.496
-9.570
19.740
\n",
+ "
\n",
+ "
\n",
+ "
Temperature
-0.1156
0.115
-1.004
0.316
-0.341
0.110
\n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "\n",
+ "\"\"\"\n",
+ " Generalized Linear Model Regression Results \n",
+ "==============================================================================\n",
+ "Dep. Variable: Frequency No. Observations: 23\n",
+ "Model: GLM Df Residuals: 21\n",
+ "Model Family: Binomial Df Model: 1\n",
+ "Link Function: logit Scale: 1.0000\n",
+ "Method: IRLS Log-Likelihood: -3.9210\n",
+ "Date: Wed, 24 Oct 2018 Deviance: 3.0144\n",
+ "Time: 11:05:55 Pearson chi2: 5.00\n",
+ "No. Iterations: 6 Covariance Type: nonrobust\n",
+ "===============================================================================\n",
+ " coef std err z P>|z| [0.025 0.975]\n",
+ "-------------------------------------------------------------------------------\n",
+ "Intercept 5.0850 7.477 0.680 0.496 -9.570 19.740\n",
+ "Temperature -0.1156 0.115 -1.004 0.316 -0.341 0.110\n",
+ "===============================================================================\n",
+ "\"\"\""
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import statsmodels.api as sm\n",
+ "\n",
+ "data[\"Success\"]=data.Count-data.Malfunction\n",
+ "data[\"Intercept\"]=1\n",
+ "\n",
+ "logmodel=sm.GLM(data['Frequency'], data[['Intercept','Temperature']], \n",
+ " family=sm.families.Binomial(sm.families.links.logit)).fit()\n",
+ "\n",
+ "logmodel.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The maximum likelyhood estimator of the intercept and of Temperature are thus $\\hat{\\alpha}=5.0849$ and $\\hat{\\beta}=-0.1156$. This **corresponds** to the values from the article of Dalal *et al.* The standard errors are $s_{\\hat{\\alpha}} = 7.477$ and $s_{\\hat{\\beta}} = 0.115$, which is **different** from the $3.052$ and $0.04702$ reported by Dallal *et al.* The deviance is $3.01444$ with 21 degrees of freedom. I cannot find any value similar to the Goodness of fit ($G^2=18.086$) reported by Dalal *et al.* There seems to be something wrong. Oh I know, I haven't indicated that my observations are actually the result of 6 observations for each rocket launch. Let's indicate these weights (since the weights are always the same throughout all experiments, it does not change the estimates of the fit but it does influence the variance estimates)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "
Generalized Linear Model Regression Results
\n",
+ "
\n",
+ "
Dep. Variable:
Frequency
No. Observations:
23
\n",
+ "
\n",
+ "
\n",
+ "
Model:
GLM
Df Residuals:
21
\n",
+ "
\n",
+ "
\n",
+ "
Model Family:
Binomial
Df Model:
1
\n",
+ "
\n",
+ "
\n",
+ "
Link Function:
logit
Scale:
1.0000
\n",
+ "
\n",
+ "
\n",
+ "
Method:
IRLS
Log-Likelihood:
-23.526
\n",
+ "
\n",
+ "
\n",
+ "
Date:
Wed, 24 Oct 2018
Deviance:
18.086
\n",
+ "
\n",
+ "
\n",
+ "
Time:
11:05:55
Pearson chi2:
30.0
\n",
+ "
\n",
+ "
\n",
+ "
No. Iterations:
6
Covariance Type:
nonrobust
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
coef
std err
z
P>|z|
[0.025
0.975]
\n",
+ "
\n",
+ "
\n",
+ "
Intercept
5.0850
3.052
1.666
0.096
-0.898
11.068
\n",
+ "
\n",
+ "
\n",
+ "
Temperature
-0.1156
0.047
-2.458
0.014
-0.208
-0.023
\n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "\n",
+ "\"\"\"\n",
+ " Generalized Linear Model Regression Results \n",
+ "==============================================================================\n",
+ "Dep. Variable: Frequency No. Observations: 23\n",
+ "Model: GLM Df Residuals: 21\n",
+ "Model Family: Binomial Df Model: 1\n",
+ "Link Function: logit Scale: 1.0000\n",
+ "Method: IRLS Log-Likelihood: -23.526\n",
+ "Date: Wed, 24 Oct 2018 Deviance: 18.086\n",
+ "Time: 11:05:55 Pearson chi2: 30.0\n",
+ "No. Iterations: 6 Covariance Type: nonrobust\n",
+ "===============================================================================\n",
+ " coef std err z P>|z| [0.025 0.975]\n",
+ "-------------------------------------------------------------------------------\n",
+ "Intercept 5.0850 3.052 1.666 0.096 -0.898 11.068\n",
+ "Temperature -0.1156 0.047 -2.458 0.014 -0.208 -0.023\n",
+ "===============================================================================\n",
+ "\"\"\""
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "logmodel=sm.GLM(data['Frequency'], data[['Intercept','Temperature']], \n",
+ " family=sm.families.Binomial(sm.families.links.logit),\n",
+ " var_weights=data['Count']).fit()\n",
+ "\n",
+ "logmodel.summary()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Good, now I have recovered the asymptotic standard errors $s_{\\hat{\\alpha}}=3.052$ and $s_{\\hat{\\beta}}=0.047$.\n",
+ "The Goodness of fit (Deviance) indicated for this model is $G^2=18.086$ with 21 degrees of freedom (Df Residuals).\n",
+ "\n",
+ "**I have therefore managed to fully replicate the results of the Dalal *et al.* article**."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Predicting failure probability\n",
+ "The temperature when launching the shuttle was 31°F. Let's try to estimate the failure probability for such temperature using our model.:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%matplotlib inline\n",
+ "data_pred = pd.DataFrame({'Temperature': np.linspace(start=30, stop=90, num=121), 'Intercept': 1})\n",
+ "data_pred['Frequency'] = logmodel.predict(data_pred)\n",
+ "data_pred.plot(x=\"Temperature\",y=\"Frequency\",kind=\"line\",ylim=[0,1])\n",
+ "plt.scatter(x=data[\"Temperature\"],y=data[\"Frequency\"])\n",
+ "plt.grid(True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "hideCode": false,
+ "hidePrompt": false,
+ "scrolled": true
+ },
+ "source": [
+ "This figure is very similar to the Figure 4 of Dalal *et al.* **I have managed to replicate the Figure 4 of the Dalal *et al.* article.**"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Computing and plotting uncertainty"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Following the documentation of [Seaborn](https://seaborn.pydata.org/generated/seaborn.regplot.html), I use regplot."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.set(color_codes=True)\n",
+ "plt.xlim(30,90)\n",
+ "plt.ylim(0,1)\n",
+ "sns.regplot(x='Temperature', y='Frequency', data=data, logistic=True)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**I think I have managed to correctly compute and plot the uncertainty of my prediction.** Although the shaded area seems very similar to [the one obtained by with R](https://app-learninglab.inria.fr/gitlab/moocrr-session1/moocrr-reproducibility-study/raw/5c9dbef11b4d7638b7ddf2ea71026e7bf00fcfb0/challenger.pdf), I can spot a few differences (e.g., the blue point for temperature 63 is outside)... Could this be a numerical error ? Or a difference in the statistical method ? It is not clear which one is \"right\"."
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Hide code",
+ "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.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/module2/exo1/toy_notebook_fr.ipynb b/module2/exo1/toy_notebook_fr.ipynb
index 0bbbe371b01e359e381e43239412d77bf53fb1fb..34202a2710b7670bf4a6c42e27f78a7323495def 100644
--- a/module2/exo1/toy_notebook_fr.ipynb
+++ b/module2/exo1/toy_notebook_fr.ipynb
@@ -1,6 +1,162 @@
{
- "cells": [],
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "hideCode": false,
+ "hidePrompt": false
+ },
+ "source": [
+ "# À propos du calcul de $\\pi$\n",
+ "\n",
+ "## En demandant à la lib maths\n",
+ "\n",
+ "Mon ordinateur m'indique que $\\pi$ vaut *approximativement*"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "hideCode": false,
+ "hidePrompt": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3.141592653589793\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import *\n",
+ "print(pi)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "hideCode": false,
+ "hidePrompt": false
+ },
+ "source": [
+ "## En utilisant la méthode des aiguilles de Buffon\n",
+ "Mais calculé avec la **méthode** des [aiguilles de Buffon](https://fr.wikipedia.org/wiki/Aiguille_de_Buffon), on obtiendrait comme **approximation** :"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "hideCode": false,
+ "hidePrompt": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3.128911138923655"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "np.random.seed(seed=42)\n",
+ "N = 10000\n",
+ "x = np.random.uniform(size=N, low=0, high=1)\n",
+ "theta = np.random.uniform(size=N, low=0, high=pi/2)\n",
+ "2/(sum((x+np.sin(theta))>1)/N)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "hideCode": false,
+ "hidePrompt": false
+ },
+ "source": [
+ "## Avec un argument \"fréquentiel\" de surface\n",
+ "Sinon, une méthode plus simple à comprendre et ne faisant pas intervenir d'appel à la fonction sinus se base sur le fait que si $X \\sim U(0,1)$ et $Y \\sim U(0,1)$ alors $P[X^2+Y^2 \\leq 1] = \\pi/4$ (voir [méthode de Monte Carlo sur Wikipedia](https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Monte-Carlo#D%C3%A9termination_de_la_valeur_de_%CF%80). Le code suivant illustre ce fait :"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "hideCode": false,
+ "hidePrompt": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "np.random.seed(seed=42)\n",
+ "N = 1000\n",
+ "x = np.random.uniform(size=N, low=0, high=1)\n",
+ "y = np.random.uniform(size=N, low=0, high=1)\n",
+ "accept = (x*x+y*y) <= 1\n",
+ "reject = np.logical_not(accept)\n",
+ "\n",
+ "fig, ax = plt.subplots(1)\n",
+ "ax.scatter(x[accept], y[accept], c='b', alpha=0.2, edgecolor=None)\n",
+ "ax.scatter(x[reject], y[reject], c='r', alpha=0.2, edgecolor=None)\n",
+ "ax.set_aspect('equal')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "hideCode": false,
+ "hidePrompt": false
+ },
+ "source": [
+ "Il est alors aisé d'obtenir une approximation (pas terrible) de $\\pi$ en comptant combien de fois, en moyenne, $X^2 + Y^2$ est inférieur à 1 :"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3.112"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "4*np.mean(accept)"
+ ]
+ }
+ ],
"metadata": {
+ "celltoolbar": "Hide code",
+ "hide_code_all_hidden": true,
"kernelspec": {
"display_name": "Python 3",
"language": "python",
@@ -16,10 +172,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.3"
+ "version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
-