{"cells": [{"cell_type": "markdown", "id": "bd2cf427", "metadata": {}, "source": ["(section4.2)=\n", "# 4.2 Fitting (Regression) Models\n", "\n", "In the previous section we learned about parameters representing mathematical elements of data. One way to think of models are that they are collection of parameters.\n", "\n", "In order to use models to learn about data we need to tweak the parameter values so that the model is an adequate representation of the data.\n", "\n", "This is called **fitting** a model to data.\n", "\n", "We fit a model by minimising a **cost function**. A cost function can be any function where higher values mean that the model evaluated on the estimated parameters are less representative of data.\n", "\n", "Let us illustrate this by using a very simple and familiar single-parameter model: _the mean_. \n", "\n", "\n", "## The mean as a model \n", "\n", "Let us have a dataset consisting of one random variable, $Y$. We wish to represent this dataset as best we can with a single parameter on the same arithmetic scale as the data: $\\mu$.\n", "\n", "We first define a cost function. As $\\mu$ is a single quantity which represents\n", "the data, we want to assign values that are further away from $\\mu$ to have a higher cost.\n", "We don't want negative values, therefore we could square the error, this will also have\n", "the added benefit of penalising higher errors more harshly than lower errors. We\n", "can sum all the **squared errors** of each data point from $\\mu$ to get a single\n", "value that we could minimise. \n", "\n", "$$\\sum (Y-\\mu)^2$$ \n", "\n", "However, this value is in squared error units, which is unintuitive. To keep the cost function in the units of the data we can take the average then take the square root. This gives us a common cost function, **root-mean-squared-error** (RMSE):\n", "\n", "$$\\sqrt{\\frac{1}{n}\\sum (Y-\\mu)^2}$$\n", "\n", "Essentially, we fit this model by trying different predictions for $\\mu$, calculating the cost, and selecting the value of $\\mu$ that has the minimum cost.\n", "\n", "In this case the minimum of this cost function corresponds exactly to the mean (with some sampling variability)."]}, {"cell_type": "code", "execution_count": 81, "id": "57072c64", "metadata": {}, "outputs": [{"data": {"image/png": "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qgidyypfwp1/Eu3cYmYvACcDDc0sDxgF3ANMMLPLgC+ACw5p35ohQERERCR+6LamiIiISBxRcSYiIiISR1SciYiIiMQRFWciIiIicUTFmYiIiEgcUXEmCckiPjKzAaWWnW9mb4WZS0SkPGbmpQewNbNqZrbRzF4PM5fEJ41zJgnJ3d3MfgW8aGbvE/mzPAboH24yEZFy7QZ6mFkNd98DnEGCzO4glU9XziRhuftC4DXg98BtwD/dfUW4qUREvtcU4Ozo+4uAF75ZYWa3m9lvS31eGJ0kXqogFWeS6P4I/BgYANwXchYRkf0ZDww3swygJ/DZAbaXKkq3NSWhuftuM/s3sMvd94adR0Tk+7j7gujVsIuIXEUTKZeKM0kGJdGXiEi8mwz8icicjA1KLS/iu3ezMioxk8QZFWciIiKV52lgm7vnmNnJpZavBgYCmFlfoF2lJ5O4oWfOREREKom757n7o+Wsegmob2aLgCuBZZWbTOKJuXvYGUREREQkSlfOREREROKIijMRERGROKLiTERERCSOqDgTERERiSMqzkRERETiiIozERERkTii4kxEREQkjqg4ExEREYkj/w+FNrClqmb1cAAAAABJRU5ErkJggg==", "text/plain": ["
"]}, "metadata": {"needs_background": "light"}, "output_type": "display_data"}, {"name": "stdout", "output_type": "stream", "text": ["Mean: 5.009448482367973, Mu: 5.01\n"]}], "source": ["import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from scipy.stats import norm\n", "colors = ['C1','C2','C3'] #https://matplotlib.org/stable/users/dflt_style_changes.html\n", "\n", "### generate fake data.\n", "n = 500\n", "b0 = 2\n", "b1 = .3\n", "variable = np.linspace(5,15,n)\n", "resids = norm.rvs(0,1,n)\n", "data = np.array(b0+b1*variable+resids)\n", "\n", "### set predictions for mu\n", "mu = np.linspace(0,10,1000)\n", "\n", "### calculate costs\n", "def cost(X, mu):\n", " return np.sqrt(np.mean((X-mu)**2))\n", "\n", "costs = [cost(data, m) for m in mu]\n", "\n", "\n", "\n", "fig, ax = plt.subplots(1,2, figsize=(12,4))\n", "\n", "ax[0].hist(data, density=True, alpha=.5)\n", "ax[0].set_xlabel('Y')\n", "ax[0].set_ylabel('P(X)')\n", "ax[0].axvline(np.mean(data),c='k')\n", "ax[1].plot(mu,costs)\n", "ax[1].plot(mu[np.argmin(costs)], min(costs), 'ok')\n", "ax[1].set_ylabel('Cost')\n", "ax[1].set_xlabel('Mu')\n", "\n", "\n", "# add some sample lines\n", "mu_index = np.random.randint(n, size=3)\n", "for (i, mu_i) in enumerate(mu_index):\n", " ax[0].axvline(mu[mu_i], color=colors[i], alpha=.5)\n", " ax[1].plot(mu[mu_i],costs[mu_i], 'o', color=colors[i])\n", "\n", "plt.show()\n", "\n", "print(f\"Mean: {np.mean(data)}, Mu: {round(mu[np.argmin(costs)],2)}\")"]}, {"cell_type": "markdown", "id": "67a46ece", "metadata": {}, "source": ["The mean is a poor model when you want to capture the data distribution since it predicts the same value each time.\n", "\n", "One of the most common probablistic approaches is to model the data points as coming from a [normal distribution](https://en.wikipedia.org/wiki/Normal_distribution). A normal (or Gaussian) distribution arises in cases where a continuous random variable has symetrical variability around a mean.\n", "\n", "We fit a normal distribution to our data similarly to our previous example: we find the parameter values that are demonstrably best with respect to some cost function.\n", "\n", "A common cost function for fitting probability distributions is the **likelihood**. Simply put, a likelihood of a single data point is the probability of that data point occurring given a probability distribution with certain parameters. The combined likelihood of a dataset is each individual likelihood multiplied together. A common fitting technique is to find the **maximum likelihood** of a dataset. \n", "\n", "In practice getting the combined likelihood of a dataset is computationally infeasible (since the multiplied numbers are very small), therefore the **log-likelihood** is taken so that we can sum across the data points. Further, taking the _negative_ log-likelihood allows us to use _minimisation_ algorithms. So, when you read _maximum likelihood estimation_ the authors are normally talking about _minimising the negative log-likelihood_. \n", "\n", "The **log-likelihood** is illustrated below with our previous fake dataset. To make the illustration simpler we have fixed the Gaussian standard deviation parameter."]}, {"cell_type": "code", "execution_count": 74, "id": "0b616036", "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["Maximum Likelihood: 0.0\n"]}, {"data": {"image/png": "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", "text/plain": ["
"]}, "metadata": {"needs_background": "light"}, "output_type": "display_data"}], "source": ["sigma = 2\n", "n = 1000\n", "mu = np.linspace(0,10,1000)\n", "test_range = np.linspace(-5,15,10000)\n", "\n", "#calculate likelihoods, will be all zeros because the values are so small\n", "likelihoods = np.array([np.multiply.reduce(norm.pdf(data, loc=m, scale=sigma)) for m in mu])\n", "print(f\"Maximum Likelihood: {max(likelihoods)}\") \n", "\n", "# so we take the negative log-likelihood\u00a0.\n", "logliks = np.array([np.sum(-norm.logpdf(data, loc=m, scale=sigma)) for m in mu])\n", "\n", "fig, axes = plt.subplots(1,2, figsize=(12,4))\n", "\n", "axes[0].hist(data, density=True, alpha=.5)\n", "axes[0].set_ylabel('P(Y)')\n", "axes[0].set_xlabel('Mu')\n", "axes[1].plot(mu, logliks)\n", "axes[1].set_ylabel('Log Likelihood')\n", "axes[1].set_xlabel('Mu')\n", "\n", "\n", "# calculate example gaussians\n", "mu_index = np.random.randint(n, size=3)\n", "for (i, mu_i) in enumerate(mu_index):\n", " axes[0].plot(test_range, norm.pdf(test_range, loc=mu[mu_i], scale=sigma), color=colors[i], alpha = .5)\n", " axes[1].plot(mu[mu_i],logliks[mu_i], 'o', color=colors[i])\n", " \n", "# plot minimum log-lik (maximum likeilhood)\n", "mu_min = mu[np.argmin(logliks)]\n", "axes[0].plot(test_range, norm.pdf(test_range, loc=mu_min, scale=sigma), color='k', alpha = .8)\n", "axes[1].plot(mu_min, min(logliks), 'o', color='k', alpha = .8)\n", "\n", "plt.show()"]}, {"cell_type": "markdown", "id": "20ac1f9e", "metadata": {}, "source": ["## Modelling relationships: Regression. \n", "\n", "So far we have been modelling observations of a single variable, $Y$ as coming from a normal distribution with a mean, $\\mu$, and a standard deviation, $\\sigma$\n", "\n", "$ Y \\sim Normal(\\mu,\\sigma) $.\n", "\n", "Most research questions are interested in modelling relationships between variables. Instead of modelling directly the parameters of a distribution we can make the parameters _dependent_ on other variables.\n", "\n", "We call our other variable $X$. Since we already are under the assumption that $Y$ varies around a mean, it stands to reason that we would model the _mean_ as changing with $X$, accepting that $Y$ would vary around this new moving average. The simplest method of modelling relationships is to assume that the mean of $Y$ varies _linearly_ with $X$. Meaning that one capture the relationship by a line with an intercept and a slope.\n", "\n", "\n", "\n", "$ \\mu = \\beta_0 + \\beta_1X $\n", "\n", "Here, $\\beta_0$ is the intercept, meaning the value that $Y$ would take when $X=0$, and $\\beta_1$ is a parameter that scales how much a change in $X$ corresponds to the change in $Y$. An alternative common way of writing this is:\n", "\n", "It is convention in Regression models to have your input variables as a matrix $X_{ni}$ and your predicted values as $Y_i$, where $n$ refers to the variable index and $i$ refers to the observation index. The parameters are often stored as a vector $\\beta$\n", "\n", "$ Y_i = \\beta_0 + \\beta_1X_i + \\epsilon $,\n", "\n", "where $\\epsilon$ refers to **residual error** that is normally distributed around zero: $\\epsilon \\sim Normal(0,\\sigma)$, and $i$ refers to the observation. You can also write this as:\n", "\n", "$ Y_i = Normal(\\beta_0 + \\beta_1X_i, \\sigma) $\n", "\n", "Modelling in this way is called **Linear Regression**. Parameters that scale the relationship between an input variable to an output variable are called **Coefficients**.\n", "\n", "Modelling one variable as dependent on another variable is (a little confusingly) called _regression_ after Francis Galton originally described the method when reporting the phenomenon of _regression to the mean_ ([Regression Analysis wikipedia page](https://en.wikipedia.org/wiki/Regression_analysis)). This does make some sense in the general statistical context, if you think of _Regression_ referring to the notion of finding the mean line that points vary around (or regress to).\n", "\n", "\n", "\n", "Each input to your model has an associated parameter called a **coefficient**. Two important things to remember:\n", "\n", "- Coefficients can be thought of as a mini-hypothesis: given that I know all the other inputs to the model, what how much does this input contribute to the output? In the case of our simple example, the coefficient $\\beta_1$ specifies how much the input variable contributes to the output variable _only_ once the intercept is known.\n", "\n", "- Coefficients scale your input so are dependent on the magnitude of our input. The larger your input, the smaller your coefficient. If you wish to compare coefficients across input variables you need your input variables to be on a similar scale. This is called _standardising_ your inputs.\n", "\n", "\n", "We will now tweak our previous code to fit this new regression model via maximum likelihood, as we have been doing. \n", "\n", "1) You can analytically find the intercept given the coefficients. Rearranging the formula above gives $Y - \\beta_1X = \\beta_0 + \\epsilon$. Since this is identical to $Normal(\\beta_0, \\epsilon)$, averaging retrieves $\\beta_0$. \n", "2) The _dot product_ of an input matrix $X$ and a vector of parameters $\\beta$ is a quick way of finding the predicted values. Essentially the dot product multiplies the $X_n$ by each $\\beta_n$ and sums the result.\n", "\n", "For normal linear regression there is actually an analytic [ordinary least squares](https://en.wikipedia.org/wiki/Ordinary_least_squares) solution to finding the maximum likelihood, but to be consistent we will emphasis finding the parameter values through minimising the negative log-likelihood.\n"]}, {"cell_type": "markdown", "id": "1f5c7e38", "metadata": {}, "source": ["\n", "Since our example is simple (only two fitted parameters) we can do an exhaustive search of the parameter space (up to a level of granularity) and find the minimum negative log-likelihood. This method of fitting is intractable for more complicated models where the parameters space is larger. Optimisation algorithms for effectively exploring a parameter space (that may have constraints) and finding the minimum of a cost function is a big field with active research. Fortunately, the available statistical packages use well-established algorithms that perform well for most models. For this introductory course, then, we will treat the optimisation algorithm as an unnecessary implementation detail. Note, however, that for your own research you may run into issues with complex models that requires further knowledge of how the parameter space is explored. \n"]}, {"cell_type": "code", "execution_count": 84, "id": "0d2160c6", "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["Intercept: 1.8132522861717772\n", "Slope: 0.3196196196196196\n"]}, {"data": {"image/png": "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", "text/plain": ["
"]}, "metadata": {"needs_background": "light"}, "output_type": "display_data"}], "source": ["### Code block to fit the linear regression model with MLE.\n", "### See \"Code Preliminaries\" margin note for useful tips for following this code.\n", "\n", "n = 1000\n", "b1s = np.linspace(b1-.4,b1+.4, n)\n", "X = variable\n", "Y = data\n", "\n", "def get_intercept(X, Y, b1):\n", " return np.average(Y - (X*b1))\n", "\n", "def predict(X, Y, b1):\n", " return X*b1 + get_intercept(X,Y,b1)\n", "\n", "def negloglik(predictions, Y, verbose=False):\n", " residuals = predictions - Y\n", " stdev = np.sqrt(np.average(residuals**2))\n", " loglik = np.sum(norm.logpdf(Y, loc=predictions, scale=stdev))\n", " return loglik*-1\n", " \n", "def fit(X, Y, b1, verbose=False):\n", " predictions = predict(X, Y, b1)\n", " return negloglik(predictions, Y, verbose=verbose)\n", " \n", "# retrieve logliks for each\n", "logliks = [fit(X, data, b1) for b1 in b1s]\n", "\n", "\n", "fig, axes = plt.subplots(1,2, figsize=(12,4))\n", "\n", "axes[0].scatter(X,data, alpha=.3)\n", "axes[0].set_ylabel('Y')\n", "axes[0].set_xlabel('X')\n", "\n", "axes[1].plot(b1s, logliks)\n", "axes[1].set_ylabel('Log Likelihood')\n", "axes[1].set_xlabel(r'$\\beta_1$')\n", "\n", "\n", "# pick example coefficients\n", "b1_index = np.random.randint(n, size=3)\n", "for (i, b1_i) in enumerate(b1_index):\n", " axes[0].plot(X, predict(X, Y, b1s[b1_i]), '-', color=colors[i], alpha = .5)\n", " axes[1].plot(b1s[b1_i],logliks[b1_i], 'o', color=colors[i])\n", " \n", "# plot minimum log-lik (maximum likeilhood)\n", "b1_min = b1s[np.argmin(logliks)]\n", "axes[0].plot(X, predict(X, Y, b1_min), '-k', alpha = .8)\n", "axes[1].plot(b1_min, min(logliks), 'ok', alpha = .8)\n", "print(f'Intercept: {get_intercept(X,Y,b1_min)}')\n", "print(f'Slope: {b1_min}')\n", "plt.show()\n"]}, {"cell_type": "markdown", "id": "0928c8ec", "metadata": {}, "source": ["### How many parameters?\n", "\n", "You get more complex models by adding more variables, and perhaps mathematically specifying the nature of the relationship between variables (e.g., if we assume modulation of one variable with another we might multiply them together). The linear regression formula for $n$ parameters is below.\n", "\n", "$$\n", "Y = \\beta_0 + \\beta_1 x_{1} + \\beta_2 x_{2} + ...+ \\beta_n x_{n} + \\epsilon\n", "$$\n", "\n", "The amount of parameters depends what you are interested in and what you want to learn. \n", "\n", "With enough parameters you can fit anything. But there is risk that we could just be fitting to noise. For example, if a designer was modelling a product they wouldn't want to include a scratch on one particular product that arose from the randomness of the production process.\n", "\n", "This phenomenon is called **overfitting**. It is a key consideration in modelling and we will be revisiting it frequently throughout the following sections.\n", "\n", "Bishop's [Machine Learning for Pattern Recognition](http://users.isr.ist.utl.pt/~wurmd/Livros/school/Bishop%20-%20Pattern%20Recognition%20And%20Machine%20Learning%20-%20Springer%20%202006.pdf) textbook has an instructive example on fitting curves of increasing complexity. This has been usefully translated to a python notebook by Mantas Luko\u0161evi\u010dius ([link](https://mantas.info/wp/wp-content/uploads/learn/curve-over-fitting.html)). \n", "\n", "\n", "Regularisation refers to a set of methods that help combat overfitting. Broadly speaking, overfitting arises when coefficients are too large or where there are too many parameters. Regularisation techniques often add a term to the cost function that is dependent on either the number or the magnitude (or both) of the coefficient parameters. Therefore, many and large coefficients are penalised. Fewer and smaller coefficients make for a more conservative model fit. (Though too few and/or small coefficients can lead to underfitting). \n"]}, {"cell_type": "markdown", "id": "bf99538b", "metadata": {}, "source": ["## Beyond Normal Linear Regression\n", "\n", "It is important to keep in mind that the normal linear regression equation above is the following: \n", "\n", "$$ Y \\sim Normal(\\beta_0 + \\beta_1 x_{1} + \\beta_2 x_{2} + ...+ \\beta_n x_{n}, \\sigma) $$\n", "\n", "The **linear regression** part refers to modelling a parameter, in this case the mean, as a **sum of scaled inputs**. There is actually no requirement in linear regression models for the modelled output to be linear.\n", "\n", "There is also no requirement for you to assume that the errors will be normally distributed around the mean. With MLE you can model the errors as coming from a wide range of probability distributions (the _exponential family_). Indeed, your model complexity is in theory only limited by your ability to fit the model.\n", "\n", "\n", "Let us zoom out and look at the components of our model so far:\n", "\n", "1) We have the term that is predicting $\\mu$. This is called the **linear predictor**, let us call this $\\eta$, which is a sum of inputs $X$ scaled by coefficients, $\\beta$, which are unknown. \n", "2) We have a probability distribution, let us call it $F$, and sometimes a dispersion parameter (called $\\tau$ to separate it from the guassian-specific standard deviation parameter $\\sigma$). The probability distribution controls how our residuals are distributed.\n", "\n", "\n", "So we can re-write our model as a **generalized** linear model:\n", "\n", "$$ Y = F(\\eta, \\tau) $$\n", "\n", "The linear predictor $\\eta$ is always related to $\\mu$, but it can do via a **link function**, $g$, meaning: \n", "\n", "$$ \\eta = g(\\mu) $$\n", "\n", "You can recover $\\mu$ by applying the inverse of the link function, $g^{-1}$ to the $\\eta$.\n", "\n", "$$ \\mu = g^{-1}(\\eta) $$\n", "\n", "So the general case is:\n", "\n", "$$ Y = F(g^{-1}(\\eta),\\tau) $$\n", "\n", "In normal linear regression, $F = Normal$, $\\tau = \\sigma$, and $g$ is the identity function, meaning $g(\\mu)=\\mu$. \n", "\n", "\n"]}, {"cell_type": "markdown", "id": "8bcf89d4", "metadata": {}, "source": ["## From linear regression to logistic regression.\n", "\n", "From [_Section 4.1_](section4.1) and [_Section 4.2_](section4.2) so far we are familiar with the following:\n", "\n", "- Linear regression where the residuals are gaussian\n", "- The generalised regression framework\n", "- The bernouilli distribution for modelling binary outcomes.\n", "\n", "The gaussian distribution is useful when the output variable is continuous and symmetrically distributed. If we want to regress a binary variable onto predictors (i.e., find a mean line that the residuals vary around) then we need to consider the bernouilli distribution.\n", "\n", "Remember our general framework of a probability distribution, $F$, a linear predictor $\\eta$, a link function $g$, and a dispersion parameter $\\tau$: \n", "\n", "$$ Y = F(g^{-1}(\\eta),\\tau) $$\n", "\n", "Remember that the bernouilli is fairly special in having a single parameter, $p(x)$. There is no dispersion parameter. So:\n", "\n", "$$\n", "\\begin{aligned}\n", "Y &= F(g^{-1}(\\eta)) \\\\\n", "g^{-1}(\\eta) &= p(x) \\\\\n", "\\eta &= g(p(x))\n", "\\end{aligned}\n", "$$\n", "\n", "\n", "In logistic regression instead of modelling $\\mu$ on the arithmetic scale, as in normal regression, we use the **log-odds** to model the mean in _logistic units_, which is why it is sometimes called the **logit** function. So our link function transforms the linear predictor $\\eta$ into log-odds:\n", "\n", "$$ logodds(p) = log( \\frac{p}{1-p}) $$\n", "\n", "Which results in what we call the **logistic regression** model\n", "\n", "$$\\log\\left(\\frac{p({\\bf x})}{1 - p({\\bf x})}\\right) = \\beta_0 + \\beta_1 x_1 + \\ldots + \\beta_{n} x_{n} $$\n", "\n", "Recall that $p(x)$ is bounded between 0 and 1, since it is a probability. We can transform log-odds to the probability range $\\{0,1\\}$ by the [**sigmoid**](https://en.wikipedia.org/wiki/Sigmoid_function) function, or **inverse-logit**:\n", "\n", "$$\n", "\\text{logit}^{-1}(Y) = \\frac{e^Y}{1 + e^{Y}} = \\frac{1}{1 + e^{-Y}} \n", "$$\n", "\n", "Meaning you can get $p(x)$ directly from the predictor variables.\n", "\n", "$$\n", "p({\\bf x}) = \\frac{e^{\\beta_0 + \\beta_1 x_{1} + \\cdots + \\beta_{n} x_{n}}}{1 + e^{\\beta_0 + \\beta_1 x_{1} + \\cdots + \\beta_{n} x_{(n)}}} = \\frac{1}{1+e^{-\\beta_0 + \\beta_1 x_{1} + \\cdots + \\beta_{n} x_{n}}}\n", "$$\n", "\n", "\n", "In our general framework, $g = logit$, $g^{-1} = sigmoid $.\n", "\n", "It may seem strange to model the log-odds. In the next section we will step through why this is the case as we use logistic regression to dive into our research question."]}], "metadata": {"kernelspec": {"display_name": "Python 3.10.4 64-bit", "language": "python", "name": "python3"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4"}, "vscode": {"interpreter": {"hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49"}}}, "nbformat": 4, "nbformat_minor": 5}