Skip to content

Commit

Permalink
add bayesian
Browse files Browse the repository at this point in the history
  • Loading branch information
khuyentran1401 committed Dec 11, 2021
1 parent a2268bb commit cd72af7
Showing 1 changed file with 115 additions and 28 deletions.
143 changes: 115 additions & 28 deletions statistics/bayesian_example/google analytics.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1530,10 +1530,12 @@
},
{
"cell_type": "markdown",
"id": "8ef3f2ec",
"id": "62f00363",
"metadata": {},
"source": [
"$C_i \\sim \\text{Poi}(\\lambda)$"
"$C_i$: Number of views on day $i$.\n",
"\n",
"$C_i \\sim \\text{Poi}(\\lambda) \\quad i= 1, \\cdots, N$"
]
},
{
Expand Down Expand Up @@ -1620,11 +1622,11 @@
0.003529988861723204,
0.0007564261846549723,
0.0001418299096228073,
0.000023638318270467896,
0.0000035457477405701846,
4.835110555322975e-7,
6.043888194153728e-8,
6.973717147100454e-9,
2.3638318270467896e-05,
3.5457477405701846e-06,
4.835110555322975e-07,
6.043888194153728e-08,
6.973717147100454e-09,
7.471839800464765e-10,
7.471839800464757e-11
],
Expand Down Expand Up @@ -2580,10 +2582,10 @@
0.002700503931560479,
0.0008101511794681439,
0.00022095032167312998,
0.00005523758041828258,
0.000012747133942680616,
0.0000027315287020029775,
5.463057404005949e-7
5.523758041828258e-05,
1.2747133942680616e-05,
2.7315287020029775e-06,
5.463057404005949e-07
],
"yaxis": "y"
}
Expand Down Expand Up @@ -3525,7 +3527,7 @@
],
"xaxis": "x",
"y": [
0.000045399929762484854,
4.5399929762484854e-05,
0.0004539992976248486,
0.0022699964881242435,
0.007566654960414144,
Expand Down Expand Up @@ -4479,6 +4481,17 @@
"$$"
]
},
{
"cell_type": "markdown",
"id": "4ed201d3",
"metadata": {},
"source": [
"$$\n",
"\\text{Mean Number of Views} = \\frac{1}{N}\\sum^{N}_{i=0} C_i\\\\\n",
"\\alpha = \\frac{1}{\\text{Mean Number of Views}}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 8,
Expand Down Expand Up @@ -9230,17 +9243,6 @@
"from plotly.subplots import make_subplots"
]
},
{
"cell_type": "markdown",
"id": "4ed201d3",
"metadata": {},
"source": [
"$$\n",
"\\frac{1}{N}\\sum^{N}_{i=0} C_i \\approx \\text{E}[\\lambda|\\alpha] = \\frac{1}{\\alpha}\\\\\n",
"\\alpha = \\frac{1}{\\text{Mean Number of Views}}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 16,
Expand Down Expand Up @@ -9371,7 +9373,24 @@
},
{
"data": {
"application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 50;\n var nbb_unformatted_code = \"with model:\\n step = pm.Metropolis(random_seed=2)\\n trace = pm.sample(10000, tune=5000, step=step, return_inferencedata=False)\";\n var nbb_formatted_code = \"with model:\\n step = pm.Metropolis(random_seed=2)\\n trace = pm.sample(10000, tune=5000, step=step, return_inferencedata=False)\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ",
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 50;\n",
" var nbb_unformatted_code = \"with model:\\n step = pm.Metropolis(random_seed=2)\\n trace = pm.sample(10000, tune=5000, step=step, return_inferencedata=False)\";\n",
" var nbb_formatted_code = \"with model:\\n step = pm.Metropolis(random_seed=2)\\n trace = pm.sample(10000, tune=5000, step=step, return_inferencedata=False)\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" }\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
Expand Down Expand Up @@ -9399,7 +9418,24 @@
"outputs": [
{
"data": {
"application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 51;\n var nbb_unformatted_code = \"lambda_1_samples = trace[\\\"lambda_1\\\"]\\nlambda_2_samples = trace[\\\"lambda_2\\\"]\\ntau_samples = trace[\\\"tau\\\"]\";\n var nbb_formatted_code = \"lambda_1_samples = trace[\\\"lambda_1\\\"]\\nlambda_2_samples = trace[\\\"lambda_2\\\"]\\ntau_samples = trace[\\\"tau\\\"]\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ",
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 51;\n",
" var nbb_unformatted_code = \"lambda_1_samples = trace[\\\"lambda_1\\\"]\\nlambda_2_samples = trace[\\\"lambda_2\\\"]\\ntau_samples = trace[\\\"tau\\\"]\";\n",
" var nbb_formatted_code = \"lambda_1_samples = trace[\\\"lambda_1\\\"]\\nlambda_2_samples = trace[\\\"lambda_2\\\"]\\ntau_samples = trace[\\\"tau\\\"]\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" }\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
Expand Down Expand Up @@ -130405,7 +130441,24 @@
},
{
"data": {
"application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 53;\n var nbb_unformatted_code = \"fig = make_subplots(rows=3, cols=1, y_title=\\\"probability\\\")\\nfig.add_trace(\\n go.Histogram(\\n x=lambda_1_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\lambda_1$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=1,\\n col=1,\\n)\\nfig.add_trace(\\n go.Histogram(\\n x=lambda_2_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\lambda_2$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=2,\\n col=1,\\n)\\nfig.add_trace(\\n go.Histogram(\\n x=tau_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\\\\\tau$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=3,\\n col=1,\\n)\\n\\nfig.update_layout(\\n xaxis={\\\"title\\\": \\\"$$\\\\lambda_1$$\\\", \\\"range\\\": (50, 118)},\\n xaxis2={\\\"title\\\": \\\"$$\\\\lambda_2$$\\\", \\\"range\\\": (50, 118)},\\n xaxis3={\\\"title\\\": \\\"$$\\\\\\\\tau$$\\\"},\\n)\";\n var nbb_formatted_code = \"fig = make_subplots(rows=3, cols=1, y_title=\\\"probability\\\")\\nfig.add_trace(\\n go.Histogram(\\n x=lambda_1_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\lambda_1$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=1,\\n col=1,\\n)\\nfig.add_trace(\\n go.Histogram(\\n x=lambda_2_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\lambda_2$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=2,\\n col=1,\\n)\\nfig.add_trace(\\n go.Histogram(\\n x=tau_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\\\\\tau$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=3,\\n col=1,\\n)\\n\\nfig.update_layout(\\n xaxis={\\\"title\\\": \\\"$$\\\\lambda_1$$\\\", \\\"range\\\": (50, 118)},\\n xaxis2={\\\"title\\\": \\\"$$\\\\lambda_2$$\\\", \\\"range\\\": (50, 118)},\\n xaxis3={\\\"title\\\": \\\"$$\\\\\\\\tau$$\\\"},\\n)\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ",
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 53;\n",
" var nbb_unformatted_code = \"fig = make_subplots(rows=3, cols=1, y_title=\\\"probability\\\")\\nfig.add_trace(\\n go.Histogram(\\n x=lambda_1_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\lambda_1$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=1,\\n col=1,\\n)\\nfig.add_trace(\\n go.Histogram(\\n x=lambda_2_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\lambda_2$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=2,\\n col=1,\\n)\\nfig.add_trace(\\n go.Histogram(\\n x=tau_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\\\\\tau$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=3,\\n col=1,\\n)\\n\\nfig.update_layout(\\n xaxis={\\\"title\\\": \\\"$$\\\\lambda_1$$\\\", \\\"range\\\": (50, 118)},\\n xaxis2={\\\"title\\\": \\\"$$\\\\lambda_2$$\\\", \\\"range\\\": (50, 118)},\\n xaxis3={\\\"title\\\": \\\"$$\\\\\\\\tau$$\\\"},\\n)\";\n",
" var nbb_formatted_code = \"fig = make_subplots(rows=3, cols=1, y_title=\\\"probability\\\")\\nfig.add_trace(\\n go.Histogram(\\n x=lambda_1_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\lambda_1$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=1,\\n col=1,\\n)\\nfig.add_trace(\\n go.Histogram(\\n x=lambda_2_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\lambda_2$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=2,\\n col=1,\\n)\\nfig.add_trace(\\n go.Histogram(\\n x=tau_samples,\\n name=\\\"$$\\\\\\\\text{posterior of }\\\\\\\\tau$$\\\",\\n histnorm=\\\"probability density\\\",\\n ),\\n row=3,\\n col=1,\\n)\\n\\nfig.update_layout(\\n xaxis={\\\"title\\\": \\\"$$\\\\lambda_1$$\\\", \\\"range\\\": (50, 118)},\\n xaxis2={\\\"title\\\": \\\"$$\\\\lambda_2$$\\\", \\\"range\\\": (50, 118)},\\n xaxis3={\\\"title\\\": \\\"$$\\\\\\\\tau$$\\\"},\\n)\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" }\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
Expand Down Expand Up @@ -130464,7 +130517,24 @@
"outputs": [
{
"data": {
"application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 59;\n var nbb_unformatted_code = \"N = tau_samples.shape[0]\\nexpected_views_per_day = np.zeros(len(data))\\n\\nfor day in range(0, len(data)):\\n ix = day < tau_samples\\n expected_views_per_day[day] = (\\n lambda_1_samples[ix].sum() + lambda_2_samples[~ix].sum()\\n ) / N\";\n var nbb_formatted_code = \"N = tau_samples.shape[0]\\nexpected_views_per_day = np.zeros(len(data))\\n\\nfor day in range(0, len(data)):\\n ix = day < tau_samples\\n expected_views_per_day[day] = (\\n lambda_1_samples[ix].sum() + lambda_2_samples[~ix].sum()\\n ) / N\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ",
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 59;\n",
" var nbb_unformatted_code = \"N = tau_samples.shape[0]\\nexpected_views_per_day = np.zeros(len(data))\\n\\nfor day in range(0, len(data)):\\n ix = day < tau_samples\\n expected_views_per_day[day] = (\\n lambda_1_samples[ix].sum() + lambda_2_samples[~ix].sum()\\n ) / N\";\n",
" var nbb_formatted_code = \"N = tau_samples.shape[0]\\nexpected_views_per_day = np.zeros(len(data))\\n\\nfor day in range(0, len(data)):\\n ix = day < tau_samples\\n expected_views_per_day[day] = (\\n lambda_1_samples[ix].sum() + lambda_2_samples[~ix].sum()\\n ) / N\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" }\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
Expand Down Expand Up @@ -132111,7 +132181,24 @@
},
{
"data": {
"application/javascript": "\n setTimeout(function() {\n var nbb_cell_id = 60;\n var nbb_unformatted_code = \"days = list(range(len(data)))\\n\\nfig = go.Figure()\\nfig.add_trace(go.Bar(x=days, y=data, name=\\\"observed views per day\\\"))\\nfig.add_trace(\\n go.Scatter(\\n x=days, y=expected_views_per_day, mode=\\\"lines\\\", name=\\\"expected number of views\\\"\\n )\\n)\\n\\nfig.update_layout(xaxis={\\\"title\\\": \\\"Day\\\"}, yaxis={\\\"title\\\": \\\"Expected number of views\\\"})\\nfig.show()\";\n var nbb_formatted_code = \"days = list(range(len(data)))\\n\\nfig = go.Figure()\\nfig.add_trace(go.Bar(x=days, y=data, name=\\\"observed views per day\\\"))\\nfig.add_trace(\\n go.Scatter(\\n x=days, y=expected_views_per_day, mode=\\\"lines\\\", name=\\\"expected number of views\\\"\\n )\\n)\\n\\nfig.update_layout(xaxis={\\\"title\\\": \\\"Day\\\"}, yaxis={\\\"title\\\": \\\"Expected number of views\\\"})\\nfig.show()\";\n var nbb_cells = Jupyter.notebook.get_cells();\n for (var i = 0; i < nbb_cells.length; ++i) {\n if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n nbb_cells[i].set_text(nbb_formatted_code);\n }\n break;\n }\n }\n }, 500);\n ",
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 60;\n",
" var nbb_unformatted_code = \"days = list(range(len(data)))\\n\\nfig = go.Figure()\\nfig.add_trace(go.Bar(x=days, y=data, name=\\\"observed views per day\\\"))\\nfig.add_trace(\\n go.Scatter(\\n x=days, y=expected_views_per_day, mode=\\\"lines\\\", name=\\\"expected number of views\\\"\\n )\\n)\\n\\nfig.update_layout(xaxis={\\\"title\\\": \\\"Day\\\"}, yaxis={\\\"title\\\": \\\"Expected number of views\\\"})\\nfig.show()\";\n",
" var nbb_formatted_code = \"days = list(range(len(data)))\\n\\nfig = go.Figure()\\nfig.add_trace(go.Bar(x=days, y=data, name=\\\"observed views per day\\\"))\\nfig.add_trace(\\n go.Scatter(\\n x=days, y=expected_views_per_day, mode=\\\"lines\\\", name=\\\"expected number of views\\\"\\n )\\n)\\n\\nfig.update_layout(xaxis={\\\"title\\\": \\\"Day\\\"}, yaxis={\\\"title\\\": \\\"Expected number of views\\\"})\\nfig.show()\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" if (nbb_cells[i].get_text() == nbb_unformatted_code) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" }\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
Expand Down

0 comments on commit cd72af7

Please sign in to comment.