Analyse ré executée

parent 7ac23831
<!DOCTYPE html>
<html class="" lang="en">
<head prefix="og: http://ogp.me/ns#">
<meta charset="utf-8">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="object" property="og:type">
<meta content="GitLab" property="og:site_name">
<meta content="data/shuttle.csv · master · moocrr-session3 / moocrr-reproducibility-study" property="og:title">
<meta content="Bienvenue" property="og:description">
<meta content="https://app-learninglab.inria.fr/moocrr/gitlab/assets/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png" property="og:image">
<meta content="64" property="og:image:width">
<meta content="64" property="og:image:height">
<meta content="https://app-learninglab.inria.fr/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/master/data/shuttle.csv" property="og:url">
<meta content="summary" property="twitter:card">
<meta content="data/shuttle.csv · master · moocrr-session3 / moocrr-reproducibility-study" property="twitter:title">
<meta content="Bienvenue" property="twitter:description">
<meta content="https://app-learninglab.inria.fr/moocrr/gitlab/assets/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png" property="twitter:image">
<title>data/shuttle.csv · master · moocrr-session3 / moocrr-reproducibility-study · GitLab</title>
<meta content="Bienvenue" name="description">
<link rel="shortcut icon" type="image/png" href="/moocrr/gitlab/assets/favicon-7901bd695fb93edb07975966062049829afb56cf11511236e61bcf425070e36e.png" id="favicon" data-original-href="/moocrr/gitlab/assets/favicon-7901bd695fb93edb07975966062049829afb56cf11511236e61bcf425070e36e.png" />
<link rel="stylesheet" media="all" href="/moocrr/gitlab/assets/application-38981e26a24308976f3a29d6e5e2beef57c7acda3ad0d5e7f6f149d58fd09d3d.css" />
<link rel="stylesheet" media="print" href="/moocrr/gitlab/assets/print-74c3df10dad473d66660c828e3aa54ca3bfeac6d8bb708643331403fe7211e60.css" />
<link rel="stylesheet" media="all" href="/moocrr/gitlab/assets/highlight/themes/white-a165d47ce52cf24c29686366976ae691bd9addb9641a6abeb3ba6d1823b89aa8.css" />
<script>
//<![CDATA[
window.gon={};gon.api_version="v4";gon.default_avatar_url="https://app-learninglab.inria.fr/moocrr/gitlab/assets/no_avatar-849f9c04a3a0d0cea2424ae97b27447dc64a7dbfae83c036c45b403392f0e8ba.png";gon.max_file_size=10;gon.asset_host=null;gon.webpack_public_path="/moocrr/gitlab/assets/webpack/";gon.relative_url_root="/moocrr/gitlab";gon.shortcuts_path="/moocrr/gitlab/help/shortcuts";gon.user_color_scheme="white";gon.gitlab_url="https://app-learninglab.inria.fr/moocrr/gitlab";gon.revision="62c464651d2";gon.gitlab_logo="/moocrr/gitlab/assets/gitlab_logo-7ae504fe4f68fdebb3c2034e36621930cd36ea87924c11ff65dbcb8ed50dca58.png";gon.sprite_icons="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg";gon.sprite_file_icons="/moocrr/gitlab/assets/file_icons-7262fc6897e02f1ceaf8de43dc33afa5e4f9a2067f4f68ef77dcc87946575e9e.svg";gon.emoji_sprites_css_path="/moocrr/gitlab/assets/emoji_sprites-289eccffb1183c188b630297431be837765d9ff4aed6130cf738586fb307c170.css";gon.test_env=false;gon.suggested_label_colors=["#0033CC","#428BCA","#44AD8E","#A8D695","#5CB85C","#69D100","#004E00","#34495E","#7F8C8D","#A295D6","#5843AD","#8E44AD","#FFECDB","#AD4363","#D10069","#CC0033","#FF0000","#D9534F","#D1D100","#F0AD4E","#AD8D43"];gon.first_day_of_week=0;gon.ee=false;
//]]>
</script>
<script src="/moocrr/gitlab/assets/webpack/runtime.1f581ba6.bundle.js" defer="defer"></script>
<script src="/moocrr/gitlab/assets/webpack/main.2f7fae40.chunk.js" defer="defer"></script>
<script src="/moocrr/gitlab/assets/webpack/commons~pages.groups~pages.groups.activity~pages.groups.boards~pages.groups.clusters.destroy~pages.g~052f965e.1a94683c.chunk.js" defer="defer"></script>
<script src="/moocrr/gitlab/assets/webpack/commons~pages.groups.milestones.edit~pages.groups.milestones.new~pages.projects.blame.show~pages.pro~bedd5722.3528728f.chunk.js" defer="defer"></script>
<script src="/moocrr/gitlab/assets/webpack/pages.projects.blob.show.44cb67de.chunk.js" defer="defer"></script>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="/aGV3heD+Q3Z+5xpSxrr34b/HQSwTkMpjQ8pyDzyWAnhcl8H0vNt0Y3HHYYy816FjrqHz0cl2ABLDuvIjTaRAg==" />
<meta content="origin-when-cross-origin" name="referrer">
<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">
<meta content="#474D57" name="theme-color">
<link rel="apple-touch-icon" type="image/x-icon" href="/moocrr/gitlab/assets/touch-icon-iphone-5a9cee0e8a51212e70b90c87c12f382c428870c0ff67d1eb034d884b78d2dae7.png" />
<link rel="apple-touch-icon" type="image/x-icon" href="/moocrr/gitlab/assets/touch-icon-ipad-a6eec6aeb9da138e507593b464fdac213047e49d3093fc30e90d9a995df83ba3.png" sizes="76x76" />
<link rel="apple-touch-icon" type="image/x-icon" href="/moocrr/gitlab/assets/touch-icon-iphone-retina-72e2aadf86513a56e050e7f0f2355deaa19cc17ed97bbe5147847f2748e5a3e3.png" sizes="120x120" />
<link rel="apple-touch-icon" type="image/x-icon" href="/moocrr/gitlab/assets/touch-icon-ipad-retina-8ebe416f5313483d9c1bc772b5bbe03ecad52a54eba443e5215a22caed2a16a2.png" sizes="152x152" />
<link color="rgb(226, 67, 41)" href="/moocrr/gitlab/assets/logo-d36b5212042cebc89b96df4bf6ac24e43db316143e89926c0db839ff694d2de4.svg" rel="mask-icon">
<meta content="/moocrr/gitlab/assets/msapplication-tile-1196ec67452f618d39cdd85e2e3a542f76574c071051ae7effbfde01710eb17d.png" name="msapplication-TileImage">
<meta content="#30353E" name="msapplication-TileColor">
</head>
<body class="ui-light gl-browser-generic gl-platform-other" data-find-file="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/find_file/master" data-group="" data-page="projects:blob:show" data-project="moocrr-reproducibility-study">
<script>
gl = window.gl || {};
gl.client = {"isGeneric":true,"isOther":true};
</script>
<header class="navbar navbar-gitlab qa-navbar navbar-expand-sm js-navbar">
<a class="sr-only gl-accessibility" href="#content-body" tabindex="1">Skip to content</a>
<div class="container-fluid">
<div class="header-content">
<div class="title-container">
<h1 class="title">
<a title="Dashboard" id="logo" href="/moocrr/gitlab/"><svg width="24" height="24" class="tanuki-logo" viewBox="0 0 36 36">
<path class="tanuki-shape tanuki-left-ear" fill="#e24329" d="M2 14l9.38 9v-9l-4-12.28c-.205-.632-1.176-.632-1.38 0z"/>
<path class="tanuki-shape tanuki-right-ear" fill="#e24329" d="M34 14l-9.38 9v-9l4-12.28c.205-.632 1.176-.632 1.38 0z"/>
<path class="tanuki-shape tanuki-nose" fill="#e24329" d="M18,34.38 3,14 33,14 Z"/>
<path class="tanuki-shape tanuki-left-eye" fill="#fc6d26" d="M18,34.38 11.38,14 2,14 6,25Z"/>
<path class="tanuki-shape tanuki-right-eye" fill="#fc6d26" d="M18,34.38 24.62,14 34,14 30,25Z"/>
<path class="tanuki-shape tanuki-left-cheek" fill="#fca326" d="M2 14L.1 20.16c-.18.565 0 1.2.5 1.56l17.42 12.66z"/>
<path class="tanuki-shape tanuki-right-cheek" fill="#fca326" d="M34 14l1.9 6.16c.18.565 0 1.2-.5 1.56L18 34.38z"/>
</svg>
<span class="logo-text d-none d-lg-block prepend-left-8">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 617 169"><path d="M315.26 2.97h-21.8l.1 162.5h88.3v-20.1h-66.5l-.1-142.4M465.89 136.95c-5.5 5.7-14.6 11.4-27 11.4-16.6 0-23.3-8.2-23.3-18.9 0-16.1 11.2-23.8 35-23.8 4.5 0 11.7.5 15.4 1.2v30.1h-.1m-22.6-98.5c-17.6 0-33.8 6.2-46.4 16.7l7.7 13.4c8.9-5.2 19.8-10.4 35.5-10.4 17.9 0 25.8 9.2 25.8 24.6v7.9c-3.5-.7-10.7-1.2-15.1-1.2-38.2 0-57.6 13.4-57.6 41.4 0 25.1 15.4 37.7 38.7 37.7 15.7 0 30.8-7.2 36-18.9l4 15.9h15.4v-83.2c-.1-26.3-11.5-43.9-44-43.9M557.63 149.1c-8.2 0-15.4-1-20.8-3.5V70.5c7.4-6.2 16.6-10.7 28.3-10.7 21.1 0 29.2 14.9 29.2 39 0 34.2-13.1 50.3-36.7 50.3m9.2-110.6c-19.5 0-30 13.3-30 13.3v-21l-.1-27.8h-21.3l.1 158.5c10.7 4.5 25.3 6.9 41.2 6.9 40.7 0 60.3-26 60.3-70.9-.1-35.5-18.2-59-50.2-59M77.9 20.6c19.3 0 31.8 6.4 39.9 12.9l9.4-16.3C114.5 6 97.3 0 78.9 0 32.5 0 0 28.3 0 85.4c0 59.8 35.1 83.1 75.2 83.1 20.1 0 37.2-4.7 48.4-9.4l-.5-63.9V75.1H63.6v20.1h38l.5 48.5c-5 2.5-13.6 4.5-25.3 4.5-32.2 0-53.8-20.3-53.8-63-.1-43.5 22.2-64.6 54.9-64.6M231.43 2.95h-21.3l.1 27.3v94.3c0 26.3 11.4 43.9 43.9 43.9 4.5 0 8.9-.4 13.1-1.2v-19.1c-3.1.5-6.4.7-9.9.7-17.9 0-25.8-9.2-25.8-24.6v-65h35.7v-17.8h-35.7l-.1-38.5M155.96 165.47h21.3v-124h-21.3v124M155.96 24.37h21.3V3.07h-21.3v21.3"/></svg>
</span>
</a></h1>
<ul class="list-unstyled navbar-sub-nav">
<li class="home"><a title="Projects" class="dashboard-shortcuts-projects" href="/moocrr/gitlab/explore">Projects
</a></li><li class=""><a title="Groups" class="dashboard-shortcuts-groups" href="/moocrr/gitlab/explore/groups">Groups
</a></li><li class=""><a title="Snippets" class="dashboard-shortcuts-snippets" href="/moocrr/gitlab/explore/snippets">Snippets
</a></li><li>
<a title="About GitLab CE" href="/moocrr/gitlab/help">Help</a>
</li>
</ul>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="nav-item d-none d-sm-none d-md-block m-auto">
<div class="search search-form" data-track-event="activate_form_input" data-track-label="navbar_search">
<form class="form-inline" action="/moocrr/gitlab/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" /><div class="search-input-container">
<div class="search-input-wrap">
<div class="dropdown" data-url="/moocrr/gitlab/search/autocomplete">
<input type="search" name="search" id="search" placeholder="Search or jump to…" class="search-input dropdown-menu-toggle no-outline js-search-dashboard-options" spellcheck="false" tabindex="1" autocomplete="off" data-issues-path="/moocrr/gitlab/dashboard/issues" data-mr-path="/moocrr/gitlab/dashboard/merge_requests" aria-label="Search or jump to…" />
<button class="hidden js-dropdown-search-toggle" data-toggle="dropdown" type="button"></button>
<div class="dropdown-menu dropdown-select">
<div class="dropdown-content"><ul>
<li class="dropdown-menu-empty-item">
<a>
Loading...
</a>
</li>
</ul>
</div><div class="dropdown-loading"><i aria-hidden="true" data-hidden="true" class="fa fa-spinner fa-spin"></i></div>
</div>
<svg class="s16 search-icon"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#search"></use></svg>
<svg class="s16 clear-icon js-clear-input"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#close"></use></svg>
</div>
</div>
</div>
<input type="hidden" name="group_id" id="group_id" class="js-search-group-options" />
<input type="hidden" name="project_id" id="search_project_id" value="842" class="js-search-project-options" data-project-path="moocrr-reproducibility-study" data-name="moocrr-reproducibility-study" data-issues-path="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/issues" data-mr-path="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/merge_requests" data-issues-disabled="false" />
<input type="hidden" name="search_code" id="search_code" value="true" />
<input type="hidden" name="repository_ref" id="repository_ref" value="master" />
<div class="search-autocomplete-opts hide" data-autocomplete-path="/moocrr/gitlab/search/autocomplete" data-autocomplete-project-id="842" data-autocomplete-project-ref="master"></div>
</form></div>
</li>
<li class="nav-item d-inline-block d-sm-none d-md-none">
<a title="Search" aria-label="Search" data-toggle="tooltip" data-placement="bottom" data-container="body" href="/moocrr/gitlab/search?project_id=842"><svg class="s16"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#search"></use></svg>
</a></li>
<li class="nav-item header-help dropdown">
<a class="header-help-dropdown-toggle" data-toggle="dropdown" href="/moocrr/gitlab/help"><svg class="s16"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#question"></use></svg>
<svg class="caret-down"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#angle-down"></use></svg>
</a><div class="dropdown-menu dropdown-menu-right">
<ul>
<li>
<a href="/moocrr/gitlab/help">Help</a>
</li>
<li class="divider"></li>
<li>
<a href="https://about.gitlab.com/submit-feedback">Submit feedback</a>
</li>
<li>
<a target="_blank" class="text-nowrap" href="https://about.gitlab.com/contributing">Contribute to GitLab
</a></li>
</ul>
</div>
</li>
<li class="nav-item">
<div>
<a class="btn btn-sign-in" href="/moocrr/gitlab/users/sign_in?redirect_to_referer=yes">Sign in</a>
</div>
</li>
</ul>
</div>
<button class="navbar-toggler d-block d-sm-none" type="button">
<span class="sr-only">Toggle navigation</span>
<svg class="s12 more-icon js-navbar-toggle-right"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#ellipsis_h"></use></svg>
<svg class="s12 close-icon js-navbar-toggle-left"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#close"></use></svg>
</button>
</div>
</div>
</header>
<div class="layout-page page-with-contextual-sidebar">
<div class="nav-sidebar">
<div class="nav-sidebar-inner-scroll">
<div class="context-header">
<a title="moocrr-reproducibility-study" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study"><div class="avatar-container rect-avatar s40 project-avatar">
<div class="avatar s40 avatar-tile identicon bg3">M</div>
</div>
<div class="sidebar-context-title">
moocrr-reproducibility-study
</div>
</a></div>
<ul class="sidebar-top-level-items">
<li class="home"><a class="shortcuts-project" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study"><div class="nav-icon-container">
<svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#home"></use></svg>
</div>
<span class="nav-item-name">
Project
</span>
</a><ul class="sidebar-sub-level-items">
<li class="fly-out-top-item"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study"><strong class="fly-out-top-item-name">
Project
</strong>
</a></li><li class="divider fly-out-top-item"></li>
<li class=""><a title="Project details" class="shortcuts-project" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study"><span>Details</span>
</a></li><li class=""><a title="Activity" class="shortcuts-project-activity qa-activity-link" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/activity"><span>Activity</span>
</a></li><li class=""><a title="Releases" class="shortcuts-project-releases" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/releases"><span>Releases</span>
</a></li>
<li class=""><a title="Cycle Analytics" class="shortcuts-project-cycle-analytics" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/cycle_analytics"><span>Cycle Analytics</span>
</a></li>
</ul>
</li><li class="active"><a class="shortcuts-tree qa-project-menu-repo" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/tree/master"><div class="nav-icon-container">
<svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#doc-text"></use></svg>
</div>
<span class="nav-item-name">
Repository
</span>
</a><ul class="sidebar-sub-level-items">
<li class="fly-out-top-item active"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/tree/master"><strong class="fly-out-top-item-name">
Repository
</strong>
</a></li><li class="divider fly-out-top-item"></li>
<li class="active"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/tree/master">Files
</a></li><li class=""><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/commits/master">Commits
</a></li><li class=""><a class="qa-branches-link" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/branches">Branches
</a></li><li class=""><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/tags">Tags
</a></li><li class=""><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/graphs/master">Contributors
</a></li><li class=""><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/network/master">Graph
</a></li><li class=""><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/compare?from=master&amp;to=master">Compare
</a></li><li class=""><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/graphs/master/charts">Charts
</a></li>
</ul>
</li><li class=""><a class="shortcuts-issues qa-issues-item" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/issues"><div class="nav-icon-container">
<svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#issues"></use></svg>
</div>
<span class="nav-item-name">
Issues
</span>
<span class="badge badge-pill count issue_counter">
0
</span>
</a><ul class="sidebar-sub-level-items">
<li class="fly-out-top-item"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/issues"><strong class="fly-out-top-item-name">
Issues
</strong>
<span class="badge badge-pill count issue_counter fly-out-badge">
0
</span>
</a></li><li class="divider fly-out-top-item"></li>
<li class=""><a title="Issues" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/issues"><span>
List
</span>
</a></li><li class=""><a title="Board" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/boards"><span>
Board
</span>
</a></li><li class=""><a title="Labels" class="qa-labels-link" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/labels"><span>
Labels
</span>
</a></li>
<li class=""><a title="Milestones" class="qa-milestones-link" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/milestones"><span>
Milestones
</span>
</a></li></ul>
</li><li class=""><a class="shortcuts-merge_requests qa-merge-requests-link" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/merge_requests"><div class="nav-icon-container">
<svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#git-merge"></use></svg>
</div>
<span class="nav-item-name">
Merge Requests
</span>
<span class="badge badge-pill count merge_counter js-merge-counter">
0
</span>
</a><ul class="sidebar-sub-level-items is-fly-out-only">
<li class="fly-out-top-item"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/merge_requests"><strong class="fly-out-top-item-name">
Merge Requests
</strong>
<span class="badge badge-pill count merge_counter js-merge-counter fly-out-badge">
0
</span>
</a></li></ul>
</li><li class=""><a class="shortcuts-pipelines qa-link-pipelines" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/pipelines"><div class="nav-icon-container">
<svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#rocket"></use></svg>
</div>
<span class="nav-item-name">
CI / CD
</span>
</a><ul class="sidebar-sub-level-items">
<li class="fly-out-top-item"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/pipelines"><strong class="fly-out-top-item-name">
CI / CD
</strong>
</a></li><li class="divider fly-out-top-item"></li>
<li class=""><a title="Pipelines" class="shortcuts-pipelines" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/pipelines"><span>
Pipelines
</span>
</a></li><li class=""><a title="Jobs" class="shortcuts-builds" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/-/jobs"><span>
Jobs
</span>
</a></li><li class=""><a title="Schedules" class="shortcuts-builds" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/pipeline_schedules"><span>
Schedules
</span>
</a></li><li class=""><a title="Charts" class="shortcuts-pipelines-charts" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/pipelines/charts"><span>
Charts
</span>
</a></li></ul>
</li><li class=""><a class="shortcuts-wiki qa-wiki-link" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/wikis/home"><div class="nav-icon-container">
<svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#book"></use></svg>
</div>
<span class="nav-item-name">
Wiki
</span>
</a><ul class="sidebar-sub-level-items is-fly-out-only">
<li class="fly-out-top-item"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/wikis/home"><strong class="fly-out-top-item-name">
Wiki
</strong>
</a></li></ul>
</li><li class=""><a class="shortcuts-snippets" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/snippets"><div class="nav-icon-container">
<svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#snippet"></use></svg>
</div>
<span class="nav-item-name">
Snippets
</span>
</a><ul class="sidebar-sub-level-items is-fly-out-only">
<li class="fly-out-top-item"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/snippets"><strong class="fly-out-top-item-name">
Snippets
</strong>
</a></li></ul>
</li><li class=""><a title="Members" class="shortcuts-tree" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/settings/members"><div class="nav-icon-container">
<svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#users"></use></svg>
</div>
<span class="nav-item-name">
Members
</span>
</a><ul class="sidebar-sub-level-items is-fly-out-only">
<li class="fly-out-top-item"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/project_members"><strong class="fly-out-top-item-name">
Members
</strong>
</a></li></ul>
</li><a class="toggle-sidebar-button js-toggle-sidebar" role="button" title="Toggle sidebar" type="button">
<svg class="icon-angle-double-left"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#angle-double-left"></use></svg>
<svg class="icon-angle-double-right"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#angle-double-right"></use></svg>
<span class="collapse-text">Collapse sidebar</span>
</a>
<button name="button" type="button" class="close-nav-button"><svg class="s16"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#close"></use></svg>
<span class="collapse-text">Close sidebar</span>
</button>
<li class="hidden">
<a title="Activity" class="shortcuts-project-activity" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/activity"><span>
Activity
</span>
</a></li>
<li class="hidden">
<a title="Network" class="shortcuts-network" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/network/master">Graph
</a></li>
<li class="hidden">
<a title="Charts" class="shortcuts-repository-charts" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/graphs/master/charts">Charts
</a></li>
<li class="hidden">
<a class="shortcuts-new-issue" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/issues/new">Create a new issue
</a></li>
<li class="hidden">
<a title="Jobs" class="shortcuts-builds" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/-/jobs">Jobs
</a></li>
<li class="hidden">
<a title="Commits" class="shortcuts-commits" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/commits/master">Commits
</a></li>
<li class="hidden">
<a title="Issue Boards" class="shortcuts-issue-boards" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/boards">Issue Boards</a>
</li>
</ul>
</div>
</div>
<div class="content-wrapper">
<div class="mobile-overlay"></div>
<div class="alert-wrapper">
<nav class="breadcrumbs container-fluid container-limited" role="navigation">
<div class="breadcrumbs-container">
<button name="button" type="button" class="toggle-mobile-nav"><span class="sr-only">Open sidebar</span>
<i aria-hidden="true" data-hidden="true" class="fa fa-bars"></i>
</button><div class="breadcrumbs-links js-title-container">
<ul class="list-unstyled breadcrumbs-list js-breadcrumbs-list">
<li><a class="group-path breadcrumb-item-text js-breadcrumb-item-text " href="/moocrr/gitlab/moocrr-session3">moocrr-session3</a><svg class="s8 breadcrumbs-list-angle"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#angle-right"></use></svg></li> <li><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study"><span class="breadcrumb-item-text js-breadcrumb-item-text">moocrr-reproducibility-study</span></a><svg class="s8 breadcrumbs-list-angle"><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#angle-right"></use></svg></li>
<li>
<h2 class="breadcrumbs-sub-title"><a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/master/data/shuttle.csv">Repository</a></h2>
</li>
</ul>
</div>
</div>
</nav>
<div class="flash-container flash-container-page">
</div>
<div class="d-flex"></div>
</div>
<div class=" ">
<div class="content" id="content-body">
<div class="js-signature-container" data-signatures-path="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/commits/9d85e5f4e11a819338a2626b4e9298d160087d82/signatures"></div>
<div class="container-fluid container-limited">
<div class="tree-holder" id="tree-holder">
<div class="nav-block">
<div class="tree-ref-container">
<div class="tree-ref-holder">
<form class="project-refs-form" action="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/refs/switch" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="destination" id="destination" value="blob" />
<input type="hidden" name="path" id="path" value="data/shuttle.csv" />
<div class="dropdown">
<button class="dropdown-menu-toggle js-project-refs-dropdown qa-branches-select" type="button" data-toggle="dropdown" data-selected="master" data-ref="master" data-refs-url="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/refs?sort=updated_desc" data-field-name="ref" data-submit-form-on-click="true" data-visit="true"><span class="dropdown-toggle-text ">master</span><i aria-hidden="true" data-hidden="true" class="fa fa-chevron-down"></i></button>
<div class="dropdown-menu dropdown-menu-paging dropdown-menu-selectable git-revision-dropdown qa-branches-dropdown">
<div class="dropdown-page-one">
<div class="dropdown-title"><span>Switch branch/tag</span><button class="dropdown-title-button dropdown-menu-close" aria-label="Close" type="button"><i aria-hidden="true" data-hidden="true" class="fa fa-times dropdown-menu-close-icon"></i></button></div>
<div class="dropdown-input"><input type="search" id="" class="dropdown-input-field" placeholder="Search branches and tags" autocomplete="off" /><i aria-hidden="true" data-hidden="true" class="fa fa-search dropdown-input-search"></i><i aria-hidden="true" data-hidden="true" role="button" class="fa fa-times dropdown-input-clear js-dropdown-input-clear"></i></div>
<div class="dropdown-content"></div>
<div class="dropdown-loading"><i aria-hidden="true" data-hidden="true" class="fa fa-spinner fa-spin"></i></div>
</div>
</div>
</div>
</form>
</div>
<ul class="breadcrumb repo-breadcrumb">
<li class="breadcrumb-item">
<a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/tree/master">moocrr-reproducibility-study
</a></li>
<li class="breadcrumb-item">
<a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/tree/master/data">data</a>
</li>
<li class="breadcrumb-item">
<a href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/master/data/shuttle.csv"><strong>shuttle.csv</strong>
</a></li>
</ul>
</div>
<div class="tree-controls">
<a class="btn shortcuts-find-file" rel="nofollow" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/find_file/master"><i aria-hidden="true" data-hidden="true" class="fa fa-search"></i>
<span>Find file</span>
</a>
<div class="btn-group" role="group"><a class="btn js-blob-blame-link" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blame/master/data/shuttle.csv">Blame</a><a class="btn" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/commits/master/data/shuttle.csv">History</a><a class="btn js-data-file-blob-permalink-url" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/5268fb398648855a764fd1dcc3042d3f050e5250/data/shuttle.csv">Permalink</a></div>
</div>
</div>
<div class="info-well d-none d-sm-block">
<div class="well-segment">
<ul class="blob-commit-info">
<li class="commit flex-row js-toggle-container" id="commit-9d85e5f4">
<div class="avatar-cell d-none d-sm-block">
<a href="/moocrr/gitlab/brospars"><img alt="brospars&#39;s avatar" src="https://secure.gravatar.com/avatar/eac39eb919ec4abe04540d789f6726ff?s=72&amp;d=identicon" class="avatar s36 d-none d-sm-inline" title="brospars" /></a>
</div>
<div class="commit-detail flex-list">
<div class="commit-content qa-commit-content">
<a class="commit-row-message item-title" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/commit/9d85e5f4e11a819338a2626b4e9298d160087d82">Initial commit</a>
<span class="commit-row-message d-inline d-sm-none">
&middot;
9d85e5f4
</span>
<div class="committer">
<a class="commit-author-link js-user-link" data-user-id="30" href="/moocrr/gitlab/brospars">brospars</a> authored <time class="js-timeago" title="Mar 5, 2020 4:54pm" datetime="2020-03-05T16:54:27Z" data-toggle="tooltip" data-placement="bottom" data-container="body">Mar 05, 2020</time>
</div>
</div>
<div class="commit-actions flex-row">
<div class="js-commit-pipeline-status" data-endpoint="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/commit/9d85e5f4e11a819338a2626b4e9298d160087d82/pipelines?ref=master"></div>
<div class="commit-sha-group d-none d-sm-flex">
<div class="label label-monospace">
9d85e5f4
</div>
<button class="btn btn btn-default" data-toggle="tooltip" data-placement="bottom" data-container="body" data-title="Copy commit SHA to clipboard" data-class="btn btn-default" data-clipboard-text="9d85e5f4e11a819338a2626b4e9298d160087d82" type="button" title="Copy commit SHA to clipboard" aria-label="Copy commit SHA to clipboard"><svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#duplicate"></use></svg></button>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="blob-content-holder" id="blob-content-holder">
<article class="file-holder">
<div class="js-file-title file-title-flex-parent">
<div class="file-header-content">
<i aria-hidden="true" data-hidden="true" class="fa fa-file-text-o fa-fw"></i>
<strong class="file-title-name qa-file-title-name">
shuttle.csv
</strong>
<button class="btn btn-clipboard btn-transparent prepend-left-5" data-toggle="tooltip" data-placement="bottom" data-container="body" data-class="btn-clipboard btn-transparent prepend-left-5" data-title="Copy file path to clipboard" data-clipboard-text="{&quot;text&quot;:&quot;data/shuttle.csv&quot;,&quot;gfm&quot;:&quot;`data/shuttle.csv`&quot;}" type="button" title="Copy file path to clipboard" aria-label="Copy file path to clipboard"><svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#duplicate"></use></svg></button>
<small>
485 Bytes
</small>
</div>
<div class="file-actions">
<div class="btn-group" role="group"><button class="btn btn btn-sm js-copy-blob-source-btn" data-toggle="tooltip" data-placement="bottom" data-container="body" data-class="btn btn-sm js-copy-blob-source-btn" data-title="Copy source to clipboard" data-clipboard-target=".blob-content[data-blob-id=&#39;9412ab30682565afb0ca3b4bcc6b0f99f632bbf2&#39;]" type="button" title="Copy source to clipboard" aria-label="Copy source to clipboard"><svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#duplicate"></use></svg></button><a class="btn btn-sm has-tooltip" target="_blank" rel="noopener noreferrer" title="Open raw" data-container="body" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/raw/master/data/shuttle.csv"><i aria-hidden="true" data-hidden="true" class="fa fa-file-code-o"></i></a><a download="data/shuttle.csv" class="btn btn-sm has-tooltip" target="_blank" rel="noopener noreferrer" title="Download" data-container="body" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/raw/master/data/shuttle.csv?inline=false"><svg><use xlink:href="/moocrr/gitlab/assets/icons-b2073af7ca0641787eb4596951b695079519da1937a262a886bb12c2b0fac181.svg#download"></use></svg></a></div>
<div class="btn-group" role="group"><a class="btn js-edit-blob btn-sm" href="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/edit/master/data/shuttle.csv">Edit</a><a class="btn btn-default btn-sm" href="/moocrr/gitlab/-/ide/project/moocrr-session3/moocrr-reproducibility-study/edit/master/-/data/shuttle.csv">Web IDE</a></div>
</div>
</div>
<div class="blob-viewer" data-type="simple" data-url="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/master/data/shuttle.csv?format=json&amp;viewer=simple">
<div class="text-center prepend-top-default append-bottom-default">
<i aria-hidden="true" aria-label="Loading content…" class="fa fa-spinner fa-spin fa-2x qa-spinner"></i>
</div>
</div>
</article>
</div>
<div class="modal" id="modal-upload-blob">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h3 class="page-title">Replace shuttle.csv</h3>
<button aria-label="Close" class="close" data-dismiss="modal" type="button">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form class="js-quick-submit js-upload-blob-form" data-method="put" action="/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/update/master/data/shuttle.csv" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="0bVC90GXFcNdocOAlnnM79elVv3zQMjYej9VxlY5QPDNZoguhOeBHwmdQm/vkHm13+DMNgQrU/G8PpfG5/2J+w==" /><div class="dropzone">
<div class="dropzone-previews blob-upload-dropzone-previews">
<p class="dz-message light">
Attach a file by drag &amp; drop or <a class="markdown-selector" href="#">click to upload</a>
</p>
</div>
</div>
<br>
<div class="dropzone-alerts alert alert-danger data" style="display:none"></div>
<div class="form-group row commit_message-group">
<label class="col-form-label col-sm-2" for="commit_message-eb4e9ee04fb6a7abbbc5098eacc5c0ee">Commit message
</label><div class="col-sm-10">
<div class="commit-message-container">
<div class="max-width-marker"></div>
<textarea name="commit_message" id="commit_message-eb4e9ee04fb6a7abbbc5098eacc5c0ee" class="form-control js-commit-message" placeholder="Replace shuttle.csv" required="required" rows="3">
Replace shuttle.csv</textarea>
</div>
</div>
</div>
<input type="hidden" name="branch_name" id="branch_name" />
<input type="hidden" name="create_merge_request" id="create_merge_request" value="1" />
<input type="hidden" name="original_branch" id="original_branch" value="master" class="js-original-branch" />
<div class="form-actions">
<button name="button" type="button" class="btn btn-success btn-upload-file" id="submit-all"><i aria-hidden="true" data-hidden="true" class="fa fa-spin fa-spinner js-loading-icon hidden"></i>
Replace file
</button><a class="btn btn-cancel" data-dismiss="modal" href="#">Cancel</a>
<div class="inline prepend-left-10">
A new branch will be created in your fork and a new merge request will be started.
</div>
</div>
</form></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Risk Analysis of the Space Shuttle: Pre-Challenger Prediction of Failure"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this document we reperform some of the analysis provided in \n",
"*Risk Analysis of the Space Shuttle: Pre-Challenger Prediction of Failure* by *Siddhartha R. Dalal, Edward B. Fowlkes, Bruce Hoadley* published in *Journal of the American Statistical Association*, Vol. 84, No. 408 (Dec., 1989), pp. 945-957 and available at http://www.jstor.org/stable/2290069. \n",
"\n",
"On the fourth page of this article, they indicate that the maximum likelihood estimates of the logistic regression using only temperature are: $\\hat{\\alpha}=5.085$ and $\\hat{\\beta}=-0.1156$ and their asymptotic standard errors are $s_{\\hat{\\alpha}}=3.052$ and $s_{\\hat{\\beta}}=0.047$. The Goodness of fit indicated for this model was $G^2=18.086$ with 21 degrees of freedom. Our goal is to reproduce the computation behind these values and the Figure 4 of this article, possibly in a nicer looking way."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Technical information on the computer on which the analysis is run"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will be using the python3 language using the pandas, statsmodels, numpy, matplotlib and seaborn libraries."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.6.4 |Anaconda, Inc.| (default, Mar 13 2018, 01:15:57) \n",
"[GCC 7.2.0]\n",
"uname_result(system='Linux', node='3b30d19de485', release='4.4.0-164-generic', version='#192-Ubuntu SMP Fri Sep 13 12:02:50 UTC 2019', machine='x86_64', processor='x86_64')\n",
"IPython 7.12.0\n",
"IPython.core.release 7.12.0\n",
"PIL 7.0.0\n",
"PIL.Image 7.0.0\n",
"PIL._version 7.0.0\n",
"_csv 1.0\n",
"_ctypes 1.1.0\n",
"_curses b'2.2'\n",
"decimal 1.70\n",
"argparse 1.1\n",
"backcall 0.1.0\n",
"cffi 1.13.2\n",
"csv 1.0\n",
"ctypes 1.1.0\n",
"cycler 0.10.0\n",
"dateutil 2.8.1\n",
"decimal 1.70\n",
"decorator 4.4.1\n",
"distutils 3.6.4\n",
"ipaddress 1.0\n",
"ipykernel 5.1.4\n",
"ipykernel._version 5.1.4\n",
"ipython_genutils 0.2.0\n",
"ipython_genutils._version 0.2.0\n",
"ipywidgets 7.2.1\n",
"ipywidgets._version 7.2.1\n",
"jedi 0.16.0\n",
"json 2.0.9\n",
"jupyter_client 6.0.0\n",
"jupyter_client._version 6.0.0\n",
"jupyter_core 4.6.3\n",
"jupyter_core.version 4.6.3\n",
"kiwisolver 1.1.0\n",
"logging 0.5.1.2\n",
"matplotlib 2.2.3\n",
"matplotlib.backends.backend_agg 2.2.3\n",
"numpy 1.15.2\n",
"numpy.core 1.15.2\n",
"numpy.core.multiarray 3.1\n",
"numpy.lib 1.15.2\n",
"numpy.linalg._umath_linalg b'0.1.5'\n",
"numpy.matlib 1.15.2\n",
"optparse 1.5.3\n",
"pandas 0.22.0\n",
"_libjson 1.33\n",
"parso 0.6.0\n",
"patsy 0.5.1\n",
"patsy.version 0.5.1\n",
"pexpect 4.8.0\n",
"pickleshare 0.7.5\n",
"platform 1.0.8\n",
"prompt_toolkit 3.0.3\n",
"ptyprocess 0.6.0\n",
"pygments 2.5.2\n",
"pyparsing 2.4.6\n",
"pytz 2019.3\n",
"re 2.2.1\n",
"scipy 1.1.0\n",
"scipy._lib.decorator 4.0.5\n",
"scipy._lib.six 1.2.0\n",
"scipy.fftpack._fftpack b'$Revision: $'\n",
"scipy.fftpack.convolve b'$Revision: $'\n",
"scipy.integrate._dop b'$Revision: $'\n",
"scipy.integrate._ode $Id$\n",
"scipy.integrate._odepack 1.9 \n",
"scipy.integrate._quadpack 1.13 \n",
"scipy.integrate.lsoda b'$Revision: $'\n",
"scipy.integrate.vode b'$Revision: $'\n",
"scipy.interpolate._fitpack 1.7 \n",
"scipy.interpolate.dfitpack b'$Revision: $'\n",
"scipy.linalg 0.4.9\n",
"scipy.linalg._fblas b'$Revision: $'\n",
"scipy.linalg._flapack b'$Revision: $'\n",
"scipy.linalg._flinalg b'$Revision: $'\n",
"scipy.ndimage 2.0\n",
"scipy.optimize._cobyla b'$Revision: $'\n",
"scipy.optimize._lbfgsb b'$Revision: $'\n",
"scipy.optimize._minpack 1.10 \n",
"scipy.optimize._nnls b'$Revision: $'\n",
"scipy.optimize._slsqp b'$Revision: $'\n",
"scipy.optimize.minpack2 b'$Revision: $'\n",
"scipy.signal.spline 0.2\n",
"scipy.sparse.linalg.eigen.arpack._arpack b'$Revision: $'\n",
"scipy.sparse.linalg.isolve._iterative b'$Revision: $'\n",
"scipy.special.specfun b'$Revision: $'\n",
"scipy.stats.mvn b'$Revision: $'\n",
"scipy.stats.statlib b'$Revision: $'\n",
"seaborn 0.8.1\n",
"seaborn.external.husl 2.1.0\n",
"seaborn.external.six 1.10.0\n",
"six 1.14.0\n",
"statsmodels 0.9.0\n",
"statsmodels.__init__ 0.9.0\n",
"traitlets 4.3.3\n",
"traitlets._version 4.3.3\n",
"urllib.request 3.6\n",
"zlib 1.0\n",
"zmq 17.1.2\n",
"zmq.sugar 17.1.2\n",
"zmq.sugar.version 17.1.2\n"
]
}
],
"source": [
"def print_imported_modules():\n",
" import sys\n",
" for name, val in sorted(sys.modules.items()):\n",
" if(hasattr(val, '__version__')): \n",
" print(val.__name__, val.__version__)\n",
"# else:\n",
"# print(val.__name__, \"(unknown version)\")\n",
"def print_sys_info():\n",
" import sys\n",
" import platform\n",
" print(sys.version)\n",
" print(platform.uname())\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import statsmodels.api as sm\n",
"import seaborn as sns\n",
"\n",
"print_sys_info()\n",
"print_imported_modules()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Loading and inspecting data\n",
"Let's start by reading data."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"#data = pd.read_csv(\"https://app-learninglab.inria.fr/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/master/data/shuttle.csv\")\n",
"#data\n",
"data_url = \"https://app-learninglab.inria.fr/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/master/data/shuttle.csv\"\n",
"data_file = \"shuttle.csv\"\n",
"import os\n",
"import urllib.request\n",
"if not os.path.exists(data_file):\n",
" urllib.request.urlretrieve(data_url, data_file)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date</th>\n",
" <th>Count</th>\n",
" <th>Temperature</th>\n",
" <th>Pressure</th>\n",
" <th>Malfunction</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4/12/81</td>\n",
" <td>6</td>\n",
" <td>66</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>11/12/81</td>\n",
" <td>6</td>\n",
" <td>70</td>\n",
" <td>50</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3/22/82</td>\n",
" <td>6</td>\n",
" <td>69</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>11/11/82</td>\n",
" <td>6</td>\n",
" <td>68</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4/04/83</td>\n",
" <td>6</td>\n",
" <td>67</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>6/18/82</td>\n",
" <td>6</td>\n",
" <td>72</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>8/30/83</td>\n",
" <td>6</td>\n",
" <td>73</td>\n",
" <td>100</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>11/28/83</td>\n",
" <td>6</td>\n",
" <td>70</td>\n",
" <td>100</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2/03/84</td>\n",
" <td>6</td>\n",
" <td>57</td>\n",
" <td>200</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>4/06/84</td>\n",
" <td>6</td>\n",
" <td>63</td>\n",
" <td>200</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>8/30/84</td>\n",
" <td>6</td>\n",
" <td>70</td>\n",
" <td>200</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>10/05/84</td>\n",
" <td>6</td>\n",
" <td>78</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>11/08/84</td>\n",
" <td>6</td>\n",
" <td>67</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>1/24/85</td>\n",
" <td>6</td>\n",
" <td>53</td>\n",
" <td>200</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>4/12/85</td>\n",
" <td>6</td>\n",
" <td>67</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>4/29/85</td>\n",
" <td>6</td>\n",
" <td>75</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>6/17/85</td>\n",
" <td>6</td>\n",
" <td>70</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>7/2903/85</td>\n",
" <td>6</td>\n",
" <td>81</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>8/27/85</td>\n",
" <td>6</td>\n",
" <td>76</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>10/03/85</td>\n",
" <td>6</td>\n",
" <td>79</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>10/30/85</td>\n",
" <td>6</td>\n",
" <td>75</td>\n",
" <td>200</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>11/26/85</td>\n",
" <td>6</td>\n",
" <td>76</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>1/12/86</td>\n",
" <td>6</td>\n",
" <td>58</td>\n",
" <td>200</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date Count Temperature Pressure Malfunction\n",
"0 4/12/81 6 66 50 0\n",
"1 11/12/81 6 70 50 1\n",
"2 3/22/82 6 69 50 0\n",
"3 11/11/82 6 68 50 0\n",
"4 4/04/83 6 67 50 0\n",
"5 6/18/82 6 72 50 0\n",
"6 8/30/83 6 73 100 0\n",
"7 11/28/83 6 70 100 0\n",
"8 2/03/84 6 57 200 1\n",
"9 4/06/84 6 63 200 1\n",
"10 8/30/84 6 70 200 1\n",
"11 10/05/84 6 78 200 0\n",
"12 11/08/84 6 67 200 0\n",
"13 1/24/85 6 53 200 2\n",
"14 4/12/85 6 67 200 0\n",
"15 4/29/85 6 75 200 0\n",
"16 6/17/85 6 70 200 0\n",
"17 7/2903/85 6 81 200 0\n",
"18 8/27/85 6 76 200 0\n",
"19 10/03/85 6 79 200 0\n",
"20 10/30/85 6 75 200 2\n",
"21 11/26/85 6 76 200 0\n",
"22 1/12/86 6 58 200 1"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv(\"https://app-learninglab.inria.fr/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/raw/master/data/shuttle.csv\")\n",
"data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We know from our previous experience on this data set that filtering data is a really bad idea. We will therefore process it as such."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"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": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"simpletable\">\n",
"<caption>Generalized Linear Model Regression Results</caption>\n",
"<tr>\n",
" <th>Dep. Variable:</th> <td>Frequency</td> <th> No. Observations: </th> <td> 23</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model:</th> <td>GLM</td> <th> Df Residuals: </th> <td> 21</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model Family:</th> <td>Binomial</td> <th> Df Model: </th> <td> 1</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Link Function:</th> <td>logit</td> <th> Scale: </th> <td> 1.0000</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Method:</th> <td>IRLS</td> <th> Log-Likelihood: </th> <td> -3.9210</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Date:</th> <td>Wed, 02 Jun 2021</td> <th> Deviance: </th> <td> 3.0144</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Time:</th> <td>14:00:16</td> <th> Pearson chi2: </th> <td> 5.00</td> \n",
"</tr>\n",
"<tr>\n",
" <th>No. Iterations:</th> <td>6</td> <th> Covariance Type: </th> <td>nonrobust</td>\n",
"</tr>\n",
"</table>\n",
"<table class=\"simpletable\">\n",
"<tr>\n",
" <td></td> <th>coef</th> <th>std err</th> <th>z</th> <th>P>|z|</th> <th>[0.025</th> <th>0.975]</th> \n",
"</tr>\n",
"<tr>\n",
" <th>Intercept</th> <td> 5.0850</td> <td> 7.477</td> <td> 0.680</td> <td> 0.496</td> <td> -9.570</td> <td> 19.740</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Temperature</th> <td> -0.1156</td> <td> 0.115</td> <td> -1.004</td> <td> 0.316</td> <td> -0.341</td> <td> 0.110</td>\n",
"</tr>\n",
"</table>"
],
"text/plain": [
"<class 'statsmodels.iolib.summary.Summary'>\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, 02 Jun 2021 Deviance: 3.0144\n",
"Time: 14:00:16 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": 6,
"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": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"simpletable\">\n",
"<caption>Generalized Linear Model Regression Results</caption>\n",
"<tr>\n",
" <th>Dep. Variable:</th> <td>Frequency</td> <th> No. Observations: </th> <td> 23</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model:</th> <td>GLM</td> <th> Df Residuals: </th> <td> 21</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model Family:</th> <td>Binomial</td> <th> Df Model: </th> <td> 1</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Link Function:</th> <td>logit</td> <th> Scale: </th> <td> 1.0000</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Method:</th> <td>IRLS</td> <th> Log-Likelihood: </th> <td> -23.526</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Date:</th> <td>Wed, 02 Jun 2021</td> <th> Deviance: </th> <td> 18.086</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Time:</th> <td>14:00:23</td> <th> Pearson chi2: </th> <td> 30.0</td> \n",
"</tr>\n",
"<tr>\n",
" <th>No. Iterations:</th> <td>6</td> <th> Covariance Type: </th> <td>nonrobust</td>\n",
"</tr>\n",
"</table>\n",
"<table class=\"simpletable\">\n",
"<tr>\n",
" <td></td> <th>coef</th> <th>std err</th> <th>z</th> <th>P>|z|</th> <th>[0.025</th> <th>0.975]</th> \n",
"</tr>\n",
"<tr>\n",
" <th>Intercept</th> <td> 5.0850</td> <td> 3.052</td> <td> 1.666</td> <td> 0.096</td> <td> -0.898</td> <td> 11.068</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Temperature</th> <td> -0.1156</td> <td> 0.047</td> <td> -2.458</td> <td> 0.014</td> <td> -0.208</td> <td> -0.023</td>\n",
"</tr>\n",
"</table>"
],
"text/plain": [
"<class 'statsmodels.iolib.summary.Summary'>\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, 02 Jun 2021 Deviance: 18.086\n",
"Time: 14:00:23 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": 7,
"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": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"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": 9,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
" return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEKCAYAAAAIO8L1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xl8VPW9+P/XmTWTyR6yAAlhMeyIFkRREUUBhbAoUgWqVsWqrfbbWu9Vb61X7VXr/fXaW9veVrTWtbSCC0sUraDghuIaCYQ9EJYsZM9ktnPm/P44yUhIAknIMEvez8cjJOfMmZPPhyTzns/2/ii6rusIIYQQxzGFuwBCCCEikwQIIYQQHZIAIYQQokMSIIQQQnRIAoQQQogOSYAQQgjRoZAFiPvuu4/JkydTUFDQ4eO6rvNf//VfTJ8+nTlz5lBcXByqogghhOiBkAWIq666imeeeabTxzdt2kRpaSnvvPMOv/71r3nwwQdDVRQhhBA9ELIAcc4555CcnNzp4+vXr2f+/PkoisJZZ51FQ0MDlZWVoSqOEEKIbgrbGERFRQXZ2dnB4+zsbCoqKk76PE0LIIu/hRAi9Czh+sYdvcgrinLS51XXe6ioajSub/lHaXlu8LPy3b1MSttzpuBn45zJ1PJZUbr0/UMtIyORqpb6xSKpX/SK5bpB36hfd4UtQGRnZ1NeXh48Li8vJzMzs1v30Fv+MT7rx57tkdZAYVIUTCbjw2wyjs2tx2bjWAghYl3YAsS0adN46aWXmD17Nt988w2JiYndDhC9TddB03U0dNA6v05RwGxSMJtMWMzGZ7NZCX4thBCxIGQB4q677uKzzz6jtraWiy66iDvvvBNVVQFYtGgRU6dOZePGjUyfPh2Hw8Gjjz4aqqL0Ol0HVdNRNQ2vv+1jigIWkwmLxYTVrGAxm7BaTBHRfSWEEN2hRFu678qa5uAYRLRQALNZwWYxY7WYsFvNmEwdB4y+0A8q9YtOsVw36Bv1666wdTH1JTqtLQ4VvMY5i0nBZjNjt5qxSQtDCBGBJECEiRrQUT0qzR4VRQG71UyczSxTeIUQEUMCRATQdfD4NDw+DXO1i+YmL3F2C3arOdxFE0L0YRIgIoyug9un4fZpmE0KDruFeLul0zELIYQIFQkQEUwL6DS5/bjcfiNQxFmwmGUarRDi9JAAEQV0oNmr0uxVibOZSXBYJVAIIUJOAkSU8fg0vD6NOLuFBIdFFuYJIUJGAkQU0gG3V8XjVXE6rDjjLDJNVgjR6+TtZxTTgSa3n+p6D17/CXKDCCFED0iAiAFqQKe20Uu9y0dA1lEIIXqJBIgY4vaqVNd78KvSmhBCnDoJEDFGC+hUN3hpcvtPfrEQQpyABIgY1eT2U9volS4nIUSPSYCIYV6/Rk29B1ULhLsoQogoJAEixqkBneoGmeUkhOg+CRB9gK5DXaMXj08Nd1GEEFFEAkQfoQN1TT7cXgkSQoiukQDRx9S7fDLDSQjRJRIg+qAmt5+GZl+4iyGEiHASIPqoZo9KXZNXdrATQnRKAkQf5vFp1DVJS0II0TEJEH2c16/RKN1NQogOSIAQuDwqXp+skxBCtCUBQgBQ7/LKimshRBsSIAQAAR3qm3wyaC2ECJIAIYL8WoDGZlkjIYQwSIAQbTR7VUnJIYQAJECIDtS7fDIeIYSQACHa02U8QghBFAaIh57ZzNe7jsqLV4j5tYDkbBKij7OEuwDddaCikQMVjXy1q4r5U4aQmhgX7iLFrGaPSnycBbMp6t5HCCF6QdT95VvMCgC7DtbzvyuK+OjbI7KtZojoQJPMahKiz4q6APHg0skMzk4EwK8GKPxkP0+v2cbReneYSxab3D4NvyoD1kL0RVEXIPr3c7J0zmjmTxmC3WoGYH95I39Y+a20JkJExiKE6JuiLkAAmBSFSaOy+H8LzyQ/JxkwBlULP9nPs4XbqWvyhrmEscXr1/DJntZC9DkhDRCbNm1i5syZTJ8+nWXLlrV7vLGxkdtuu425c+cye/ZsXn311W7dPyXBzg+vGMlVFw0Ntib2Hm7gyZVFfL1bZjr1JllhLUTfE7IAoWkaDz/8MM888wyFhYWsXbuW3bt3t7nm5ZdfZtiwYaxevZoXX3yRxx9/HJ+ve6mnFUVh4shMfnr1mQzub4xNeHwar2zYzSvv7ZZVwb3ErwXk/1KIPiZkAaKoqIi8vDxyc3Ox2WzMnj2b9evXt7lGURRcLhe6ruNyuUhOTsZi6dnM29REO0tnj+aKcwdhNhkznb7ZXc0fX/2WssqmU66PkLEIIfqakK2DqKioIDs7O3iclZVFUVFRm2uWLFnC7bffzpQpU3C5XPzud7/D1IU592lpzk4fm3dJPhNGZ/PM6q2UVzdT0+jlqdXFzJ86jMsmDcKkKD2v1GlyovqFmzPRTnyc9ZTukZGR2EuliUyxXL9YrhvEfv26K2QBoqP+f+W4F+cPP/yQUaNG8cILL3DgwAFuvPFGJk6cSEJCwgnvXVPjOuHj8VYTt80dQ+En+9lSUkkgoPPae7vZtucoV198BvFxkbs+MC3NedL6hVN9XTP9kuPa/Sy7KiMjkaqqxl4uVeSI5frFct2gb9Svu0LWxZSdnU15eXnwuKKigszMzDbXvPbaa8yYMQNFUcjLyyMnJ4e9e/f2yve3Wc1cedFQFl2WHxzALjlQxx9fK6KsMnZ/CUJNC+i4vTIWIURfELIAMW7cOEpLSykrK8Pn81FYWMi0adPaXNO/f38++eQTAI4ePcq+ffvIycnp3XIMTeeOBeMYkB4PQF2Tj2Wrt7G5uFxmOfVQk0eV/zsh+oCQ9bVYLBYeeOABli5diqZpLFiwgPz8fJYvXw7AokWL+PGPf8x9993HnDlz0HWdu+++m7S0tF4vS3pSHLfOG8ubm/fz6bYKtIDO6o9KKatsYv6UoVgtUbkcJGwCAZ1mr4rzFMcihBCRTdGj7K1gZU0zFafQT/j1rqO8vmkv/pb9Dgakx7NkxvCISfoX6WMQrUwmhYwejEX0hX7eWK1fLNcN+kb9uqvPvXU+K78ft80fQ1qiHYDD1c386bWt7D1cH+aSRZdAQMftldXVQsSyPhcgAPqnO/nJVeMYnpsCGNtsPltYwuZt5Sd5pjiWyyPrIoSIZX0yQAA47BaunzmCi8YPACCg66z+sJQ3PtiLFpDspV0hM5qEiG19NkCA0Y9++bmD+P60M4L7THy2vZLn3iqRF74uklaEELGrTweIVmed0Y8fzR1DUrwxK2fPoQb+/MZWqhs8YS5Z5FM1XXI0CRGjJEC0yMlI4PYrv1svcbTew59f30ppeUOYSxb5mj0SIISIRRIgjpHstPGjuWMYPTgVaB283s63e6vDXLLI5lMD+FWZ0SRErJEAcRyb1czi6cOZcmZ/wOhC+ce7u/iw6IisHj4BaUUIEXskQHTApChccV4ecy4YjKKADry5eT+Fn+yXLU074fFpMvtLiBgjAeIEJo/JZsn04VjNxn/Tx1vLeWXDblRNXgiPp4MsnBMixkiAOInRg9NYOmcU8XYjbVXRnmpeWLcDr09eDI/X7PFLN5wQMUQCRBfkZiZy67wxpCTYANh9qJ6n126THdaOE9CNriYhRGyQANFFGSkObp03lqxUBwCHj7pYtrqYuiZvmEsWWWThnBCxQwJEN7ROg83LNrIiHq338NSqYo7WucNcssihajo+v7QihIgFEiC6yWG3cOOskcFEf/UuH0+tLubw0chP0X26SJoSIWKDBIgesFnM/GDGcMYNTQfA5VF5Zu022cq0hcenEQjIYLUQ0U4CRA9ZzCaumXYG54w09tn2+DT+WridvYclNYeOsQpdCBHdJECcApNJYf6UIVwwNhsAnz/A82+VsLOsLswlCz8JEEJEPwkQp0hRFGZNzuPiswcC4NcCvPj2DkoO1Ia5ZOEVCEiWVyGinQSIXqAoCjPOyWXGObmAsZHOy+/sZHtpTZhLFl6Sn0mI6CYBohddfPZArjh3ENASJP61i+J9fTdI+NSApCURIopJgOhlU8YPYPbkPMDYxnT5u7vY2ofThUsrQojoJQEiBC4Y15855w8GjCDxj/W7+2xLwu1TJQOuEFFKAkSITB6bzdwLBgPftSS29cExCV2XhXNCRCsJECF03pjsNi2J5e/u6pMD1y6PKllehYhCEiBCbPLYbArON8YktIDO39/d1efWSRhTXiU/kxDRRgLEaXD+2P7BgWstoPPSOzvYfag+zKU6vWSwWojoIwHiNLlgXH9mTjLWSaiazotv72Dfkb6TlsOvBSTLqxBRRgLEaTT1rIFcOiEHAL8a4Pl1JX0qwZ9LWhFCRBUJEKfZtO8NZOpZAwAjd9Pf3izhSHXfSBXu9Wv4VVk4J0S0kABxmrWm5WhN8OfxaTxbuJ3KPrLpUGOzL9xFEEJ0kQSIMGhN8DexJVW4y6PybOF2aho8YS5Z6Lm9qrQihIgSEiDCRFEU5l84hDOHGZsONbh8PFu4nfo+sMe17FstRHSQABFGJpPCwkuGMSovFYCaRi+//+dXMT8l1OOTsQghokGXAsTNN9/Me++91+3VsJs2bWLmzJlMnz6dZcuWdXjNp59+yrx585g9ezY/+MEPunX/WGA2mbj20nyGDkgC4HCVi+fe2o43xheWNbmlFSFEpOtSgLjmmmt4/vnnueyyy1i2bBm1tSffDEfTNB5++GGeeeYZCgsLWbt2Lbt3725zTUNDAw899BB//vOfKSws5Pe//33PahHlrBYT180YQW5mAgAHq1y8+M6OmH6X7fVrkgpciAjXpQAxY8YMnnvuOZ5++mkqKyspKCjg3//939m6dWunzykqKiIvL4/c3FxsNhuzZ89m/fr1ba5Zs2YN06dPZ8AAY9pnenr6KVQlutltZm64fCQDMpwA7D3cwCsbdhMIxG4OI0niJ0Rks/TkSVarFbvdzj333MOUKVO49957211TUVFBdnZ28DgrK4uioqI215SWlqKqKtdddx0ul4vrr7+e+fPnn/T7p6U5e1LsiJcG/L9rzub/e+kLjta5KS6t4a0tZfzg8pEoihLu4vWa1p+f2aSQkR57P8uMjMRwFyFkYrluEPv1664uBYh33nmHl156ierqahYvXkxhYSFOpxNVVZkxY0aHAaKj8YrjX+Q0TaO4uJjnnnsOj8fDtddey/jx4xkyZMgJy1NTE7sLy9LSnNxw+QieWlVMk9vPR98cxgxc3rJTXbRLS3O2+fkFfH6sFnMYS9S7MjISqaqKzdXxsVw36Bv1664uBYiVK1dyyy23MGXKlLZPtli4//77O3xOdnY25eXlweOKigoyMzPbXZOamkp8fDzx8fFMnDiRkpKSkwaIWJeeFMeNs0by9JpteHwam745jNNhYcqZA8JdtF7n9mkxFSCEiCVdGoN46qmn2gWHVtOmTevw/Lhx4ygtLaWsrAyfz0dhYWG7ay+99FI+//xzVFXF7XZTVFTEsGHDulmF2NQ/3cn1l4/AYjZaXW9tPsCXO6vCXKreJ2nAhYhcXQoQixcvpr7+u/TUdXV1LFmy5ITPsVgsPPDAAyxdupRZs2ZxxRVXkJ+fz/Lly1m+fDkAw4YNY8qUKcydO5eFCxdy9dVXM3z48FOoTmwZnJ3EosuGY2rpmXtt4x52HDj5DLJoEgjokuVViAil6F1Y3DBv3jxWrVp10nOnQ2VNMxUx3E94fB89wBc7Knl1414ArGYTNxeMYlBWdA6mdVS/eLuFJKctTCXqXbHcjx3LdYO+Ub/u6lILIhAI0NzcHDx2uVxomrzrO10mjMjk8knGILVfC/D8uh1U1sZOcj+PtCCEiEhdChAFBQXcdNNNrFq1ilWrVnHzzTczd+7cUJdNHGPK+P5cOK4/YKwf+NubsZO3KRDQ8UqQECLidGkW06233kpmZiYbNmxA13WuvfbaLq1XEL1HURQuP28QTW4/X+8+Sr3Lx9/eKuHWuWNw2Hu0nCWieHwadqvMZhIiknT5leXKK6/kyiuvDGVZxEmYFIWrpg7F5fGz62A9lbVuXnh7BzfNGoXVEt15Fz1elQSHBbMpuushRCzpUoCorq7mxRdfpKysDFX9Lj1CX82dFE4Ws4nFlw3nmbXbOHTUxf7yRv65YReLLxuOyRS9q611oNmjkhgfG4PVQsSCLgWIO++8k2HDhjF58mTMZukGCDe7zcwNV4zkL6u2UtPgZVtpLWs+LmXuBYOjOiVHs1fF6bBiiuI6CBFLuhQgGhoa+PWvfx3qsohuSHBYuXHWKP7yxlZcHpVPt1WQ7LRx8dkDw120HtN1oxWR4LCGuyhCCLo4iyk/P5+KiopQl0V0U3pSHDdcMRJby/jDO1vK+GJHZZhLdWqavWq39x0RQoRGl1sQc+fO5eyzz8ZutwfPyxhE+OVkJLB4+nBeWLeDgK7z+qa9JDisjBiUGu6i9UggoOP2asTHRf/MLCGiXZf+CgsKCigoKAh1WUQPDc9N4aqpQ1n5/h4COix/dxdL54wmJyMh3EXrEZfHLwFCiAjQpb9Cmd4a+b43PIMGl493tpThU43V1rfNG0N6Uly4i9ZtWkDH7VVjYn2HENGsS2MQpaWlLFq0KJiNtbi4mD/84Q8hLZjovqlnDeC80VkAuNx+nnuzJGr3fnZ5orPcQsSSLgWIBx98kNtvv53ERCPZ06hRo1i3bl1ICya6T1EUCs4fzOjBxvhDdYOHF9aVRGW2VFXT8UoqcCHCqksBorGxkYsuuig4x95kMmG1ylTESGQyKVwzLZ+8lmyvB6tcLF+/Cy0K97aO1taPELGiSwHCbDbj9/uDAaKiogKTpESIWFaLietmDqdfsjH+sONAHas/3Bd100f9WkCS+AkRRl3eMOiOO+6gtraWP/zhDyxevJibbrop1GUTpyA+zsqNs0aS2LLobEtJJRu+PBTmUnWfS1oRQoRNl6aJzJ8/n5ycHN577z3cbjePP/44EydODHXZxClKTTQW0i1bU4zPH2D9FwdJdtqYODLz5E+OED41gF+VfauFCIcuzyOcOHGiBIUoNKCfkyXTh/P8W8ZCujc+2EtifHQtpGtyq6QmSoAQ4nTrUoBYsGBBh0ngVq5c2esFEr0vPyeFBVOHsiJKF9J5/RqqFsBilnEvIU6nLgWIe+65J/i11+ulsLCQzMzo6aYQcPbwDOqjeCGdy+0nOcF+8guFEL2mSwFi0qRJbY4vvPBCGaSOQlPPGkC9y8en2yqCC+lunTcmKrKnun0aTmlFCHFa9eivrampibKyst4uiwgxRVGYE8UL6Vwe9eQXCSF6TbfHIAKBAAcPHuTGG28MacFEaLQupPtr4TYOVDQFF9L9YMYIzBG+I51sSyrE6dXtMQiz2UxOTg5ZWVkhK5QILavFxPUzR/DU6mKq6jzsOFDHqg/2cuVFQyN6RzodoxWRJNuSCnFa9GgMQkS/+DgrP7xiFH9ZtZXGZj+f76giyWnjsom54S7aCbm9Kglx1qjef1uIaNGlAHHeeed1+M5S13UUReGTTz7p9YKJ0EtNtPPDK0aybPU2vH6NDV8eIjHexrmjI7d1qOvGrnPRMLAuRLTrUoBYtGgRdXV1XHPNNei6zquvvkpWVhazZs0KdflEiPVPd/KDGcN57q0StIDO6o/2kRhvZfTgtHAXrVPNHj/OOEtEd4cJEQu6NNq3ZcsW/vM//5ORI0cyatQo7r//fjZu3MjAgQMZOHBgqMsoQmzYwGSuvngYYLxD/8f6XewvbwxzqToX0I2uJiFEaHUpQFRWVlJTUxM8rqmpoaqqKmSFEqff+DP6MXtyHmDsxfD8uhIqaprDXKrONXnUqMtOK0S06VIX0w033MC8efO45JJLANi4cSO33nprSAsmTr8LxvWnweXjg6IjeHwaz71lLKRLicAVzIGAjsenybakQoRQl/66lixZwoQJE9iyZQu6rrNkyRJGjBgR6rKJMJh57iCa3H6+2nWUepeP594q4UdzxhAfF3kvxC63XwKEECHU5b+unJwcNE1jzJgxoSyPCDOTonDV1KE0uf3sOlhPZa2bF94u4abZo7BFWMptNWBsS2q3RVa5hIgVXRqD2LhxI7Nnz+bOO+8E4Ntvv+W2224LacFE+JhNJhZPH05OhhOAAxVNLH93F1ogEOaStdcsg9VChEyXAsSTTz7JypUrSUpKAmDcuHEcOHAgpAUT4WW3mrnhipFtti19fdPeiBsY9vm1iAxcQsSCLie1ycjIaHNss0m6g1jnjLNy46xRJDmNn/WXO4/y1qcHIipI6IDbGx3JBoWINl0KEE6nk6NHjwYXJn366ackJiae9HmbNm1i5syZTJ8+nWXLlnV6XVFREaNGjWLdunVdLLY4XVpXWzvsRj//h0VH2PTN4TCXqi1ZEyFEaHQpQPziF7/glltu4eDBg1x33XXcfffdbRL4dUTTNB5++GGeeeYZCgsLWbt2Lbt37+7wut/+9rdceOGFPauBCLnstHiunzkSa8teDG9/VsaWksowl+o7WstgtRCid3VpFtP48eN54YUX+PLLLwE4++yzg+MRnSkqKiIvL4/cXCP52+zZs1m/fj1nnHFGm+tefPFFZs6cybffftuT8ovTJC87kcXT83nx7Z3Bva0dNjNjh6aHu2iAMVgts5mE6F0nDRCapvH973+fV199lalTp3b5xhUVFWRnZwePs7KyKCoqanfNu+++y/PPP9+tAJGW5uzytdEoUus3Oc2JxWbh2dXF6Dq88t5u+qU7GT2ke0EiFPVTgLS0eMwRsONcRsbJu1+jVSzXDWK/ft110gBhNptJTU3F6/Vit3d9RW1HA5nHJ1d75JFHuPvuuzGbu/fOr6bG1a3ro0lamjOi6zcsO5GCCwaz5qNSVE3nz68WcfPsUQzK6tofVijr53X7wp7lNSMjkaqqyM1jdSpiuW7QN+rXXV3qYho8eDBLlixh5syZxMfHB88vWbKk0+dkZ2dTXl4ePK6oqCAzM7PNNVu3buWuu+4CoLa2lo0bN2KxWLjsssu6VQlxek0ek43bq/Lu5wfxqwGee6uEW+aMpn96eFs+zV5VsrwK0Yu6FCBcLhf5+fns3bu3yzceN24cpaWllJWVkZWVRWFhIf/zP//T5poNGzYEv7733nu5+OKLJThEiUvOHojHq/Hht0bepr+9WcKP5oymX4ojbGUKBHS8fo04m6TfEKI3nPAv6Te/+Q333nsvjz32GB999BEXXHBB129ssfDAAw+wdOlSNE1jwYIF5Ofns3z5csDYY0JEL0VRuOK8Qbh9Kl/sqKLJ7eevhdv50dwxpCaGL7lfs0eVACFEL1H0E6x6uvLKK3n99dfbfR1OlTXNVMRwP2Gkj0EcLxDQ+eeGXXy710gHn54Uxy1zR3e6b/TpqF+/5DgsYRqsjuV+7FiuG/SN+nXXCf+Kjo0dkbR6VkQOk0lh4SVnMGJQCgDVDR6eLdyOy+MPW5kkP5MQveOEAcLn87Fnzx52797d5uvWDyEALGYTiy8bztABxtqYylo3fyvcHrYVzm6vbCYkRG84YRfTtGnTOn+iorB+/fqQFOpEpIspcnn9Gn97czsHKpoAyM1M4KZZo9osYDtd9UuKt4VlD4tY7qaI5bpB36hfd53wL+jYWUZCnIzdauaHV4zkr2u3c+ioi7LKJp5fV8IPrxiJzXp6Vzk3e/0RucmRENEk/MtORUyJs1m4cdZIstOM9TKl5Y288PYOfOrpzZWkajo+v+RnEuJUyFss0evi46zcNHsUT6/ZRlWdm72HG3jp7Z1cN/PUtqnddbCOz0sqqW30kppoZ+LITPJzUjq9vtmrnvaWizh1W/dV82HREarq3GSkOLjwzP6M7WY6F9E7pAUhQiLBYeXmglHBDYd2H6rnpXd24O9hS2LXwTre/qyM6gYvAR2qG7y8/VkZuw7Wdfocj082E4o2W/dV8+rGvVTUugnoUFHr5tWNe9m6rzrcReuTJECIkEmKt7G0YDTpLUFi18F6/vLat/jV7r9of95JevHOzrdq9siU12jyYdGRbp0XoSUBQoRUktMIEmlJxurq4r3VLS2J7gWJ2kZvt863kimv0aWqzt3Jec9pLokACRDiNEg+LkjsOljPi90cuO4sfcfJ0noEdNmSNJpkdJLLKyMl7jSXRIAECHGapCTYuaVgNJmpxgvA7kP1vLBuR5dnGk0cmdmt88dqDuOqbtE9F57Zv1vnRWhJgBCnTXKCnbsWTwgOXO893MBzb5V0abvQ/JwUZk7KJT3JjkmB9CQ7MyflnnAWUyu1JcuriHxjh6SzYOpQslIdmBSFrFQHC6YOlVlMYXLCldSRSFZSR7e0NCelB2v569ptwX7l3MwEfnjFSBz20M26tllMpCWFvpsillfjxnLdoG/Ur7ukBSFOu6R4G7fMGRNcTFdW2cQza7fR5A5dV5BPDfRo9pQQfZkECBEWCQ4rSwtGMzDD2IXuSHUzT6/ZRr3LF7LvGc4Ms0JEIwkQImzi4ywt+1knAMYUx2Wri6luCM2URq8snBOiWyRAiLAycjeN4oyByYCxrmHZqmLKa5p7/XvpgEsWzgnRZRIgRNjZrWauv3wEowenAtDo9vP0mmIOVPT+gKHbqxIIRNW8DCHCRgKEiAgWs4lFlw3ne8P7Acbitr+u3c6OA7W9+n10XXacE6KrJECIiGE2KVw1dRgXjMsGwK8FePHtHXy1s6pXv4/L40fVZCxCiJORACEiiklRmHVeHjMn5QJGqowV7+9h09eHey2nkq5DQwhnSwkRKyRAiIijKApTzxrIgqlDMSnGuXWfHWDNR6W9Nn7gUwOS6VWIk5AAISLWhBGZ/GDGCKwW49d087YKXv7Xzl7bna7R7ZOuJiFOQAKEiGgj81JZWjAaZ8v+0tv31/LXtdtpbD71LiLpahLixCRAiIiXm5nAbfPHBjceKqts4i+riqnohbUSRleTrLAWoiMSIERUSE+K47Z5Y8jLMhKO1TZ6+cuq4hNuOdpVjc0yq0mIjkiAEFHDGWfsc33WGcZaCa9f4/m3SvikuPyUZjjpQH2TdDUJcTwJECKqWMwmFl4yjEsn5ADGNNg1H5Wy6sN9p9QK8GuBkGaTFSIaSYAQUUdRFC6dkMO1l56BxWzMg/1PW1YQAAAeSUlEQVRseyXPvrn9lF7kXW4//l6aISVELJAAIaLWmcP6cevcMSQ5bQCUHmnk/17/lkNVTT26nw7UNsnUVyFaSYAQUW1gRgI/uXIsuZlGyvC6Jh9PrS7myx6m5wgEdGoavRIkhEAChIgBifE2bpkzmnNGZgKgajor39/T43GJQECnttEre0eIPk8ChIgJFrOJKy8aypVThmBuyc/x6bYKlq0uprbR2+37aQGd2gYJEqJvkwAhYso5o7L40dzRJLeMSxyscvHH14oo6UHacDWgU9Mg3U2i7wppgNi0aRMzZ85k+vTpLFu2rN3jq1evZs6cOcyZM4drr72WkpKSUBZH9BG5mYncsWAc+TnGLnVur8YL63bw1ub93X6x12RMQvRhIQsQmqbx8MMP88wzz1BYWMjatWvZvXt3m2tycnJ46aWXWLNmDbfffju/+tWvQlUc0cc446zccPlILp2QQ0tCWD4oOsKy1cXUdHPP69aBa78qQUL0LSELEEVFReTl5ZGbm4vNZmP27NmsX7++zTXf+973SE423uWdddZZlJeXh6o4og8ymYz1EjfOHkWiwwoYXU5/ePVbvt59tFv3MoKEB69P1kmIvsMSqhtXVFSQnZ0dPM7KyqKoqKjT61euXMlFF13UpXunpTlPuXyRTOrXuyalORk5tB/PF26jeG81Xr/GKxt2s6+8kUUzRhAfZ+3W/RxOGwnxtk4fz8hIPNUiR6xYrhvEfv26K2QBoqPcOIqidHAlbN68mZUrV/L3v/+9S/euqXGdUtkiWVqaU+oXIosuPYOPMxN4+7MDaAGdLdsq2Lm/loWXDGPogOQu36emxoXDbiEp3trudzojI5GqqsbeLnpEiOW6Qd+oX3eFrIspOzu7TZdRRUUFmZmZ7a4rKSnh/vvv5//+7/9ITU0NVXGEwKQoXHhmf3585VgyUx0A1Lt8/HXtdtZ+XNqtjYjcXpXqeo+k5hAxLWQBYty4cZSWllJWVobP56OwsJBp06a1uebw4cPceeed/Pd//zdDhgwJVVGEaKN/upOfXDmO88caXaA68PHWcv6w8lv2l3f9HWTrNNgmt7/X9ssWIpKErIvJYrHwwAMPsHTpUjRNY8GCBeTn57N8+XIAFi1axJ/+9Cfq6up46KGHADCbzbz22muhKpIQQVaLiYLzBzMyL5XXNu6hrslHdYOHZauLmTw2m+nn5GK3mk96Hx1ocvvxeFUSnZ2PSwgRjRQ9yt76VNY0UxHD/YQyBnH6Fe+r5q3NB6g5ZsV1gsNCv+Q4VE0nNdHOxJGZ5OeknPReA7KT8Ll9WMzda5xv3VfNh0VHqKpzk5Hi4MIz+zN2SHq36xIKaz8p5f2vDuHyqDjjLFx89kAKJg8Od7F6nYxBtBeyFoQQ0WDXwTre++owcXYLaYqxcZAW0GlyqzS5m3DYzfg1nbc/KwM4aZDw+DRq6j3YrWbi7RbstpO3Qrbuq+bVjXuDxxW17uBxuIPE2k9KWftRKWBMMmlq9gePYzFIiLYk1Ybo0z4vqQx+HWezkJHqCOZyAmMVdmVtMy63ny3bK7p8X69fo7bJy9E6Ny6Pn0Cg84b6h0VHunX+dHr/q0PdOi9iiwQI0acdn8jPpCiYTGA2E+wm0nVjttOOsnrKKrvXBaEGdBqb/VTVualr8uL1t5/1VFXn7vC5VXXdW/EdCp1twOSS3ff6BAkQok9LTbS3O2c2mbCazWSkxJHktNG61MGvBvjzG8WsfH8Pjc3d28Nax+h+qm30Ul3vwe1VgzOfMlIcHT4nIyWuW98jFBIcHS8idHZyXsQWCRCiT5s4sv3anPg4C844C4qikOCwkpniIO6YsYQvd1bxxD+/YePXh3qUn8mvBah3+aiq99Dk9gen2x7vwjP7d/veve3iswd267yILeYHH3zwwXAXojtcbj+ubr57iyYOhw13DDffI61+6UlxpCbaqWv04vVppCXZmfa9HEYMSg2e65ccx8xJg5gwIoPDVS5cHhUtoLPnUANf76rC6bCSmepAUZRu1U/XwacGSHBY6ZcSR32TD49PIzPVweXnDgr7ADXA8NwUUOBwtQtVC+B0WJkxaVBMDlA7nXaaY/i1xels31o+GZnmGmEicRpob4r2+mkBnc+2VfDuFwdxe9Xg+YEZTmaeM4hJZw44pfpZzArxdgtxdgumTlLThEtfmAYa6/XrLgkQESbaX0BPJlbq5/aqvP/VIT7eWo52zAylEXmpTDt7YHCP7J5SFHDYLMTHWbq9piJU+sILaKzXr7tkHYQQPeCwW7jivDzOHZ3Fvz4v45vd1QDs2F/Ljv21jByUyqUTBjIwo2eBQteh2avS7FWxWUzE2czYrOaICRaib5AAIcQpSEuK45pp+Vw0fgDvbCljx4E6AEoO1FJyoJZRealc8r2B5PQwUIAxTuFTA4Afi1khzmYhzibBQoSeBAghekH/dCc3XD6SmmY/r23Yxd7DDQBs31/L9v215OckM/WsgQzpn9hp2vuuUDWdJrefJvd3wcJqMWGzmE7pvkJ0RAKEEL3ojJwUlhaMZt+RBtZ/cTAYKHYdrGfXwXoGZSUw5cwBjMpLxWQ6tRf01mABoGAs7LPbzNitZqwWaV2IUycBQogQGNI/KRgoNn59mJ1lRtfTgYomXv7XTtKT4rhgXDbfG56BrQtZY09Gx1hf4XcHjNaFScFmM2O3mLFZpXUhekYChBAhNKR/EkP6J3H4qIuNXx9i674adB2qGzys/qiUd7aUMXFkJueNziItqfdWTqsBHdWj0oyKgpHe3G4zY7NI60J0nQQIIU6DAf2cLLpsODUNHj7aWs4XJZX41AAen8aHRUf4qOgIIwalMml0JsNzUk65++lYOm0Huk0K2KxmbBYTVgkY4gQkQAhxGqUlxTHn/MFcNiGHz0sq+aS4nLomHzrfzXxKSbAxcWQmE4ZnkJzQ/dWvJxPQjbxQHp8G+FEUsJpNWCwmrGYTVotJZkgJQAKEEGHhsFuYMn4AF4zrT8mBWjYXV7D7UD0AdU0+3v38IOs/P8gZOclMGJHJqLzUkL3Tb0354Tsmr5RJIdi6sJpNWK0SMPoiCRBChJHJpDB6cBqjB6dRXe/hs+0VfLGzimaPis53s5/ibGbGDk3n7Px+5GUnhjwNR0A39rRok57cYqG+0YvZrGAxmTCZjPToiqJgNim92i0mIoMECCEiRHpyHFecl8f0c3LZvr+WL3ZUsetgHXpLl9DnJZV8XlJJstPGuGHpnDksnYH9nKdthpKqBYyA0UkuQpNiTLU1m01YzQqWlm6rSMspJbou6gKE02HFGWdBx2gao+sEdIK59QO6DjoEMB5rORQialjMJsYNTWfc0HTqXT6+3lXFV7uOUllrbCxU7/LxYdERPiw6QlqinTFD0hg7NI2BGQlhfTEOtHRVoQY4dgskk0nBYlJagofR2jA+TNLqiHBRl6wP6FFCrWDgaKmu3ho8dNDp6Gu9XRBq+7zWx43P9FIgipVkdp2R+vWMruscqW7m611H+XZvNfWu9mmpk5w2RuWlMiovlaEDknp9oDkUdVMUsJhMWMwKZrMp2FVlNikt3VecthaSJOtrr88EiNOhTdBoCTh0EHxarzUebT02PqenJ3D0aGObx1q/+O644+ceW462x63Pb3uj4POPufDY7xmKXwwJEKcuoOuUVTRRtKearfuqaWxu3+djs5g4IyeZEbkpDM9N6ZXZUOH82ZkUWgKH0epQFIIBBL77HW89f+xjYPwum1qCjbGtbPugIwGiPQkQESbSfkmDwe7YQNfBuYCuo7e0tAKBlq8DOoFjWl8gAaK3BXSdg5VNFO+roXhfDTXH7bHdKivVQX5OCmfkJDM4O7FHq7dj7Wd3fMDo1y+B2hpXm1aLohz7+22kNFFagtXJ2jWtPRCKAgrGXueKogTv0eba1jdkx/RytH5/o4wArS2q7yYHdIcEiBgQaQGit7QGi7T0BCorGwgEjuvOO67F0nouGGyOORfJwvkiqus6lXVuSloSBJZVNnX4/2U2KeRmJTC0fxJDBySRm5nYpSm0sRYgjhdt9WsNNMcGOZNJaRP4WgOKgkLOwJRuf4+oG6QW0clkUjChYLeaibOd2q9d63hS2y47MELMd10LJuMvo+UPSemw5QMtLZxOxqLafr+2Y1BqwGglRQpFUchKjScrNZ6pZw2k2aOy+1AdO8vq2FVWT2NLYj8toFN6pJHSI41s+PIQFrNCTkYCedmJDM5OZFBWIg67vDREumPHSDV00E58fU4Pvof8Foio0/rCz0kb+W0pwX7p3hv0DOg6assiM59f68U7n7r4OAtnDuvHmcP6oes6FbVu9hyqZ/fBekrLG4NrHFRNp7S8kdLyRja2PDcjxcGgrAQGZSaQk5lAZmp8+CoiwkYChBCnwKQoRl4jqxkcVtLTnQT8KoGAjhbQ0bRAm64zVQugaqe/1aEoCtlp8WSnxXPBuP5oAZ3DR13sPVxP6ZFG9lc0tqTeMFTVuamqc/PFjirASMUxqH8imSkOBvZzMqCfk4wUB2aZphrTJEAI0YtMJqMb7URaF5x5fVqb9Bank9mkkJuZQG5mAlPPMlpCFTXN7C9v5EBFEwcqG6lp+G7A268F2HOwnj0H64PnLGaFzNR4+qfFk50eT1ZaPFmpDhIcVkkvHiMkQAhxmlnMRjI8Z5wVvxqg2avi8aphXdBpUhT6pzvpn+7kvDHGuSa3n0NVTZRVNnGoysXhalebKbWqZrRCDh9tO7AbH2chM9VBZoqDjOBHHMkJdllVHWUkQAgRRlaLiWSLjUSHFbdPxe1RUSNk4DvBYWXEoFRGDEoFIDU1ntKyWg4fdXHoqIvymmaOVDdTe9zU2maPGhwEP5bFrNAv2UF6UhzpyXbSk+JIS4ojLclOktMu3VURSAKEEBHAZFJwxllxxlnx+TU8fg1VDUTUTClFUUhOsJOcYGfU4LTgeY9PpaLGTXlNMxW1zVTUGOMXrduhtlI1nfKaZsprmtvd26QopCTaSEmwk5poD35OTjDOJTttkoI8DCRACBFhgoPeLQK6jt8fwK8ZM6X8aiCs3VHHi7NZyMtOJC+77UKsZo8aHOw+Wu+mqs7D0XoPNQ0etOOCXkDXqWnwthn3OJ4zzkKy00aS00ZivPE5Kd5KYryNhNbPDgtmkwSS3iIBQogIZ1IU7DYzdoyZUrquo2qtU2uNwBEprYxjxcd1HDgCAZ2GZh9H6z3UNnqpaTCCRl2Tj9pGb7uWRyuXR8XlUTlc3b4FciyH3UKCw0qCw4rTYcEZZ3wdH2fBGWchPs5KvN1CfJzxYTXLnt2dkQAhRJRRFKVlMx8zzpZtrLVAAL9qTKE1PgfavUuPFCaTQkqC0Y3UEZ+qUdfko77JS32Tj7omL/UuHw0uH/UuH/VNvrb7VBzH7VVxe43WS1dYzIoRVOJt2CwmHDYLDruxoDPObibO1vK1zRz8sFst2K3f7fMdq1lpJUAIEQPMJhNmW9uulYBurMNQNWNNhqoF0DQdLRAgQmMHADaLmcwUYxZUZ3x+jcZmP/UuH01uH43Nfhqb/TS523643P6TBkpV04PP7ymrxYTdasZmbf1s7Pl9/GerxYStdae+4z4sLdu9Brd9bfm6NU16OGaAhTRAbNq0iUceeYRAIMDChQv50Y9+1OZxXdd55JFH2LhxI3FxcfzmN79hzJgxoSySEDFr675qPiw6QlWdm4wUBxee2Z+xQ9J54e1tbNleiV8LYDWbOGdUJpNGZfJBy7X9kuM4d3Q2I3JT2FZaw6fbKqhu8JCaGMeEERkcrGris20VNPs04m1mJo3O4pKzO0/csOtgHZ+XVFLb6CU10c7EkZkA7c7l53ScG6ij5+fnpPDeVweNcnhV4u2WE5aj9R41DR5jUD0vlYwUB7sP1VOyv5bGZj82q4m0xDisFhNun4pf1Wls9uH2qnh9WrfGefyq0YKja42WHjG37KlhMX+3t4bFbMJiakmV3rLT33d7brSkUW95fNyIrG5/z5Al69M0jZkzZ/K3v/2NrKwsrr76ap544gnOOOOM4DUbN27kxRdf5Omnn+abb77hkUceYcWKFSe9dywms2sVq8n6Wkn9QmPrvmpe3bi33XlnnIXtpbVtzukY4wMZx71DnzAiI7hyulVdk5emZl8we2jry8XM8wYxY+KgYJbT1hxVJQdqeHPzgTZJAj0+FQWwH5eDa+ak3HZBYtfBOt7+rKxdPbLTHHy7p7rd+Yu/N7BdkOjsHmOGpFK8r7bd+dZyHJusb2dZLes+LWuTpVgP6IwdmkZKgh2PTwtuyept+dqvtl0A2Zp+xR+mxZDHW/M/87r9nJC1IIqKisjLyyM3NxeA2bNns379+jYBYv369cyfPx9FUTjrrLNoaGigsrKSzMzMUBVLiJj0YdGRDs+X7G//ggjg9qjtzr3/1SES421tzjU1+42U1aa26aU//racq6YMa3ePb3ZXt5uOWtdkjBc4HdY257/dU815o413ta29QEV7qjtcD9FRcADYsr2SgsmD2+xj8vWuo3Q0JLBle2W7MgB8tbOKsUPSW8YWjNljX+86arwTPy67VoPLx9wLhnRYls4EdGNcyOc3Aof/mMDRetzmQ9OC40mq1nrO6B5sPVY1Ywp0sAux5fjYbsTWrsVTEbIAUVFRQXZ2dvA4KyuLoqKiE16TnZ1NRUXFSQNET/KaRxOpX3QLR/1qm3wdpuwO6O33HmjNTHv89S6PSlpS3HHPN15gvtsfwfjc7FE7rGdH5dA0YyOF4/egaHD7GdC/bQuiodmP3dY+VYka0LFZ2p/3+DSG5qW3OdfkUYnrIBttVb2Hfh2MazT7NIYP7QdAerLxuMurdZjRttmnMWJYRrvzsSpkAaKjnqvjp5J15RohxMk98bOp4S4CcOrl6I16RMo9YkHIVpRkZ2dTXl4ePO6oZXD8NeXl5dK9JIQQESJkAWLcuHGUlpZSVlaGz+ejsLCQadOmtblm2rRpvPHGG+i6ztdff01iYqIECCGEiBAh62KyWCw88MADLF26FE3TWLBgAfn5+SxfvhyARYsWMXXqVDZu3Mj06dNxOBw8+uijoSqOEEKIborKPamFEEKEnmS1EkII0SEJEEIIIToU0bmYvF4vS5YswefzBVdm//SnP6Wuro6f//znHDp0iIEDB/K///u/JCcnh7u4PdI6PpOVlcVTTz0VU3WbNm0aTqcTk8mE2Wzmtddei6n6NTQ0cP/997Nz504UReHRRx9lyJAhMVG/vXv38vOf/zx4XFZWxk9/+lPmz58fE/V77rnnWLFiBYqiMHz4cB577DHcbndM1A3g+eefZ8WKFei6zsKFC/nhD3/Yo7+9iG5B2Gw2nn/+eVavXs0bb7zBBx98wNdff82yZcuYPHky77zzDpMnT2bZsmXhLmqPvfDCCwwb9t2K1FiqGxi/qKtWreK1114DYqt+jzzyCFOmTGHdunWsWrWKYcOGxUz9hg4dyqpVq4I/O4fDwfTp02OifhUVFbzwwgu8+uqrrF27Fk3TKCwsjIm6AezcuZMVK1awYsUKVq1axfvvv09paWmP6hfRAUJRFJxOJwCqqqKqKoqiBFN0AMyfP5933303nMXssfLyct5//32uvvrq4LlYqVtnYqV+TU1NbNmyJfizs9lsJCUlxUz9jvXJJ5+Qm5vLwIEDY6Z+mqbh8XhQVRWPx0NmZmbM1G3Pnj2MHz8eh8OBxWLhnHPO4V//+leP6hfRAQKMH+S8efM4//zzOf/88xk/fjzV1dXB9RKZmZnU1NSEuZQ98+ijj/Jv//ZvmI7ZAStW6tbq5ptv5qqrruKf//wnEDv1KysrIy0tjfvuu4/58+fzy1/+kubm5pip37EKCwspKCgAYuPnl5WVxU033cQll1zChRdeSEJCAhdeeGFM1A1g+PDhfP7559TW1uJ2u9m0aRPl5eU9ql/EBwiz2cyqVavYuHEjRUVF7Ny5M9xF6hXvvfceaWlpjB07NtxFCZnly5fz+uuv8/TTT/Pyyy+zZcuWcBep16iqyrZt21i0aBFvvPEGDocjarskTsTn87FhwwYuv/zycBel19TX17N+/XrWr1/PBx98gNvtZtWqVeEuVq8ZNmwYS5cu5aabbmLp0qWMGDECs7l9HquuiPgA0SopKYlzzz2XDz74gPT0dCorKwGorKwkLS3tJM+OPF9++SUbNmxg2rRp3HXXXWzevJm77747JurWKivLyNSZnp7O9OnTKSoqipn6ZWdnk52dzfjx4wG4/PLL2bZtW8zUr9WmTZsYM2YM/fq1JLOLgfp9/PHH5OTkkJaWhtVqZcaMGXz11VcxUbdWCxcu5PXXX+fll18mJSWFvLy8HtUvogNETU0NDQ0NAHg8Hj7++GOGDh0aTNEB8MYbb3DppZeGs5g98otf/IJNmzaxYcMGnnjiCc477zx++9vfxkTdAJqbm2lqagp+/dFHH5Gfnx8z9cvIyCA7O5u9e409GD755BOGDRsWM/VrVVhYyOzZs4PHsVC/AQMG8M033+B2u9F1PSZ/dtXVRnr0w4cP884771BQUNCj+kX0SuqSkhLuvfdeNE1D13Uuv/xy7rjjDmpra/nZz37GkSNH6N+/P7///e9JSel4d6po8Omnn/Lss8/y1FNPxUzdysrK+MlPfgIY40gFBQXcfvvtMVM/gO3bt/PLX/4Sv99Pbm4ujz32GIFAIGbq53a7ufjii3n33XdJTDRSe8fKz+/JJ5/kzTffxGKxMGrUKB555BFcLldM1A1g8eLF1NXVYbFYuO+++5g8eXKPfnYRHSCEEEKET0R3MQkhhAgfCRBCCCE6JAFCCCFEhyRACCGE6JAECCGEEB2K6GyuQpzIwoUL8fl8+P1+SktLyc/PB2D06NE89thjYS5d1xQXF1NWVhZTK5VF7JBpriLqHTx4kAULFvDpp5+GuyjtqKqKxdL5+7AVK1bw8ccf87vf/a7X7y3EqZLfLhGTVq5cyT/+8Q80TSMpKYmHHnqIwYMHs2LFCtatW4fT6WTnzp3079+f//iP/+Dxxx+nrKyM8ePH8/jjj6MoCnfffTcOh4MDBw5QXl7Oueeey69+9SusViuNjY08+uij7Nq1C6/Xy/nnn88999yDyWRi0aJFTJo0ia+++or4+HiefPLJ4CJBr9fL+PHjeeihh2hoaOBPf/oTLpeLefPmce6557JkyRIWL17MRx99BMD+/fuDx/v372fRokVcc801bN68mauuuop58+bxxBNP8Pnnn+Pz+Rg1ahQPPvggDocjzD8BERN0IaJcWVmZPmnSpODx5s2b9VtvvVX3er26ruv6+vXr9SVLlui6ruuvvPKKPmnSJL28vFzXdV2/6aab9Pnz5+uNjY26z+fTZ82apW/evFnXdV3/xS9+oc+bN093uVy6z+fTr7/+ev3vf/+7ruu6fs899+hr1qzRdV3XNU3Tf/rTn+orV67UdV3Xr732Wv3HP/6xrqpq8PG6urrg13fddZf+yiuvBMvzs5/9LFj20tJS/fzzz+/wuLS0VB8+fLi+bt264ONPPvmk/tRTTwWPH3vsMf33v//9qf2HCtFCWhAi5mzYsIFt27axcOFCAHRdx+VyBR+fMGFCMJHg6NGj8Xg8JCQkADBixAgOHDjAueeeC8CsWbOIj48HjBz677//PosWLeK9996juLiYp59+GjByhQ0aNCj4PebMmRPMoBkIBFi2bBkffvghgUCAurq6Hu9UFh8fz8yZM9vU1e12U1hYCBjZV8eMGdOjewtxPAkQIubous73v/997rjjjg4ft9vtwa9NJlO7Y1VVO72voiiA8aL/1FNPMWDAgA6vbQ0qAKtWraKoqIi///3vOJ1O/vjHP3LkyJEOn2c2mwkEAsFjr9fb6X1by/TrX/+ac845p8P7CXEqZJqriDmtWSsrKioAI1ng1q1be3Svt956C7fbjd/vZ82aNcGWxbRp01i2bBmapgFG5uGysrIO79HY2EhqaipOp5P6+vrgu30Ap9NJY2Nj8DgzMxOPxxO819q1a09a12effTYYSJqamtizZ0+P6irE8SRAiJhz3nnncccdd3Drrbcyd+5c5syZw/vvv9+je02YMIHbb7+dgoICcnNzg1uM/upXvyIQCDBv3jzmzJnDLbfcQlVVVYf3uPLKK6mrq6OgoIC77rqrzbv9Cy64gMbGRubOncujjz6KzWbj3nvv5YYbbuC6667DarWesHy33XYbw4YN4+qrr2bOnDksWbKEffv29aiuQhxPprkK0Ym7776bCRMmsGjRonAXRYiwkBaEEEKIDkkLQgghRIekBSGEEKJDEiCEEEJ0SAKEEEKIDkmAEEII0SEJEEIIITr0/wPFoYrgLw4DRwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/tree/master/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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Risk Analysis of the Space Shuttle: Pre-Challenger Prediction of Failure"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this document we reperform some of the analysis provided in \n",
"*Risk Analysis of the Space Shuttle: Pre-Challenger Prediction of Failure* by *Siddhartha R. Dalal, Edward B. Fowlkes, Bruce Hoadley* published in *Journal of the American Statistical Association*, Vol. 84, No. 408 (Dec., 1989), pp. 945-957 and available at http://www.jstor.org/stable/2290069. \n",
"\n",
"On the fourth page of this article, they indicate that the maximum likelihood estimates of the logistic regression using only temperature are: $\\hat{\\alpha}=5.085$ and $\\hat{\\beta}=-0.1156$ and their asymptotic standard errors are $s_{\\hat{\\alpha}}=3.052$ and $s_{\\hat{\\beta}}=0.047$. The Goodness of fit indicated for this model was $G^2=18.086$ with 21 degrees of freedom. Our goal is to reproduce the computation behind these values and the Figure 4 of this article, possibly in a nicer looking way."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Technical information on the computer on which the analysis is run"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will be using the python3 language using the pandas, statsmodels, numpy, matplotlib and seaborn libraries."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19) \n",
"[GCC 7.2.0]\n",
"uname_result(system='Linux', node='3a716011d2b6', release='4.4.0-116-generic', version='#140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018', machine='x86_64', processor='x86_64')\n",
"IPython 6.4.0\n",
"IPython.core.release 6.4.0\n",
"PIL 5.2.0\n",
"PIL.Image 5.2.0\n",
"PIL._version 5.2.0\n",
"_csv 1.0\n",
"_ctypes 1.1.0\n",
"_curses b'2.2'\n",
"decimal 1.70\n",
"argparse 1.1\n",
"backcall 0.1.0\n",
"cffi 1.11.5\n",
"csv 1.0\n",
"ctypes 1.1.0\n",
"cycler 0.10.0\n",
"dateutil 2.7.3\n",
"decimal 1.70\n",
"decorator 4.3.0\n",
"distutils 3.6.4\n",
"ipaddress 1.0\n",
"ipykernel 4.8.2\n",
"ipykernel._version 4.8.2\n",
"ipython_genutils 0.2.0\n",
"ipython_genutils._version 0.2.0\n",
"ipywidgets 7.2.1\n",
"ipywidgets._version 7.2.1\n",
"jedi 0.12.1\n",
"json 2.0.9\n",
"jupyter_client 5.2.3\n",
"jupyter_client._version 5.2.3\n",
"jupyter_core 4.4.0\n",
"jupyter_core.version 4.4.0\n",
"kiwisolver 1.0.1\n",
"logging 0.5.1.2\n",
"matplotlib 2.2.2\n",
"matplotlib.backends.backend_agg 2.2.2\n",
"numpy 1.13.3\n",
"numpy.core 1.13.3\n",
"numpy.core.multiarray 3.1\n",
"numpy.core.umath b'0.4.0'\n",
"numpy.lib 1.13.3\n",
"numpy.linalg._umath_linalg b'0.1.5'\n",
"numpy.matlib 1.13.3\n",
"optparse 1.5.3\n",
"pandas 0.22.0\n",
"_libjson 1.33\n",
"parso 0.3.0\n",
"patsy 0.5.0\n",
"patsy.version 0.5.0\n",
"pexpect 4.6.0\n",
"pickleshare 0.7.4\n",
"platform 1.0.8\n",
"prompt_toolkit 1.0.15\n",
"ptyprocess 0.6.0\n",
"pygments 2.2.0\n",
"pyparsing 2.2.0\n",
"pytz 2018.5\n",
"re 2.2.1\n",
"scipy 1.1.0\n",
"scipy._lib.decorator 4.0.5\n",
"scipy._lib.six 1.2.0\n",
"scipy.fftpack._fftpack b'$Revision: $'\n",
"scipy.fftpack.convolve b'$Revision: $'\n",
"scipy.integrate._dop b'$Revision: $'\n",
"scipy.integrate._ode $Id$\n",
"scipy.integrate._odepack 1.9 \n",
"scipy.integrate._quadpack 1.13 \n",
"scipy.integrate.lsoda b'$Revision: $'\n",
"scipy.integrate.vode b'$Revision: $'\n",
"scipy.interpolate._fitpack 1.7 \n",
"scipy.interpolate.dfitpack b'$Revision: $'\n",
"scipy.linalg 0.4.9\n",
"scipy.linalg._fblas b'$Revision: $'\n",
"scipy.linalg._flapack b'$Revision: $'\n",
"scipy.linalg._flinalg b'$Revision: $'\n",
"scipy.ndimage 2.0\n",
"scipy.optimize._cobyla b'$Revision: $'\n",
"scipy.optimize._lbfgsb b'$Revision: $'\n",
"scipy.optimize._minpack 1.10 \n",
"scipy.optimize._nnls b'$Revision: $'\n",
"scipy.optimize._slsqp b'$Revision: $'\n",
"scipy.optimize.minpack2 b'$Revision: $'\n",
"scipy.signal.spline 0.2\n",
"scipy.sparse.linalg.eigen.arpack._arpack b'$Revision: $'\n",
"scipy.sparse.linalg.isolve._iterative b'$Revision: $'\n",
"scipy.special.specfun b'$Revision: $'\n",
"scipy.stats.mvn b'$Revision: $'\n",
"scipy.stats.statlib b'$Revision: $'\n",
"seaborn 0.8.1\n",
"seaborn.external.husl 2.1.0\n",
"seaborn.external.six 1.10.0\n",
"six 1.11.0\n",
"statsmodels 0.9.0\n",
"statsmodels.__init__ 0.9.0\n",
"traitlets 4.3.2\n",
"traitlets._version 4.3.2\n",
"urllib.request 3.6\n",
"zlib 1.0\n",
"zmq 17.1.0\n",
"zmq.sugar 17.1.0\n",
"zmq.sugar.version 17.1.0\n"
]
}
],
"source": [
"def print_imported_modules():\n",
" import sys\n",
" for name, val in sorted(sys.modules.items()):\n",
" if(hasattr(val, '__version__')): \n",
" print(val.__name__, val.__version__)\n",
"# else:\n",
"# print(val.__name__, \"(unknown version)\")\n",
"def print_sys_info():\n",
" import sys\n",
" import platform\n",
" print(sys.version)\n",
" print(platform.uname())\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import statsmodels.api as sm\n",
"import seaborn as sns\n",
"\n",
"print_sys_info()\n",
"print_imported_modules()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Loading and inspecting data\n",
"Let's start by reading data."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date</th>\n",
" <th>Count</th>\n",
" <th>Temperature</th>\n",
" <th>Pressure</th>\n",
" <th>Malfunction</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4/12/81</td>\n",
" <td>6</td>\n",
" <td>66</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>11/12/81</td>\n",
" <td>6</td>\n",
" <td>70</td>\n",
" <td>50</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3/22/82</td>\n",
" <td>6</td>\n",
" <td>69</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>11/11/82</td>\n",
" <td>6</td>\n",
" <td>68</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4/04/83</td>\n",
" <td>6</td>\n",
" <td>67</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>6/18/82</td>\n",
" <td>6</td>\n",
" <td>72</td>\n",
" <td>50</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>8/30/83</td>\n",
" <td>6</td>\n",
" <td>73</td>\n",
" <td>100</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>11/28/83</td>\n",
" <td>6</td>\n",
" <td>70</td>\n",
" <td>100</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2/03/84</td>\n",
" <td>6</td>\n",
" <td>57</td>\n",
" <td>200</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>4/06/84</td>\n",
" <td>6</td>\n",
" <td>63</td>\n",
" <td>200</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>8/30/84</td>\n",
" <td>6</td>\n",
" <td>70</td>\n",
" <td>200</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>10/05/84</td>\n",
" <td>6</td>\n",
" <td>78</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>11/08/84</td>\n",
" <td>6</td>\n",
" <td>67</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>1/24/85</td>\n",
" <td>6</td>\n",
" <td>53</td>\n",
" <td>200</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>4/12/85</td>\n",
" <td>6</td>\n",
" <td>67</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>4/29/85</td>\n",
" <td>6</td>\n",
" <td>75</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>6/17/85</td>\n",
" <td>6</td>\n",
" <td>70</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>7/2903/85</td>\n",
" <td>6</td>\n",
" <td>81</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>8/27/85</td>\n",
" <td>6</td>\n",
" <td>76</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>10/03/85</td>\n",
" <td>6</td>\n",
" <td>79</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>10/30/85</td>\n",
" <td>6</td>\n",
" <td>75</td>\n",
" <td>200</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>11/26/85</td>\n",
" <td>6</td>\n",
" <td>76</td>\n",
" <td>200</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>1/12/86</td>\n",
" <td>6</td>\n",
" <td>58</td>\n",
" <td>200</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date Count Temperature Pressure Malfunction\n",
"0 4/12/81 6 66 50 0\n",
"1 11/12/81 6 70 50 1\n",
"2 3/22/82 6 69 50 0\n",
"3 11/11/82 6 68 50 0\n",
"4 4/04/83 6 67 50 0\n",
"5 6/18/82 6 72 50 0\n",
"6 8/30/83 6 73 100 0\n",
"7 11/28/83 6 70 100 0\n",
"8 2/03/84 6 57 200 1\n",
"9 4/06/84 6 63 200 1\n",
"10 8/30/84 6 70 200 1\n",
"11 10/05/84 6 78 200 0\n",
"12 11/08/84 6 67 200 0\n",
"13 1/24/85 6 53 200 2\n",
"14 4/12/85 6 67 200 0\n",
"15 4/29/85 6 75 200 0\n",
"16 6/17/85 6 70 200 0\n",
"17 7/2903/85 6 81 200 0\n",
"18 8/27/85 6 76 200 0\n",
"19 10/03/85 6 79 200 0\n",
"20 10/30/85 6 75 200 2\n",
"21 11/26/85 6 76 200 0\n",
"22 1/12/86 6 58 200 1"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv(\"https://app-learninglab.inria.fr/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/master/data/shuttle.csv\")\n",
"data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We know from our previous experience on this data set that filtering data is a really bad idea. We will therefore process it as such."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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": [
"<table class=\"simpletable\">\n",
"<caption>Generalized Linear Model Regression Results</caption>\n",
"<tr>\n",
" <th>Dep. Variable:</th> <td>Frequency</td> <th> No. Observations: </th> <td> 23</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model:</th> <td>GLM</td> <th> Df Residuals: </th> <td> 21</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model Family:</th> <td>Binomial</td> <th> Df Model: </th> <td> 1</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Link Function:</th> <td>logit</td> <th> Scale: </th> <td> 1.0000</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Method:</th> <td>IRLS</td> <th> Log-Likelihood: </th> <td> -3.9210</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Date:</th> <td>Wed, 24 Oct 2018</td> <th> Deviance: </th> <td> 3.0144</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Time:</th> <td>11:05:55</td> <th> Pearson chi2: </th> <td> 5.00</td> \n",
"</tr>\n",
"<tr>\n",
" <th>No. Iterations:</th> <td>6</td> <th> Covariance Type: </th> <td>nonrobust</td>\n",
"</tr>\n",
"</table>\n",
"<table class=\"simpletable\">\n",
"<tr>\n",
" <td></td> <th>coef</th> <th>std err</th> <th>z</th> <th>P>|z|</th> <th>[0.025</th> <th>0.975]</th> \n",
"</tr>\n",
"<tr>\n",
" <th>Intercept</th> <td> 5.0850</td> <td> 7.477</td> <td> 0.680</td> <td> 0.496</td> <td> -9.570</td> <td> 19.740</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Temperature</th> <td> -0.1156</td> <td> 0.115</td> <td> -1.004</td> <td> 0.316</td> <td> -0.341</td> <td> 0.110</td>\n",
"</tr>\n",
"</table>"
],
"text/plain": [
"<class 'statsmodels.iolib.summary.Summary'>\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": [
"<table class=\"simpletable\">\n",
"<caption>Generalized Linear Model Regression Results</caption>\n",
"<tr>\n",
" <th>Dep. Variable:</th> <td>Frequency</td> <th> No. Observations: </th> <td> 23</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model:</th> <td>GLM</td> <th> Df Residuals: </th> <td> 21</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model Family:</th> <td>Binomial</td> <th> Df Model: </th> <td> 1</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Link Function:</th> <td>logit</td> <th> Scale: </th> <td> 1.0000</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Method:</th> <td>IRLS</td> <th> Log-Likelihood: </th> <td> -23.526</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Date:</th> <td>Wed, 24 Oct 2018</td> <th> Deviance: </th> <td> 18.086</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Time:</th> <td>11:05:55</td> <th> Pearson chi2: </th> <td> 30.0</td> \n",
"</tr>\n",
"<tr>\n",
" <th>No. Iterations:</th> <td>6</td> <th> Covariance Type: </th> <td>nonrobust</td>\n",
"</tr>\n",
"</table>\n",
"<table class=\"simpletable\">\n",
"<tr>\n",
" <td></td> <th>coef</th> <th>std err</th> <th>z</th> <th>P>|z|</th> <th>[0.025</th> <th>0.975]</th> \n",
"</tr>\n",
"<tr>\n",
" <th>Intercept</th> <td> 5.0850</td> <td> 3.052</td> <td> 1.666</td> <td> 0.096</td> <td> -0.898</td> <td> 11.068</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Temperature</th> <td> -0.1156</td> <td> 0.047</td> <td> -2.458</td> <td> 0.014</td> <td> -0.208</td> <td> -0.023</td>\n",
"</tr>\n",
"</table>"
],
"text/plain": [
"<class 'statsmodels.iolib.summary.Summary'>\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": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/tree/master/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
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment