├── 1 Probabilities fundamentals.ipynb ├── 2 Baysian and Gaussian Probability.ipynb ├── 3 Bootstrap and Monte Carlo.ipynb ├── 4 Sensitivity Analysis.ipynb ├── 5 Estimating distributions and modeling.ipynb ├── 6 Measuring agreement and Model evaluation.ipynb ├── 7 Monte Carlo Markov Chain and PyMC3.ipynb ├── 8 Gaussian Processes.ipynb ├── 9 Kalman Filter.ipynb ├── Data comparison.ipynb └── README.md /1 Probabilities fundamentals.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Probabilities fundamentals:" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 1, 13 | "metadata": {}, 14 | "outputs": [], 15 | "source": [ 16 | "import numpy as np\n", 17 | "import matplotlib\n", 18 | "import matplotlib.pyplot as plt\n", 19 | "from mpl_toolkits.mplot3d import Axes3D\n", 20 | "%matplotlib inline\n", 21 | "\n", 22 | "import seaborn as sns\n", 23 | "sns.set_style(\"white\")\n", 24 | "\n", 25 | "import time\n", 26 | "\n", 27 | "import scipy.stats " 28 | ] 29 | }, 30 | { 31 | "cell_type": "markdown", 32 | "metadata": {}, 33 | "source": [ 34 | "## Problem:\n", 35 | "\n", 36 | "The joint density function for the random variables ($X,Y$) is given by : \n", 37 | "\n", 38 | "$f(x,y)= 10xy^{2}$ , $0< x< y< 1 $\n", 39 | "\n", 40 | "$= 0 $ elsewhere \n", 41 | "\n", 42 | "(a) Find the marginal distribution of $X$ and $Y$ \n", 43 | "\n", 44 | "(b) Compute the probability of $0< x< 1/2, 1/4$$ $$\n", 63 | "$$ P(0]" 106 | ] 107 | }, 108 | "execution_count": 4, 109 | "metadata": {}, 110 | "output_type": "execute_result" 111 | }, 112 | { 113 | "data": { 114 | "image/png": "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\n", 115 | "text/plain": [ 116 | "
" 117 | ] 118 | }, 119 | "metadata": {}, 120 | "output_type": "display_data" 121 | } 122 | ], 123 | "source": [ 124 | "import numpy as np\n", 125 | "import matplotlib.pyplot as plt\n", 126 | "from scipy.stats import lognorm\n", 127 | "from scipy.stats import norm\n", 128 | "\n", 129 | "\n", 130 | "std=0.8\n", 131 | "mean=2.1\n", 132 | "x=np.linspace(0,20,10000)\n", 133 | "dist=lognorm([std],loc=mean)\n", 134 | "plt.plot(x,dist.pdf(x))\n", 135 | "plt.plot(x,dist.cdf(x))\n" 136 | ] 137 | }, 138 | { 139 | "cell_type": "markdown", 140 | "metadata": {}, 141 | "source": [ 142 | "(a) $ P_{pdf}(3\n", 19 | "\n", 20 | " $$\n", 21 | " \\left( \\begin{array}{cccc}\n", 22 | " \\mu_b \\\\\n", 23 | " \\beta_0+\\mu_b \\end{array} \\right) =\n", 24 | " \\left( \\begin{array}{cccc}\n", 25 | " \\bar{Y}_{.1} \\\\\n", 26 | " \\bar{Y}_{.2} \\end{array} \\right)\n", 27 | " $$
\n", 28 | " $$\n", 29 | " \\left( \\begin{array}{cccc}\n", 30 | " \\sigma_b^2+\\sigma_{e1}^2 & \\sigma_b^2 \\\\\n", 31 | " \\sigma_b^2 & \\sigma_b^2+\\sigma_{e2}^2 \\end{array} \\right) =\n", 32 | " \\left( \\begin{array}{cccc}\n", 33 | " {S_1}^2 & S_{12} \\\\\n", 34 | " S_{12} & {S_2}^2 \\end{array} \\right)\n", 35 | " $$ \n", 36 | " \n", 37 | "
\n", 38 | " \n", 39 | " Therefore, we will have:\n", 40 | " $$ \\mu_b=\\bar{Y}_{.1} $$
\n", 41 | " $$ \\beta_0+\\mu_b=\\bar{Y}_{.2} $$
\n", 42 | " $$ \\sigma_b^2+\\sigma_{e1}^2={S_1}^2 $$
\n", 43 | " $$ \\sigma_b^2+\\sigma_{e2}^2={S_2}^2 $$
\n", 44 | " $$ \\sigma_b^2=S_{12} $$
\n", 45 | " \n", 46 | " So the following estimators of its parameters:
\n", 47 | " $ \\hat{\\mu}_b=\\bar{Y}_{.1}$, $\\hat{\\beta}_0=\\bar{Y}_{.2}-\\bar{Y}_{.1}$, ${\\hat{\\sigma}}_b^2=S_{12}$, ${\\hat{\\sigma}}_{e1}^2=S_1^2-S_{12}$, ${\\hat{\\sigma}}_{e2}^2=S_2^2-S_{12}$." 48 | ] 49 | }, 50 | { 51 | "cell_type": "markdown", 52 | "metadata": {}, 53 | "source": [ 54 | "(b) When the error variance estimators are positive, we have:\n", 55 | "\n", 56 | "$${\\hat{\\sigma}}_{e1}^2=S_1^2-S_{12}>0$$\n", 57 | "\n", 58 | "$${\\hat{\\sigma}}_{e2}^2=S_2^2-S_{12}>0$$\n", 59 | "\n", 60 | "and apply to the definitions:\n", 61 | "\n", 62 | "$${\\hat{\\sigma}}_{e1}^2=S_1^2-S_{12}=\\frac{1}{n-1}\\sum_{i=1}^{n}(Y_{i1}-\\bar{Y}_{.1})^2-\\frac{1}{n-1}\\sum_{i=1}^{n}{(Y_{i1}-\\bar{Y}_{.1})(Y_{i2}-\\bar{Y}_{.2})}>0$$\n", 63 | "\n", 64 | "$${\\hat{\\sigma}}_{e2}^2=S_2^2-S_{12}=\\frac{1}{n-1}\\sum_{i=2}^{n}(Y_{i2}-\\bar{Y}_{.2})^2-\\frac{1}{n-1}\\sum_{i=1}^{n}{(Y_{i1}-\\bar{Y}_{.1})(Y_{i2}-\\bar{Y}_{.2})}>0$$\n", 65 | "\n", 66 | "which means the auto-covariance between the $S_1$ should be larger than the covariance between these two methods $S_{12}$." 67 | ] 68 | }, 69 | { 70 | "cell_type": "markdown", 71 | "metadata": {}, 72 | "source": [ 73 | "## Problem:" 74 | ] 75 | }, 76 | { 77 | "cell_type": "markdown", 78 | "metadata": {}, 79 | "source": [ 80 | "IPI from 52 kidneys using CT (method 1) and urography (method 2).\n", 81 | "\n", 82 | "(a) Scatterplot and a Bland-Altman plot:" 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 46, 88 | "metadata": {}, 89 | "outputs": [], 90 | "source": [ 91 | "A=np.array([97,77,74,59,79,85,78,78,68,96,74,64,76,60,78,71,67,103,95,78,70,80,78,102,102,77,45,60,50,94,91,66,63,65,58,75,105,65,80,90,58,75,83,78,85,65,90,76,100,65,40,53])\n", 92 | "B=np.array([100,58,95,55,79,95,60,88,68,94,60,64,88,57,66,67,76,95,85,105,80,85,82,102,100,75,40,70,63,103,95,80,72,68,48,70,90,60,80,96,54,80,88,70,90,79,100,85,108,53,58,49])" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 47, 98 | "metadata": {}, 99 | "outputs": [ 100 | { 101 | "data": { 102 | "image/png": "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\n", 103 | "text/plain": [ 104 | "" 105 | ] 106 | }, 107 | "metadata": {}, 108 | "output_type": "display_data" 109 | }, 110 | { 111 | "data": { 112 | "image/png": "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\n", 113 | "text/plain": [ 114 | "" 115 | ] 116 | }, 117 | "metadata": {}, 118 | "output_type": "display_data" 119 | } 120 | ], 121 | "source": [ 122 | "import matplotlib.pyplot as plt\n", 123 | "\n", 124 | "plt.title('Scatterplot for each method')\n", 125 | "plt.scatter(A,B)\n", 126 | "plt.show()\n", 127 | "\n", 128 | "def bland_altman_plot(data1, data2, *args, **kwargs):\n", 129 | " data1 = np.asarray(data1)\n", 130 | " data2 = np.asarray(data2)\n", 131 | " mean = np.mean([data1, data2],axis=0)\n", 132 | " diff = data1 - data2\n", 133 | " md = np.mean(diff)\n", 134 | " sd = np.std(diff,axis=0)\n", 135 | " \n", 136 | " plt.scatter(mean, diff, *args, **kwargs)\n", 137 | " plt.axhline(md, color='gray', linestyle='--')\n", 138 | " plt.axhline(md+1.96*sd, color='gray', linestyle='--')\n", 139 | " plt.axhline(md-1.96*sd, color='gray', linestyle='--')\n", 140 | "\n", 141 | "bland_altman_plot(A, B)\n", 142 | "plt.title('Bland-Altman Plot of two methods')\n", 143 | "plt.show()" 144 | ] 145 | }, 146 | { 147 | "cell_type": "markdown", 148 | "metadata": {}, 149 | "source": [ 150 | "(b) Most of the measurements are located between $\\mu-1.96\\sigma$ and $\\mu+1.96\\sigma$, and randomly distributed in both side of the mean value, which indicates that these two methods are agree with each other.\n", 151 | "\n", 152 | "(c) The are nearly one samples respectively lies above $\\mu+1.96\\sigma$, and below $\\mu-1.96\\sigma$, and it have large difference between each method, which can be considered as an evidence of heteroscedasticity or outlier." 153 | ] 154 | }, 155 | { 156 | "cell_type": "markdown", 157 | "metadata": {}, 158 | "source": [ 159 | "## Problem:" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "execution_count": 48, 165 | "metadata": {}, 166 | "outputs": [ 167 | { 168 | "name": "stderr", 169 | "output_type": "stream", 170 | "text": [ 171 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 172 | " \"Check mle_retvals\", ConvergenceWarning)\n", 173 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 174 | " \"Check mle_retvals\", ConvergenceWarning)\n", 175 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 176 | " \"Check mle_retvals\", ConvergenceWarning)\n", 177 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 178 | " \"Check mle_retvals\", ConvergenceWarning)\n", 179 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 180 | " \"Check mle_retvals\", ConvergenceWarning)\n", 181 | "/anaconda3/lib/python3.6/site-packages/statsmodels/regression/mixed_linear_model.py:2001: ConvergenceWarning: Gradient optimization failed.\n", 182 | " warnings.warn(msg, ConvergenceWarning)\n", 183 | "/anaconda3/lib/python3.6/site-packages/statsmodels/regression/mixed_linear_model.py:2039: ConvergenceWarning: The Hessian matrix at the estimated parameter values is not positive definite.\n", 184 | " warnings.warn(msg, ConvergenceWarning)\n", 185 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:1029: RuntimeWarning: invalid value encountered in sqrt\n", 186 | " return np.sqrt(np.diag(self.cov_params()))\n" 187 | ] 188 | }, 189 | { 190 | "name": "stdout", 191 | "output_type": "stream", 192 | "text": [ 193 | " Mixed Linear Model Regression Results\n", 194 | "====================================================================\n", 195 | "Model: MixedLM Dependent Variable: values \n", 196 | "No. Observations: 198 Method: REML \n", 197 | "No. Groups: 2 Scale: 13.2831 \n", 198 | "Min. group size: 99 Likelihood: -548.6755\n", 199 | "Max. group size: 99 Converged: No \n", 200 | "Mean group size: 99.0 \n", 201 | "--------------------------------------------------------------------\n", 202 | " Coef. Std.Err. z P>|z| [0.025 0.975]\n", 203 | "--------------------------------------------------------------------\n", 204 | "Intercept 69.864 5.877 11.888 0.000 58.345 81.383\n", 205 | "subject 0.490 1.862 0.263 0.792 -3.159 4.139\n", 206 | "Intercept RE 68.549 \n", 207 | "Intercept RE x subject RE 0.625 \n", 208 | "subject RE 6.931 \n", 209 | "====================================================================\n", 210 | "\n" 211 | ] 212 | }, 213 | { 214 | "data": { 215 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEICAYAAABRSj9aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3X+U3HV97/HnK8kCG6xsAoFDFkKiTYMChcBWQa5eJZYUr5KIIHDqNViuue21rVCbEq49Eq2UWNqjvcdWblpUrBaDgCGUWxEJ1pY22I0JkEBSUCDJJiQRWX+QLWw27/vH9zthMjuzMzvf2Z3vzL4e5+yZmc/3x7z3O8l7P/P5fL6fjyICMzNrX5OaHYCZmY0tJ3ozszbnRG9m1uac6M3M2pwTvZlZm3OiNzNrc070lmuSnpX0zgadq1PSvZJ+KukbjTjnWGjk75yVpBWSvtqgc10l6V8acS4bHSf6NiTpv0j61zSh/UTSw5J+LeM5h/0nlfRlSZ/OFm1jSHq7pJ1VdrsUOAE4NiIuG4ewWkqN19Ba0JRmB2CNJem1wD8AvwPcARwBvBV4uZlxlSNpSkQcGMe3PAX4j3reswmxmjWMa/Tt51cAIuL2iBiKiIGI+HZEPFbYQdKHJT0p6eeSnpB0dlq+XNIPi8rfm5a/AbgFOE/SLyT1S1oK/CbwR2nZvem+MyXdJWmfpGck/X7R+66QdKekr0r6GXBVUdnq9H1/IOnMcr+YpCMlfU7SrvTnc2nZ0cA/AjPTWH4haWbJsZ8EPgFcnm6/WtIkSX8s6TlJeyV9RdIx6f6zJUW633ZgXYWY3i1pU3pN/lXSrxZtK3s9q30OqbMkPZZ+K1st6agK739V+o3ts2kMP5L0lrR8R/p7LSm5hn8uabukPZJuSZu0RrqGR6TX5ueStkjqKTrfGyR9N33vLZIuLtp2rKS1kn4m6fvA68v9DjYOIsI/bfQDvBZ4AbgNuAiYVrL9MqAP+DVAwC8DpxRtm0lSAbgceAk4Md12FfAvJef6MvDpoteTgA0kCfUI4HXAj4CF6fYVwCCwON23s6jsUqAD+EPgGaAjPeZZ4J3p808B64HjgRnAvwJ/km57O7CzyrVZAXy16PVvAU+ncb4GuBv4u3TbbCCArwBHA51lznc2sBd4MzAZWJLGe2QN13Okz+FZ4PvpsdOBJ4HfrvA7XQUcAD6UxvBpYDvwV8CRwIXAz4HXpPt/DlibnveXgHuBmypdw/Sa/SfwrvT8NwHr020d6fX73+nnfUH6XvPS7V8n+VZ5NHB6+vv+y0ifkX/GKC80OwD/jMGHCm8gScI70ySwFjgh3XY/8NEaz7MJWJQ+v6r0PynDE/2bge0l+1wPfCl9vgL4Xsn2FYXEkb6eBOwG3pq+fpZXE/0PgXcV7bsQeDZ9PixJlfl9VnB4on8Q+F9Fr+eR/NGZwquJ/nUjnO8LpH9oisq2Af+1hutZ8XNIf+cPFL3+M+CWCvteBTxV9PqMNO4TispeAM4i+YPyEvD6om3nAc9UuobpNftO0es3AgPp87cCzwOTirbfnh4zOb2WpxZt+9PSf0P+GZ8ft9G3oYh4kiQBIOlU4KskNbkrgZNJEuYwkj4I/AFJkoOklnvcKN76FJKv/v1FZZOBfy56vaPMcYfKIuJg2iE4s8x+M4Hnil4/V2G/WpU73xSSDtthsZVxCrBE0u8VlR1RiKnK9az4OaSeL3q+n5F/zz1FzwcAIqK07DUk34KmAhskFbaJ5DMaSWksR0maksa0IyIOFm1/DuhO32sKh1+/4mtt48iJvs1FxFZJXwb+Z1q0gzJtpZJOAf4GWAD8W0QMSdpEkgggqSUOO33J6x0ktcO5I4VUpuzkojgmAScBu8rst4skuW5JX88q2q+eaVgL5yuYRfINaE8aQ7Xz7gBujIgbSzfUcD3Lfg5j7MckSf+0iOgrs32013AXcLKkSUXJfhbwH8A+kmt5MrC1aJs1gTtj24ykUyV9TNJJ6euTSWry69Nd/hb4Q0nnKPHLaVI6muQ/+r70uA+RtKsW7AFOknRESdnril5/H/iZpOvSDr7Jkk5X9aGd50i6JK0lXkMyQmh9mf1uB/5Y0gxJx5H0BRTGeO8Bji10ptboduBaSXMkvYakaWF11D665m+A35b05vRaHi3pv0n6Japfz0qfw5hJk/HfAJ+VdHwaV7ekhekuo72Gj5A0Bf2RpA5JbwfeA3w9IoZI+jxWSJoq6Y0kfRjWBE707efnJG3lj0h6iSRhbgY+BhAR3wBuBP4+3XcNMD0ingD+Avg3kv/wZwAPF513HUlN+nlJP07LbgXemI64WJP+534PSXvwMyQ1yL8FqiWOe0g6K18E/jtwSUQMltnv00Av8BjwOPCDtIyI2EqSuH+UxlNLk84Xgb8DvpfG+5/A7414RJGI6AU+DHw+jf1p0iazatez0udQ63tncF0a53olI5++Q9I3MeprGBGvABeTdPr/GPhr4IPpeQB+l6TJ6HmS/pwvNfy3sZoo7SQxawpJK4BfjogPNDsWs3blGr2ZWZtzojcza3NuujEza3Ou0ZuZtblcjKM/7rjjYvbs2c0Ow8yspWzYsOHHETGj2n65SPSzZ8+mt7e32WGYmbUUSTXdbeymGzOzNudEb2bW5pzozczanBO9mVmbc6I3M2tzuRh1Y2bWDtZs7OPm+7exq3+AmV2dLFs4j8Xzu5sdlhO9mVkjrNnYx/V3P87A4BAAff0DXH/34wBNT/ZuujEza4Cb7992KMkXDAwOcfP925oU0auc6M3MGmBX/8CoyseTE72ZWQPM7OocVfl4qproJX1R0l5Jm4vKbpa0VdJjkr4pqato2/WSnpa0rWiJMjOztrZs4Tw6Ow5fZ72zYzLLFs5rUkSvqqVG/2XgN0rKHgBOj4hfJVkI+HqAdF3IK4DT0mP+WlK1FebNzFre4vnd3HTJGXR3dSKgu6uTmy45o+kdsVDDqJuI+J6k2SVl3y56uR64NH2+iGRh4JeBZyQ9DbyJZN1MM7O2tnh+dy4Se6lGtNH/FvCP6fNuYEfRtp1p2TCSlkrqldS7b9++BoRhZmblZEr0kj4OHAC+Vigqs1vZJawiYlVE9EREz4wZVadTNjOzOtV9w5SkJcC7gQXx6nqEO4GTi3Y7CdhVf3hmZvmQ17tea1FXjV7SbwDXARdHxP6iTWuBKyQdKWkOMBf4fvYwzcyap3DXa1//AMGrd72u2djX7NBqUsvwyttJOlPnSdop6Wrg88AvAQ9I2iTpFoCI2ALcATwBfAv4SEQMVTi1mVlLyPNdr7WoZdTNlWWKbx1h/xuBG7MEZWaWJ3m+67UWntTMzKyKmV2d9JVJ6sd0dnD+ynW5b7f3FAhmZlWUu+u1Y5J46ZUDLdFu70RvZlZFubteX3PUFAaHDh89ntd2ezfdmJnVoPSu1znL7yu7X63t9uM5XNOJ3sysgpGScaV2+1pmqxzvRUrcdGNmVka1sfNZZqsc7+GaTvRmZmVUS8ZZZqsc7+GabroxMyujlmRc72yVWZp96uEavZlZGWO5YtR4L1LiGr2ZWaq48/WYzg46JuuwIZSNSsaFbwEedWNmNo5KR8L0DwzSMUlMm9pB//7Bhifj8VykxInezIzyna+DB4OpR0xh4ycubFJUjeE2ejMzWn/ispG4Rm9mE0qlm6DGeyTMeHKiN7Nca+RUASPdkbps4bzDtsHYjoQZT266MbPcavTKTiPdBJXlBqi8c43ezHKrUmL+2B2Pcu3qTaOu4Vdrhx/PkTDjyTV6M8utSol5KKKuGv5Y3gSVZ070ZpZbtSTg0UwGNt53pOZFLYuDf1HSXkmbi8ouk7RF0kFJPSX7Xy/paUnbJC0ci6DNbGIol5jLqXUIZDu3w4+kljb6LwOfB75SVLYZuAT4v8U7SnojcAVwGjAT+I6kX4mIwxvZzGxCqXfkTOlUAZMkhiKG7Teappd2bYcfSdVEHxHfkzS7pOxJAEmluy8Cvh4RLwPPSHoaeBPwb40I1sxaz2gX2Sj3R+Hh5ReUPRdMjKaXrBrdRt8N7Ch6vTMtM7MJajSLbFQbTjlRm16yavTwymFVfGD49yxA0lJgKcCsWbMaHIaZ5cVophaoNs4dJmbTS1aNTvQ7gZOLXp8E7Cq3Y0SsAlYB9PT0lP1jYGatbzRTCzRivpnxXHS7VTS66WYtcIWkIyXNAeYC32/we5hZCxnNkMas49wbfSdtu6hleOXtJJ2p8yTtlHS1pPdK2gmcB9wn6X6AiNgC3AE8AXwL+IhH3JhNbKNpV886zn28F91uFbWMurmywqZvVtj/RuDGLEGZWXuptV0968pL7TzVcBae68bMciVLZ2s7TzWchadAMLO2MVGnOKjGNXozaxvjveh2q3CiN7O24nH2w7npxsyszblGb2Zl+caj9uFEb2bDjHYiMss3N92Y2TC+8ai9ONGb2TC+8ai9ONGb2TATdW3VduVEb2bDVFrCb/8rBzJPELZmYx/nr1zHnOX3cf7KdRN+wrHx4M5YMxum0OG6Yu0W+gcGD5W/uH8wU6esO3mbwzV6Mytr8fxujj5yeF0wS6esO3mbw4nezCpqdKesO3mbw4nezCpqdKesO3mbw4nezCpq9GyQnl2yOdwZa2YVNXo2SM8u2RyKaP663D09PdHb29vsMMzMWoqkDRHRU20/N92YmbU5J3ozszZXtY1e0heBdwN7I+L0tGw6sBqYDTwLvD8iXpQk4C+BdwH7gasi4gdjE7qZjYc1G/sOu3Fq2tQObnjPaW5XbyG1dMZ+Gfg88JWisuXAgxGxUtLy9PV1wEXA3PTnzcAX0kczy7ly888DLPvGowwefLUv78X9gyy781HAd7O2iqqJPiK+J2l2SfEi4O3p89uA75Ik+kXAVyLp4V0vqUvSiRGxu1EBm1ljFCf2Yzo7eOmVAwwOJQm9MDXBUR2TDkvyBYNDwc33b3OibxH1Dq88oZC8I2K3pOPT8m5gR9F+O9OyYYle0lJgKcCsWbPqDMPM6lE650zxfDYFA4NDw6YrKOa7WVtHo8fRq0xZ2fGbEbEKWAXJ8MoGx2FmIyg358xoHdPZwfkr13k8fAuod9TNHkknAqSPe9PyncDJRfudBOyqPzwzGwu11sa7OjvomDS8/jZJ8NIrB+jrHyB4tanHUw7nU72Jfi2wJH2+BLinqPyDSpwL/NTt82b5U8vcMp0dk1lx8WncfNmZdHV2HCqfNrWDYzo7DrXnF3gWyvyqZXjl7SQdr8dJ2gncAKwE7pB0NbAduCzd/f+RDK18mmR45YfGIGYzq1Ghw7Wvf4DJEkMRdHd18o5TZ3DXhr7Dmm86JonXHDWF/v2Dw5piSptk5iy/r+z7ud0+n2oZdXNlhU0LyuwbwEeyBmVm1ZUbDlmckNds7GPZnY8eqnkPxasjau7a0Mf7zunmoa376mpjn9nVSV+ZpO5ZKPPJk5qZtZjSG5ig/EpNn7x3y7DmlYKBwSEe2rqPh5dfUFcMyxbOO2zUDngWyjxzojfLoUq19dJhkcUKbeSFRP/i/uFDJotlaWbxLJStxYneLGdGWle12rDI0STvAM5fua7uBL14frcTe4twojfLmZHWVS3XLl5sksQfr3mch7buq+m9vDj3xODZK81yplKtvK9/oOwdicWGIvjq+u1V/yAU87DI9udEb5YzlUauTJbK32beAB4W2d6c6M1yptK6qkNjuBqch0W2Nyd6s5xZPL+bmy45g+6uTgR0d3Ueej0WPCyy/bkz1iyHKo1oqTS0sl5eRGRicKI3y6lyY+lvuuSMQ2X1NORMljgY4XHvE4wTvdkYqDY9QS3Hl46lv2b1psNq4OevXFdxdE1XyUIikDTR3HTJGU7uE5Db6M0arJCks0zhW+nGqBf3Dx46V6VO289dfhabbriQmy89c1g7v5P8xOQavVmDjXTDU2mirVTzH2kcfOFchXlqKn1zKJ2moDBW3sl+4nGiN2uwSmPSS8srTXXQ+9xPEBWWZis510jTEIw0lYKT/cTiphuzBuua2lFTeaWa/1fXb6/a0VrLuPeRvlnYxOJEb9ZAazb20V9h1sjS+53qvRu11nHvtX6zsPbnphuzBik0lVSqjfcPDB62mHbX1I6qUwmX6h7FCB4vDmIFTvRmDfLJe7eMeDOT4FDiHc2kY1Df0EgvDmIFTvRmDbBmY9+ItfNqnasjHVfvzU1eHMQKnOjNGmCkDs7CotyjNW1qBxs/cWGWsLw4iAEZO2MlfVTSZklbJF2Tlk2X9ICkp9LHaY0J1Sy/Rurg/Iv3nznqCck6Josb3nNa1rDMgAyJXtLpwIeBNwFnAu+WNBdYDjwYEXOBB9PXZm2tUgdnV2cHi+d3l72LtZJJgpsvPdM1cWuYLE03bwDWR8R+AEn/BLwXWAS8Pd3nNuC7wHUZ3scsNyrdyVqp4/PdZ554aE6aaqtDQVKTd5K3RsuS6DcDN0o6FhgA3gX0AidExG6AiNgt6fhyB0taCiwFmDVrVoYwzMZHLXeaFv8ReMepM1j97zsOTSxWrZV+spzkbWzUnegj4klJnwEeAH4BPAocGMXxq4BVAD09PWO3dI5Zg1S707S0pv/Je7ccNnvkSDyzpI2lTJ2xEXFrRJwdEW8DfgI8BeyRdCJA+rg3e5hmzTfSot3lZqus5WYozyxp4yHT8EpJx0fEXkmzgEuA84A5wBJgZfp4T+YozXKg0p2mQNmafjXdXZ2HZqA0G0tZx9HflbbRDwIfiYgXJa0E7pB0NbAduCxrkGbjaTQdrvXyHao2njIl+oh4a5myF4AFWc5r1iy1driOdgqDYl6n1cabZ680K1Ktw3Xx/G4eXn5BTUMly/nc5Wex8RMXOsnbuHKiNytS69S+9cwA2d3V6QRvTeFEb1akUgIvLV+2cB4dk4bX6zsmiw+cO6vsWq5uk7dm8aRm1vIqdZ7Wc+w7Tp3BXRv6hjXf7H/lAGs29g1bj3XF2i30DyTDKIvb3ntOme5ZIy03FHXMqtdoPT090dvb2+wwrAWVdp5C7TcfVTr2fed08w+P7j6UwEd7XrPxImlDRPRU289NN9bSsqyLWunYh7bu4+gjh3/ZHRgc4prVm5j/qW+zZmNftsDNxpGbbqylZVkXtd5jX9w/yLI7HwVw7d5agmv01tJq7Twd7bHVjh8cipq+NZjlgRO9tbRy87zXOsKl3LEdk8T+Vw7UdENULd8azPLATTfW0rKsi1p67DGdHbz0yoGaJiOD+sbSmzWDR92YpQoLhNTCC4RYHnjUjdko1doUIy/1Zy3GTTc2YVS7sWqkaYgLPJbeWpFr9DYhFG6OKl0cpHg8fLUFvKdN7XCSt5bkGr1NCCPdWFU6rUFhGuLJEkMRdHsKA2txTvQ2IdR6c9Ti+d1O6NZ2nOitJWSZuAwqt797iKRNBG6jt9yrpX29miw3Vpm1OtfoLXdKa+/7XzlQtX293LHHdHYgQf/+QWZ2dfK+c7p5aOs+Tx1sE44TveVKuTVbKyltXy89tnia4b7+Ae7a0OdRMzYhZWq6kXStpC2SNku6XdJRkuZIekTSU5JWSzqiUcFa+ys3OqaS0vb1asfWOn2xWbupO9FL6gZ+H+iJiNOBycAVwGeAz0bEXOBF4OpGBGoTQ613p5ZrX88yNbFZO8vaGTsF6JQ0BZgK7AYuAO5Mt98GLM74HjaBdE3tKF/e2UF3VydKnx/VMYlrV2/i/JXrDnXKZpma2Kyd1Z3oI6IP+HNgO0mC/ymwAeiPiAPpbjuBsg2ikpZK6pXUu2/fvnrDsDayZmMfv/jPA8PKOyaLFRefxsPLL+Czl5/FywcO8uL+wUMjcK5dvYnZy+/jpZcP0DF5+ILdBR5lYxNV3Z2xkqYBi4A5QD/wDeCiMruWnR4zIlYBqyCZvbLeOKx93Hz/NgYPDv+nMDgUXLN6E5+8dwvAsHb4whH9A4N0TBLTpnbQv39w2Kgbj7KxiSrLqJt3As9ExD4ASXcDbwG6JE1Ja/UnAbuyh2kTQS1L+FUzeDCYesQUNn7iwkaFZdbysrTRbwfOlTRVkoAFwBPAQ8Cl6T5LgHuyhWgTRaPaz93hana4LG30j5B0uv4AeDw91yrgOuAPJD0NHAvc2oA4bQJ4x6kzGnIed7iaHS7TDVMRcQNwQ0nxj4A3ZTmvTUwPba2tU76rs4Ojj5xCX/8A4vBOIHe4mg3nO2MtN2ppcimMwCl0qmad7MxsInCit9yotsLTtKkd3PCe0w5L5J5W2Kw6J3obVyPVwJctnMc1qzeVPW6y5JE0ZnXyNMU2bqpNN7x4fjfnv3562WOvfPPJ4xipWXtxordxU2k5v4/d8eihZP+1D5/HB86dxWQld7hOlvjAubP49OIzxj1es3bhphsbN5U6W4ciuP7ux4GkVv/pxWc4sZs1kBO9NUQto19G6mwdGBxixdotHkFjNgbcdGOZ1brUX7nl/Ir1DwxmWi7QzMpTRPPnE+vp6Yne3t5mh2F1On/lurI19c6OSUw/+sjDaugAH7vjUYZq/HfX3dXJw8svaGi8Zu1C0oaI6Km2n2v0VtaajX2cv3Idc5bfd9ic7+VUansfGDw4rIYO8BfvP3PEmn0t5zaz2rmN3oYpt25rcWdpYZ9Ce/okqaYaemEpv0INvXQB8HKzU3reGrPsnOhtmErDIG++fxuL53cP+0NQazMMvFpDL72jtfSc4HlrzBrFid6GqdRcUigfzQLepSrV0AtJ36NuzBrPid6GqTQMspCk6203r1ZD97w1ZmPDnbE2TLlhkMVJulq7uUhGy3zg3FmHFvTu7urkpkvOcCI3awLX6G2Y0maUwtqr167exM33b+Mdp87ga+u3l10M2MMhzfLHNXora/H8bh5efgGfvfwsXj5wkBf3Dx4aJnnXhj7e8vrpqOQYd56a5ZMTvY2o0gicZ18Y4LOXn+WmGbMW4KYbG9FII3DceWrWGpzobcQJyaqNwDGz/Ku76UbSPEmbin5+JukaSdMlPSDpqfRxWiMDtsaqNiFZtRE4ZpZ/dSf6iNgWEWdFxFnAOcB+4JvAcuDBiJgLPJi+tpwa6S5YSDplb7rkDLfFm7WwRjXdLAB+GBHPSVoEvD0tvw34LnBdg97HGqxSG3xxc43b4s1aW6NG3VwB3J4+PyEidgOkj8eXO0DSUkm9knr37dvXoDBsNNZs7GOSSgdJJpRuN7PWlznRSzoCuBj4xmiOi4hVEdETET0zZszIGoaNUqFtvtKEZAGHmm/MrLU1okZ/EfCDiNiTvt4j6USA9HFvA97DGqyWick8F7xZe2hEor+SV5ttANYCS9LnS4B7GvAe1mC1JHEPoTRrD5kSvaSpwK8DdxcVrwR+XdJT6baVWd7Dxka1JO4hlGbtI1Oij4j9EXFsRPy0qOyFiFgQEXPTx59kD9MabaSFuj2E0qy9eK6bCWrx/G7ed053xYnJnOTN2ocT/QT20NZ9w6YaLr5Zyszag+e6aQMjzVUzkmpLBppZe3CNvsVVm6tmJJU6ZD3axqy9ONG3uGpz1YzEE5aZTQxuumlxWZpfSpcMHE2zj5m1Dif6FldpvvhJEms29lVN2p6wzKz9uemmxVUaDz8UUXNbvZm1Nyf6FleYL35ymVkoPVTSzMCJvi0snt/NwQqzUHqopJk50bcJD5U0s0qc6BtgzcY+zl+5jjnL7+P8leua0i7uoZJmVolH3WRUuGGpMJa9cMMSMK6jWTxU0swqcaLPaKQblsY7yXqopJmV46abjDxfjJnlnRN9Ru4ENbO8c6LPyJ2gZpZ3bqPPyJ2gZpZ3TvQN4E5QM8uzrIuDd0m6U9JWSU9KOk/SdEkPSHoqfZzWqGDNzGz0srbR/yXwrYg4FTgTeBJYDjwYEXOBB9PXZmbWJHUnekmvBd4G3AoQEa9ERD+wCLgt3e02YHHWIM3MrH5Z2uhfB+wDviTpTGAD8FHghIjYDRARuyUdX+5gSUuBpQCzZs3KEMbYqnc9VjOzvMjSdDMFOBv4QkTMB15iFM00EbEqInoiomfGjBkZwhg7WdZjNTPLiyyJfiewMyIeSV/fSZL490g6ESB93JstxObJsh6rmVle1J3oI+J5YIekwp1BC4AngLXAkrRsCXBPpgibyNMbmFk7yDqO/veAr0k6AvgR8CGSPx53SLoa2A5clvE9mqbSeqye3sDMWkmmRB8Rm4CeMpsWZDlvXixbOO+wKYjB0xuYWevxnbEj8PQGZtYOnOir8PQGZtbqPHulmVmbc6I3M2tzTvRmZm3Oid7MrM050ZuZtTknejOzNudEb2bW5pzozczanBO9mVmbc6I3M2tzLTsFgld+MjOrTUsm+sLKT4VZJQsrPwFO9mZmJVqy6cYrP5mZ1a4lE71XfjIzq11LJvpKKzx55Sczs+FaMtEvWziPzo7Jh5V55Sczs/JasjPWKz+ZmdWuJRM9eOUnM7NaZUr0kp4Ffg4MAQciokfSdGA1MBt4Fnh/RLyYLUwzM6tXI9ro3xERZ0VET/p6OfBgRMwFHkxfm5lZk4xFZ+wi4Lb0+W3A4jF4DzMzq1HWRB/AtyVtkLQ0LTshInYDpI/HlztQ0lJJvZJ69+3blzEMMzOrJGtn7PkRsUvS8cADkrbWemBErAJWAfT09ETGOMzMrIJMiT4idqWPeyV9E3gTsEfSiRGxW9KJwN5q59mwYcOPJT2XJZZROg748Ti+32g5vvrlOTZwfFk5vsOdUstOiqivMi3paGBSRPw8ff4A8ClgAfBCRKyUtByYHhF/VNebjBFJvUWdx7nj+OqX59jA8WXl+OqTpUZ/AvBNSYXz/H1EfEvSvwN3SLoa2A5clj1MMzOrV92JPiJ+BJxZpvwFklq9mZnlQEvOddMAq5odQBWOr355jg0cX1aOrw51t9GbmVlrmKg1ejOzCcOJ3syszbV9opfUJelOSVslPSnpPEnTJT0g6an0cVqTYpsnaVPRz88kXZOX+NIYr5W0RdJmSbdLOkrSHEmPpPGtlnREE+P7aBrbFknXpGVNu36Svihpr6TNRWVl41Hi/0h6WtJjks5uUnyXpdfvoKSekv2vT+PbJmlhk+K7Of3/+5ikb0rqyll8f5LGtknStyXNTMvH/fOtKCLa+odkvp3/kT5lzWmuAAADgklEQVQ/AugC/gxYnpYtBz6TgzgnA8+T3ACRi/iAbuAZoDN9fQdwVfp4RVp2C/A7TYrvdGAzMJVkBNl3gLnNvH7A24Czgc1FZWXjAd4F/CMg4FzgkSbF9wZgHvBdoKeo/I3Ao8CRwBzgh8DkJsR3ITAlff6ZouuXl/heW/T894FbmvX5Vvpp6xq9pNeSfDC3AkTEKxHRTz4nXlsA/DAiniNf8U0BOiVNIUmou4ELgDvT7c2M7w3A+ojYHxEHgH8C3ksTr19EfA/4SUlxpXgWAV+JxHqgK72bfFzji4gnI2Jbmd0XAV+PiJcj4hngaZK738c7vm+nny/AeuCknMX3s6KXR5PMAVaIb1w/30raOtEDrwP2AV+StFHS36Z38dY08do4uwK4PX2ei/giog/4c5Ib33YDPwU2AP1F//F2ktT8m2Ez8DZJx0qaSlKDOpmcXL8ileLpBnYU7dfMa1lOHuP7LZJaMuQoPkk3StoB/CbwibQ4N/G1e6KfQvI16wsRMR94iRzOj5+2cV8MfKPZsRRL25IXkXwtnklSW7mozK5NGaMbEU+SfJV/APgWydf4AyMelC8qU5an8c65ik/Sx0k+368Visrs1qx/ix+PiJNJYvvdtDg38bV7ot8J7IyIR9LXd5Ik/j2Fr1C1Trw2xi4CfhARe9LXeYnvncAzEbEvIgaBu4G3kHwFLdxVfRKwq0nxERG3RsTZEfE2kq/UT5Gf61dQKZ6dJN9ACpp6LcvITXySlgDvBn4z0gZwchRfkb8H3pc+z018bZ3oI+J5YIekeWnRAuAJYC2wJC1bAtzThPCKXcmrzTaQn/i2A+dKmqpkUqPC9XsIuDQH8aFkimwkzQIuIbmOebl+BZXiWQt8MB2dcS7w00ITT06sBa6QdKSkOSQd3d8f7yAk/QZwHXBxROzPYXxzi15eDBSma8/P59usXuDx+gHOAnqBx4A1wDTgWJJlDp9KH6c3Mb6pwAvAMUVleYrvkyT/cDcDf0cywuF1JP+hniZpbjqyifH9M8kfn0eBBc2+fiR/aHYDgyQ1uqsrxUPy1f6vSEaLPE7RiJdxju+96fOXgT3A/UX7fzyNbxtwUZPie5qkrXtT+nNLzuK7K/3/8RhwL9DdrM+30o+nQDAza3Nt3XRjZmZO9GZmbc+J3syszTnRm5m1OSd6M7M250RvZtbmnOjNzNrc/weZJdndiRQe2AAAAABJRU5ErkJggg==\n", 216 | "text/plain": [ 217 | "" 218 | ] 219 | }, 220 | "metadata": {}, 221 | "output_type": "display_data" 222 | }, 223 | { 224 | "data": { 225 | "image/png": "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\n", 226 | "text/plain": [ 227 | "" 228 | ] 229 | }, 230 | "metadata": {}, 231 | "output_type": "display_data" 232 | } 233 | ], 234 | "source": [ 235 | "import pandas as pd\n", 236 | "import statsmodels.api as sm\n", 237 | "import statsmodels.formula.api as smf\n", 238 | "\n", 239 | "dataA=pd.DataFrame(columns=['subject','values','id'])\n", 240 | "dataB=pd.DataFrame(columns=['subject','values','id'])\n", 241 | "\n", 242 | "A=np.array([ \n", 243 | "56.9,63.2,65.5,73.6,74.1,77.1,77.3,77.5,77.8,78.9,79.5,80.8,81.2,81.9,82.2,83.1,84.4,84.9,86,86.3,86.3,86.6,86.6,86.6,\n", 244 | "87.1,87.5,87.8,88.6,89.3,89.6,90.3,91.1,92.1,93.5,94.5,94.6,95,95.2,95.3,95.6,95.9,96.4,97.2,97.5,97.9,98.2,98.5,98.8,\n", 245 | "98.9,99,99.3,99.3,99.9,100.1,101,101,101.5,101.5,101.5,101.8,101.8,102.8,102.9,103.2,103.8,104.4,104.8,105.1,105.5,\n", 246 | "105.7,106.1,106.8,107.2,107.4,107.5,107.5,108,108.2,108.6,109.1,110.1,111.2,111.7,111.7,112,113.1,116,116.7,118.8,\n", 247 | "119.7,120.7,122.8,124.7,126.4,127.6,128.2,129.6,130.4,133.2])\n", 248 | "\n", 249 | "B=np.array([52.9,59.2,63,66.2,64.8,69,67.1,70.1,69.2,73.8,71.8,73.3,73.1,74.7,74.1,74.1,76,75.4,74.6,79.2,77.8,80.8,77.6,77.5,78.6,\n", 250 | "78.7,81.5,79.3,78.9,85.9,80.7,80.6,82.8,86,84.3,87.6,84,85.9,84.4,85.2,85.2,89.2,87.8,88,88.7,91.2,91.8,92.5,88,93.5,\n", 251 | "89,89.4,89.2,91.3,90.4,91.2,91.4,93,91.2,92,91.8,96.8,92.8,94,93.5,95.8,97.1,97.3,95.1,95.8,95.5,95.9,95.4,97.3,97.7,\n", 252 | "93,97.6,96.1,96.2,99.5,99.8,105.3,103.6,100.2,100,98.8,110,103.5,109.4,112.1,111.3,108.6,112.4,113.8,115.6,118.1,116.8,\n", 253 | "121.6,115.8])\n", 254 | "\n", 255 | "dataA['subject']=np.arange(0,99,1)\n", 256 | "dataA['values']=A\n", 257 | "dataA['id']=np.ones(99)\n", 258 | "\n", 259 | "\n", 260 | "dataB['subject']=np.arange(0,99,1)\n", 261 | "dataB['values']=B\n", 262 | "dataB['id']=np.ones(99)*2\n", 263 | "\n", 264 | "data=pd.concat([dataA,dataB])\n", 265 | "data=data.reset_index(drop=True)\n", 266 | "\n", 267 | "md=smf.mixedlm('values~subject', data, groups=data['id'], re_formula='~subject')\n", 268 | "mdf=md.fit()\n", 269 | "\n", 270 | "print(mdf.summary())\n", 271 | "\n", 272 | "plt.title('Scatterplot for each method')\n", 273 | "plt.scatter(A,B)\n", 274 | "plt.show()\n", 275 | "\n", 276 | "\n", 277 | "bland_altman_plot(A, B)\n", 278 | "plt.title('Bland-Altman Plot of two methods')\n", 279 | "plt.show()" 280 | ] 281 | }, 282 | { 283 | "cell_type": "markdown", 284 | "metadata": {}, 285 | "source": [ 286 | "## Problem:\n", 287 | "Potatoes measured by two sclaes, A and B.
\n", 288 | "(a) Compute the Grubbs estimators for these data." 289 | ] 290 | }, 291 | { 292 | "cell_type": "code", 293 | "execution_count": 49, 294 | "metadata": {}, 295 | "outputs": [ 296 | { 297 | "name": "stdout", 298 | "output_type": "stream", 299 | "text": [ 300 | "mu_b: 1211.3333333333333\n", 301 | "beta_0: -17.0\n", 302 | "sigma_b: 586217.0238095239\n", 303 | "sigma_e_1: -25305.468253968284\n", 304 | "sigma_e_2: -51974.13492063503\n" 305 | ] 306 | } 307 | ], 308 | "source": [ 309 | "import numpy as np\n", 310 | "import matplotlib as plt\n", 311 | "\n", 312 | "A=np.array([135, 940, 1075, 925, 2330, 2870, 1490, 2110, 650, 1380, 970, 1000, 1640, 345, 310])\n", 313 | "B=np.array([165, 910, 1060, 925, 2290, 2850, 1425, 2050, 630, 1370, 1000, 1000, 1575, 345, 320])\n", 314 | "\n", 315 | "A_mean = A.mean()\n", 316 | "B_mean = B.mean()\n", 317 | "S_A = np.std(A)\n", 318 | "S_B = np.std(B)\n", 319 | "S_AB = np.sum((A-A_mean)*(B-B_mean))/14\n", 320 | "\n", 321 | "mu_b = A_mean\n", 322 | "beta_0 = B_mean-A_mean\n", 323 | "sigma_b = S_AB\n", 324 | "sigma_e_1 = S_A**2-S_AB\n", 325 | "sigma_e_2 = S_B**2-S_AB\n", 326 | "\n", 327 | "print(\"mu_b:\", mu_b)\n", 328 | "print(\"beta_0:\", beta_0)\n", 329 | "print(\"sigma_b:\", sigma_b)\n", 330 | "print(\"sigma_e_1:\", sigma_e_1)\n", 331 | "print(\"sigma_e_2:\", sigma_e_2)" 332 | ] 333 | }, 334 | { 335 | "cell_type": "markdown", 336 | "metadata": {}, 337 | "source": [ 338 | "Therefore, the estimators from Grubbs are collected:\n", 339 | "$ \\hat{\\mu}_b=1211.3$, $\\hat{\\beta}_0=-17$, ${\\hat{\\sigma}}_b^2=586217$, ${\\hat{\\sigma}}_{e1}^2=-25305$, and ${\\hat{\\sigma}}_{e2}^2=-51974$." 340 | ] 341 | }, 342 | { 343 | "cell_type": "markdown", 344 | "metadata": {}, 345 | "source": [ 346 | "(b) Fit mixed-effects model using ML method." 347 | ] 348 | }, 349 | { 350 | "cell_type": "code", 351 | "execution_count": 50, 352 | "metadata": {}, 353 | "outputs": [ 354 | { 355 | "name": "stdout", 356 | "output_type": "stream", 357 | "text": [ 358 | " packet scale id\n", 359 | "0 1 135 1.0\n", 360 | "1 2 940 1.0\n", 361 | "2 3 1075 1.0\n", 362 | "3 4 925 1.0\n", 363 | "4 5 2330 1.0\n", 364 | "5 6 2870 1.0\n", 365 | "6 7 1490 1.0\n", 366 | "7 8 2110 1.0\n", 367 | "8 9 650 1.0\n", 368 | "9 10 1380 1.0\n", 369 | "10 11 970 1.0\n", 370 | "11 12 1000 1.0\n", 371 | "12 13 1640 1.0\n", 372 | "13 14 345 1.0\n", 373 | "14 15 310 1.0\n", 374 | "15 1 165 2.0\n", 375 | "16 2 910 2.0\n", 376 | "17 3 1060 2.0\n", 377 | "18 4 925 2.0\n", 378 | "19 5 2290 2.0\n", 379 | "20 6 2850 2.0\n", 380 | "21 7 1425 2.0\n", 381 | "22 8 2050 2.0\n", 382 | "23 9 630 2.0\n", 383 | "24 10 1370 2.0\n", 384 | "25 11 1000 2.0\n", 385 | "26 12 1000 2.0\n", 386 | "27 13 1575 2.0\n", 387 | "28 14 345 2.0\n", 388 | "29 15 320 2.0\n", 389 | " Mixed Linear Model Regression Results\n", 390 | "============================================================================\n", 391 | "Model: MixedLM Dependent Variable: scale \n", 392 | "No. Observations: 30 Method: REML \n", 393 | "No. Groups: 2 Scale: 573880.0614\n", 394 | "Min. group size: 15 Likelihood: -234.5395 \n", 395 | "Max. group size: 15 Converged: No \n", 396 | "Mean group size: 15.0 \n", 397 | "----------------------------------------------------------------------------\n", 398 | " Coef. Std.Err. z P>|z| [0.025 0.975] \n", 399 | "----------------------------------------------------------------------------\n", 400 | "Intercept 1405.333 609.636 2.305 0.021 210.469 2600.197\n", 401 | "packet -25.313 536.624 -0.047 0.962 -1077.075 1026.450\n", 402 | "Intercept RE 573880.061 \n", 403 | "Intercept RE x packet RE 0.000 \n", 404 | "packet RE 573880.061 \n", 405 | "============================================================================\n", 406 | "\n" 407 | ] 408 | }, 409 | { 410 | "name": "stderr", 411 | "output_type": "stream", 412 | "text": [ 413 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 414 | " \"Check mle_retvals\", ConvergenceWarning)\n", 415 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 416 | " \"Check mle_retvals\", ConvergenceWarning)\n", 417 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 418 | " \"Check mle_retvals\", ConvergenceWarning)\n", 419 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 420 | " \"Check mle_retvals\", ConvergenceWarning)\n", 421 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:496: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", 422 | " \"Check mle_retvals\", ConvergenceWarning)\n", 423 | "/anaconda3/lib/python3.6/site-packages/statsmodels/regression/mixed_linear_model.py:2001: ConvergenceWarning: Gradient optimization failed.\n", 424 | " warnings.warn(msg, ConvergenceWarning)\n", 425 | "/anaconda3/lib/python3.6/site-packages/statsmodels/regression/mixed_linear_model.py:2039: ConvergenceWarning: The Hessian matrix at the estimated parameter values is not positive definite.\n", 426 | " warnings.warn(msg, ConvergenceWarning)\n", 427 | "/anaconda3/lib/python3.6/site-packages/statsmodels/base/model.py:1029: RuntimeWarning: invalid value encountered in sqrt\n", 428 | " return np.sqrt(np.diag(self.cov_params()))\n" 429 | ] 430 | } 431 | ], 432 | "source": [ 433 | "import pandas as pd\n", 434 | "import statsmodels.api as sm\n", 435 | "import statsmodels.formula.api as smf\n", 436 | "\n", 437 | "dataA=pd.DataFrame(columns=['packet','scale','id'])\n", 438 | "dataB=pd.DataFrame(columns=['packet','scale','id'])\n", 439 | "\n", 440 | "dataA['packet']=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]\n", 441 | "dataA['scale']=A\n", 442 | "dataA['id']=np.ones(15)\n", 443 | "\n", 444 | "\n", 445 | "dataB['packet']=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]\n", 446 | "dataB['scale']=B\n", 447 | "dataB['id']=np.ones(15)*2\n", 448 | "\n", 449 | "data=pd.concat([dataA,dataB])\n", 450 | "data=data.reset_index(drop=True)\n", 451 | "print(data)\n", 452 | "\n", 453 | "md=smf.mixedlm('scale ~ packet', data, groups=data['id'], re_formula='~ packet')\n", 454 | "mdf=md.fit()\n", 455 | "\n", 456 | "print(mdf.summary())" 457 | ] 458 | }, 459 | { 460 | "cell_type": "markdown", 461 | "metadata": {}, 462 | "source": [ 463 | "where the error variance estimates are ${\\hat{\\sigma}}_{e1}^2=609.6^2=379881$, and ${\\hat{\\sigma}}_{e2}^2=536.6^2=287939.6$." 464 | ] 465 | }, 466 | { 467 | "cell_type": "markdown", 468 | "metadata": {}, 469 | "source": [ 470 | "(c) The error variance estimation is ${\\hat{\\sigma}}_{e1}^2=-25305$, and ${\\hat{\\sigma}}_{e2}^2=-51974$ for Grubbs estimation, and ${\\hat{\\sigma}}_{e1}^2=609.6^2=379881$, and ${\\hat{\\sigma}}_{e2}^2=536.6^2=287939.6$ for mixed-effects model using ML. The mixed-effects model can be fit by the ML method, and this estimates are used to perform inference on measures of agreements. The Grubbs estimates, lead to a negative estimates of error variance." 471 | ] 472 | }, 473 | { 474 | "cell_type": "code", 475 | "execution_count": null, 476 | "metadata": {}, 477 | "outputs": [], 478 | "source": [] 479 | } 480 | ], 481 | "metadata": { 482 | "kernelspec": { 483 | "display_name": "Python 3", 484 | "language": "python", 485 | "name": "python3" 486 | }, 487 | "language_info": { 488 | "codemirror_mode": { 489 | "name": "ipython", 490 | "version": 3 491 | }, 492 | "file_extension": ".py", 493 | "mimetype": "text/x-python", 494 | "name": "python", 495 | "nbconvert_exporter": "python", 496 | "pygments_lexer": "ipython3", 497 | "version": "3.6.5" 498 | } 499 | }, 500 | "nbformat": 4, 501 | "nbformat_minor": 2 502 | } 503 | -------------------------------------------------------------------------------- /8 Gaussian Processes.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Gaussian Processes" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 33, 13 | "metadata": {}, 14 | "outputs": [], 15 | "source": [ 16 | "import numpy as np\n", 17 | "import matplotlib.pyplot as plt\n", 18 | "import seaborn as sns\n", 19 | "#import pandas as pd\n", 20 | "import pymc3 as pm\n", 21 | "%matplotlib inline\n", 22 | "#from scipy import stats" 23 | ] 24 | }, 25 | { 26 | "cell_type": "markdown", 27 | "metadata": {}, 28 | "source": [ 29 | "## Problem: \n", 30 | "Generate (x, y) points from the following function y = x*sin(x) where x can take values 0, 2, 4, 6, 8, 10, 12 and 14.\n", 31 | "\n", 32 | "a) Perform regression using Gaussian processes. Show the regression curve together with 95% confidence intervals. Try 2 kernels of your choice and explain results.\n", 33 | "\n", 34 | "b) Find the mean and the variance of the prediction $y_*$ for the following values of $x_*$: 1, 14.5 and 18.\n", 35 | "\n", 36 | "\n" 37 | ] 38 | }, 39 | { 40 | "cell_type": "markdown", 41 | "metadata": {}, 42 | "source": [ 43 | "Solve:\n", 44 | "\n", 45 | "Please note that the solution is provided using sklearn Gaussian process library." 46 | ] 47 | }, 48 | { 49 | "cell_type": "code", 50 | "execution_count": 19, 51 | "metadata": {}, 52 | "outputs": [ 53 | { 54 | "data": { 55 | "image/png": "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\nAElFTkSuQmCC\n", 56 | "text/plain": [ 57 | "" 58 | ] 59 | }, 60 | "metadata": {}, 61 | "output_type": "display_data" 62 | } 63 | ], 64 | "source": [ 65 | "import numpy as np\n", 66 | "from matplotlib import pyplot as plt\n", 67 | "\n", 68 | "from sklearn.gaussian_process import GaussianProcessRegressor\n", 69 | "from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C\n", 70 | "from sklearn.gaussian_process.kernels import Matern\n", 71 | "np.random.seed(1)\n", 72 | "\n", 73 | "\n", 74 | "def f(x):\n", 75 | " return x * np.sin(x)\n", 76 | "\n", 77 | "\n", 78 | "X = np.atleast_2d([0., 2., 4., 6. ,7. ,8, 12, 14]).T\n", 79 | "y = f(X).ravel()\n", 80 | "\n", 81 | "x = np.atleast_2d(np.linspace(0, 16, 1000)).T\n", 82 | "\n", 83 | "# Instanciate a Gaussian Process model\n", 84 | "#kernel = Matern(length_scale=1.0, length_scale_bounds=(1e-1, 10.0),nu=1.5)\n", 85 | "kernel = C(1.0, (1e-3, 1e3)) * RBF(10, (1e-2, 1e2))\n", 86 | "gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=50)\n", 87 | "gp.fit(X, y)\n", 88 | "\n", 89 | "y_pred, sigma = gp.predict(x, return_std=True)\n", 90 | "\n", 91 | "fig = plt.figure()\n", 92 | "plt.plot(x, f(x), 'r:', label=u'$f(x) = x\\,\\sin(x)$')\n", 93 | "plt.plot(X, y, 'r.', markersize=10, label=u'Observations')\n", 94 | "plt.plot(x, y_pred, 'b-', label=u'Prediction')\n", 95 | "plt.fill(np.concatenate([x, x[::-1]]),\n", 96 | " np.concatenate([y_pred - 1.9600 * sigma,\n", 97 | " (y_pred + 1.9600 * sigma)[::-1]]),\n", 98 | " alpha=.5, fc='b', ec='None', label='95% confidence interval')\n", 99 | "plt.xlabel('$x$')\n", 100 | "plt.ylabel('$f(x)$')\n", 101 | "plt.ylim(-20, 20)\n", 102 | "plt.legend(loc='upper left')\n", 103 | "plt.show()\n" 104 | ] 105 | }, 106 | { 107 | "cell_type": "code", 108 | "execution_count": 20, 109 | "metadata": {}, 110 | "outputs": [ 111 | { 112 | "name": "stdout", 113 | "output_type": "stream", 114 | "text": [ 115 | "The mean of predictions: [ 1.19099452e+00 1.31326987e+01 1.01262918e-02]\n", 116 | "The value of the function is: [[ 0.84147098]\n", 117 | " [ 13.55597831]\n", 118 | " [-13.51777044]]\n", 119 | "The standard deviation of predictions: [ 3.68008673 2.96082964 6.67210671]\n" 120 | ] 121 | } 122 | ], 123 | "source": [ 124 | "# part b)\n", 125 | "Xtest = np.array([1, 14.5, 18]).reshape(-1,1)\n", 126 | "y_pred, sigma = gp.predict(Xtest, return_std=True)\n", 127 | "\n", 128 | "y1_f=f(Xtest)\n", 129 | "print('The mean of predictions: ',y_pred)\n", 130 | "print('The value of the function is: ',y1_f)\n", 131 | "print('The standard deviation of predictions: ',sigma)\n" 132 | ] 133 | }, 134 | { 135 | "cell_type": "markdown", 136 | "metadata": {}, 137 | "source": [ 138 | "The mean and the standard deviation of the prediction $y_*$ for the following values of $x_*$: 1 is 1.19 and 3.68.\n", 139 | "\n", 140 | "The mean and the standard deviation of the prediction $y_*$ for the following values of $x_*$: 14.5 is 13.13 and 2.9.\n", 141 | "\n", 142 | "The mean and the standard deviation of the prediction $y_*$ for the following values of $x_*$: 18 is 0.01 and 6.67." 143 | ] 144 | }, 145 | { 146 | "cell_type": "code", 147 | "execution_count": 26, 148 | "metadata": { 149 | "scrolled": true 150 | }, 151 | "outputs": [ 152 | { 153 | "data": { 154 | "image/png": "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\nRK5CYII=\n", 155 | "text/plain": [ 156 | "" 157 | ] 158 | }, 159 | "metadata": {}, 160 | "output_type": "display_data" 161 | } 162 | ], 163 | "source": [ 164 | "# a) Using different Kernel\n", 165 | "import numpy as np\n", 166 | "from matplotlib import pyplot as plt\n", 167 | "\n", 168 | "from sklearn.gaussian_process import GaussianProcessRegressor\n", 169 | "from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C\n", 170 | "from sklearn.gaussian_process.kernels import Matern, ExpSineSquared\n", 171 | "np.random.seed(1)\n", 172 | "\n", 173 | "\n", 174 | "def f(x):\n", 175 | " return x * np.sin(x)\n", 176 | "\n", 177 | "\n", 178 | "X = np.atleast_2d([0., 2., 4., 6. ,7. ,12, 14, 8.]).T\n", 179 | "y = f(X).ravel()\n", 180 | "\n", 181 | "x = np.atleast_2d(np.linspace(0, 16, 1000)).T\n", 182 | "\n", 183 | "# Instanciate a Gaussian Process model\n", 184 | "#kernel = Matern(length_scale=1.0, length_scale_bounds=(1e-1, 10.0),nu=1.5)\n", 185 | "kernel =ExpSineSquared(length_scale=0.2, periodicity=1.0,\n", 186 | " length_scale_bounds=(0.01, 100.0),\n", 187 | " periodicity_bounds=(0.1, 10.0))\n", 188 | "#kernel = C(1.0, (1e-3, 1e3)) * RBF(10, (1e-2, 1e2))\n", 189 | "gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=100)\n", 190 | "gp.fit(X, y)\n", 191 | "\n", 192 | "y_pred, sigma = gp.predict(x, return_std=True)\n", 193 | "\n", 194 | "fig = plt.figure()\n", 195 | "plt.plot(x, f(x), 'r:', label=u'$f(x) = x\\,\\sin(x)$')\n", 196 | "plt.plot(X, y, 'r.', markersize=10, label=u'Observations')\n", 197 | "plt.plot(x, y_pred, 'b-', label=u'Prediction')\n", 198 | "plt.fill(np.concatenate([x, x[::-1]]),\n", 199 | " np.concatenate([y_pred - 1.9600 * sigma,\n", 200 | " (y_pred + 1.9600 * sigma)[::-1]]),\n", 201 | " alpha=.5, fc='b', ec='None', label='95% confidence interval')\n", 202 | "plt.xlabel('$x$')\n", 203 | "plt.ylabel('$f(x)$')\n", 204 | "plt.ylim(-20, 20)\n", 205 | "plt.legend(loc='upper left')\n", 206 | "plt.show()" 207 | ] 208 | } 209 | ], 210 | "metadata": { 211 | "kernelspec": { 212 | "display_name": "Python 3", 213 | "language": "python", 214 | "name": "python3" 215 | }, 216 | "language_info": { 217 | "codemirror_mode": { 218 | "name": "ipython", 219 | "version": 3 220 | }, 221 | "file_extension": ".py", 222 | "mimetype": "text/x-python", 223 | "name": "python", 224 | "nbconvert_exporter": "python", 225 | "pygments_lexer": "ipython3", 226 | "version": "3.6.5" 227 | } 228 | }, 229 | "nbformat": 4, 230 | "nbformat_minor": 2 231 | } 232 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Uncertainty and Data Science 2 | This practice aims to data analysis and machine learning algorithms. Uncertainty quantification will be done mainly through Bayesian approach and will rely on computational statistics (Monte Carlo). Uncertainty means: getting systems to estimate how much they do not know. 3 | The practice will be focused more on practical aspects of uncertainty quantification, so that a new probabilistic programming methods (PyMC3) for modelling uncertainties are used. 4 | Topics that will be covered are related to: 5 | 6 | Key words: Bayesian analysis, Uncertainty quantification, Probabilistic programming, Data analysis, Modeling, Monte Carlo analysis, Bayesian machine learning, Measurement, Errors... 7 | 8 | Created by: Xunzhe Wen 9 | --------------------------------------------------------------------------------