└── Bayesian Logistic Regression.ipynb /Bayesian Logistic Regression.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "96ba19f4", 7 | "metadata": {}, 8 | "outputs": [ 9 | { 10 | "name": "stdout", 11 | "output_type": "stream", 12 | "text": [ 13 | "Collecting pymc3\n", 14 | " Downloading pymc3-3.11.5-py3-none-any.whl (872 kB)\n", 15 | "Requirement already satisfied: scipy<1.8.0,>=1.7.3 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from pymc3) (1.7.3)\n", 16 | "Requirement already satisfied: patsy>=0.5.1 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from pymc3) (0.5.2)\n", 17 | "Requirement already satisfied: typing-extensions>=3.7.4 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from pymc3) (4.5.0)\n", 18 | "Requirement already satisfied: pandas>=0.24.0 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from pymc3) (1.4.2)\n", 19 | "Collecting semver>=2.13.0\n", 20 | " Downloading semver-3.0.2-py3-none-any.whl (17 kB)\n", 21 | "Collecting theano-pymc==1.1.2\n", 22 | " Downloading Theano-PyMC-1.1.2.tar.gz (1.8 MB)\n", 23 | "Requirement already satisfied: numpy<1.22.2,>=1.15.0 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from pymc3) (1.21.5)\n", 24 | "Collecting fastprogress>=0.2.0\n", 25 | " Downloading fastprogress-1.0.3-py3-none-any.whl (12 kB)\n", 26 | "Collecting dill\n", 27 | " Downloading dill-0.3.8-py3-none-any.whl (116 kB)\n", 28 | "Collecting arviz>=0.11.0\n", 29 | " Downloading arviz-0.17.0-py3-none-any.whl (1.7 MB)\n", 30 | "Requirement already satisfied: cachetools>=4.2.1 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from pymc3) (4.2.2)\n", 31 | "Collecting deprecat\n", 32 | " Downloading deprecat-2.1.1-py2.py3-none-any.whl (9.8 kB)\n", 33 | "Requirement already satisfied: filelock in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from theano-pymc==1.1.2->pymc3) (3.6.0)\n", 34 | "Collecting h5netcdf>=1.0.2\n", 35 | " Downloading h5netcdf-1.3.0-py3-none-any.whl (43 kB)\n", 36 | "Requirement already satisfied: setuptools>=60.0.0 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from arviz>=0.11.0->pymc3) (61.2.0)\n", 37 | "Requirement already satisfied: matplotlib>=3.5 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from arviz>=0.11.0->pymc3) (3.5.1)\n", 38 | "Collecting xarray-einstats>=0.3\n", 39 | " Downloading xarray_einstats-0.7.0-py3-none-any.whl (31 kB)\n", 40 | "Collecting numpy<1.22.2,>=1.15.0\n", 41 | " Downloading numpy-1.22.1-cp39-cp39-win_amd64.whl (14.7 MB)\n", 42 | "Collecting xarray>=0.21.0\n", 43 | " Downloading xarray-2024.2.0-py3-none-any.whl (1.1 MB)\n", 44 | "Requirement already satisfied: packaging in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from arviz>=0.11.0->pymc3) (21.3)\n", 45 | "Collecting arviz>=0.11.0\n", 46 | " Downloading arviz-0.16.1-py3-none-any.whl (1.7 MB)\n", 47 | " Downloading arviz-0.16.0-py3-none-any.whl (1.7 MB)\n", 48 | " Downloading arviz-0.15.1-py3-none-any.whl (1.6 MB)\n", 49 | " Downloading arviz-0.15.0-py3-none-any.whl (1.6 MB)\n", 50 | " Downloading arviz-0.14.0-py3-none-any.whl (1.7 MB)\n", 51 | "Collecting netcdf4\n", 52 | " Downloading netCDF4-1.6.5-cp39-cp39-win_amd64.whl (6.6 MB)\n", 53 | "Collecting arviz>=0.11.0\n", 54 | " Downloading arviz-0.13.0-py3-none-any.whl (1.7 MB)\n", 55 | " Downloading arviz-0.12.1-py3-none-any.whl (1.6 MB)\n", 56 | "Requirement already satisfied: xarray>=0.16.1 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from arviz>=0.11.0->pymc3) (0.20.1)\n", 57 | "Requirement already satisfied: pyparsing>=2.2.1 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from matplotlib>=3.5->arviz>=0.11.0->pymc3) (3.0.4)\n", 58 | "Requirement already satisfied: python-dateutil>=2.7 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from matplotlib>=3.5->arviz>=0.11.0->pymc3) (2.8.2)\n", 59 | "Requirement already satisfied: fonttools>=4.22.0 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from matplotlib>=3.5->arviz>=0.11.0->pymc3) (4.25.0)\n", 60 | "Requirement already satisfied: cycler>=0.10 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from matplotlib>=3.5->arviz>=0.11.0->pymc3) (0.11.0)\n", 61 | "Requirement already satisfied: pillow>=6.2.0 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from matplotlib>=3.5->arviz>=0.11.0->pymc3) (9.0.1)\n", 62 | "Requirement already satisfied: kiwisolver>=1.0.1 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from matplotlib>=3.5->arviz>=0.11.0->pymc3) (1.3.2)\n", 63 | "Requirement already satisfied: pytz>=2020.1 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from pandas>=0.24.0->pymc3) (2021.3)\n", 64 | "Requirement already satisfied: six in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from patsy>=0.5.1->pymc3) (1.16.0)\n", 65 | "Collecting xarray-einstats>=0.2\n", 66 | " Downloading xarray_einstats-0.6.0-py3-none-any.whl (31 kB)\n", 67 | "Collecting xarray>=0.16.1\n", 68 | " Downloading xarray-2024.1.1-py3-none-any.whl (1.1 MB)\n", 69 | " Downloading xarray-2024.1.0-py3-none-any.whl (1.1 MB)\n", 70 | " Downloading xarray-2023.12.0-py3-none-any.whl (1.1 MB)\n", 71 | "Requirement already satisfied: wrapt<2,>=1.10 in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from deprecat->pymc3) (1.12.1)\n", 72 | "Collecting cftime\n", 73 | " Downloading cftime-1.6.3-cp39-cp39-win_amd64.whl (187 kB)\n", 74 | "Requirement already satisfied: certifi in c:\\users\\lenovo\\anaconda3\\lib\\site-packages (from netcdf4->arviz>=0.11.0->pymc3) (2021.10.8)\n", 75 | "Building wheels for collected packages: theano-pymc\n", 76 | " Building wheel for theano-pymc (setup.py): started\n", 77 | " Building wheel for theano-pymc (setup.py): finished with status 'done'\n", 78 | " Created wheel for theano-pymc: filename=Theano_PyMC-1.1.2-py3-none-any.whl size=1529976 sha256=2066f397ba3c61bad02d07671b1888f31a1dab4dfb06c21e20510c587457ba6a\n", 79 | " Stored in directory: c:\\users\\lenovo\\appdata\\local\\pip\\cache\\wheels\\04\\22\\4d\\832878ba2fe9ea3543f0189b9288a78e4aa4e0afc851a6890c\n", 80 | "Successfully built theano-pymc\n", 81 | "Installing collected packages: numpy, xarray, cftime, xarray-einstats, netcdf4, theano-pymc, semver, fastprogress, dill, deprecat, arviz, pymc3\n", 82 | " Attempting uninstall: numpy\n", 83 | " Found existing installation: numpy 1.21.5\n", 84 | " Uninstalling numpy-1.21.5:\n", 85 | " Successfully uninstalled numpy-1.21.5\n", 86 | " Attempting uninstall: xarray\n", 87 | " Found existing installation: xarray 0.20.1\n", 88 | " Uninstalling xarray-0.20.1:\n", 89 | " Successfully uninstalled xarray-0.20.1\n", 90 | "Successfully installed arviz-0.12.1 cftime-1.6.3 deprecat-2.1.1 dill-0.3.8 fastprogress-1.0.3 netcdf4-1.6.5 numpy-1.22.1 pymc3-3.11.5 semver-3.0.2 theano-pymc-1.1.2 xarray-2023.12.0 xarray-einstats-0.6.0\n", 91 | "Note: you may need to restart the kernel to use updated packages.\n" 92 | ] 93 | }, 94 | { 95 | "name": "stderr", 96 | "output_type": "stream", 97 | "text": [ 98 | "ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", 99 | "daal4py 2021.5.0 requires daal==2021.4.0, which is not installed.\n", 100 | "numba 0.55.1 requires numpy<1.22,>=1.18, but you have numpy 1.22.1 which is incompatible.\n" 101 | ] 102 | } 103 | ], 104 | "source": [ 105 | "pip install pymc3" 106 | ] 107 | }, 108 | { 109 | "cell_type": "code", 110 | "execution_count": 1, 111 | "id": "718af7cc", 112 | "metadata": {}, 113 | "outputs": [ 114 | { 115 | "name": "stdout", 116 | "output_type": "stream", 117 | "text": [ 118 | "WARN: Could not locate executable g77\n", 119 | "WARN: Could not locate executable f77\n", 120 | "WARN: Could not locate executable ifort\n", 121 | "WARN: Could not locate executable ifl\n", 122 | "WARN: Could not locate executable f90\n", 123 | "WARN: Could not locate executable DF\n", 124 | "WARN: Could not locate executable efl\n", 125 | "WARN: Could not locate executable gfortran\n", 126 | "WARN: Could not locate executable f95\n", 127 | "WARN: Could not locate executable g95\n", 128 | "WARN: Could not locate executable efort\n", 129 | "WARN: Could not locate executable efc\n", 130 | "WARN: Could not locate executable flang\n", 131 | "WARN: don't know how to compile Fortran code on platform 'nt'\n" 132 | ] 133 | }, 134 | { 135 | "name": "stderr", 136 | "output_type": "stream", 137 | "text": [ 138 | "WARNING (theano.configdefaults): g++ not available, if using conda: `conda install m2w64-toolchain`\n", 139 | "WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.\n", 140 | "WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.\n", 141 | "C:\\Users\\Lenovo\\anaconda3\\lib\\site-packages\\deprecat\\classic.py:215: FutureWarning: In v4.0, pm.sample will return an `arviz.InferenceData` object instead of a `MultiTrace` by default. You can pass return_inferencedata=True or return_inferencedata=False to be safe and silence this warning.\n", 142 | " return wrapped_(*args_, **kwargs_)\n", 143 | "Auto-assigning NUTS sampler...\n", 144 | "Initializing NUTS using jitter+adapt_diag...\n", 145 | "C:\\Users\\Lenovo\\anaconda3\\lib\\site-packages\\theano\\tensor\\elemwise.py:826: RuntimeWarning: divide by zero encountered in log\n", 146 | " variables = ufunc(*ufunc_args, **ufunc_kwargs)\n", 147 | "C:\\Users\\Lenovo\\anaconda3\\lib\\site-packages\\theano\\tensor\\elemwise.py:826: RuntimeWarning: invalid value encountered in multiply\n", 148 | " variables = ufunc(*ufunc_args, **ufunc_kwargs)\n", 149 | "Multiprocess sampling (4 chains in 4 jobs)\n", 150 | "NUTS: [intercept, beta]\n" 151 | ] 152 | }, 153 | { 154 | "data": { 155 | "text/html": [ 156 | "\n", 157 | "\n" 172 | ], 173 | "text/plain": [ 174 | "" 175 | ] 176 | }, 177 | "metadata": {}, 178 | "output_type": "display_data" 179 | }, 180 | { 181 | "data": { 182 | "text/html": [ 183 | "\n", 184 | "
\n", 185 | " \n", 186 | " 100.00% [8000/8000 01:15<00:00 Sampling 4 chains, 0 divergences]\n", 187 | "
\n", 188 | " " 189 | ], 190 | "text/plain": [ 191 | "" 192 | ] 193 | }, 194 | "metadata": {}, 195 | "output_type": "display_data" 196 | }, 197 | { 198 | "name": "stderr", 199 | "output_type": "stream", 200 | "text": [ 201 | "Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 96 seconds.\n", 202 | "Got error No model on context stack. trying to find log_likelihood in translation.\n", 203 | "C:\\Users\\Lenovo\\anaconda3\\lib\\site-packages\\arviz\\data\\io_pymc3_3x.py:98: FutureWarning: Using `from_pymc3` without the model will be deprecated in a future release. Not using the model will return less accurate and less useful results. Make sure you use the model argument or call from_pymc3 within a model context.\n", 204 | " warnings.warn(\n" 205 | ] 206 | }, 207 | { 208 | "data": { 209 | "text/plain": [ 210 | "array([,\n", 211 | " ,\n", 212 | " ], dtype=object)" 213 | ] 214 | }, 215 | "execution_count": 1, 216 | "metadata": {}, 217 | "output_type": "execute_result" 218 | }, 219 | { 220 | "data": { 221 | "image/png": "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2THbt9JceHQJ3tneiLe3j391240bNwIASktLx70vMjIWiwULFiwY8LkNGzbgpz/9KX7961/j97///Yj29+tf/xrHLz8FV7+4Bcun5+LiY0tx1113obq6Gv/4xz8wffr0WDZfEeYUpeG/2xqQl3ekEoKcKM75gNPTjjnmGFitVrzyyivR3BuXy4W3334bl1122aD70+l0WL58OT7++ONej3/00UcwmUyYPHnyoD97+0PPAAAu/vHSUb8PMjZ6vR4nnHACqjd/BPXCuXjz+3pcf1I5Xn75ZSxcuBCpqamj2t9Iri8ejwdbtmzBscceO+r2jjrgueKKK/DAAw/grLPOwg033ICqqiqsWbMG1157ba+p6pMnT8bixYvx1FNPRR9bt24duru7o9U2X331VQDAEUcc0SsByev14s0338TFF1+MT/e2wWLQYF4JrZ81VnkqJ6yNm3Hvo1vg8/mwa9cuvPrqqzCbzVi5ciUA4MCBAygrK8PTTz+Nn//85wCAk08+GcuWLcPMmTOhVquxceNG3HfffTj//POpdycJ7N69G2eccQbKy8tx/vnn46uvvoo+l52dHf0bPf/887jkkkuwf/9+lJSUYPLkyXh9XwD6Yj/WXnECJmSa8Oyzz6KtrQ1LliwR6d1I25ziNPzr64Oobu8eNFduJJ9/v/zlL/Hpp59i37590Z/bvHkzampqUFtbCyA8xNnW1oaJEycOGgiLzWAw4I9//CNuu+02pKeno7y8HH/7298QCoVw9dVXR7fre2wCwOrVq3HcccfhF7/4BS644AJs374dd911F26++Wbo9XoAwJo1a+B0OnHsscfCarXi008/xUsP3IP8OYtx6pKjRXnPSnXzzTdjyZIlmKrJwXNtR6Llw6fw3nvvYf369dFtxnp9efHFF7Fu3TqcfPLJKCgoiObwNDY2jq0A7lBFegar6rNz505+wgkncIPBwPPy8vif//xnHggEem1TUlLCL7roon6PAej39cwzz/Ta7o033uAA+BcbN/H5t/2PX/XP7wYtQkSG98wzzwz4ey8pKYluIxTy6vm3+POf/8xnzpzJzWYzT01N5XPnzuUPPPAA9/l8iX8TYWIXWEuqwoOD/V0B9Dr3hO2qq6s555x3e/38sDXv8yte2Bzd5qKLLuLz589P8DuQj8omBy+54R3+2ne1g24zks+/iy66qNd5KTw2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\n", 222 | "text/plain": [ 223 | "
" 224 | ] 225 | }, 226 | "metadata": { 227 | "needs_background": "light" 228 | }, 229 | "output_type": "display_data" 230 | } 231 | ], 232 | "source": [ 233 | "import numpy as np\n", 234 | "import pymc3 as pm\n", 235 | "\n", 236 | "# Generate synthetic dataset\n", 237 | "np.random.seed(42)\n", 238 | "X = np.random.normal(0, 1, (100, 2))\n", 239 | "true_beta = np.array([1, -2])\n", 240 | "true_intercept = 0\n", 241 | "logit_probs = true_intercept + np.dot(X, true_beta)\n", 242 | "y = np.random.binomial(1, p=1 / (1 + np.exp(-logit_probs)))\n", 243 | "\n", 244 | "# Define the Bayesian logistic regression model using PyMC3\n", 245 | "with pm.Model() as logistic_model:\n", 246 | " # Priors\n", 247 | " beta = pm.Normal('beta', mu=0, sigma=1, shape=X.shape[1])\n", 248 | " intercept = pm.Normal('intercept', mu=0, sigma=1)\n", 249 | "\n", 250 | " # Likelihood\n", 251 | " p = pm.math.sigmoid(intercept + pm.math.dot(X, beta))\n", 252 | " y_obs = pm.Bernoulli('y_obs', p=p, observed=y)\n", 253 | "\n", 254 | " # Sample from the posterior distribution\n", 255 | " trace = pm.sample(1000, tune=1000)\n", 256 | "\n", 257 | "# Plot posterior distributions of coefficients\n", 258 | "pm.plot_posterior(trace, var_names=['beta', 'intercept'], figsize=(10, 6))\n" 259 | ] 260 | } 261 | ], 262 | "metadata": { 263 | "kernelspec": { 264 | "display_name": "Python 3 (ipykernel)", 265 | "language": "python", 266 | "name": "python3" 267 | }, 268 | "language_info": { 269 | "codemirror_mode": { 270 | "name": "ipython", 271 | "version": 3 272 | }, 273 | "file_extension": ".py", 274 | "mimetype": "text/x-python", 275 | "name": "python", 276 | "nbconvert_exporter": "python", 277 | "pygments_lexer": "ipython3", 278 | "version": "3.9.12" 279 | } 280 | }, 281 | "nbformat": 4, 282 | "nbformat_minor": 5 283 | } 284 | --------------------------------------------------------------------------------