{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Analysis of the risk of failure of the O-rings on the Challenger shuttle"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On January 27, 1986, the day before the takeoff of the shuttle _Challenger_, had\n",
    "a three-hour teleconference was held between \n",
    "Morton Thiokol (the manufacturer of one of the engines) and NASA. The\n",
    "discussion focused on the consequences of the\n",
    "temperature at take-off of 31°F (just below\n",
    "0°C) for the success of the flight and in particular on the performance of the\n",
    "O-rings used in the engines. Indeed, no test\n",
    "had been performed at this temperature.\n",
    "\n",
    "The following study takes up some of the analyses carried out that\n",
    "night with the objective of assessing the potential influence of\n",
    "the temperature and pressure to which the O-rings are subjected\n",
    "on their probability of malfunction. Our starting point is \n",
    "the results of the experiments carried out by NASA engineers\n",
    "during the six years preceding the launch of the shuttle\n",
    "Challenger."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Loading the data\n",
    "We start by loading this data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "
\n",
       "\n",
       "
\n",
       "  \n",
       "    \n",
       "      | \n",
       " | Date\n",
       " | Count\n",
       " | Temperature\n",
       " | Pressure\n",
       " | Malfunction\n",
       " | 
\n",
       "  \n",
       "  \n",
       "    \n",
       "      | 0\n",
       " | 4/12/81\n",
       " | 6\n",
       " | 66\n",
       " | 50\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 1\n",
       " | 11/12/81\n",
       " | 6\n",
       " | 70\n",
       " | 50\n",
       " | 1\n",
       " | 
\n",
       "    \n",
       "      | 2\n",
       " | 3/22/82\n",
       " | 6\n",
       " | 69\n",
       " | 50\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 3\n",
       " | 11/11/82\n",
       " | 6\n",
       " | 68\n",
       " | 50\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 4\n",
       " | 4/04/83\n",
       " | 6\n",
       " | 67\n",
       " | 50\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 5\n",
       " | 6/18/82\n",
       " | 6\n",
       " | 72\n",
       " | 50\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 6\n",
       " | 8/30/83\n",
       " | 6\n",
       " | 73\n",
       " | 100\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 7\n",
       " | 11/28/83\n",
       " | 6\n",
       " | 70\n",
       " | 100\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 8\n",
       " | 2/03/84\n",
       " | 6\n",
       " | 57\n",
       " | 200\n",
       " | 1\n",
       " | 
\n",
       "    \n",
       "      | 9\n",
       " | 4/06/84\n",
       " | 6\n",
       " | 63\n",
       " | 200\n",
       " | 1\n",
       " | 
\n",
       "    \n",
       "      | 10\n",
       " | 8/30/84\n",
       " | 6\n",
       " | 70\n",
       " | 200\n",
       " | 1\n",
       " | 
\n",
       "    \n",
       "      | 11\n",
       " | 10/05/84\n",
       " | 6\n",
       " | 78\n",
       " | 200\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 12\n",
       " | 11/08/84\n",
       " | 6\n",
       " | 67\n",
       " | 200\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 13\n",
       " | 1/24/85\n",
       " | 6\n",
       " | 53\n",
       " | 200\n",
       " | 2\n",
       " | 
\n",
       "    \n",
       "      | 14\n",
       " | 4/12/85\n",
       " | 6\n",
       " | 67\n",
       " | 200\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 15\n",
       " | 4/29/85\n",
       " | 6\n",
       " | 75\n",
       " | 200\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 16\n",
       " | 6/17/85\n",
       " | 6\n",
       " | 70\n",
       " | 200\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 17\n",
       " | 7/2903/85\n",
       " | 6\n",
       " | 81\n",
       " | 200\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 18\n",
       " | 8/27/85\n",
       " | 6\n",
       " | 76\n",
       " | 200\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 19\n",
       " | 10/03/85\n",
       " | 6\n",
       " | 79\n",
       " | 200\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 20\n",
       " | 10/30/85\n",
       " | 6\n",
       " | 75\n",
       " | 200\n",
       " | 2\n",
       " | 
\n",
       "    \n",
       "      | 21\n",
       " | 11/26/85\n",
       " | 6\n",
       " | 76\n",
       " | 200\n",
       " | 0\n",
       " | 
\n",
       "    \n",
       "      | 22\n",
       " | 1/12/86\n",
       " | 6\n",
       " | 58\n",
       " | 200\n",
       " | 1\n",
       " | 
\n",
       "  \n",
       "
\n",
       "
\n",
       "\n",
       "
\n",
       "  \n",
       "    \n",
       "      | \n",
       " | Date\n",
       " | Count\n",
       " | Temperature\n",
       " | Pressure\n",
       " | Malfunction\n",
       " | 
\n",
       "  \n",
       "  \n",
       "    \n",
       "      | 1\n",
       " | 11/12/81\n",
       " | 6\n",
       " | 70\n",
       " | 50\n",
       " | 1\n",
       " | 
\n",
       "    \n",
       "      | 8\n",
       " | 2/03/84\n",
       " | 6\n",
       " | 57\n",
       " | 200\n",
       " | 1\n",
       " | 
\n",
       "    \n",
       "      | 9\n",
       " | 4/06/84\n",
       " | 6\n",
       " | 63\n",
       " | 200\n",
       " | 1\n",
       " | 
\n",
       "    \n",
       "      | 10\n",
       " | 8/30/84\n",
       " | 6\n",
       " | 70\n",
       " | 200\n",
       " | 1\n",
       " | 
\n",
       "    \n",
       "      | 13\n",
       " | 1/24/85\n",
       " | 6\n",
       " | 53\n",
       " | 200\n",
       " | 2\n",
       " | 
\n",
       "    \n",
       "      | 20\n",
       " | 10/30/85\n",
       " | 6\n",
       " | 75\n",
       " | 200\n",
       " | 2\n",
       " | 
\n",
       "    \n",
       "      | 22\n",
       " | 1/12/86\n",
       " | 6\n",
       " | 58\n",
       " | 200\n",
       " | 1\n",
       " | 
\n",
       "  \n",
       "
\n",
       "
\n",
       "Generalized Linear Model Regression Results\n",
       "\n",
       "  | Dep. Variable: | Frequency | No. Observations: | 7\n",
       " | 
\n",
       "\n",
       "  | Model: | GLM | Df Residuals: | 5\n",
       " | 
\n",
       "\n",
       "  | Model Family: | Binomial | Df Model: | 1\n",
       " | 
\n",
       "\n",
       "  | Link Function: | logit | Scale: | 1.0\n",
       " | 
\n",
       "\n",
       "  | Method: | IRLS | Log-Likelihood: | -3.6370\n",
       " | 
\n",
       "\n",
       "  | Date: | Wed, 27 Mar 2019 | Deviance: | 3.3763\n",
       " | 
\n",
       "\n",
       "  | Time: | 13:03:27 | Pearson chi2: | 0.236\n",
       " | 
\n",
       "\n",
       "  | No. Iterations: | 5 |  | \n",
       " | 
\n",
       "
\n",
       "\n",
       "\n",
       "       |  | coef | std err | z | P>|z| | [0.025 | 0.975]\n",
       " | 
\n",
       "\n",
       "  | Intercept | -1.3895 | 7.828 | -0.178 | 0.859 | -16.732 | 13.953\n",
       " | 
\n",
       "\n",
       "  | Temperature | 0.0014 | 0.122 | 0.012 | 0.991 | -0.238 | 0.240\n",
       " | 
\n",
       "
"
      ],
      "text/plain": [
       "\n",
       "\"\"\"\n",
       "                 Generalized Linear Model Regression Results                  \n",
       "==============================================================================\n",
       "Dep. Variable:              Frequency   No. Observations:                    7\n",
       "Model:                            GLM   Df Residuals:                        5\n",
       "Model Family:                Binomial   Df Model:                            1\n",
       "Link Function:                  logit   Scale:                             1.0\n",
       "Method:                          IRLS   Log-Likelihood:                -3.6370\n",
       "Date:                Wed, 27 Mar 2019   Deviance:                       3.3763\n",
       "Time:                        13:03:27   Pearson chi2:                    0.236\n",
       "No. Iterations:                     5                                         \n",
       "===============================================================================\n",
       "                  coef    std err          z      P>|z|      [0.025      0.975]\n",
       "-------------------------------------------------------------------------------\n",
       "Intercept      -1.3895      7.828     -0.178      0.859     -16.732      13.953\n",
       "Temperature     0.0014      0.122      0.012      0.991      -0.238       0.240\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']], family=sm.families.Binomial(sm.families.links.logit)).fit()\n",
    "\n",
    "logmodel.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The most likely estimator of the temperature parameter is 0.0014\n",
    "and the standard error of this estimator is 0.122, in other words we\n",
    "cannot distinguish any particular impact and we must take our\n",
    "estimates with caution."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Estimation of the probability of O-ring malfunction\n",
    "\n",
    "The expected temperature on the take-off day is 31°F. Let's try to\n",
    "estimate the probability of O-ring malfunction at\n",
    "this temperature from the model we just built:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\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": [
    "As expected from the initial data, the\n",
    "temperature has no significant impact on the probability of failure of the\n",
    "O-rings. It will be about 0.2, as in the tests\n",
    "where we had a failure of at least one joint. Let's get back\n",
    "to the initial dataset to estimate the probability of failure:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0652173913043\n"
     ]
    }
   ],
   "source": [
    "data = pd.read_csv(\"shuttle.csv\")\n",
    "print(np.sum(data.Malfunction)/np.sum(data.Count))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This probability is thus about $p=0.065$. Knowing that there is\n",
    "a primary and a secondary O-ring on each of the three parts of the\n",
    "launcher, the probability of failure of both joints of a launcher\n",
    "is $p^2 \\approx 0.00425$. The probability of failure of any one of the\n",
    "launchers is $1-(1-p^2)^3 \\approx 1.2%$.  That would really be\n",
    "bad luck.... Everything is under control, so the takeoff can happen\n",
    "tomorrow as planned.\n",
    "\n",
    "But the next day, the Challenger shuttle exploded and took away\n",
    "with her the seven crew members. The public was shocked and in\n",
    "the subsequent investigation, the reliability of the\n",
    "O-rings was questioned. Beyond the internal communication problems\n",
    "of NASA, which have a lot to do with this fiasco, the previous analysis\n",
    "includes (at least) a small problem.... Can you find it?\n",
    "You are free to modify this analysis and to look at this dataset\n",
    "from all angles in order to to explain what's wrong."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "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.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}