StatSim Modelshttps://statsim.com/models/2020-11-30T20:00:00+01:00Friedman-1 synthetic dataset2020-11-30T20:00:00+01:002020-11-30T20:00:00+01:00Anton Zemlyanskytag:statsim.com,2020-11-30:/models/friedman1/<p>Generate a synthetic dataset using the Friedman-1 function implemented in StatSim</p><style type="text/css">/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
http://www.xcolors.net/dl/baskerville-ivorylight and
http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
color: #3E424D;
}
.ansi-black-bg {
background-color: #3E424D;
}
.ansi-black-intense-fg {
color: #282C36;
}
.ansi-black-intense-bg {
background-color: #282C36;
}
.ansi-red-fg {
color: #E75C58;
}
.ansi-red-bg {
background-color: #E75C58;
}
.ansi-red-intense-fg {
color: #B22B31;
}
.ansi-red-intense-bg {
background-color: #B22B31;
}
.ansi-green-fg {
color: #00A250;
}
.ansi-green-bg {
background-color: #00A250;
}
.ansi-green-intense-fg {
color: #007427;
}
.ansi-green-intense-bg {
background-color: #007427;
}
.ansi-yellow-fg {
color: #DDB62B;
}
.ansi-yellow-bg {
background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
color: #B27D12;
}
.ansi-yellow-intense-bg {
background-color: #B27D12;
}
.ansi-blue-fg {
color: #208FFB;
}
.ansi-blue-bg {
background-color: #208FFB;
}
.ansi-blue-intense-fg {
color: #0065CA;
}
.ansi-blue-intense-bg {
background-color: #0065CA;
}
.ansi-magenta-fg {
color: #D160C4;
}
.ansi-magenta-bg {
background-color: #D160C4;
}
.ansi-magenta-intense-fg {
color: #A03196;
}
.ansi-magenta-intense-bg {
background-color: #A03196;
}
.ansi-cyan-fg {
color: #60C6C8;
}
.ansi-cyan-bg {
background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
color: #258F8F;
}
.ansi-cyan-intense-bg {
background-color: #258F8F;
}
.ansi-white-fg {
color: #C5C1B4;
}
.ansi-white-bg {
background-color: #C5C1B4;
}
.ansi-white-intense-fg {
color: #A1A6B2;
}
.ansi-white-intense-bg {
background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
color: #FFFFFF;
}
.ansi-default-inverse-bg {
background-color: #000000;
}
.ansi-bold {
font-weight: bold;
}
.ansi-underline {
text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
font-weight: bold;
}
.ansi-inverse {
outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
position: relative;
overflow: visible;
}
div.cell:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: transparent;
}
div.cell.jupyter-soft-selected {
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #42A5F5;
}
@media print {
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: transparent;
}
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #66BB6A;
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
/* Note that this should set vertical padding only, since CodeMirror assumes
that horizontal padding will be set on CodeMirror pre */
padding: 0.4em 0;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
use .CodeMirror-lines for vertical */
padding: 0 0.4em;
border: 0;
border-radius: 0;
}
.CodeMirror-cursor {
border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.CodeMirror-cursor {
border-left: 2px solid black;
}
}
@media screen and (min-width: 4320px) {
.CodeMirror-cursor {
border-left: 4px solid black;
}
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area
div.output_area
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
div.output_area .mglyph > img {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 1px 0 1px 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
padding-left: 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html pre,
.rendered_html tr,
.rendered_html th,
.rendered_html tbody tr:nth-child(odd) {
background: #f5f5f5;
}
.rendered_html tbody tr:hover {
background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html img.unconfined,
.rendered_html * + .alert {
margin-top: 1em;
}
[dir="rtl"]
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered
.text_cell.unrendered .text_cell_render {
display: none;
}
.text_cell .dropzone .input_area {
border: 2px dashed #bababa;
margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
</style>
<style type="text/css"> .highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #f8f8f8; }
.highlight pre .c { color: #408080; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { color: #008000; font-weight: bold } /* Keyword */
.highlight pre .o { color: #666666 } /* Operator */
.highlight pre .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight pre .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight pre .gd { color: #A00000 } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #FF0000 } /* Generic.Error */
.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight pre .gi { color: #00A000 } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight pre .gt { color: #0044DD } /* Generic.Traceback */
.highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { color: #008000 } /* Keyword.Pseudo */
.highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { color: #B00040 } /* Keyword.Type */
.highlight pre .m { color: #666666 } /* Literal.Number */
.highlight pre .s { color: #BA2121 } /* Literal.String */
.highlight pre .na { color: #7D9029 } /* Name.Attribute */
.highlight pre .nb { color: #008000 } /* Name.Builtin */
.highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight pre .no { color: #880000 } /* Name.Constant */
.highlight pre .nd { color: #AA22FF } /* Name.Decorator */
.highlight pre .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight pre .nf { color: #0000FF } /* Name.Function */
.highlight pre .nl { color: #A0A000 } /* Name.Label */
.highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight pre .nv { color: #19177C } /* Name.Variable */
.highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #666666 } /* Literal.Number.Bin */
.highlight pre .mf { color: #666666 } /* Literal.Number.Float */
.highlight pre .mh { color: #666666 } /* Literal.Number.Hex */
.highlight pre .mi { color: #666666 } /* Literal.Number.Integer */
.highlight pre .mo { color: #666666 } /* Literal.Number.Oct */
.highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight pre .sc { color: #BA2121 } /* Literal.String.Char */
.highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight pre .sx { color: #008000 } /* Literal.String.Other */
.highlight pre .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight pre .ss { color: #19177C } /* Literal.String.Symbol */
.highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight pre .fm { color: #0000FF } /* Name.Function.Magic */
.highlight pre .vc { color: #19177C } /* Name.Variable.Class */
.highlight pre .vg { color: #19177C } /* Name.Variable.Global */
.highlight pre .vi { color: #19177C } /* Name.Variable.Instance */
.highlight pre .vm { color: #19177C } /* Name.Variable.Magic */
.highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [1]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">iframer</span> <span class="kn">import</span> <span class="o">*</span>
<span class="n">iframer</span><span class="p">(</span><span class="s1">'https://statsim.com/app/?m=friedman1&preview=1'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_html rendered_html output_subarea ">
<div class="iframer-wrapper" style="position: relative; padding-bottom: 550px; padding-top: 25px; height: 0;">
<iframe src="https://statsim.com/app/?m=friedman1&preview=1" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
</div><br>
<a class="iframer-link" href="https://statsim.com/app/?m=friedman1&preview=1" target="_blank" style="margin: 10px 0;">Open in statsim.com</a>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Friedman-1-model">Friedman-1 model<a class="anchor-link" href="#Friedman-1-model">¶</a></h2><p>This dataset was described in the <a href="http://www.stat.yale.edu/~lc436/08Spring665/Mars_Friedman_91.pdf">Multivariate Adaptive Regression Splines</a> paper by Jerome H. Friedman in 1991. All features $\mathbf{x}$ are independent uniform random variables taking values from 0 to 1. The output $y$ is calculated with the formula:</p>
$$ f(\mathbf{x}) = 10 sin(\pi x_1 x_2) + 20 (x_3 - 0.5)^2 + 10 x_4 + 5 x_5 + \mathcal{N}(0, sigma) $$<p></p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>By default ten $\mathbf{x}$ variables are generated, from which only first 5 are used in the formula. That makes this dataset useful for testing feature selection methods too.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>After generating the data click <strong>Download (CSV)</strong> to download the dataset in the CSV format.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Also availaible in:</p>
<ul>
<li><a href="https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_friedman1.html">sklearn.datasets.make_friedman1</a> (Python)</li>
<li><a href="https://cran.r-project.org/web/packages/mlbench/index.html">MLBench</a> (R)</li>
<li><a href="https://statsim.com/gen/">StatSim Gen</a> (Web)</li>
</ul>
</div>
</div>
</div>
<script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
var mathjaxscript = document.createElement('script');
mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
mathjaxscript.type = 'text/javascript';
mathjaxscript.src = '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
mathjaxscript[(window.opera ? "innerHTML" : "text")] =
"MathJax.Hub.Config({" +
" config: ['MMLorHTML.js']," +
" TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," +
" jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
" extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
" displayAlign: 'center'," +
" displayIndent: '0em'," +
" showMathMenu: true," +
" tex2jax: { " +
" inlineMath: [ ['$','$'] ], " +
" displayMath: [ ['$$','$$'] ]," +
" processEscapes: true," +
" preview: 'TeX'," +
" }, " +
" 'HTML-CSS': { " +
" linebreaks: { automatic: true, width: '95% container' }, " +
" styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" +
" } " +
"}); ";
(document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
</script>
Синтетические данные Friedman-12020-11-30T20:00:00+01:002020-11-30T20:00:00+01:00Антон Землянскийtag:statsim.com,2020-11-30:/models/ru/friedman1/<p>Генерация искусственных данных на основе функции Friedman-1 воплощенной в StatSim</p><style type="text/css">/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
http://www.xcolors.net/dl/baskerville-ivorylight and
http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
color: #3E424D;
}
.ansi-black-bg {
background-color: #3E424D;
}
.ansi-black-intense-fg {
color: #282C36;
}
.ansi-black-intense-bg {
background-color: #282C36;
}
.ansi-red-fg {
color: #E75C58;
}
.ansi-red-bg {
background-color: #E75C58;
}
.ansi-red-intense-fg {
color: #B22B31;
}
.ansi-red-intense-bg {
background-color: #B22B31;
}
.ansi-green-fg {
color: #00A250;
}
.ansi-green-bg {
background-color: #00A250;
}
.ansi-green-intense-fg {
color: #007427;
}
.ansi-green-intense-bg {
background-color: #007427;
}
.ansi-yellow-fg {
color: #DDB62B;
}
.ansi-yellow-bg {
background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
color: #B27D12;
}
.ansi-yellow-intense-bg {
background-color: #B27D12;
}
.ansi-blue-fg {
color: #208FFB;
}
.ansi-blue-bg {
background-color: #208FFB;
}
.ansi-blue-intense-fg {
color: #0065CA;
}
.ansi-blue-intense-bg {
background-color: #0065CA;
}
.ansi-magenta-fg {
color: #D160C4;
}
.ansi-magenta-bg {
background-color: #D160C4;
}
.ansi-magenta-intense-fg {
color: #A03196;
}
.ansi-magenta-intense-bg {
background-color: #A03196;
}
.ansi-cyan-fg {
color: #60C6C8;
}
.ansi-cyan-bg {
background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
color: #258F8F;
}
.ansi-cyan-intense-bg {
background-color: #258F8F;
}
.ansi-white-fg {
color: #C5C1B4;
}
.ansi-white-bg {
background-color: #C5C1B4;
}
.ansi-white-intense-fg {
color: #A1A6B2;
}
.ansi-white-intense-bg {
background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
color: #FFFFFF;
}
.ansi-default-inverse-bg {
background-color: #000000;
}
.ansi-bold {
font-weight: bold;
}
.ansi-underline {
text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
font-weight: bold;
}
.ansi-inverse {
outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
position: relative;
overflow: visible;
}
div.cell:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: transparent;
}
div.cell.jupyter-soft-selected {
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #42A5F5;
}
@media print {
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: transparent;
}
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #66BB6A;
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
/* Note that this should set vertical padding only, since CodeMirror assumes
that horizontal padding will be set on CodeMirror pre */
padding: 0.4em 0;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
use .CodeMirror-lines for vertical */
padding: 0 0.4em;
border: 0;
border-radius: 0;
}
.CodeMirror-cursor {
border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.CodeMirror-cursor {
border-left: 2px solid black;
}
}
@media screen and (min-width: 4320px) {
.CodeMirror-cursor {
border-left: 4px solid black;
}
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area
div.output_area
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
div.output_area .mglyph > img {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 1px 0 1px 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
padding-left: 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html pre,
.rendered_html tr,
.rendered_html th,
.rendered_html tbody tr:nth-child(odd) {
background: #f5f5f5;
}
.rendered_html tbody tr:hover {
background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html img.unconfined,
.rendered_html * + .alert {
margin-top: 1em;
}
[dir="rtl"]
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered
.text_cell.unrendered .text_cell_render {
display: none;
}
.text_cell .dropzone .input_area {
border: 2px dashed #bababa;
margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
</style>
<style type="text/css"> .highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #f8f8f8; }
.highlight pre .c { color: #408080; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { color: #008000; font-weight: bold } /* Keyword */
.highlight pre .o { color: #666666 } /* Operator */
.highlight pre .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight pre .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight pre .gd { color: #A00000 } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #FF0000 } /* Generic.Error */
.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight pre .gi { color: #00A000 } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight pre .gt { color: #0044DD } /* Generic.Traceback */
.highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { color: #008000 } /* Keyword.Pseudo */
.highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { color: #B00040 } /* Keyword.Type */
.highlight pre .m { color: #666666 } /* Literal.Number */
.highlight pre .s { color: #BA2121 } /* Literal.String */
.highlight pre .na { color: #7D9029 } /* Name.Attribute */
.highlight pre .nb { color: #008000 } /* Name.Builtin */
.highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight pre .no { color: #880000 } /* Name.Constant */
.highlight pre .nd { color: #AA22FF } /* Name.Decorator */
.highlight pre .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight pre .nf { color: #0000FF } /* Name.Function */
.highlight pre .nl { color: #A0A000 } /* Name.Label */
.highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight pre .nv { color: #19177C } /* Name.Variable */
.highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #666666 } /* Literal.Number.Bin */
.highlight pre .mf { color: #666666 } /* Literal.Number.Float */
.highlight pre .mh { color: #666666 } /* Literal.Number.Hex */
.highlight pre .mi { color: #666666 } /* Literal.Number.Integer */
.highlight pre .mo { color: #666666 } /* Literal.Number.Oct */
.highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight pre .sc { color: #BA2121 } /* Literal.String.Char */
.highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight pre .sx { color: #008000 } /* Literal.String.Other */
.highlight pre .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight pre .ss { color: #19177C } /* Literal.String.Symbol */
.highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight pre .fm { color: #0000FF } /* Name.Function.Magic */
.highlight pre .vc { color: #19177C } /* Name.Variable.Class */
.highlight pre .vg { color: #19177C } /* Name.Variable.Global */
.highlight pre .vi { color: #19177C } /* Name.Variable.Instance */
.highlight pre .vm { color: #19177C } /* Name.Variable.Magic */
.highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [1]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">iframer</span> <span class="kn">import</span> <span class="o">*</span>
<span class="n">iframer</span><span class="p">(</span><span class="s1">'https://statsim.com/app/?m=friedman1&preview=1'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_html rendered_html output_subarea ">
<div class="iframer-wrapper" style="position: relative; padding-bottom: 550px; padding-top: 25px; height: 0;">
<iframe src="https://statsim.com/app/?m=friedman1&preview=1" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
</div><br>
<a class="iframer-link" href="https://statsim.com/app/?m=friedman1&preview=1" target="_blank" style="margin: 10px 0;">Open in statsim.com</a>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Модель-Friedman-1">Модель Friedman-1<a class="anchor-link" href="#Модель-Friedman-1">¶</a></h2><p>Синтетический датасет Friedman-1 был впервые описан в работе <a href="http://www.stat.yale.edu/~lc436/08Spring665/Mars_Friedman_91.pdf">Multivariate Adaptive Regression Splines</a> Джерома Фридмана в 1991. Все вводные параметры $\mathbf{x}$ являются независимыми случайными переменными равномерно распределенными на интервале от 0 до 1. Результат $y$ рассчитывается по формуле:</p>
$$ f(\mathbf{x}) = 10 sin(\pi x_1 x_2) + 20 (x_3 - 0.5)^2 + 10 x_4 + 5 x_5 + \mathcal{N}(0, sigma) $$<p></p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>По умолчанию, генерируются 10 различных переменных $\mathbf{x}$, из которых только первые 5 используются в формуле. Это делает такой датасет удобным для проверки методов отбора переменных.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>После успешной генерации, нажмите <strong>Download (CSV)</strong> для загрузки данных на локальный диск.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Этот датасет также доступен в:</p>
<ul>
<li><a href="https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_friedman1.html">sklearn.datasets.make_friedman1</a> (Python)</li>
<li><a href="https://cran.r-project.org/web/packages/mlbench/index.html">MLBench</a> (R)</li>
<li><a href="https://statsim.com/gen/">StatSim Gen</a> (Web)</li>
</ul>
</div>
</div>
</div>
<script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
var mathjaxscript = document.createElement('script');
mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
mathjaxscript.type = 'text/javascript';
mathjaxscript.src = '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
mathjaxscript[(window.opera ? "innerHTML" : "text")] =
"MathJax.Hub.Config({" +
" config: ['MMLorHTML.js']," +
" TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," +
" jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
" extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
" displayAlign: 'center'," +
" displayIndent: '0em'," +
" showMathMenu: true," +
" tex2jax: { " +
" inlineMath: [ ['$','$'] ], " +
" displayMath: [ ['$$','$$'] ]," +
" processEscapes: true," +
" preview: 'TeX'," +
" }, " +
" 'HTML-CSS': { " +
" linebreaks: { automatic: true, width: '95% container' }, " +
" styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" +
" } " +
"}); ";
(document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
</script>
Bayesian robust linear regression2019-04-23T20:00:00+02:002019-04-23T20:00:00+02:00Anton Zemlyanskytag:statsim.com,2019-04-23:/models/robust-linear-regression/<p>Assuming non-gaussian noise and existed outliers, find linear relationship between explanatory (independent) and response (dependent) variables, predict future values.</p><style type="text/css">/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
http://www.xcolors.net/dl/baskerville-ivorylight and
http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
color: #3E424D;
}
.ansi-black-bg {
background-color: #3E424D;
}
.ansi-black-intense-fg {
color: #282C36;
}
.ansi-black-intense-bg {
background-color: #282C36;
}
.ansi-red-fg {
color: #E75C58;
}
.ansi-red-bg {
background-color: #E75C58;
}
.ansi-red-intense-fg {
color: #B22B31;
}
.ansi-red-intense-bg {
background-color: #B22B31;
}
.ansi-green-fg {
color: #00A250;
}
.ansi-green-bg {
background-color: #00A250;
}
.ansi-green-intense-fg {
color: #007427;
}
.ansi-green-intense-bg {
background-color: #007427;
}
.ansi-yellow-fg {
color: #DDB62B;
}
.ansi-yellow-bg {
background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
color: #B27D12;
}
.ansi-yellow-intense-bg {
background-color: #B27D12;
}
.ansi-blue-fg {
color: #208FFB;
}
.ansi-blue-bg {
background-color: #208FFB;
}
.ansi-blue-intense-fg {
color: #0065CA;
}
.ansi-blue-intense-bg {
background-color: #0065CA;
}
.ansi-magenta-fg {
color: #D160C4;
}
.ansi-magenta-bg {
background-color: #D160C4;
}
.ansi-magenta-intense-fg {
color: #A03196;
}
.ansi-magenta-intense-bg {
background-color: #A03196;
}
.ansi-cyan-fg {
color: #60C6C8;
}
.ansi-cyan-bg {
background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
color: #258F8F;
}
.ansi-cyan-intense-bg {
background-color: #258F8F;
}
.ansi-white-fg {
color: #C5C1B4;
}
.ansi-white-bg {
background-color: #C5C1B4;
}
.ansi-white-intense-fg {
color: #A1A6B2;
}
.ansi-white-intense-bg {
background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
color: #FFFFFF;
}
.ansi-default-inverse-bg {
background-color: #000000;
}
.ansi-bold {
font-weight: bold;
}
.ansi-underline {
text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
font-weight: bold;
}
.ansi-inverse {
outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
position: relative;
overflow: visible;
}
div.cell:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: transparent;
}
div.cell.jupyter-soft-selected {
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #42A5F5;
}
@media print {
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: transparent;
}
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #66BB6A;
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
/* Note that this should set vertical padding only, since CodeMirror assumes
that horizontal padding will be set on CodeMirror pre */
padding: 0.4em 0;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
use .CodeMirror-lines for vertical */
padding: 0 0.4em;
border: 0;
border-radius: 0;
}
.CodeMirror-cursor {
border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.CodeMirror-cursor {
border-left: 2px solid black;
}
}
@media screen and (min-width: 4320px) {
.CodeMirror-cursor {
border-left: 4px solid black;
}
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area
div.output_area
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
div.output_area .mglyph > img {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 1px 0 1px 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
padding-left: 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html pre,
.rendered_html tr,
.rendered_html th,
.rendered_html tbody tr:nth-child(odd) {
background: #f5f5f5;
}
.rendered_html tbody tr:hover {
background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html img.unconfined,
.rendered_html * + .alert {
margin-top: 1em;
}
[dir="rtl"]
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered
.text_cell.unrendered .text_cell_render {
display: none;
}
.text_cell .dropzone .input_area {
border: 2px dashed #bababa;
margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
</style>
<style type="text/css"> .highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #f8f8f8; }
.highlight pre .c { color: #408080; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { color: #008000; font-weight: bold } /* Keyword */
.highlight pre .o { color: #666666 } /* Operator */
.highlight pre .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight pre .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight pre .gd { color: #A00000 } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #FF0000 } /* Generic.Error */
.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight pre .gi { color: #00A000 } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight pre .gt { color: #0044DD } /* Generic.Traceback */
.highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { color: #008000 } /* Keyword.Pseudo */
.highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { color: #B00040 } /* Keyword.Type */
.highlight pre .m { color: #666666 } /* Literal.Number */
.highlight pre .s { color: #BA2121 } /* Literal.String */
.highlight pre .na { color: #7D9029 } /* Name.Attribute */
.highlight pre .nb { color: #008000 } /* Name.Builtin */
.highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight pre .no { color: #880000 } /* Name.Constant */
.highlight pre .nd { color: #AA22FF } /* Name.Decorator */
.highlight pre .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight pre .nf { color: #0000FF } /* Name.Function */
.highlight pre .nl { color: #A0A000 } /* Name.Label */
.highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight pre .nv { color: #19177C } /* Name.Variable */
.highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #666666 } /* Literal.Number.Bin */
.highlight pre .mf { color: #666666 } /* Literal.Number.Float */
.highlight pre .mh { color: #666666 } /* Literal.Number.Hex */
.highlight pre .mi { color: #666666 } /* Literal.Number.Integer */
.highlight pre .mo { color: #666666 } /* Literal.Number.Oct */
.highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight pre .sc { color: #BA2121 } /* Literal.String.Char */
.highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight pre .sx { color: #008000 } /* Literal.String.Other */
.highlight pre .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight pre .ss { color: #19177C } /* Literal.String.Symbol */
.highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight pre .fm { color: #0000FF } /* Name.Function.Magic */
.highlight pre .vc { color: #19177C } /* Name.Variable.Class */
.highlight pre .vg { color: #19177C } /* Name.Variable.Global */
.highlight pre .vi { color: #19177C } /* Name.Variable.Instance */
.highlight pre .vm { color: #19177C } /* Name.Variable.Magic */
.highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Example">Example<a class="anchor-link" href="#Example">¶</a></h2><p>Let's generate some data with predefined parameters and noise, then add outliers and compare both simple and robust linear models.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [22]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [44]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Parameters we will try to find later</span>
<span class="n">b0</span> <span class="o">=</span> <span class="mi">24</span>
<span class="n">b1</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">sigma</span> <span class="o">=</span> <span class="mi">3</span>
<span class="c1"># Number of samples to generate</span>
<span class="n">n</span> <span class="o">=</span> <span class="mi">50</span>
<span class="c1"># Generate X</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
<span class="c1"># Set seed to get same random vector</span>
<span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
<span class="c1"># Generate Y</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">b0</span> <span class="o">+</span> <span class="n">b1</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">sigma</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">n</span><span class="p">)</span>
<span class="c1"># Add outliers</span>
<span class="n">y</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span> <span class="o">=</span> <span class="mi">500</span>
<span class="c1"># Show data</span>
<span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">'blue'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
"
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>First, let's check a simple linear regression</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [45]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">sklearn</span> <span class="kn">import</span> <span class="n">linear_model</span>
<span class="n">linreg</span> <span class="o">=</span> <span class="n">linear_model</span><span class="o">.</span><span class="n">LinearRegression</span><span class="p">()</span>
<span class="n">xr</span> <span class="o">=</span> <span class="n">x</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
<span class="n">yr</span> <span class="o">=</span> <span class="n">y</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
<span class="n">linreg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">xr</span><span class="p">,</span> <span class="n">yr</span><span class="p">)</span>
<span class="n">y_true</span> <span class="o">=</span> <span class="n">b0</span> <span class="o">+</span> <span class="n">b1</span> <span class="o">*</span> <span class="n">x</span>
<span class="n">y_predict</span> <span class="o">=</span> <span class="n">linreg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">xr</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">color</span> <span class="o">=</span> <span class="s1">'lightgrey'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y_true</span><span class="p">,</span> <span class="n">color</span> <span class="o">=</span> <span class="s1">'green'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'Target'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y_predict</span><span class="p">,</span> <span class="n">color</span> <span class="o">=</span> <span class="s1">'blue'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'Predicted'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">();</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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7QD86U9/4tRTT2Xp0qX84Q9/iG/r4Ycf5pZbbgGiV6W94oorWLx4MYsXL+Yvf/kLq1atil8oLTY88yc/+QlnnHEGp59+OnfccUd8Wz/+8Y855ZRTOPfcc9m2bVtOHrvG0YvIhLjtNtic3asUU1cH6VwRuK+vj+eeey7+gyDbt29nzZo1LF++nE8++YQf/ehHvPDCC1RUVHDPPffws5/9jO9973vceOONvPTSS5x00klcc801Sbf97W9/m8997nM8+eST9Pf3097ezt13382WLVviP3yybt06tm/fzoYNG3B3Lr30Ul555RUqKip47LHH2Lx5M319fSxdupRly5Zl7fjEKOhFJLS6urqoq6sDoi36G264gY8//pgTTzyR5cuXA7B+/Xq2bt3KOeecA0BPTw9nn3027733HvPmzePkk08G4Otf/zqrV68eto+XXnopfvniwsJCpk+fzoEDBwaVWbduHevWrWPJkiVA9NIK27dvp62tjSuuuILy8nIg2iWUCwp6EZkQ+fgtjlgf/VAVFRXxaXfni1/8Ir/97W8HlUm23li5O9///ve5+eabB82fqB8oUR+9iBzRli9fzquvvkpDQwMAHR0dvP/++5x66qns2LGDDz74AGDYB0HMihUreOCBB4Do78y2trYOu1zxhRdeyEMPPRTv+29qamLPnj2cd955PPXUU3R1ddHW1sYzzzyTk8eooBeRI1pNTQ0PP/ww1157Laeffnq826a0tJTVq1dzySWXsHTpUo455pik699///28/PLLLFq0iGXLlrF161ZmzpzJOeecw8KFC7n99tu54IIL+NrXvsbZZ5/NokWLuPLKK2lra2Pp0qVcc801LF68mIsuuogzzjgjJ49RlykWkZyZ6pcpnkx0mWIREUlJQS8iEnIKehHJqcnQPTzVjfcYKuhFJGdKS0vZt2+fwn4c3J19+/ZRWlo65m1oHL2I5Mzs2bNpbGxk7969+a7KlFZaWsrs2bPHvL6CXkRyJhKJMG/evHxX44inrhsRkZBT0IuIhJyCXkQk5BT0IiIhp6AXEQk5Bb2ISMgp6EVEQk5BLyIScmkHvZkVmtmbZvbH4P48M3vNzBrM7HEzKw7mlwT3G4Llc3NTdRERSUcmLfrvAO8m3L8HuNfdTwIOADcE828ADgTz7w3KiYhInqQV9GY2G7gE+E1w34DzgSeCImuA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
"
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>You can see that it's enough to have just one outlier in a dataset to fool regression algorithm. Let's use a simple bayesian model from the <a href="https://statsim.com/models/linear-regression/">Bayesian linear regression</a> model</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [50]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">iframer</span> <span class="kn">import</span> <span class="o">*</span>
<span class="n">iframer</span><span class="p">(</span><span class="s1">'https://statsim.com/app/?a=%5B%7B%22b</span><span class="si">%22%</span><span class="s1">3A%5B%7B%22n</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%22x%22%</span><span class="s1">2C</span><span class="si">%22s</span><span class="s1">h</span><span class="si">%22%</span><span class="s1">3Afalse%2C%22t</span><span class="si">%22%</span><span class="s1">3A2%2C</span><span class="si">%22u%22%</span><span class="s1">3Afalse%2C</span><span class="si">%22d</span><span class="s1">ims</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%22%</span><span class="s1">22%2C%22v</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%220%</span><span class="s1">2C0.40816327%2C0.81632653%2C1.2244898%2C1.63265306%2C2.04081633%2C2.44897959%2C2.85714286%2C3.26530612%2C3.67346939%2C4.08163265%2C4.48979592%2C4.89795918%2C5.30612245%2C5.71428571%2C6.12244898%2C6.53061224%2C6.93877551%2C7.34693878%2C7.75510204%2C8.16326531%2C8.57142857%2C8.97959184%2C9.3877551%2C9.79591837%2C10.20408163%2C10.6122449%2C11.02040816%2C11.42857143%2C11.83673469%2C12.24489796%2C12.65306122%2C13.06122449%2C13.46938776%2C13.87755102%2C14.28571429%2C14.69387755%2C15.10204082%2C15.51020408%2C15.91836735%2C16.32653061%2C16.73469388%2C17.14285714%2C17.55102041%2C17.95918367%2C18.36734694%2C18.7755102%2C19.18367347%2C19.59183673%2C20</span><span class="si">%22%</span><span class="s1">7D%2C%7B%22n</span><span class="si">%22%</span><span class="s1">3A%22y</span><span class="si">%22%</span><span class="s1">2C</span><span class="si">%22s</span><span class="s1">h</span><span class="si">%22%</span><span class="s1">3Afalse%2C%22t</span><span class="si">%22%</span><span class="s1">3A2%2C</span><span class="si">%22u%22%</span><span class="s1">3Afalse%2C</span><span class="si">%22d</span><span class="s1">ims</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%22%</span><span class="s1">22%2C%22v</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%2218.75070358%</span><span class="s1">2C25.84436774%2C29.09176047%2C25.69167148%2C30.20926848%2C29.62428918%2C29.56149819%2C500%2C29.96212475%2C32.11194311%2C30.78918435%2C34.2850823%2C32.04513322%2C37.06278611%2C37.44673385%2C35.93166453%2C35.46738336%2C40.96674908%2C37.37947068%2C36.15524934%2C45.18347559%2C45.76767267%2C41.20354626%2C40.24820299%2C44.14539281%2C47.21940987%2C47.41749083%2C50.1254847%2C45.87842868%2C47.84049743%2C49.15699474%2C44.97647146%2C47.85339206%2C53.38813754%2C54.00643633%2C51.20358779%2C56.95662191%2C49.13223115%2C50.95121102%2C52.13943115%2C55.01974374%2C55.46487254%2C58.30765798%2C57.26322461%2C63.81761157%2C55.53540701%2C58.60109011%2C63.4398702%2C58.34293796%2C68.4121416</span><span class="si">%22%</span><span class="s1">7D%2C%7B</span><span class="si">%22d%22%</span><span class="s1">3A%22Uniform</span><span class="si">%22%</span><span class="s1">2C%22n</span><span class="si">%22%</span><span class="s1">3A%22b0</span><span class="si">%22%</span><span class="s1">2C</span><span class="si">%22o%22%</span><span class="s1">3Afalse%2C%22p</span><span class="si">%22%</span><span class="s1">3A%7B</span><span class="si">%22a%22%</span><span class="s1">3A%22-100</span><span class="si">%22%</span><span class="s1">2C%22b</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%22100%</span><span class="s1">22%7D%2C</span><span class="si">%22s</span><span class="s1">h</span><span class="si">%22%</span><span class="s1">3Atrue%2C%22t</span><span class="si">%22%</span><span class="s1">3A0%2C</span><span class="si">%22d</span><span class="s1">ims</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%221%</span><span class="s1">22%7D%2C%7B</span><span class="si">%22d%22%</span><span class="s1">3A%22Uniform</span><span class="si">%22%</span><span class="s1">2C%22n</span><span class="si">%22%</span><span class="s1">3A%22b1</span><span class="si">%22%</span><span class="s1">2C</span><span class="si">%22o%22%</span><span class="s1">3Afalse%2C%22p</span><span class="si">%22%</span><span class="s1">3A%7B</span><span class="si">%22a%22%</span><span class="s1">3A%22-50</span><span class="si">%22%</span><span class="s1">2C%22b</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%2250%</span><span class="s1">22%7D%2C</span><span class="si">%22s</span><span class="s1">h</span><span class="si">%22%</span><span class="s1">3Atrue%2C%22t</span><span class="si">%22%</span><span class="s1">3A0%2C</span><span class="si">%22d</span><span class="s1">ims</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%221%</span><span class="s1">22%7D%2C%7B</span><span class="si">%22d%22%</span><span class="s1">3A%22Uniform</span><span class="si">%22%</span><span class="s1">2C%22n</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%22s</span><span class="s1">igma</span><span class="si">%22%</span><span class="s1">2C</span><span class="si">%22o%22%</span><span class="s1">3Afalse%2C%22p</span><span class="si">%22%</span><span class="s1">3A%7B</span><span class="si">%22a%22%</span><span class="s1">3A</span><span class="si">%220.01%</span><span class="s1">22%2C%22b</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%2210%</span><span class="s1">22%7D%2C</span><span class="si">%22s</span><span class="s1">h</span><span class="si">%22%</span><span class="s1">3Atrue%2C%22t</span><span class="si">%22%</span><span class="s1">3A0%2C</span><span class="si">%22d</span><span class="s1">ims</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%221%</span><span class="s1">22%7D%2C%7B</span><span class="si">%22d%22%</span><span class="s1">3A</span><span class="si">%22G</span><span class="s1">aussian</span><span class="si">%22%</span><span class="s1">2C%22p</span><span class="si">%22%</span><span class="s1">3A%7B%22mu</span><span class="si">%22%</span><span class="s1">3A%22b0</span><span class="si">%20%</span><span class="s1">2B%20b1</span><span class="si">%20%</span><span class="s1">2A</span><span class="si">%20x%22%</span><span class="s1">2C</span><span class="si">%22s</span><span class="s1">igma</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%22s</span><span class="s1">igma</span><span class="si">%22%</span><span class="s1">7D%2C%22t</span><span class="si">%22%</span><span class="s1">3A4%2C%22v</span><span class="si">%22%</span><span class="s1">3A%22y</span><span class="si">%22%</span><span class="s1">7D%5D%2C%22mod</span><span class="si">%22%</span><span class="s1">3A%7B%22n</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%22Li</span><span class="s1">nReg</span><span class="si">%22%</span><span class="s1">2C</span><span class="si">%22e%22%</span><span class="s1">3A</span><span class="si">%22%</span><span class="s1">22%2C</span><span class="si">%22s%22%</span><span class="s1">3A1%2C%22m</span><span class="si">%22%</span><span class="s1">3A%22HMC</span><span class="si">%22%</span><span class="s1">7D%2C%22met</span><span class="si">%22%</span><span class="s1">3A%7B</span><span class="si">%22s</span><span class="s1">m</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%225000%</span><span class="s1">22%2C</span><span class="si">%22l%</span><span class="s1">22%3A</span><span class="si">%22%</span><span class="s1">22%2C%22b</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%22500%</span><span class="s1">22%2C</span><span class="si">%22c</span><span class="s1">hains</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%223%</span><span class="s1">22%2C</span><span class="si">%22s%22%</span><span class="s1">3A</span><span class="si">%227%</span><span class="s1">22%2C</span><span class="si">%22s</span><span class="s1">tepSize</span><span class="si">%22%</span><span class="s1">3A</span><span class="si">%220.3%</span><span class="s1">22%7D%7D%5D'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_html rendered_html output_subarea ">
<div class="iframer-wrapper" style="position: relative; padding-bottom: 550px; padding-top: 25px; height: 0;">
<iframe src="https://statsim.com/app/?a=%5B%7B%22b%22%3A%5B%7B%22n%22%3A%22x%22%2C%22sh%22%3Afalse%2C%22t%22%3A2%2C%22u%22%3Afalse%2C%22dims%22%3A%22%22%2C%22v%22%3A%220%2C0.40816327%2C0.81632653%2C1.2244898%2C1.63265306%2C2.04081633%2C2.44897959%2C2.85714286%2C3.26530612%2C3.67346939%2C4.08163265%2C4.48979592%2C4.89795918%2C5.30612245%2C5.71428571%2C6.12244898%2C6.53061224%2C6.93877551%2C7.34693878%2C7.75510204%2C8.16326531%2C8.57142857%2C8.97959184%2C9.3877551%2C9.79591837%2C10.20408163%2C10.6122449%2C11.02040816%2C11.42857143%2C11.83673469%2C12.24489796%2C12.65306122%2C13.06122449%2C13.46938776%2C13.87755102%2C14.28571429%2C14.69387755%2C15.10204082%2C15.51020408%2C15.91836735%2C16.32653061%2C16.73469388%2C17.14285714%2C17.55102041%2C17.95918367%2C18.36734694%2C18.7755102%2C19.18367347%2C19.59183673%2C20%22%7D%2C%7B%22n%22%3A%22y%22%2C%22sh%22%3Afalse%2C%22t%22%3A2%2C%22u%22%3Afalse%2C%22dims%22%3A%22%22%2C%22v%22%3A%2218.75070358%2C25.84436774%2C29.09176047%2C25.69167148%2C30.20926848%2C29.62428918%2C29.56149819%2C500%2C29.96212475%2C32.11194311%2C30.78918435%2C34.2850823%2C32.04513322%2C37.06278611%2C37.44673385%2C35.93166453%2C35.46738336%2C40.96674908%2C37.37947068%2C36.15524934%2C45.18347559%2C45.76767267%2C41.20354626%2C40.24820299%2C44.14539281%2C47.21940987%2C47.41749083%2C50.1254847%2C45.87842868%2C47.84049743%2C49.15699474%2C44.97647146%2C47.85339206%2C53.38813754%2C54.00643633%2C51.20358779%2C56.95662191%2C49.13223115%2C50.95121102%2C52.13943115%2C55.01974374%2C55.46487254%2C58.30765798%2C57.26322461%2C63.81761157%2C55.53540701%2C58.60109011%2C63.4398702%2C58.34293796%2C68.4121416%22%7D%2C%7B%22d%22%3A%22Uniform%22%2C%22n%22%3A%22b0%22%2C%22o%22%3Afalse%2C%22p%22%3A%7B%22a%22%3A%22-100%22%2C%22b%22%3A%22100%22%7D%2C%22sh%22%3Atrue%2C%22t%22%3A0%2C%22dims%22%3A%221%22%7D%2C%7B%22d%22%3A%22Uniform%22%2C%22n%22%3A%22b1%22%2C%22o%22%3Afalse%2C%22p%22%3A%7B%22a%22%3A%22-50%22%2C%22b%22%3A%2250%22%7D%2C%22sh%22%3Atrue%2C%22t%22%3A0%2C%22dims%22%3A%221%22%7D%2C%7B%22d%22%3A%22Uniform%22%2C%22n%22%3A%22sigma%22%2C%22o%22%3Afalse%2C%22p%22%3A%7B%22a%22%3A%220.01%22%2C%22b%22%3A%2210%22%7D%2C%22sh%22%3Atrue%2C%22t%22%3A0%2C%22dims%22%3A%221%22%7D%2C%7B%22d%22%3A%22Gaussian%22%2C%22p%22%3A%7B%22mu%22%3A%22b0%20%2B%20b1%20%2A%20x%22%2C%22sigma%22%3A%22sigma%22%7D%2C%22t%22%3A4%2C%22v%22%3A%22y%22%7D%5D%2C%22mod%22%3A%7B%22n%22%3A%22LinReg%22%2C%22e%22%3A%22%22%2C%22s%22%3A1%2C%22m%22%3A%22HMC%22%7D%2C%22met%22%3A%7B%22sm%22%3A%225000%22%2C%22l%22%3A%22%22%2C%22b%22%3A%22500%22%2C%22chains%22%3A%223%22%2C%22s%22%3A%227%22%2C%22stepSize%22%3A%220.3%22%7D%7D%5D" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
</div><br>
<a class="iframer-link" href="https://statsim.com/app/?a=%5B%7B%22b%22%3A%5B%7B%22n%22%3A%22x%22%2C%22sh%22%3Afalse%2C%22t%22%3A2%2C%22u%22%3Afalse%2C%22dims%22%3A%22%22%2C%22v%22%3A%220%2C0.40816327%2C0.81632653%2C1.2244898%2C1.63265306%2C2.04081633%2C2.44897959%2C2.85714286%2C3.26530612%2C3.67346939%2C4.08163265%2C4.48979592%2C4.89795918%2C5.30612245%2C5.71428571%2C6.12244898%2C6.53061224%2C6.93877551%2C7.34693878%2C7.75510204%2C8.16326531%2C8.57142857%2C8.97959184%2C9.3877551%2C9.79591837%2C10.20408163%2C10.6122449%2C11.02040816%2C11.42857143%2C11.83673469%2C12.24489796%2C12.65306122%2C13.06122449%2C13.46938776%2C13.87755102%2C14.28571429%2C14.69387755%2C15.10204082%2C15.51020408%2C15.91836735%2C16.32653061%2C16.73469388%2C17.14285714%2C17.55102041%2C17.95918367%2C18.36734694%2C18.7755102%2C19.18367347%2C19.59183673%2C20%22%7D%2C%7B%22n%22%3A%22y%22%2C%22sh%22%3Afalse%2C%22t%22%3A2%2C%22u%22%3Afalse%2C%22dims%22%3A%22%22%2C%22v%22%3A%2218.75070358%2C25.84436774%2C29.09176047%2C25.69167148%2C30.20926848%2C29.62428918%2C29.56149819%2C500%2C29.96212475%2C32.11194311%2C30.78918435%2C34.2850823%2C32.04513322%2C37.06278611%2C37.44673385%2C35.93166453%2C35.46738336%2C40.96674908%2C37.37947068%2C36.15524934%2C45.18347559%2C45.76767267%2C41.20354626%2C40.24820299%2C44.14539281%2C47.21940987%2C47.41749083%2C50.1254847%2C45.87842868%2C47.84049743%2C49.15699474%2C44.97647146%2C47.85339206%2C53.38813754%2C54.00643633%2C51.20358779%2C56.95662191%2C49.13223115%2C50.95121102%2C52.13943115%2C55.01974374%2C55.46487254%2C58.30765798%2C57.26322461%2C63.81761157%2C55.53540701%2C58.60109011%2C63.4398702%2C58.34293796%2C68.4121416%22%7D%2C%7B%22d%22%3A%22Uniform%22%2C%22n%22%3A%22b0%22%2C%22o%22%3Afalse%2C%22p%22%3A%7B%22a%22%3A%22-100%22%2C%22b%22%3A%22100%22%7D%2C%22sh%22%3Atrue%2C%22t%22%3A0%2C%22dims%22%3A%221%22%7D%2C%7B%22d%22%3A%22Uniform%22%2C%22n%22%3A%22b1%22%2C%22o%22%3Afalse%2C%22p%22%3A%7B%22a%22%3A%22-50%22%2C%22b%22%3A%2250%22%7D%2C%22sh%22%3Atrue%2C%22t%22%3A0%2C%22dims%22%3A%221%22%7D%2C%7B%22d%22%3A%22Uniform%22%2C%22n%22%3A%22sigma%22%2C%22o%22%3Afalse%2C%22p%22%3A%7B%22a%22%3A%220.01%22%2C%22b%22%3A%2210%22%7D%2C%22sh%22%3Atrue%2C%22t%22%3A0%2C%22dims%22%3A%221%22%7D%2C%7B%22d%22%3A%22Gaussian%22%2C%22p%22%3A%7B%22mu%22%3A%22b0%20%2B%20b1%20%2A%20x%22%2C%22sigma%22%3A%22sigma%22%7D%2C%22t%22%3A4%2C%22v%22%3A%22y%22%7D%5D%2C%22mod%22%3A%7B%22n%22%3A%22LinReg%22%2C%22e%22%3A%22%22%2C%22s%22%3A1%2C%22m%22%3A%22HMC%22%7D%2C%22met%22%3A%7B%22sm%22%3A%225000%22%2C%22l%22%3A%22%22%2C%22b%22%3A%22500%22%2C%22chains%22%3A%223%22%2C%22s%22%3A%227%22%2C%22stepSize%22%3A%220.3%22%7D%7D%5D" target="_blank" style="margin: 10px 0;">Open in statsim.com</a>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [51]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pymc3</span> <span class="k">as</span> <span class="nn">pm</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [52]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Generated PyMC3 code</span>
<span class="k">with</span> <span class="n">pm</span><span class="o">.</span><span class="n">Model</span><span class="p">()</span> <span class="k">as</span> <span class="n">model</span><span class="p">:</span>
<span class="n">b0</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">Uniform</span><span class="p">(</span><span class="s1">'b0'</span><span class="p">,</span> <span class="n">lower</span><span class="o">=-</span><span class="mi">100</span><span class="p">,</span> <span class="n">upper</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="n">b1</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">Uniform</span><span class="p">(</span><span class="s1">'b1'</span><span class="p">,</span> <span class="n">lower</span><span class="o">=-</span><span class="mi">50</span><span class="p">,</span> <span class="n">upper</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
<span class="n">sigma</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">Uniform</span><span class="p">(</span><span class="s1">'sigma'</span><span class="p">,</span> <span class="n">lower</span><span class="o">=</span><span class="mf">0.01</span><span class="p">,</span> <span class="n">upper</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="n">observer</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">Normal</span><span class="p">(</span><span class="s1">'observer'</span><span class="p">,</span> <span class="n">mu</span><span class="o">=</span><span class="n">b0</span> <span class="o">+</span> <span class="n">b1</span> <span class="o">*</span> <span class="n">x</span><span class="p">,</span> <span class="n">sd</span><span class="o">=</span><span class="n">sigma</span><span class="p">,</span> <span class="n">observed</span><span class="o">=</span><span class="n">y</span><span class="p">)</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="n">model</span><span class="o">=</span><span class="n">model</span><span class="p">,</span> <span class="n">step</span><span class="o">=</span><span class="n">pm</span><span class="o">.</span><span class="n">Metropolis</span><span class="p">(),</span> <span class="n">draws</span><span class="o">=</span><span class="mi">5000</span><span class="o">*</span><span class="mi">20</span><span class="p">,</span> <span class="n">tune</span><span class="o">=</span><span class="mi">500</span><span class="p">)</span>
<span class="n">pm</span><span class="o">.</span><span class="n">traceplot</span><span class="p">(</span><span class="n">result</span><span class="p">,</span> <span class="n">varnames</span><span class="o">=</span><span class="p">[</span><span class="s1">'b0'</span><span class="p">,</span><span class="s1">'b1'</span><span class="p">,</span><span class="s1">'sigma'</span><span class="p">]);</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stderr output_text">
<pre>Multiprocess sampling (2 chains in 2 jobs)
CompoundStep
>Metropolis: [sigma]
>Metropolis: [b1]
>Metropolis: [b0]
Sampling 2 chains: 100%|██████████| 201000/201000 [00:43<00:00, 4573.72draws/s]
The number of effective samples is smaller than 10% for some parameters.
</pre>
</div>
</div>
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
"
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [53]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">result</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt output_prompt">Out[53]:</div>
<div class="output_text output_subarea output_execute_result">
<pre><MultiTrace: 2 chains, 100000 iterations, 6 variables></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [55]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">pm</span><span class="o">.</span><span class="n">plot_posterior_predictive_glm</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_text output_error">
<pre>
<span class="ansi-red-fg">---------------------------------------------------------------------------</span>
<span class="ansi-red-fg">KeyError</span> Traceback (most recent call last)
<span class="ansi-green-fg"><ipython-input-55-9048e26295cd></span> in <span class="ansi-cyan-fg"><module></span><span class="ansi-blue-fg">()</span>
<span class="ansi-green-fg">----> 1</span><span class="ansi-red-fg"> </span>pm<span class="ansi-blue-fg">.</span>plot_posterior_predictive_glm<span class="ansi-blue-fg">(</span>result<span class="ansi-blue-fg">)</span>
<span class="ansi-green-fg">/usr/local/lib/python3.5/dist-packages/pymc3/plots/posteriorplot.py</span> in <span class="ansi-cyan-fg">plot_posterior_predictive_glm</span><span class="ansi-blue-fg">(trace, eval, lm, samples, **kwargs)</span>
<span class="ansi-green-intense-fg ansi-bold"> 151</span> <span class="ansi-green-fg">for</span> rand_loc <span class="ansi-green-fg">in</span> np<span class="ansi-blue-fg">.</span>random<span class="ansi-blue-fg">.</span>randint<span class="ansi-blue-fg">(</span><span class="ansi-cyan-fg">0</span><span class="ansi-blue-fg">,</span> len<span class="ansi-blue-fg">(</span>trace<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">,</span> samples<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">:</span>
<span class="ansi-green-intense-fg ansi-bold"> 152</span> rand_sample <span class="ansi-blue-fg">=</span> trace<span class="ansi-blue-fg">[</span>rand_loc<span class="ansi-blue-fg">]</span>
<span class="ansi-green-fg">--> 153</span><span class="ansi-red-fg"> </span>plt<span class="ansi-blue-fg">.</span>plot<span class="ansi-blue-fg">(</span>eval<span class="ansi-blue-fg">,</span> lm<span class="ansi-blue-fg">(</span>eval<span class="ansi-blue-fg">,</span> rand_sample<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">,</span> <span class="ansi-blue-fg">**</span>kwargs<span class="ansi-blue-fg">)</span>
<span class="ansi-green-intense-fg ansi-bold"> 154</span> <span class="ansi-red-fg"># Make sure to not plot label multiple times</span>
<span class="ansi-green-intense-fg ansi-bold"> 155</span> kwargs<span class="ansi-blue-fg">.</span>pop<span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">'label'</span><span class="ansi-blue-fg">,</span> <span class="ansi-green-fg">None</span><span class="ansi-blue-fg">)</span>
<span class="ansi-green-fg">/usr/local/lib/python3.5/dist-packages/pymc3/plots/posteriorplot.py</span> in <span class="ansi-cyan-fg"><lambda></span><span class="ansi-blue-fg">(x, sample)</span>
<span class="ansi-green-intense-fg ansi-bold"> 138</span> """
<span class="ansi-green-intense-fg ansi-bold"> 139</span> <span class="ansi-green-fg">if</span> lm <span class="ansi-green-fg">is</span> <span class="ansi-green-fg">None</span><span class="ansi-blue-fg">:</span>
<span class="ansi-green-fg">--> 140</span><span class="ansi-red-fg"> </span>lm <span class="ansi-blue-fg">=</span> <span class="ansi-green-fg">lambda</span> x<span class="ansi-blue-fg">,</span> sample<span class="ansi-blue-fg">:</span> sample<span class="ansi-blue-fg">[</span><span class="ansi-blue-fg">'Intercept'</span><span class="ansi-blue-fg">]</span> <span class="ansi-blue-fg">+</span> sample<span class="ansi-blue-fg">[</span><span class="ansi-blue-fg">'x'</span><span class="ansi-blue-fg">]</span> <span class="ansi-blue-fg">*</span> x
<span class="ansi-green-intense-fg ansi-bold"> 141</span>
<span class="ansi-green-intense-fg ansi-bold"> 142</span> <span class="ansi-green-fg">if</span> eval <span class="ansi-green-fg">is</span> <span class="ansi-green-fg">None</span><span class="ansi-blue-fg">:</span>
<span class="ansi-red-fg">KeyError</span>: 'Intercept'</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [ ]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
<script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
var mathjaxscript = document.createElement('script');
mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
mathjaxscript.type = 'text/javascript';
mathjaxscript.src = '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
mathjaxscript[(window.opera ? "innerHTML" : "text")] =
"MathJax.Hub.Config({" +
" config: ['MMLorHTML.js']," +
" TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," +
" jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
" extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
" displayAlign: 'center'," +
" displayIndent: '0em'," +
" showMathMenu: true," +
" tex2jax: { " +
" inlineMath: [ ['$','$'] ], " +
" displayMath: [ ['$$','$$'] ]," +
" processEscapes: true," +
" preview: 'TeX'," +
" }, " +
" 'HTML-CSS': { " +
" linebreaks: { automatic: true, width: '95% container' }, " +
" styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" +
" } " +
"}); ";
(document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
</script>
Bayesian A/B testing2019-04-17T20:00:00+02:002019-04-17T20:00:00+02:00Anton Zemlyanskytag:statsim.com,2019-04-17:/models/bayesian-ab-testing/<p>Compare conversion rates and calculate how likely one option is better than another in a probabilistic (bayesian) fashion.</p><style type="text/css">/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
http://www.xcolors.net/dl/baskerville-ivorylight and
http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
color: #3E424D;
}
.ansi-black-bg {
background-color: #3E424D;
}
.ansi-black-intense-fg {
color: #282C36;
}
.ansi-black-intense-bg {
background-color: #282C36;
}
.ansi-red-fg {
color: #E75C58;
}
.ansi-red-bg {
background-color: #E75C58;
}
.ansi-red-intense-fg {
color: #B22B31;
}
.ansi-red-intense-bg {
background-color: #B22B31;
}
.ansi-green-fg {
color: #00A250;
}
.ansi-green-bg {
background-color: #00A250;
}
.ansi-green-intense-fg {
color: #007427;
}
.ansi-green-intense-bg {
background-color: #007427;
}
.ansi-yellow-fg {
color: #DDB62B;
}
.ansi-yellow-bg {
background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
color: #B27D12;
}
.ansi-yellow-intense-bg {
background-color: #B27D12;
}
.ansi-blue-fg {
color: #208FFB;
}
.ansi-blue-bg {
background-color: #208FFB;
}
.ansi-blue-intense-fg {
color: #0065CA;
}
.ansi-blue-intense-bg {
background-color: #0065CA;
}
.ansi-magenta-fg {
color: #D160C4;
}
.ansi-magenta-bg {
background-color: #D160C4;
}
.ansi-magenta-intense-fg {
color: #A03196;
}
.ansi-magenta-intense-bg {
background-color: #A03196;
}
.ansi-cyan-fg {
color: #60C6C8;
}
.ansi-cyan-bg {
background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
color: #258F8F;
}
.ansi-cyan-intense-bg {
background-color: #258F8F;
}
.ansi-white-fg {
color: #C5C1B4;
}
.ansi-white-bg {
background-color: #C5C1B4;
}
.ansi-white-intense-fg {
color: #A1A6B2;
}
.ansi-white-intense-bg {
background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
color: #FFFFFF;
}
.ansi-default-inverse-bg {
background-color: #000000;
}
.ansi-bold {
font-weight: bold;
}
.ansi-underline {
text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
font-weight: bold;
}
.ansi-inverse {
outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
position: relative;
overflow: visible;
}
div.cell:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: transparent;
}
div.cell.jupyter-soft-selected {
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #42A5F5;
}
@media print {
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: transparent;
}
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #66BB6A;
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
/* Note that this should set vertical padding only, since CodeMirror assumes
that horizontal padding will be set on CodeMirror pre */
padding: 0.4em 0;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
use .CodeMirror-lines for vertical */
padding: 0 0.4em;
border: 0;
border-radius: 0;
}
.CodeMirror-cursor {
border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.CodeMirror-cursor {
border-left: 2px solid black;
}
}
@media screen and (min-width: 4320px) {
.CodeMirror-cursor {
border-left: 4px solid black;
}
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area
div.output_area
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
div.output_area .mglyph > img {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 1px 0 1px 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
padding-left: 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html pre,
.rendered_html tr,
.rendered_html th,
.rendered_html tbody tr:nth-child(odd) {
background: #f5f5f5;
}
.rendered_html tbody tr:hover {
background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html img.unconfined,
.rendered_html * + .alert {
margin-top: 1em;
}
[dir="rtl"]
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered
.text_cell.unrendered .text_cell_render {
display: none;
}
.text_cell .dropzone .input_area {
border: 2px dashed #bababa;
margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
</style>
<style type="text/css"> .highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #f8f8f8; }
.highlight pre .c { color: #408080; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { color: #008000; font-weight: bold } /* Keyword */
.highlight pre .o { color: #666666 } /* Operator */
.highlight pre .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight pre .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight pre .gd { color: #A00000 } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #FF0000 } /* Generic.Error */
.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight pre .gi { color: #00A000 } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight pre .gt { color: #0044DD } /* Generic.Traceback */
.highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { color: #008000 } /* Keyword.Pseudo */
.highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { color: #B00040 } /* Keyword.Type */
.highlight pre .m { color: #666666 } /* Literal.Number */
.highlight pre .s { color: #BA2121 } /* Literal.String */
.highlight pre .na { color: #7D9029 } /* Name.Attribute */
.highlight pre .nb { color: #008000 } /* Name.Builtin */
.highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight pre .no { color: #880000 } /* Name.Constant */
.highlight pre .nd { color: #AA22FF } /* Name.Decorator */
.highlight pre .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight pre .nf { color: #0000FF } /* Name.Function */
.highlight pre .nl { color: #A0A000 } /* Name.Label */
.highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight pre .nv { color: #19177C } /* Name.Variable */
.highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #666666 } /* Literal.Number.Bin */
.highlight pre .mf { color: #666666 } /* Literal.Number.Float */
.highlight pre .mh { color: #666666 } /* Literal.Number.Hex */
.highlight pre .mi { color: #666666 } /* Literal.Number.Integer */
.highlight pre .mo { color: #666666 } /* Literal.Number.Oct */
.highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight pre .sc { color: #BA2121 } /* Literal.String.Char */
.highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight pre .sx { color: #008000 } /* Literal.String.Other */
.highlight pre .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight pre .ss { color: #19177C } /* Literal.String.Symbol */
.highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight pre .fm { color: #0000FF } /* Name.Function.Magic */
.highlight pre .vc { color: #19177C } /* Name.Variable.Class */
.highlight pre .vg { color: #19177C } /* Name.Variable.Global */
.highlight pre .vi { color: #19177C } /* Name.Variable.Instance */
.highlight pre .vm { color: #19177C } /* Name.Variable.Magic */
.highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [1]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">iframer</span> <span class="kn">import</span> <span class="o">*</span>
<span class="n">iframer</span><span class="p">(</span><span class="s1">'https://statsim.com/app/?m=abtest&preview=1'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_html rendered_html output_subarea ">
<div class="iframer-wrapper" style="position: relative; padding-bottom: 550px; padding-top: 25px; height: 0;">
<iframe src="https://statsim.com/app/?m=abtest&preview=1" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
</div><br>
<a class="iframer-link" href="https://statsim.com/app/?m=abtest&preview=1" target="_blank" style="margin: 10px 0;">Open in statsim.com</a>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Model">Model<a class="anchor-link" href="#Model">¶</a></h2><p>The main point of A/B tests is to find how one version is better than another. The most intuitive approach is to find conversion rates for each version, then compare them. We are not really interested in conversion rates, but their difference. The output of the model is approximation of the random variable $Diff = Rate_B - Rate_A$. If we know it's distribution and cumulative distribution function we can find probability $P(Rate_B < Rate_A)$ or equivalently $P(Rate_B - Rate_A < 0) = P(Diff < 0) = CDF_{Diff}(0)$</p>
$$
\begin{align}
Rate_A \sim \text{Uniform}(0,1) \\
Rate_B \sim \text{Uniform}(0,1) \\
Conversions_A \sim \text{Binomial}(Rate_A, N_A) \\
Conversions_B \sim \text{Binomial}(Rate_B, N_B) \\
Diff = Rate_B - Rate_A
\end{align}
$$
</div>
</div>
</div>
<script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
var mathjaxscript = document.createElement('script');
mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
mathjaxscript.type = 'text/javascript';
mathjaxscript.src = '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
mathjaxscript[(window.opera ? "innerHTML" : "text")] =
"MathJax.Hub.Config({" +
" config: ['MMLorHTML.js']," +
" TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," +
" jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
" extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
" displayAlign: 'center'," +
" displayIndent: '0em'," +
" showMathMenu: true," +
" tex2jax: { " +
" inlineMath: [ ['$','$'] ], " +
" displayMath: [ ['$$','$$'] ]," +
" processEscapes: true," +
" preview: 'TeX'," +
" }, " +
" 'HTML-CSS': { " +
" linebreaks: { automatic: true, width: '95% container' }, " +
" styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" +
" } " +
"}); ";
(document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
</script>
Bayesian linear regression2019-04-17T20:00:00+02:002019-04-17T20:00:00+02:00Anton Zemlyanskytag:statsim.com,2019-04-17:/models/linear-regression/<p>Find linear relationship between variables in Bayesian way (using probability to measure uncertainty)</p><style type="text/css">/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
http://www.xcolors.net/dl/baskerville-ivorylight and
http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
color: #3E424D;
}
.ansi-black-bg {
background-color: #3E424D;
}
.ansi-black-intense-fg {
color: #282C36;
}
.ansi-black-intense-bg {
background-color: #282C36;
}
.ansi-red-fg {
color: #E75C58;
}
.ansi-red-bg {
background-color: #E75C58;
}
.ansi-red-intense-fg {
color: #B22B31;
}
.ansi-red-intense-bg {
background-color: #B22B31;
}
.ansi-green-fg {
color: #00A250;
}
.ansi-green-bg {
background-color: #00A250;
}
.ansi-green-intense-fg {
color: #007427;
}
.ansi-green-intense-bg {
background-color: #007427;
}
.ansi-yellow-fg {
color: #DDB62B;
}
.ansi-yellow-bg {
background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
color: #B27D12;
}
.ansi-yellow-intense-bg {
background-color: #B27D12;
}
.ansi-blue-fg {
color: #208FFB;
}
.ansi-blue-bg {
background-color: #208FFB;
}
.ansi-blue-intense-fg {
color: #0065CA;
}
.ansi-blue-intense-bg {
background-color: #0065CA;
}
.ansi-magenta-fg {
color: #D160C4;
}
.ansi-magenta-bg {
background-color: #D160C4;
}
.ansi-magenta-intense-fg {
color: #A03196;
}
.ansi-magenta-intense-bg {
background-color: #A03196;
}
.ansi-cyan-fg {
color: #60C6C8;
}
.ansi-cyan-bg {
background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
color: #258F8F;
}
.ansi-cyan-intense-bg {
background-color: #258F8F;
}
.ansi-white-fg {
color: #C5C1B4;
}
.ansi-white-bg {
background-color: #C5C1B4;
}
.ansi-white-intense-fg {
color: #A1A6B2;
}
.ansi-white-intense-bg {
background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
color: #FFFFFF;
}
.ansi-default-inverse-bg {
background-color: #000000;
}
.ansi-bold {
font-weight: bold;
}
.ansi-underline {
text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
font-weight: bold;
}
.ansi-inverse {
outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
position: relative;
overflow: visible;
}
div.cell:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: transparent;
}
div.cell.jupyter-soft-selected {
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #42A5F5;
}
@media print {
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: transparent;
}
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #66BB6A;
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
/* Note that this should set vertical padding only, since CodeMirror assumes
that horizontal padding will be set on CodeMirror pre */
padding: 0.4em 0;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
use .CodeMirror-lines for vertical */
padding: 0 0.4em;
border: 0;
border-radius: 0;
}
.CodeMirror-cursor {
border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.CodeMirror-cursor {
border-left: 2px solid black;
}
}
@media screen and (min-width: 4320px) {
.CodeMirror-cursor {
border-left: 4px solid black;
}
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area
div.output_area
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
div.output_area .mglyph > img {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 1px 0 1px 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
padding-left: 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html pre,
.rendered_html tr,
.rendered_html th,
.rendered_html tbody tr:nth-child(odd) {
background: #f5f5f5;
}
.rendered_html tbody tr:hover {
background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html img.unconfined,
.rendered_html * + .alert {
margin-top: 1em;
}
[dir="rtl"]
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered
.text_cell.unrendered .text_cell_render {
display: none;
}
.text_cell .dropzone .input_area {
border: 2px dashed #bababa;
margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
</style>
<style type="text/css"> .highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #f8f8f8; }
.highlight pre .c { color: #408080; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { color: #008000; font-weight: bold } /* Keyword */
.highlight pre .o { color: #666666 } /* Operator */
.highlight pre .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight pre .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight pre .gd { color: #A00000 } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #FF0000 } /* Generic.Error */
.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight pre .gi { color: #00A000 } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight pre .gt { color: #0044DD } /* Generic.Traceback */
.highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { color: #008000 } /* Keyword.Pseudo */
.highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { color: #B00040 } /* Keyword.Type */
.highlight pre .m { color: #666666 } /* Literal.Number */
.highlight pre .s { color: #BA2121 } /* Literal.String */
.highlight pre .na { color: #7D9029 } /* Name.Attribute */
.highlight pre .nb { color: #008000 } /* Name.Builtin */
.highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight pre .no { color: #880000 } /* Name.Constant */
.highlight pre .nd { color: #AA22FF } /* Name.Decorator */
.highlight pre .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight pre .nf { color: #0000FF } /* Name.Function */
.highlight pre .nl { color: #A0A000 } /* Name.Label */
.highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight pre .nv { color: #19177C } /* Name.Variable */
.highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #666666 } /* Literal.Number.Bin */
.highlight pre .mf { color: #666666 } /* Literal.Number.Float */
.highlight pre .mh { color: #666666 } /* Literal.Number.Hex */
.highlight pre .mi { color: #666666 } /* Literal.Number.Integer */
.highlight pre .mo { color: #666666 } /* Literal.Number.Oct */
.highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight pre .sc { color: #BA2121 } /* Literal.String.Char */
.highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight pre .sx { color: #008000 } /* Literal.String.Other */
.highlight pre .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight pre .ss { color: #19177C } /* Literal.String.Symbol */
.highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight pre .fm { color: #0000FF } /* Name.Function.Magic */
.highlight pre .vc { color: #19177C } /* Name.Variable.Class */
.highlight pre .vg { color: #19177C } /* Name.Variable.Global */
.highlight pre .vi { color: #19177C } /* Name.Variable.Instance */
.highlight pre .vm { color: #19177C } /* Name.Variable.Magic */
.highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="About-linear-regression-model">About linear regression model<a class="anchor-link" href="#About-linear-regression-model">¶</a></h2><p>Linear regression is one of the simplest and popular statistical models. Applying it we assume linear relationship between response variable(s) $y$ and explanatory variable(s) $x$. Mathematically such relationship can be written as</p>
$$ y_i = \beta_{0} + \beta_{1}x_{1i} + ... + \beta_{n}x_{ni} + \epsilon_{i}$$<p></p>
<p>where $ \epsilon_{i} $ is random noise and $\beta_0, \beta_1 ... \beta_n$ - unknown coefficients (model parameters) we want to predict. It's also often assumed that $ \epsilon_{i} $ is normally distributed with zero mean and unknown variance.</p>
<p>In case of 1 response variable $y$ and 1 explanatory variable $x$:</p>
$$ y_i = f(x_i) = \beta_{0} + \beta_{1}x_{i} + \epsilon_{i}$$<p></p>
<p>The goal of model fitting is to find unknown model parameters using the training data $ (x_1,y_1),(x_2,y_2),...,(x_n, y_n)$ . After we find such parameters it's possible to <em>run</em> the model in direct way predicting $y_{n+1}$ with $x_{n+1}$</p>
<p>Non-bayesian way of finding such coefficients is <a href="https://en.wikipedia.org/wiki/Mathematical_optimization">optimization</a> of a loss function (i.e. error minimization). In case of <a href="https://en.wikipedia.org/wiki/Ordinary_least_squares">OLS</a> it's all about minimizing the sum of the squared differences between the observed dependent variables $y_i$ and predicted ones $f(x_i)$. Such solutions give point estimates for unknown parameters. Sometimes using them is just fine. However more often we also need some measure of uncertainty. How confident we are about predicted values. Hopefully we can use bayesian inference to find unknown parameters in probabilistic way.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Bayesian-linear-regression">Bayesian linear regression<a class="anchor-link" href="#Bayesian-linear-regression">¶</a></h2><p>We start with the same model specification</p>
$$ y_i = \beta_{0} + \beta_{1}x_{1i} + ... + \beta_{n}x_{ni} + \epsilon_{i}$$<p></p>
<p>That's equivalent to</p>
$$ y_i \sim \beta_{0} + \beta_{1}x_{1i} + ... + \beta_{n}x_{ni} + \mathcal{N}(0,\sigma^2)$$<p>Or</p>
$$ \mathbf{y} \sim \mathcal{N}(\mathbf{X\beta}, \sigma^2)$$<p>Here we treat $y$ as a random vector with the mean $\mathbf{X\beta}$ and standard deviation $\sigma$. Now it's possible to model such relationship with probabilistic programming methods.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Example">Example<a class="anchor-link" href="#Example">¶</a></h2><p>Let's generate some data with Python</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [159]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
<span class="c1"># Parameters we will try to find later with StatSim</span>
<span class="n">b0</span> <span class="o">=</span> <span class="mi">24</span>
<span class="n">b1</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">sigma</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">n</span> <span class="o">=</span> <span class="mi">50</span>
<span class="c1"># Generate X</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
<span class="c1"># Set seed to get same random vector</span>
<span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
<span class="c1"># Generate Y</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">b0</span> <span class="o">+</span> <span class="n">b1</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">sigma</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">n</span><span class="p">)</span>
<span class="c1"># Show data</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="p">{</span><span class="s1">'x'</span><span class="p">:</span><span class="n">x</span><span class="p">,</span><span class="s1">'y'</span><span class="p">:</span><span class="n">y</span><span class="p">})</span>
<span class="n">data</span><span class="o">.</span><span class="n">head</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt output_prompt">Out[159]:</div>
<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>x</th>
<th>y</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0.000000</td>
<td>18.750704</td>
</tr>
<tr>
<th>1</th>
<td>0.408163</td>
<td>25.844368</td>
</tr>
<tr>
<th>2</th>
<td>0.816327</td>
<td>29.091760</td>
</tr>
<tr>
<th>3</th>
<td>1.224490</td>
<td>25.691671</td>
</tr>
<tr>
<th>4</th>
<td>1.632653</td>
<td>30.209268</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>...</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Draw a plot:</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [160]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">data</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="s1">'x'</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="s1">'y'</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s1">'scatter'</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s1">'Generated data'</span><span class="p">);</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
"
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Now let's save the data and load it into StatSim</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [161]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">data</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span><span class="s1">'~/temp/linreg.csv'</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Linear-regression-in-StatSim">Linear regression in StatSim<a class="anchor-link" href="#Linear-regression-in-StatSim">¶</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [162]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">iframer</span> <span class="kn">import</span> <span class="o">*</span>
<span class="n">iframer</span><span class="p">(</span><span class="s1">'https://statsim.com/app/?m=linreg-simple'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_html rendered_html output_subarea ">
<div class="iframer-wrapper" style="position: relative; padding-bottom: 550px; padding-top: 25px; height: 0;">
<iframe src="https://statsim.com/app/?m=linreg-simple" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
</div><br>
<a class="iframer-link" href="https://statsim.com/app/?m=linreg-simple" target="_blank" style="margin: 10px 0;">Open in statsim.com</a>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Settings:</p>
<ul>
<li>Chains: 3</li>
<li>Samples: 5000</li>
<li>Burn: 1000</li>
<li>Lag: 50</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="SciKitLearn">SciKitLearn<a class="anchor-link" href="#SciKitLearn">¶</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [163]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">sklearn</span> <span class="kn">import</span> <span class="n">datasets</span><span class="p">,</span> <span class="n">linear_model</span>
<span class="n">linreg</span> <span class="o">=</span> <span class="n">linear_model</span><span class="o">.</span><span class="n">LinearRegression</span><span class="p">()</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">x</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">y</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
<span class="n">linreg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'b0 ='</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="n">linreg</span><span class="o">.</span><span class="n">coef_</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'b1 ='</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="n">linreg</span><span class="o">.</span><span class="n">intercept_</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>b0 = 1.9191940054276075
b1 = 24.685657822102073
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [164]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<span class="n">y_true</span> <span class="o">=</span> <span class="n">b0</span> <span class="o">+</span> <span class="n">b1</span> <span class="o">*</span> <span class="n">x</span>
<span class="n">y_predict</span> <span class="o">=</span> <span class="n">linreg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">color</span> <span class="o">=</span> <span class="s1">'lightgrey'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y_true</span><span class="p">,</span> <span class="n">color</span> <span class="o">=</span> <span class="s1">'green'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'Target'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y_predict</span><span class="p">,</span> <span class="n">color</span> <span class="o">=</span> <span class="s1">'blue'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'Predicted'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">();</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3Xl8TFcfx/HPySbEEksEsUQssQtSpbp4qotWKU/R1VJKV11RxBp7q6idonS1tdY+Wq1YitqFEmJNSxBrCAkmyXn+mIlGOklmkpnMZPJ7v15emeXOvb/cmXznOPfcc5XWGiGEEPmfm6MLEEIIYRsS6EII4SIk0IUQwkVIoAshhIuQQBdCCBchgS6EEC5CAl0IIVyEBLoQQrgICXQhhHARHtktoJQKBhaneygIGAp8ZXo8EIgBOmutr2a1rjJlyujAwMAcliqEEAXTnj17Lmmt/bJbTllz6r9Syh2IBe4H3gauaK3HKaUGACW11h9n9frQ0FC9e/dui7cnhBAClFJ7tNah2S1nbZdLK+CE1vov4FlgoenxhUB7K9clhBDChqwN9BeA7023/bXW50y3zwP+NqtKCCGE1SwOdKWUF9AOWJrxOW3stzHbd6OU6q2U2q2U2n3x4sUcFyqEECJr2R4UTecpYK/WOs50P04pVV5rfU4pVR64YO5FWus5wBww9qFnfN5gMHDmzBlu3bplZekiPW9vbypWrIinp6ejSxFCOIg1gf4i/3S3AKwCugHjTD9X5qSAM2fOUKxYMQIDA1FK5WQVBZ7WmsuXL3PmzBmqVq3q6HKEEA5iUaArpXyAx4HX0z08DliilOoJ/AV0zkkBt27dkjDPJaUUpUuXRrq0hHAu8fHxxMXFYTAY8PT0xN/fH19fX7ttz6JA11rfBEpneOwyxlEvuSZhnnuyD4VwLvHx8cTGxpI2NNxgMBAbGwtgt1CXM0WFEMIO4uLiyHiej9aauLi4TF6Re9b0obuky5cv06qV8T8a58+fx93dHT8/4wlZO3fuxMvLy+bb3Lt3LxcuXKB169Y2X7cQwjkYDAarHreFAh/opUuXJjIyEoDhw4dTtGhR+vbta/HrU1JScHd3t2qbe/fu5eDBgxLoQrgwT09Ps+Ftz5Fo0uWShbZt29KkSRPq1q3L3LlzAUhOTsbX15f333+fBg0asHPnTlatWkVwcDBNmjShT58+tG9vPGn2xo0bdO/enaZNm9KoUSNWr15NUlIS4eHhfPvtt4SEhLBs2TJH/opCCDvx9/f/17EtpRT+/vY7B9OpWujv//w+kecjbbrOkHIhTG49OUevXbhwIaVKlSIxMZHQ0FCee+45ihUrxrVr13j44YeZPHkyiYmJ1KxZk61bt1K5cmU6d/5nsE94eDitW7dmwYIFXL16lfvvv58DBw4wdOhQDh48yOTJOatLCOH80g58Ot0ol4Jq0qRJrFq1CjCOlz9x4gQhISF4eXnRoUMHAKKioggODqZKlSoAvPjii3z11VcArFu3jrVr1zJu3DjAOETz77//dsBvIoRwBF9fX7sGeEZOFeg5bUnbw2+//cbmzZvZvn07hQsX5sEHH7x7NmvhwoUtGiaotWbFihVUq1btnsc3b95sl5qFEAWb9KFn4tq1a5QqVYrChQtz6NAhdu3aZXa5OnXqEB0dzenTp9Fas3jxP1PHP/nkk0ydOvXu/X379gFQrFgxEhIS7PsLCCEKHAn0TLRp04bExETq1KnD4MGDuf/++80uV6RIEaZNm8Zjjz1GaGgovr6+lChRAoBhw4Zx8+ZN6tevT926dRk+fDgAjz76KPv376dRo0ZyUFQIYTNWXeAit8xd4OLw4cPUrl07z2qwhxs3blC0aFG01rz++uvUr1+fPn365HkdrrAvhRD/Zq8LXAgzZs6cSUhICHXq1CEpKYlevXo5uiQhRAHkVAdF86t+/frRr18/R5chhCjgpIUuhBAuQgJdCCFchAS6EEK4CAl0IYRwERLogLu7OyEhIdSrV49OnTqRmJiY43Vt3LiRZ555BoBVq1bdPe3fnPj4eGbMmGH1NoYPH86ECRNyXKMQwjVJoGM8lT8yMpKDBw/i5eXFrFmz7nlea01qaqrV623Xrh0DBgzI9PmcBroQwnLx8fFER0dz8OBBoqOjiY+Pz/MakgxJebIdCfQMHnroIY4fP05MTAzBwcF07dqVevXqcfr0adatW0fz5s1p3LgxnTp14saNGwD8/PPP1KpVi8aNG/Pjjz/eXdeCBQt45513AOOMax06dKBhw4Y0bNiQbdu2MWDAgLsTfqUNe/z000+57777aNCgAcOGDbu7rtGjR1OzZk0efPBBoqOj83CPCJF/pV0GLm1e8rTLwOU01K39coi9Hssba96g9vTaeRLqTjUO/f33IdK2s+cSEgKWzlKbnJzM2rVr71544tixYyxcuJBmzZpx6dIlRo0axW+//YaPjw/jx49n4sSJ9O/fn169ehEREUH16tV5/vnnza773Xff5ZFHHmH58uWkpKRw48YNxo0bx8GDB+9eYGPdunUcO3aMnTt3orWmXbt2bN68GR8fHxYtWkRkZCTJyck0btyYJk2a2GT/COHKsroMnLWzIFpzjdBLiZcYt2Uc03ZOI1Wn8nqT17mdcpvCnoVz8dtkz6kC3VGSkpIICQkBjC30nj17cvbsWapUqUKzZs0A2L59O1FRUbRo0QKAO3fu0Lx5c44cOULVqlWpUaMGAK+88gpz5sz51zYiIiLuTqvr7u5OiRIluHr16j3LrFu3jnXr1tGoUSPAOKXAsWPHSEhIoEOHDhQpUgQwduUIIbJny8vAWfLlcP32dSb+MZHP/viMREMiXRt2Zdgjwwj0DbR6eznhVIHuqOs9pPWhZ+Tj43P3ttaaxx9/nO+///6eZcy9Lqe01gwcOJDXX3/9nsflQhhC5IwtLwOX1ZdDkiGJ6bumM3bLWK4kXaFjnY6Etwyntl9t7tyB33+Hhx6yepNWkz50CzVr1oytW7dy/PhxAG7evMnRo0epVasWMTExnDhxAuBfgZ+mVatWzJw5EzBeh/TatWv/mkb3ySefZP78+Xf75mNjY7lw4QIPP/wwK1asICkpiYSEBFavXm3PX1UIl2HLy8CZ+xIwpBpYFrOM6lOr0+/XfjQNaMruXrtZ2mkp1UrUZvZsqFEDHnsMzp3L8a9hMQl0C/n5+bFgwQJefPFFGjRocLe7xdvbmzlz5tCmTRsaN25M2bJlzb7+888/Z8OGDdSvX58mTZoQFRVF6dKladGiBfXq1aNfv3488cQTvPTSSzRv3pz69evTsWNHEhISaNy4Mc8//zwNGzbkqaee4r777svj316I/MnX15eAgIC7Yezp6UlAQECOriKU/sshRaew+q/VtFvXjhF7RlDVtyqbum9i7ctrqV+mCXPmGIP8jTegfHlYtQrKlbPpr2aWTJ/rQmRfCmFfV69e5du93zJ5/2ROJJyggV8Dxj0+jtbVW5OcrFi4EEaNgr/+gvvvh+HD4cknwYILnGXJ0ulznaoPXQghnJHWmt9O/kZYRBi7zu4iuHQwSzou4bk6z5GS7Mb8+cYgj4mB++6DmTOhdevcB7m1JNCFECIL205vIywijI0xG6lcojLz282nS8Mu6BQPvkwX5KGhMG0aPP103gd5GqcIdK21RRddFpnLy64zIQqC/ef3M3jDYNYcXYO/jz9Tn5pKr8a9cNOF+GqBMchPnXKOIE/j8ED39vbm8uXLlC5dWkI9h7TWXL58GW9vb0eXIkS+d/TyUYZtHMaig4vw9fZlbKux9Gnah0JuPnzzDYwcCSdPQpMmMGUKtGnj+CBP4/BAr1ixImfOnOHixYuOLiVf8/b2pmLFio4uQ4h86/S104RvCufLyC/x9vBm0IOD6PtAX4p5luTbb41BfuIENGoEK1dC27bOE+RpHB7onp6eVK1a1dFlCCEKqAs3LzD297HM2G2cKO+dpu8w8MGBlPb257vvjEF+/LhzB3kaiwJdKeULzAXqARroAUQDi4FAIAborLW+mskqhBDCqcTfiuezbZ8xafskbiXfontId4Y+MpQKPpX5/ntjkB87ZpwPasUKaNfOeYM8jaUnFn0O/Ky1rgU0BA4DA4D1WusawHrTfSGEcGo379xk/JbxBH0exKjfR9GmZhsOvXWI2W3msnl1ZerWha5doUgRWL4c9u6FZ591/jAHC1roSqkSwMNAdwCt9R3gjlLqWaClabGFwEbgY3sUKYQQuXUn5Q5f7PmCUb+P4vyN87Sp0YZRj46ivl8IixZBu3A4ehQaNIAffzSGuFs+O5feki6XqsBF4EulVENgD/Ae4K+1Tpud4Dxg/eQIQghhZympKXxz4BuGbxpOTHwMD1d5mGWdltEsoAVLlsCL4XDkCNSvDz/8AO3b578gT2NJ2R5AY2Cm1roRcJMM3SvaOAja7EBopVRvpdRupdRuGckihMgrWmt+iPqB+jPr031ld0oXLs0vr/zC+lc2cnpbC+rXh5deAg8PWLrUeC2G//43/4Y5WBboZ4AzWusdpvvLMAZ8nFKqPIDp5wVzL9Zaz9Fah2qtQ/38/GxRsxBCZEprzS/Hf+G+L+6j49KOACzrtIwdPXdxdfcTNGyoePFFY3AvWQL790PHjvk7yNNk2+WitT6vlDqtlArWWkcDrYAo079uwDjTz5V2rVQIIbKx5e8thEWEsfmvzQT6BrKw/UJerPsyy390p0EniIqCOnVg8eKsQzw+Pp64uDgMBgOenp74+/vnaIbGvGbpOPQ+wLdKKS/gJPAqxtb9EqVUT+AvoLN9ShRCiH+YC9tTSacIiwhj7fG1lCtajulPT6dHyGusXuFFo5fh0CGoXRsWLTIGubt71uu39FJzWdXkiC8AiwJdax0JmJu6sZVtyxFCiMxlDNvoy9G8t+U9fjnzCyW9SzL+sfG8FfoOP68uwn094OBBqFULvv8eOnXKOsjTWHsd0px8AdiLw88UFUIIS6WF7dmbZ5l5eCar/lqFt4c3b9V9i1FPjyFibQkeuA/+/NMY5N99B507Wxbkaay9DqktL0SdWxLoQoh841zCOeYcmcPSk0txU268UuMVXq3Rk8itgbRsXoIDB6BmTfj2W3j+eeuCPI211yG15YWoc0sCXQjh9K4mXeXTbZ8y+Y/J3Em9Q4fADvSq+TqHd9TgjfCyREcXpmZN+OYbeOGFnAV5Gn9//3u6UCDr65Da8kLUuSWBLoRwWjfu3GDKjil8svUTrt++znPBz/FqYA+O7ajDe6+W5ciRwlSpcptZs27y3HMGLl+O4/Dh3B2YTHuNpQc5rf0CsCcJdCFEphw1euN28m1m75nN6N9Hc+HmBdrWbMvI/4wiZkcDBvRO5s8/PahS5Tbjx5+jR4/CeHhg0wOTvr6+Fr/O2i8Ae5JAF0KY5YjRG8mpyXy1/yuGbxzO6eunaRnYkuWdV3ApsjmvPg379kH16h4sXAgvvVQID4/yAERHRzv0wKQ1XwD2JIEuhDArL0dvpOpUlkUtY8iGIRy9fJSmAU2Z124+t6Ja8e5/FXv2QLVqsGABvPyy8XT99JzpwKQjSaALIczKi5DUWrP2+FrCIsKIPB9JXb+6LO+8Ao8T7Rj0gmL3bggKgvnz4ZVXILPjjM50YNKRJNCFEGbZOyQ3xWxiUMQgtp3eRlDJIL5u/w0lTr/AyG7u7NoFVavCvHnQpUvmQZ7GmQ5MOpIEuhDCLHuF5O6zuwmLCGPdiXVUKFaBmU/PIiCuJ6N6e7BzJwQGwty5xotMWPrd4UwHJh1JAl0IYZatQzLqYhRDNgzhx8M/UrpwaT59bAI1rr7D2D6F2LEDqlSBL74wBrmXl/UjbKw9MOks86/YkgS6ECJTthi9cerqKYZvGs7X+7+mqFdRhj08nAY3+/JpXx+2b4fKlWH2bOje3RjkYP8RNs40/4otSaALIeziXMI5Rm0exRd7v8DdzZ0Pm33E/bcHMymsBCP+MAb5pEmJtGp1GqUMnDr1TyvZ3iNsnGn+FVuSQBdC2NSVpCuM3zKeqTunYkg10DPkNVqmjmTayDJ8thUqVYJZs6BDh3guXjTfSrb3CBtXHeYogS6EsImE2wlM3j6ZCX9MIOF2Ai/Vf5knGM+c8RWYvRUqVoQZM6BHDyhUCKKjM28l23uEjasOc5RAF0Lkyq3kW8zcNZMxW8ZwKfESzwa35xmPiSycVJVuWyAgAKZPh549jUGeJqtWcsWKFe06DNFVhzlKoAtRQNh6VIchxcCCyAWEbw7nzPUzPFb1cTp4f86iabXp9bsxyKdNg9deuzfI02TVSrb3MERXHeYogS5EAWDLUR2pOpXFBxczdONQjl85TvOKzfnAfxUrZzfi7c1QoQJMnWoMcm/vzNeTXSvZ3vOjOMv8K7YkgS6EizHXErfFqA6tNWuOriEsIow/L/xJA/8GjAnayi/zmvPRJkX58jBlCvTqlXWQp3HVVrIjSaAL4UIya4lnDPM0lo7qiDgVwaD1g9gRu4PqpaoztMpvbF74KIM2GoP888+hd2/Lgjw9V2wlO5IEuhAuJLOWeGayG9Wx48wOwiLCWH9qPRWLV6RfxVXs+qYN4RvdKFcOJk82BnnhwjYpX+SSBLoQLiSrFrdSyuJRHX/G/cmQDUNYGb2SMkXK8I7/Ig4t7cinEe74+8OkSfD66xLkzkYCXQgXktXIkbS+9Kz6q09cOcGwjcP47s/vKFaoGL38vuT4D68wLcIDf3+YONEY5EWK5NVvJKwhgS6EC8lq5EhW/dWx12MZuXkk8/bNw9PNk5dLTuPMql58sd6TsmXhs8/gjTdyHuSuOBGWM5JAF8KFWDty5FLiJcZtGcf0XdNJSU3h2SLjuPS/d/gmohB+fjBhgjHIfXxyXpOrToTljCTQhXAxlowcuX77OhP/mMjEPyZy03CT1t7DubGuLz+sL0yZMvDJJ/DWW7kL8jSuOhGWM5JAF6IASTIkMX3XdMZuGcuVpCv8x3MAhk1h/C+iKGXKwPjxxiAvWtR223TVibCckQS6EAXAnZQ7zN83n5GbR3I24SzN1Lu4bQ5nQ0QJSpVK5aOPLtK580VKlHAnOdkfsF3L2VUnwnJGEuhCuLCU1BS+P/g9wzYO4+TVkzRI7knlrePZvqE0pUrB0KFJPPNMDIULpwBgMKTmqn/b3MFPV50Iyxm5OboAIYTtaa1ZcWQFDWc1pMvyLnicb8Z9G+M4MGou0ZGlGT0aYmLgpZf+vhvm6V8bFxdn9TbTDn6mtcbTH/wMCAi42yL39PQkICBA+s/tQFroQriY9SfXMyhiEDtjd1Ll5n9pvHMdezdVoGRJGD0a3nkHihc3LmvL/u2sDn4GBwdLgOcBiwJdKRUDJAApQLLWOlQpVQpYDAQCMUBnrfVV+5QphHNypvHVf5z+g7CIMDbEbMD/+lOE7IkhclMVrpeEUaOgT59/gjyNLfu35eCn41nT5fIfrXWI1jrUdH8AsF5rXQNYb7ovRIGRWRdDfHx8ntZxIO4A7b5vxwPzHyAyUlE/4gRxE/9HzP4qjBwJp05BWNi/wxyMJyIppe55LKf925l9CcjBz7yTmy6XZ4GWptsLgY3Ax7msR4h8w9Hjq49dPsawjcNYdHARPldaUGffEaJ+D0b7Qng4vPsulCiR9TpsOYWtHPx0PEsDXQPrlFIamK21ngP4a63PmZ4/D8i7JgoUR3UxnL52mpGbRzJ/33w8L4ZSI/JPjm6pS2wJGDHCGOTW5LGtprCV+c0dz9JAf1BrHauUKgv8qpQ6kv5JrbU2hf2/KKV6A70BKleunKtihXAmtux/tqQv/sLNC4z9fSwzd88k5XxdAvft4cS2hsSVgOHD4b33rAvy3MisXpnf3LEsCnStdazp5wWl1HKgKRCnlCqvtT6nlCoPXMjktXOAOQChoaGZT8wsRD5jqy6G7OY6ib8Vz2fbPmPS9kkkxlajyr4txPwRysXiMGyYMchLlrTd75XbeoXjZBvoSikfwE1rnWC6/QQQDqwCugHjTD9X2rNQIZyNrboYMuuLj4mN4ZeDvzB+63iu/lWBivt+4+b2ZlwuBkOGwAcf5G2QZ1evzM3ieJa00P2B5aYj4R7Ad1rrn5VSu4AlSqmewF9AZ/uVKYRzskUXQ8ZuG0OqgWWnljHnyBwu/V2W8ntWoHY+xLWiisGDjUFeqlSuNpkrMjzReWUb6Frrk0BDM49fBlrZoyghCpK0vvgUncJPf//EjKgZxMYUp+SOb1F7HyfBRzFoEHz4oWODPGO95h4XjiVnigqRh8wdTCxbtiwLdy5k6qGpnDxRiOJ/zEZFPo3BBwYOVHz4IZQubdm68qLLQ4YnOi8JdCHySMaDiXfu3GHJniXMPDqTyEO38Nk2CRXZluTCmvffv82gQd6UKWPZuvLywKQMT3ReEuhCWMAWreH0BxP3XtrLlENT2HP4BoW3jkHt7wBFoH9/Rd++ijJlvC1eV5q8PDApwxOdkwS6ECaZhbatWsMGg4HD8YeZemgqvx+Mo9CWUagDz0EhTf/+io8+Aj8/y9dlzeOiYJBAF4KsuzBs0RqOvhRN/539WbvvOJ5bwlEHOqO8NN27XaZXr2s0b17dqnrlwKQwRwJdCLIO7dy0hv+K/4sRm0awIGIr7puHofa/gHshzctdL9O9+yXKlEklICDA6nrlwKQwRwJdCLLuwshJazjuRhxjfh/DzHW/krJxEByYi2chxRtv3+bFF89QvPgtU7dO+Rz1RcuBSWGOBLoQZN2FYU1r+GrSVSZsm8DE/63idkRfODCRQoUUb3/gRr9+4O/vDVjXvZIZOTApMpJAF/mGPcddZxXalrSGb965yZQdUxi7egkJv76LOhCJpyc8//JVeveOp169MhK+wu4k0EW+YO9x19mFdmat4dvJt5mzZw4jVnzN5Z/fQB3YjZcnPP9yPD16XKRMmWQAmbxK5AkJdJEv5MW4a2u6MJJTk/l6/9cM/nEeZ3/qjjqwDS8PN97s48Zzzx2nZMlbdq1VCHMk0IVTyaxbxVnGXafqVJZFLWPgstmcXPUCKnIjnh6K1990Y+BARYUKcPDgLbOvlTHiwt4k0IXTyKpbxdHjrrXWrD2+ln5LpxH1Q3uI/BlPDzdef8uNAQMU6Uce2rpWZ7oQtXBuEujCaWTVreLIcdeb/9rMh4s/Z8+SJyByBR5u7rz+pmLgQDfMDSG3Za1yMQlhDQl04TSy6lZxxLjrPWf38OGSyWz+pgVEfo+Hmzs9e8PgQe5UrJj562xZq6PnbBH5iwS6cBrZdVXYatx1dl0YURej6Lt0Cmu/bAj75uGu3OnxmmZImDuVKlm2DVvV6izHDkT+IIEunEZedKtk1YVxVV+l/w9TWTanBuydgptyp3uPFIYNdsdR1zd39LEDkb9IoAunkRfdKua6MC4kXmDw17NY9U0dUveMxU2506W7gfChXlSu7G6zbeeEzNkirCGBLpyKvU9nT9/avXbnGlP/+JFlX9cgZfcE3PDg5S5JjB5eiCpVnONPQ+ZsEdZwjk+tEHnE09OT+MR4Zu1cxbcLKmHYNQaFO0+1Pc+MSRUJDCzq6BL/ReZsEZaSQBcFxq3kWyw4sI5Jkwpxe+cQlPbg8Tan6fuOgaZNyyKZKfI7CXTh8gwpBib/tpjw0be5sa0XaE8effov+r1toGpVpAtDuAwJdOGyUnUqszeuZOCIa1zb+jyketL6uQtMH1eBoKAgR5cnhM1JoAuXo7Xm662/8tHwOC5t6gipnrRqf5ZZ4ytRvXoFR5cnhN1IoAuX8sPOLfQZ/DfnNrSHVC8ebvs3X3waSM0aDhpILkQekkAXLuHn/Xt5feAJ/v61DaQ0p3mbE8ybUJXawdK1IgoOCXSRr206dJjXBh7h+M9PQHJDQp+M5suJ1ahXu6ajSxMiz0mgC5vI6yledx49xasfRxH1U0tIrknwQ3sJf9+LhnW88fdPAgrZbdtCOCsJdJFreTnF64GT5+jW/wCRqx6E5MoEP7KPYX3cqF+zsN23LYSzc3N0ASL/y2qKV1uJ/vsy9z8fQcPaxYj88XFqPBDFpl2XWTmrGPVretl120LkF9JCF7lmzyleT8Um0LX/frYsCwFDSwJb7GTOpxV5vNl9ABw8eCHTbcuVfkRBY3ELXSnlrpTap5RaY7pfVSm1Qyl1XCm1WCnlld06hGvKbCrX3EzxeuZ8Eq26bicoSLHluweoGBrJys0nOfV7Mx5v9s/VJTLbhpubG7GxsXe/VNK6YuLj43NckxDOzpoul/eAw+nujwcmaa2rA1eBnrYsTOQf/v7+KKXueSynU7zGXTTwVI+9VA5MIeLrppRrtJvFG6I4vfVB2j1Y3eJtK6Xs3g0khLOxKNCVUhWBNsBc030FPAosMy2yEGhvjwKF8/P19SUgIOBua9nT05OAgACrujcuXkqhfe+DlK90i5+/DKFU/R18+csezm1vSeeW9azedkpKitnl5Uo/wpVZ2oc+GegPFDPdLw3Ea62TTffPAGYulwtKqd5Ab4DKjrrsi7C7nE7xeuWK5o2wo/ywIIDUW/XwbbyO0eHevPn0o/9qeVuz7bS+84zkSj/ClWXbQldKPQNc0FrvyckGtNZztNahWutQPz+/nKxCuKCrV6HruycpW/EmS2cFU6TWFj798Rcu736Mt9o8bHGYZ8aW3UBC5BeWtNBbAO2UUk8D3kBx4HPAVynlYWqlVwRi7VemcBXx8dA3/AwLZ/uSnBhE4fr/4+Ow24R1aouHm+0GXcmVfkRBlO1fkNZ6IDAQQCnVEuirtX5ZKbUU6AgsAroBK+1Yp8jnrl2DgaPO88WMoiQnVqRQvTV8+PF1RrzwX7w9vO2yTbnSjyhoctMk+hhYpJQaBewD5tmmJOFKrl2DYeMvM2OKN4ab5fCos4a3PzrPuFdeoKiX813uTYj8zKpA11pvBDaabp8Emtq+JOEKrl+HkZ9cY+rnHty+URr3Wmt49b1TfNbtFUoWLuno8oRwSXKmqLCp69dh3Gc3mThRcftGCVSt1Tz/1mEmv9qVckWfcXR5Qrg0CfQCzJanxickwKeTbjHhs1SSrvtA8Gra9trL1J7dqeLb1raFCyHMkkAvoGw1Q2JCAkz8/A6ffJqGAkayAAATk0lEQVRC4vXCUGMNrQZuYdpr3alVpi3x8fFER0fLSBMh8oAEegFgriWe1QyJlgRuQgJMmZrM2E8M3LxmDPLmH/3KtF7daFx+3N3t5tW0ukIICXSXl1moZgzzNNmdGn/jBkyZmsrYT+5wI94bavxCwz4rmfpaFx6q8vk9y+b2S0MIYR0JdBeXWahmJrNT42/cgGnTNGPG3yEhvhBUjyD4jUVM7vkST1abbfbMTntOqyuE+DcJdBeXVXhmnJHQ3KnxN2/C9OmaMeMMXLvqBdUjqNJzIZ/16MR/ay/M8hR9T09PmU9FiDwkge7isgrVtL50cwcsExNhxgwYPe4O8Ze9oFoE5brOYVz3Z3m5wTcWnabv7+//r+6dtC8NufiEELYnge7isgpVc6fGJybCxIlJTJiouHbVG6ptoOTzUxjZ7Wlea/w9hTwsv/hyZvOpAHKwVAg7kEB3cZZOUpWYCLNmwegxBq5cLgxB6yjSaQK9n6jLS9WHU6NKDZJuJBETF2NVq9rcl0Z0dLQcLBXCDiTQC4CsJqlKSjIG+ZhxKVy64A5Bm/DqMJbuj1WnW43hFPcqDsDZs2fRWtukVS0HS4WwDwn0AiopCebMgTFjU7gQ544K2oxH25G88J8AXgseSmnv0vcsn5qa+q915LRVLQdLhbAPCfQCJikJvvgCxo5N5fx5N9yCtuD26nB6tK/OkEcWkHQ+yaqWck5a1Vn16wshck4CvYC4dcsY5GPGpnL+nBvuVbdBt8F0blueES1nU7N0TQDidbzZsHVzczN7nc6ctKrl4hNC2IcEej5j7XC/W7dg7lwYO1Zz9qzCs+oO6DaQp54sxsj/TCakXMg9y1s6MgVy16qWi08IYXsS6PmINXOj3LoF8+YZgzw2VlGo6i7oOoDmLVMZ+9gYHqj0QKbbySpspVUthPOSQM9HLJkb5fZtY5CPGWMM8sJBe6Frf+q1uM6YVqN5POjxHF+AWVrVQjg3CfR8JKvhfrdvw/z5xiA/c0bhE7QfuvSl6v3nGfXoSNrXap/jIBdC5A8S6PmIueF+d+4oVq8uzbx5cPo0FKt2ELp8iF/jE8x6NJwX672Iu5u7gyoWQuQlCfR8JP1wP4NBsXy5L1984cf5816UqH4YXnkPn4YHGf/IEHo27omXu5ejSxZC5CEJ9HzE19eXO3dg9uxbzJpVirNnvShZLRpeeRe3erv59KGBvHXfCop4FnF0qUIIB5BAzycMBli4EEaP9iUmBsrUPIF6pQ93av/OsAc+4oNmSyjhXcLRZQohHEgC3ckZDPDVVzBqFMTEQNmaMbi/0ofrNX/lg6ZvM+DBhfj5+Dm6TCGEE5BAd7DMThQyGODrr41BfuoUlA8+jVeXd7lUbTW9mrzG4IePU7F4RYvWJYQoGCTQHcjciUIxMbFs3erFxIlFOHkSAoLPUqTb+5wLXMbLDV5ieMsjVC9V3aJ1yRzjQhQsEugOlP5EoeRkWLPGlzlz/Dh9uhCVasVRvPuHxFb5jmdrPcvI/+ynvn99i9aVRuYYF6JgkUB3IIPBQHIy/PSTL7NnG4O8fLWzlOg2gNOBX9MqqBWjH93O/RXvt2hd1jwuhHA9EugOYgzy0syYUYq//y5EhWpx+L0axrnK82hYpiET26zn0aqPWrw+mWNcCCGBnsdSUuD772HkSDh6tDwBQZeo0OMDzlaaSY0SNRhWbxovhb6EUoro6GiLD3DKHONCCAn0PJKSAosWQXg4HD0KQbVuUPOtURwt8wlVildmXO1xtAtqR/ly5QHrL6Isc4wLIbINdKWUN7AZKGRafpnWephSqiqwCCgN7AG6aK3v2LNYe7HncL+UFFi82Bjk0dFQvVYiDfp8yoGSIwgoUYE5j8yme0h3PN3/6RrJ6UWUZTZEIQo2NwuWuQ08qrVuCIQArZVSzYDxwCStdXXgKtDTfmXaT9pwv7T+57TWcHx8fK7Wm9a1Uq8evPwyGHQiDd4M53jnovxdfjKjHhnJsT7H6NWk1z1hnlaDOXKAUwiRlWwDXRvdMN31NP3TwKPAMtPjC4H2dqnQzrIa7pcT6YP8pZcgVd3hgfcncfKFYpwI+IS36r7J2tZrae/fnts3b5tdR2YHMuUApxAiKxb1oSul3DF2q1QHpgMngHitdbJpkTNAgF0qtLOsWsOZdcWYe7x4cV+WLoURI+DwYQiubeCJAQtY7/02f7m78Wq1bvSo2QPfQsYukay6UOQApxAiJywKdK11ChCilPIFlgO1LN2AUqo30BugcuXKOanRrjIb7ufm5mb2wOTNmzeJj4+/+/jt2wbmzUtg7txiHDniTnDtZNqGLWJdod6cwEDvxr3oWLYjZQuX/dc2MvsykQOcQoicsGqUi9Y6Xim1AWgO+CqlPEyt9IpAbCavmQPMAQgNDdXmlrE1aw5yZtYaVkqRmpp6z7Jaa65evQpAair8+mtxZs0qy/Hj3lQNSqLjkJ/4udBrHE2+Tpf6XRj2yDCCSgbdHX6YUVZdKHKAUwhhrWz70JVSfqaWOUqpwsDjwGFgA9DRtFg3YKW9irSGtQc5fX19CQgIuBuunp6eBAQEkJKSYnb5tCDv2LE6fftWJjlF0+b9b7nSoyLL3DvxRI1W/Pnmnyxsv5CgkkGA8Usj4+XfpAtFCGFrlrTQywMLTf3obsASrfUapVQUsEgpNQrYB8yzY50Wy8mcJuZaw2kt/DSpqbB+fXFmzizLsWPeBFa9RYePlrKl9Lv8dOc8Lcq0YNIzk7gv4D6z60+/TulCEULYQ7aBrrU+ADQy8/hJoKk9isoNWw35S+uKSUnRREQUZ+ZMP44eLUy1agZe6LeKLWXeZXnSXzQs2pDx9cbQoVEHGSMuhHAolztT1FZzmhQv7suaNZ6MHu3OkSPeBAbe5q2R29hU8k0WXTpAcKFgpjWaRqtKrShXrpyEtRDC4Vwu0HM75E9rWLnSOPwwMtKHGjVgwMRDRBTpzYzz26iRWoNFzy2iU91OuClLzssSQoi84XKBntP+aq1h1SoYPhwiI6F6dRg2+QSbi7/JuL9/pRKVmNt2Lt1CuuHh5nK7TQjhAlwymazpr9YaVq82Bvm+fcYgHzXlNDtKvceI48vxu+PHpCcn8UboG3h7eNu3cCGEyAWXDHRLaA1r1hiDfO9eCAqCcVPjiPTvy5Cobyl+szij/jOK95q9R1Gvoo4uVwghslXgAl1r+OknY5Dv2QNVq8KE6Vc4Uj6MsD+/wOuaFx+3+Jh+LfpRqnApR5crhBAWKzCBrjWsXWsM8l27jEE+eUYCpyqHE7ZvKqmXU3kj9A0GPzyYckXL5Xg79pyKVwghsuLygZ4xyAMDYcqMROKqf8rg3RNIvJhI14ZdGfbIMAJ9A3O1rbSzVK25MIUQQtiKywa61vDLL8Yg37EDqlSB6bNuEx88leE7x3Jl2xU61ulIeMtwavvVtsk2c3KWqhBC2Eq+DfTMuja0hnXrjEG+fTtUrgwzZiVjqD+X8K3DidsURwv/Fnzw0Ae0qt3KpkErF6YQQjhSvgx0c10bZ87EEhHhwYQJRfnjD6hUCWbOTMUr9DtGbh1CzK8xNC7dmHGh4wj1CwWweXeIrc5SFUKInMiXgZ6+a0Nr+OMPH2bOLEtkpI8pyDUlm68gfOtgon6KolG5Rgx6eBDNyjS7Z9ZDW3eHyIUphBCOlC8D3WAwoDXs2OHDjBll2bfPB39/A4MHx3L/i1GM2DqI3St2E1w6mCUdl/BcneeIOhSV6bpsRWZVFEI4Ur4LdK1h9+4STJ1air17fShb1kBY2FmqPbKRmccmM2rpLiqXqMz8dvPp0rDL3dP086o7RGZVFEI4Sr4JdK1hwwbjwc7ff6+Ev7+BQYPOUq/VdmYd+5zR2zZTtkhZpj41lV6Ne1HIo9A9r5fuECGEq8sXgb55MwwZYvxZoQJMnQqNHjvAmD+GMub3/1HcszhDHxhK/0f64+PlY3Yd0h0ihHB1+SLQ16yBY8dgyhR4svPffLIjnPeXLMDbw5uwh8L4qPlHlCxcMtv1SHeIEMKV5YtAHzIE3u5/gUm7x1D/i5kAvNP0HQY+OBD/otJlIoQQkE8Cfd6hyQyOGExSchKvhrzK0EeGUrlEZUeXJYQQTiVfBHpRr6I8U/MZRrQcQXCZYEeXI4QQTkllnHvEnkJDQ/Xu3bvzbHtCCOEKlFJ7tNah2S0nF8UUQggXIYEuhBAuQgJdCCFchAS6EEK4CAl0IYRwERLoQgjhIiTQhRDCRUigCyGEi5BAF0IIFyGBLoQQLiLbQFdKVVJKbVBKRSmlDiml3jM9Xkop9atS6pjpZ/bz1wohhLAbS1roycBHWus6QDPgbaVUHWAAsF5rXQNYb7ovhBDCQbINdK31Oa31XtPtBOAwEAA8Cyw0LbYQaG+vIoUQQmTPqj50pVQg0AjYAfhrrc+ZnjoPyJUmhBDCgSwOdKVUUeAH4H2t9fX0z2njHLxm5+FVSvVWSu1WSu2+ePFirooVQgiROYsCXSnliTHMv9Va/2h6OE4pVd70fHnggrnXaq3naK1Dtdahfn5+tqhZCCGEGdlesUgppYB5wGGt9cR0T60CugHjTD9X2qPA+Ph44uLiMBgMeHp64u/vLxd6FkIIMyy5BF0LoAvwp1Iq0vTYIIxBvkQp1RP4C+hs6+Li4+OJjY0l7apKBoOB2NhYAAl1IYTIINtA11pvAVQmT7eybTn3iouLI+Ml8rTWxMXFSaALIUQGTn2mqMFgsOpxIYQoyJw60D09Pa16XAghCjKnDnR/f3+Mx2T/oZTC31+GvAshREaWHBR1mLR+chnlIoQQ2XPqQAdjqEuACyFE9py6y0UIIYTlJNCFEMJFSKALIYSLkEAXQggXIYEuhBAuQmU8td6uG1PqIsZ5X3KiDHDJhuXYitRlHanLOlKXdVy1ripa62ynq83TQM8NpdRurXWoo+vISOqyjtRlHanLOgW9LulyEUIIFyGBLoQQLiI/BfocRxeQCanLOlKXdaQu6xTouvJNH7oQQois5acWuhBCiCw4XaArpVorpaKVUseVUgPMPF9IKbXY9PwOpVRgHtRUSSm1QSkVpZQ6pJR6z8wyLZVS15RSkaZ/Q+1dl2m7MUqpP03b3G3meaWUmmLaXweUUo3zoKbgdPshUil1XSn1foZl8mR/KaXmK6UuKKUOpnuslFLqV6XUMdPPkpm8tptpmWNKqW55UNenSqkjpvdpuVLK7Kx02b3ndqhruFIqNt179XQmr83yb9cOdS1OV1NMuktkZnytPfeX2Wxw2GdMa+00/wB34AQQBHgB+4E6GZZ5C5hluv0CsDgP6ioPNDbdLgYcNVNXS2CNA/ZZDFAmi+efBtZivIxgM2CHA97T8xjH0eb5/gIeBhoDB9M99gkwwHR7ADDezOtKASdNP0uabpe0c11PAB6m2+PN1WXJe26HuoYDfS14n7P827V1XRme/wwY6oD9ZTYbHPUZc7YWelPguNb6pNb6DrAIeDbDMs8CC023lwGtVMarYNiY1vqc1nqv6XYCcBgIsOc2behZ4CtttB3wVUqVz8PttwJOaK1zekJZrmitNwNXMjyc/jO0EGhv5qVPAr9qra9ora8CvwKt7VmX1nqd1jrZdHc7UNFW28tNXRay5G/XLnWZ/v47A9/banuWyiIbHPIZc7ZADwBOp7t/hn8H591lTB/+a0DpPKkOMHXxNAJ2mHm6uVJqv1JqrVKqbh6VpIF1Sqk9SqneZp63ZJ/a0wtk/ofmiP0F4K+1Pme6fR4wdwksR++3Hhj/Z2VOdu+5Pbxj6gqan0n3gSP310NAnNb6WCbP58n+ypANDvmMOVugOzWlVFHgB+B9rfX1DE/vxdit0BCYCqzIo7Ie1Fo3Bp4C3lZKPZxH282WUsoLaAcsNfO0o/bXPbTx/75ONdRLKRUGJAPfZrJIXr/nM4FqQAhwDmP3hjN5kaxb53bfX1llQ15+xpwt0GOBSunuVzQ9ZnYZpZQHUAK4bO/ClFKeGN+wb7XWP2Z8Xmt9XWt9w3T7f4CnUqqMvevSWseafl4AlmP8r296luxTe3kK2Ku1jsv4hKP2l0lcWreT6ecFM8s4ZL8ppboDzwAvm4LgXyx4z21Kax2ntU7RWqcCX2SyPUftLw/gv8DizJax9/7KJBsc8hlztkDfBdRQSlU1te5eAFZlWGYVkHY0uCMQkdkH31ZMfXTzgMNa64mZLFMurS9fKdUU47616xeNUspHKVUs7TbGg2oHMyy2CuiqjJoB19L9V9DeMm05OWJ/pZP+M9QNWGlmmV+AJ5RSJU1dDE+YHrMbpVRroD/QTmudmMkylrzntq4r/TGXDplsz5K/XXt4DDiitT5j7kl7768sssExnzF7HPnN5VHjpzEeKT4BhJkeC8f4IQfwxvhf+OPATiAoD2p6EON/mQ4AkaZ/TwNvAG+YlnkHOITx6P524IE8qCvItL39pm2n7a/0dSlguml//gmE5tH76IMxoEukeyzP9xfGL5RzgAFjH2VPjMdc1gPHgN+AUqZlQ4G56V7bw/Q5Ow68mgd1HcfYp5r2GUsbzVUB+F9W77md6/ra9Nk5gDGoymesy3T/X3+79qzL9PiCtM9UumXzcn9llg0O+YzJmaJCCOEinK3LRQghRA5JoAshhIuQQBdCCBchgS6EEC5CAl0IIVyEBLoQQrgICXQhhHAREuhCCOEi/g/PwO4i7ctl0wAAAABJRU5ErkJggg==
"
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Linear-Regression-model-in-PyMC3">Linear Regression model in PyMC3<a class="anchor-link" href="#Linear-Regression-model-in-PyMC3">¶</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [165]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pymc3</span> <span class="k">as</span> <span class="nn">pm</span>
<span class="k">with</span> <span class="n">pm</span><span class="o">.</span><span class="n">Model</span><span class="p">()</span> <span class="k">as</span> <span class="n">model</span><span class="p">:</span>
<span class="n">b0_pred</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">Uniform</span><span class="p">(</span><span class="s1">'b0_pred'</span><span class="p">,</span> <span class="o">-</span><span class="mi">100</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span>
<span class="n">b1_pred</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">Uniform</span><span class="p">(</span><span class="s1">'b1_pred'</span><span class="p">,</span> <span class="o">-</span><span class="mi">100</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span>
<span class="n">sigma_pred</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">Uniform</span><span class="p">(</span><span class="s1">'sigma_pred'</span><span class="p">,</span> <span class="mf">0.01</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
<span class="n">y_obs</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">Normal</span><span class="p">(</span><span class="s1">'y_obs'</span><span class="p">,</span> <span class="n">mu</span> <span class="o">=</span> <span class="n">b0_pred</span> <span class="o">+</span> <span class="n">b1_pred</span> <span class="o">*</span> <span class="n">x</span><span class="p">,</span> <span class="n">sd</span> <span class="o">=</span> <span class="n">sigma_pred</span><span class="p">,</span> <span class="n">observed</span> <span class="o">=</span> <span class="n">y</span><span class="p">)</span>
<span class="n">trace</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="mi">2000</span><span class="p">,</span> <span class="n">cores</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stderr output_text">
<pre>Auto-assigning NUTS sampler...
Initializing NUTS using jitter+adapt_diag...
Multiprocess sampling (2 chains in 2 jobs)
NUTS: [sigma_pred, b1_pred, b0_pred]
Sampling 2 chains: 100%|██████████| 5000/5000 [00:06<00:00, 730.65draws/s]
The acceptance probability does not match the target. It is 0.891548318682092, but should be close to 0.8. Try to increase the number of tuning steps.
The acceptance probability does not match the target. It is 0.9164934750561446, but should be close to 0.8. Try to increase the number of tuning steps.
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [166]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">pm</span><span class="o">.</span><span class="n">traceplot</span><span class="p">(</span><span class="n">trace</span><span class="p">,</span> <span class="n">lines</span><span class="o">=</span><span class="p">{</span><span class="s1">'b0_pred'</span><span class="p">:</span> <span class="n">b0</span><span class="p">,</span> <span class="s1">'b1_pred'</span><span class="p">:</span> <span class="n">b1</span><span class="p">,</span> <span class="s1">'sigma_pred'</span><span class="p">:</span> <span class="n">sigma</span><span class="p">});</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
"
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Linear-Regression-model-in-TensorFlow-Probability">Linear Regression model in TensorFlow Probability<a class="anchor-link" href="#Linear-Regression-model-in-TensorFlow-Probability">¶</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Links">Links<a class="anchor-link" href="#Links">¶</a></h2><ul>
<li><a href="https://mc-stan.org/docs/2_18/stan-users-guide/linear-regression.html">Linear regression with Stan</a></li>
<li><a href="https://docs.pymc.io/notebooks/GLM-linear.html">Linear regression with PyMC</a></li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [ ]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
<script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
var mathjaxscript = document.createElement('script');
mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
mathjaxscript.type = 'text/javascript';
mathjaxscript.src = '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
mathjaxscript[(window.opera ? "innerHTML" : "text")] =
"MathJax.Hub.Config({" +
" config: ['MMLorHTML.js']," +
" TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," +
" jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
" extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
" displayAlign: 'center'," +
" displayIndent: '0em'," +
" showMathMenu: true," +
" tex2jax: { " +
" inlineMath: [ ['$','$'] ], " +
" displayMath: [ ['$$','$$'] ]," +
" processEscapes: true," +
" preview: 'TeX'," +
" }, " +
" 'HTML-CSS': { " +
" linebreaks: { automatic: true, width: '95% container' }, " +
" styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" +
" } " +
"}); ";
(document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
</script>
Conversion rate estimation2019-03-17T20:00:00+01:002019-03-17T20:00:00+01:00Anton Zemlyanskytag:statsim.com,2019-03-17:/models/conversion-rate/<p>A simple probabilistic model that calculates a website conversion rate given two params (number of total visitors and number of conversions). The output measures uncertainty about the true value of conversion rate</p><style type="text/css">/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
http://www.xcolors.net/dl/baskerville-ivorylight and
http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
color: #3E424D;
}
.ansi-black-bg {
background-color: #3E424D;
}
.ansi-black-intense-fg {
color: #282C36;
}
.ansi-black-intense-bg {
background-color: #282C36;
}
.ansi-red-fg {
color: #E75C58;
}
.ansi-red-bg {
background-color: #E75C58;
}
.ansi-red-intense-fg {
color: #B22B31;
}
.ansi-red-intense-bg {
background-color: #B22B31;
}
.ansi-green-fg {
color: #00A250;
}
.ansi-green-bg {
background-color: #00A250;
}
.ansi-green-intense-fg {
color: #007427;
}
.ansi-green-intense-bg {
background-color: #007427;
}
.ansi-yellow-fg {
color: #DDB62B;
}
.ansi-yellow-bg {
background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
color: #B27D12;
}
.ansi-yellow-intense-bg {
background-color: #B27D12;
}
.ansi-blue-fg {
color: #208FFB;
}
.ansi-blue-bg {
background-color: #208FFB;
}
.ansi-blue-intense-fg {
color: #0065CA;
}
.ansi-blue-intense-bg {
background-color: #0065CA;
}
.ansi-magenta-fg {
color: #D160C4;
}
.ansi-magenta-bg {
background-color: #D160C4;
}
.ansi-magenta-intense-fg {
color: #A03196;
}
.ansi-magenta-intense-bg {
background-color: #A03196;
}
.ansi-cyan-fg {
color: #60C6C8;
}
.ansi-cyan-bg {
background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
color: #258F8F;
}
.ansi-cyan-intense-bg {
background-color: #258F8F;
}
.ansi-white-fg {
color: #C5C1B4;
}
.ansi-white-bg {
background-color: #C5C1B4;
}
.ansi-white-intense-fg {
color: #A1A6B2;
}
.ansi-white-intense-bg {
background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
color: #FFFFFF;
}
.ansi-default-inverse-bg {
background-color: #000000;
}
.ansi-bold {
font-weight: bold;
}
.ansi-underline {
text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
font-weight: bold;
}
.ansi-inverse {
outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
position: relative;
overflow: visible;
}
div.cell:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: transparent;
}
div.cell.jupyter-soft-selected {
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #42A5F5;
}
@media print {
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: transparent;
}
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #66BB6A;
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
/* Note that this should set vertical padding only, since CodeMirror assumes
that horizontal padding will be set on CodeMirror pre */
padding: 0.4em 0;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
use .CodeMirror-lines for vertical */
padding: 0 0.4em;
border: 0;
border-radius: 0;
}
.CodeMirror-cursor {
border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.CodeMirror-cursor {
border-left: 2px solid black;
}
}
@media screen and (min-width: 4320px) {
.CodeMirror-cursor {
border-left: 4px solid black;
}
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area
div.output_area
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
div.output_area .mglyph > img {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 1px 0 1px 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
padding-left: 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html pre,
.rendered_html tr,
.rendered_html th,
.rendered_html tbody tr:nth-child(odd) {
background: #f5f5f5;
}
.rendered_html tbody tr:hover {
background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html img.unconfined,
.rendered_html * + .alert {
margin-top: 1em;
}
[dir="rtl"]
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered
.text_cell.unrendered .text_cell_render {
display: none;
}
.text_cell .dropzone .input_area {
border: 2px dashed #bababa;
margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
</style>
<style type="text/css"> .highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #f8f8f8; }
.highlight pre .c { color: #408080; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { color: #008000; font-weight: bold } /* Keyword */
.highlight pre .o { color: #666666 } /* Operator */
.highlight pre .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight pre .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight pre .gd { color: #A00000 } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #FF0000 } /* Generic.Error */
.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight pre .gi { color: #00A000 } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight pre .gt { color: #0044DD } /* Generic.Traceback */
.highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { color: #008000 } /* Keyword.Pseudo */
.highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { color: #B00040 } /* Keyword.Type */
.highlight pre .m { color: #666666 } /* Literal.Number */
.highlight pre .s { color: #BA2121 } /* Literal.String */
.highlight pre .na { color: #7D9029 } /* Name.Attribute */
.highlight pre .nb { color: #008000 } /* Name.Builtin */
.highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight pre .no { color: #880000 } /* Name.Constant */
.highlight pre .nd { color: #AA22FF } /* Name.Decorator */
.highlight pre .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight pre .nf { color: #0000FF } /* Name.Function */
.highlight pre .nl { color: #A0A000 } /* Name.Label */
.highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight pre .nv { color: #19177C } /* Name.Variable */
.highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #666666 } /* Literal.Number.Bin */
.highlight pre .mf { color: #666666 } /* Literal.Number.Float */
.highlight pre .mh { color: #666666 } /* Literal.Number.Hex */
.highlight pre .mi { color: #666666 } /* Literal.Number.Integer */
.highlight pre .mo { color: #666666 } /* Literal.Number.Oct */
.highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight pre .sc { color: #BA2121 } /* Literal.String.Char */
.highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight pre .sx { color: #008000 } /* Literal.String.Other */
.highlight pre .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight pre .ss { color: #19177C } /* Literal.String.Symbol */
.highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight pre .fm { color: #0000FF } /* Name.Function.Magic */
.highlight pre .vc { color: #19177C } /* Name.Variable.Class */
.highlight pre .vg { color: #19177C } /* Name.Variable.Global */
.highlight pre .vi { color: #19177C } /* Name.Variable.Instance */
.highlight pre .vm { color: #19177C } /* Name.Variable.Magic */
.highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [1]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">iframer</span> <span class="kn">import</span> <span class="o">*</span>
<span class="n">iframer</span><span class="p">(</span><span class="s1">'https://statsim.com/app/?m=conversion-rate&preview=1'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_html rendered_html output_subarea ">
<div class="iframer-wrapper" style="position: relative; padding-bottom: 550px; padding-top: 25px; height: 0;">
<iframe src="https://statsim.com/app/?m=conversion-rate&preview=1" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
</div><br>
<a class="iframer-link" href="https://statsim.com/app/?m=conversion-rate&preview=1" target="_blank" style="margin: 10px 0;">Open in statsim.com</a>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="What-is-Conversion-Rate?">What is Conversion Rate?<a class="anchor-link" href="#What-is-Conversion-Rate?">¶</a></h2><p>Conversion rate measures how many users complete a desired goal (a conversion) compared to the total number of users. It's usually calculated as a fraction $n/N$ where $n$ is number of conversions and $N$ - total number of visitors. The output of such model is deterministic and shows only what it calculates - the proportion of visitors during specific period. On the contrary, a probabilistic model encorporates uncertainty about true conversion rate.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Model">Model<a class="anchor-link" href="#Model">¶</a></h2>$$
\begin{align}
Rate \sim \text{Uniform(0,1)} \\
Conversions \sim \text{Binomial(Rate, N)} \\
p(Rate|Conversions, N) \varpropto p(Conversions|Rate, N) p(Rate) \\
\end{align}
$$<p>Model contains an uninformative uniform prior and a binomial distribution to evaluate log-likelihood of provided data (Number of trials, Conversions)</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [ ]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
<script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
var mathjaxscript = document.createElement('script');
mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
mathjaxscript.type = 'text/javascript';
mathjaxscript.src = '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
mathjaxscript[(window.opera ? "innerHTML" : "text")] =
"MathJax.Hub.Config({" +
" config: ['MMLorHTML.js']," +
" TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," +
" jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
" extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
" displayAlign: 'center'," +
" displayIndent: '0em'," +
" showMathMenu: true," +
" tex2jax: { " +
" inlineMath: [ ['$','$'] ], " +
" displayMath: [ ['$$','$$'] ]," +
" processEscapes: true," +
" preview: 'TeX'," +
" }, " +
" 'HTML-CSS': { " +
" linebreaks: { automatic: true, width: '95% container' }, " +
" styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" +
" } " +
"}); ";
(document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
</script>
Predator prey model (Lotka–Volterra)2019-03-08T11:00:00+01:002019-03-08T11:00:00+01:00Anton Zemlyanskytag:statsim.com,2019-03-08:/models/predator-prey/<p>Lotka–Volterra equations (predator–prey equations) are used to model dynamical relationship between predators and they prey</p><style type="text/css">/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
http://www.xcolors.net/dl/baskerville-ivorylight and
http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
color: #3E424D;
}
.ansi-black-bg {
background-color: #3E424D;
}
.ansi-black-intense-fg {
color: #282C36;
}
.ansi-black-intense-bg {
background-color: #282C36;
}
.ansi-red-fg {
color: #E75C58;
}
.ansi-red-bg {
background-color: #E75C58;
}
.ansi-red-intense-fg {
color: #B22B31;
}
.ansi-red-intense-bg {
background-color: #B22B31;
}
.ansi-green-fg {
color: #00A250;
}
.ansi-green-bg {
background-color: #00A250;
}
.ansi-green-intense-fg {
color: #007427;
}
.ansi-green-intense-bg {
background-color: #007427;
}
.ansi-yellow-fg {
color: #DDB62B;
}
.ansi-yellow-bg {
background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
color: #B27D12;
}
.ansi-yellow-intense-bg {
background-color: #B27D12;
}
.ansi-blue-fg {
color: #208FFB;
}
.ansi-blue-bg {
background-color: #208FFB;
}
.ansi-blue-intense-fg {
color: #0065CA;
}
.ansi-blue-intense-bg {
background-color: #0065CA;
}
.ansi-magenta-fg {
color: #D160C4;
}
.ansi-magenta-bg {
background-color: #D160C4;
}
.ansi-magenta-intense-fg {
color: #A03196;
}
.ansi-magenta-intense-bg {
background-color: #A03196;
}
.ansi-cyan-fg {
color: #60C6C8;
}
.ansi-cyan-bg {
background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
color: #258F8F;
}
.ansi-cyan-intense-bg {
background-color: #258F8F;
}
.ansi-white-fg {
color: #C5C1B4;
}
.ansi-white-bg {
background-color: #C5C1B4;
}
.ansi-white-intense-fg {
color: #A1A6B2;
}
.ansi-white-intense-bg {
background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
color: #FFFFFF;
}
.ansi-default-inverse-bg {
background-color: #000000;
}
.ansi-bold {
font-weight: bold;
}
.ansi-underline {
text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
font-weight: bold;
}
.ansi-inverse {
outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
position: relative;
overflow: visible;
}
div.cell:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: transparent;
}
div.cell.jupyter-soft-selected {
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #42A5F5;
}
@media print {
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: transparent;
}
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #66BB6A;
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
/* Note that this should set vertical padding only, since CodeMirror assumes
that horizontal padding will be set on CodeMirror pre */
padding: 0.4em 0;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
use .CodeMirror-lines for vertical */
padding: 0 0.4em;
border: 0;
border-radius: 0;
}
.CodeMirror-cursor {
border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.CodeMirror-cursor {
border-left: 2px solid black;
}
}
@media screen and (min-width: 4320px) {
.CodeMirror-cursor {
border-left: 4px solid black;
}
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area
div.output_area
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
div.output_area .mglyph > img {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 1px 0 1px 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
padding-left: 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html pre,
.rendered_html tr,
.rendered_html th,
.rendered_html tbody tr:nth-child(odd) {
background: #f5f5f5;
}
.rendered_html tbody tr:hover {
background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html img.unconfined,
.rendered_html * + .alert {
margin-top: 1em;
}
[dir="rtl"]
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered
.text_cell.unrendered .text_cell_render {
display: none;
}
.text_cell .dropzone .input_area {
border: 2px dashed #bababa;
margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
</style>
<style type="text/css"> .highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #f8f8f8; }
.highlight pre .c { color: #408080; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { color: #008000; font-weight: bold } /* Keyword */
.highlight pre .o { color: #666666 } /* Operator */
.highlight pre .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight pre .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight pre .gd { color: #A00000 } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #FF0000 } /* Generic.Error */
.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight pre .gi { color: #00A000 } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight pre .gt { color: #0044DD } /* Generic.Traceback */
.highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { color: #008000 } /* Keyword.Pseudo */
.highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { color: #B00040 } /* Keyword.Type */
.highlight pre .m { color: #666666 } /* Literal.Number */
.highlight pre .s { color: #BA2121 } /* Literal.String */
.highlight pre .na { color: #7D9029 } /* Name.Attribute */
.highlight pre .nb { color: #008000 } /* Name.Builtin */
.highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight pre .no { color: #880000 } /* Name.Constant */
.highlight pre .nd { color: #AA22FF } /* Name.Decorator */
.highlight pre .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight pre .nf { color: #0000FF } /* Name.Function */
.highlight pre .nl { color: #A0A000 } /* Name.Label */
.highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight pre .nv { color: #19177C } /* Name.Variable */
.highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #666666 } /* Literal.Number.Bin */
.highlight pre .mf { color: #666666 } /* Literal.Number.Float */
.highlight pre .mh { color: #666666 } /* Literal.Number.Hex */
.highlight pre .mi { color: #666666 } /* Literal.Number.Integer */
.highlight pre .mo { color: #666666 } /* Literal.Number.Oct */
.highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight pre .sc { color: #BA2121 } /* Literal.String.Char */
.highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight pre .sx { color: #008000 } /* Literal.String.Other */
.highlight pre .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight pre .ss { color: #19177C } /* Literal.String.Symbol */
.highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight pre .fm { color: #0000FF } /* Name.Function.Magic */
.highlight pre .vc { color: #19177C } /* Name.Variable.Class */
.highlight pre .vg { color: #19177C } /* Name.Variable.Global */
.highlight pre .vi { color: #19177C } /* Name.Variable.Instance */
.highlight pre .vm { color: #19177C } /* Name.Variable.Magic */
.highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Introduction">Introduction<a class="anchor-link" href="#Introduction">¶</a></h2><p>Lotka-Volterra equations are used in simplest cases when there's only one predator population and one prey population. The model was developed in the beginning of 20<sup>th</sup> century by Alfred Lotka and Vito Volterra (independently). <a href="https://en.wikipedia.org/wiki/Lotka%E2%80%93Volterra_equations">https://en.wikipedia.org/wiki/Lotka-Volterra_equations</a></p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Assumptions">Assumptions<a class="anchor-link" href="#Assumptions">¶</a></h2><ul>
<li>exponential growth of the prey population when the predator is absent</li>
<li>the predator population will starve if the prey population is 0</li>
<li>predators can consume infinite amount of prey</li>
<li>environment is simple (both populations are moving randomly through a homogeneous environment)</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Model">Model<a class="anchor-link" href="#Model">¶</a></h2><p>Instead of using formulas to get the final value the model simulates all time steps to get historical data.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [1]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">iframer</span> <span class="kn">import</span> <span class="o">*</span>
<span class="n">iframer</span><span class="p">(</span><span class="s1">'https://statsim.com/app/?m=predatorprey&preview=1'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_html rendered_html output_subarea ">
<div class="iframer-wrapper" style="position: relative; padding-bottom: 550px; padding-top: 25px; height: 0;">
<iframe src="https://statsim.com/app/?m=predatorprey&preview=1" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
</div><br>
<a class="iframer-link" href="https://statsim.com/app/?m=predatorprey&preview=1" target="_blank" style="margin: 10px 0;">Open in statsim.com</a>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
var mathjaxscript = document.createElement('script');
mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
mathjaxscript.type = 'text/javascript';
mathjaxscript.src = '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
mathjaxscript[(window.opera ? "innerHTML" : "text")] =
"MathJax.Hub.Config({" +
" config: ['MMLorHTML.js']," +
" TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," +
" jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
" extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
" displayAlign: 'center'," +
" displayIndent: '0em'," +
" showMathMenu: true," +
" tex2jax: { " +
" inlineMath: [ ['$','$'] ], " +
" displayMath: [ ['$$','$$'] ]," +
" processEscapes: true," +
" preview: 'TeX'," +
" }, " +
" 'HTML-CSS': { " +
" linebreaks: { automatic: true, width: '95% container' }, " +
" styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" +
" } " +
"}); ";
(document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
</script>
Compound interest2019-02-24T20:00:00+01:002019-02-24T20:00:00+01:00Anton Zemlyanskytag:statsim.com,2019-02-24:/models/compound-interest/<p>Compound interest model with annual deposits</p><style type="text/css">/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
http://www.xcolors.net/dl/baskerville-ivorylight and
http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
color: #3E424D;
}
.ansi-black-bg {
background-color: #3E424D;
}
.ansi-black-intense-fg {
color: #282C36;
}
.ansi-black-intense-bg {
background-color: #282C36;
}
.ansi-red-fg {
color: #E75C58;
}
.ansi-red-bg {
background-color: #E75C58;
}
.ansi-red-intense-fg {
color: #B22B31;
}
.ansi-red-intense-bg {
background-color: #B22B31;
}
.ansi-green-fg {
color: #00A250;
}
.ansi-green-bg {
background-color: #00A250;
}
.ansi-green-intense-fg {
color: #007427;
}
.ansi-green-intense-bg {
background-color: #007427;
}
.ansi-yellow-fg {
color: #DDB62B;
}
.ansi-yellow-bg {
background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
color: #B27D12;
}
.ansi-yellow-intense-bg {
background-color: #B27D12;
}
.ansi-blue-fg {
color: #208FFB;
}
.ansi-blue-bg {
background-color: #208FFB;
}
.ansi-blue-intense-fg {
color: #0065CA;
}
.ansi-blue-intense-bg {
background-color: #0065CA;
}
.ansi-magenta-fg {
color: #D160C4;
}
.ansi-magenta-bg {
background-color: #D160C4;
}
.ansi-magenta-intense-fg {
color: #A03196;
}
.ansi-magenta-intense-bg {
background-color: #A03196;
}
.ansi-cyan-fg {
color: #60C6C8;
}
.ansi-cyan-bg {
background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
color: #258F8F;
}
.ansi-cyan-intense-bg {
background-color: #258F8F;
}
.ansi-white-fg {
color: #C5C1B4;
}
.ansi-white-bg {
background-color: #C5C1B4;
}
.ansi-white-intense-fg {
color: #A1A6B2;
}
.ansi-white-intense-bg {
background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
color: #FFFFFF;
}
.ansi-default-inverse-bg {
background-color: #000000;
}
.ansi-bold {
font-weight: bold;
}
.ansi-underline {
text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
font-weight: bold;
}
.ansi-inverse {
outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
position: relative;
overflow: visible;
}
div.cell:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: transparent;
}
div.cell.jupyter-soft-selected {
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #42A5F5;
}
@media print {
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: transparent;
}
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #66BB6A;
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
/* Note that this should set vertical padding only, since CodeMirror assumes
that horizontal padding will be set on CodeMirror pre */
padding: 0.4em 0;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
use .CodeMirror-lines for vertical */
padding: 0 0.4em;
border: 0;
border-radius: 0;
}
.CodeMirror-cursor {
border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.CodeMirror-cursor {
border-left: 2px solid black;
}
}
@media screen and (min-width: 4320px) {
.CodeMirror-cursor {
border-left: 4px solid black;
}
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area
div.output_area
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
div.output_area .mglyph > img {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 1px 0 1px 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
padding-left: 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html pre,
.rendered_html tr,
.rendered_html th,
.rendered_html tbody tr:nth-child(odd) {
background: #f5f5f5;
}
.rendered_html tbody tr:hover {
background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html img.unconfined,
.rendered_html * + .alert {
margin-top: 1em;
}
[dir="rtl"]
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered
.text_cell.unrendered .text_cell_render {
display: none;
}
.text_cell .dropzone .input_area {
border: 2px dashed #bababa;
margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
</style>
<style type="text/css"> .highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #f8f8f8; }
.highlight pre .c { color: #408080; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { color: #008000; font-weight: bold } /* Keyword */
.highlight pre .o { color: #666666 } /* Operator */
.highlight pre .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight pre .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight pre .gd { color: #A00000 } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #FF0000 } /* Generic.Error */
.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight pre .gi { color: #00A000 } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight pre .gt { color: #0044DD } /* Generic.Traceback */
.highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { color: #008000 } /* Keyword.Pseudo */
.highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { color: #B00040 } /* Keyword.Type */
.highlight pre .m { color: #666666 } /* Literal.Number */
.highlight pre .s { color: #BA2121 } /* Literal.String */
.highlight pre .na { color: #7D9029 } /* Name.Attribute */
.highlight pre .nb { color: #008000 } /* Name.Builtin */
.highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight pre .no { color: #880000 } /* Name.Constant */
.highlight pre .nd { color: #AA22FF } /* Name.Decorator */
.highlight pre .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight pre .nf { color: #0000FF } /* Name.Function */
.highlight pre .nl { color: #A0A000 } /* Name.Label */
.highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight pre .nv { color: #19177C } /* Name.Variable */
.highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #666666 } /* Literal.Number.Bin */
.highlight pre .mf { color: #666666 } /* Literal.Number.Float */
.highlight pre .mh { color: #666666 } /* Literal.Number.Hex */
.highlight pre .mi { color: #666666 } /* Literal.Number.Integer */
.highlight pre .mo { color: #666666 } /* Literal.Number.Oct */
.highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight pre .sc { color: #BA2121 } /* Literal.String.Char */
.highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight pre .sx { color: #008000 } /* Literal.String.Other */
.highlight pre .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight pre .ss { color: #19177C } /* Literal.String.Symbol */
.highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight pre .fm { color: #0000FF } /* Name.Function.Magic */
.highlight pre .vc { color: #19177C } /* Name.Variable.Class */
.highlight pre .vg { color: #19177C } /* Name.Variable.Global */
.highlight pre .vi { color: #19177C } /* Name.Variable.Instance */
.highlight pre .vm { color: #19177C } /* Name.Variable.Magic */
.highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="What-is-Compound-Interest?">What is Compound Interest?<a class="anchor-link" href="#What-is-Compound-Interest?">¶</a></h2><p>Compound interest is a special type of loan, deposit or a saving account. After each compound period the interest is reinvested rather than paid. Compound interest of each period is based on both principal and reinvested interests from previous periods. Basically it's "interest on interest" <a href="https://en.wikipedia.org/wiki/Compound_interest">https://en.wikipedia.org/wiki/Compound_interest</a></p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Model">Model<a class="anchor-link" href="#Model">¶</a></h2><p>Instead of using formulas to get the final value the model simulates all time steps to get historical data.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [1]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">iframer</span> <span class="kn">import</span> <span class="o">*</span>
<span class="n">iframer</span><span class="p">(</span><span class="s1">'https://statsim.com/app/?m=compound&preview=1'</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_html rendered_html output_subarea ">
<div class="iframer-wrapper" style="position: relative; padding-bottom: 550px; padding-top: 25px; height: 0;">
<iframe src="https://statsim.com/app/?m=compound&preview=1" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>
</div><br>
<a class="iframer-link" href="https://statsim.com/app/?m=compound&preview=1" target="_blank" style="margin: 10px 0;">Open in statsim.com</a>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
var mathjaxscript = document.createElement('script');
mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
mathjaxscript.type = 'text/javascript';
mathjaxscript.src = '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
mathjaxscript[(window.opera ? "innerHTML" : "text")] =
"MathJax.Hub.Config({" +
" config: ['MMLorHTML.js']," +
" TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }," +
" jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
" extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
" displayAlign: 'center'," +
" displayIndent: '0em'," +
" showMathMenu: true," +
" tex2jax: { " +
" inlineMath: [ ['$','$'] ], " +
" displayMath: [ ['$$','$$'] ]," +
" processEscapes: true," +
" preview: 'TeX'," +
" }, " +
" 'HTML-CSS': { " +
" linebreaks: { automatic: true, width: '95% container' }, " +
" styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'black ! important'} }" +
" } " +
"}); ";
(document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
</script>