{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"library(repr) ; options(repr.plot.width = 4, repr.plot.height = 4) # Change plot sizes (in cm)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Model Fitting using Non-linear Least-squares"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction\n",
"\n",
"In this Chapter, you will learn to fit non-linear mathematical models to data using Non-Linear Least Squares (NLLS).\n",
"\n",
"Specifically, you will learn to\n",
"\n",
"* Visualize the data and the mathematical model you want to fit to them\n",
"* Fit a non-linear model\n",
"* Assess the quality of the fit, and whether the model is appropriate for your data\n",
"* Compare and select between competing models\n",
"\n",
"We will work through various examples. These assume that you have at least a conceptual understanding of what Linear vs Non-linear models are, how they are fitted to data, and how the fits can be assessed statistically. You may want to see the [Linear Models lecture](https://github.com/mhasoba/TheMulQuaBio/tree/master/content/lectures/LinearModels) (you can also watch the [video](https://drive.google.com/drive/folders/12Sj56wHX6vcAnp9GE9qQ1gIXbn7QRHU2?usp=sharing)), and the [NLLS Lecture](https://github.com/mhasoba/TheMulQuaBio/blob/master/content/lectures/NLLS) lecture first (you can also watch the [video](https://web.microsoftstream.com/video/529b2560-4f45-4675-ae8b-28487d63ac41)). \n",
"\n",
"You may also (optionally) want to see the [lecture on model fitting in Ecology and Evolution in general](https://github.com/mhasoba/TheMulQuaBio/tree/master/content/lectures/ModelFitting). "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will use R. For starters, clear all variables and graphic devices and load necessary packages:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"rm(list = ls())\n",
"graphics.off()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Traits data as an example \n",
"\n",
"Our first set of examples will focus on traits. \n",
"\n",
"A trait is any measurable feature of an individual organism. This includes physical traits (e.g., morphology, body mass, wing length), performance traits (e.g., biochemical kinetics, respiration rate, body velocity, fecundity), and behavioral traits (e.g., feeding preference, foraging strategy, mate choice). All natural populations show variation in traits across individuals. A trait is functional when it directly (e.g., mortality rate) or indirectly (e.g., somatic development or growth rate) determines individual fitness. Therefore, variation in (functional) traits can generate variation in the rate of increase and persistence of populations. When measured in the context of life cycles, without considering interactions with other organisms (e.g., predators or prey of the focal population), functional traits are typically called life history traits (such as mortality rate and fecundity). Other traits determine interactions both within the focal population (e.g., intra-specific interference or mating frequency) and between the focal population/species and others, including the species which may act as resources (prey, for example). Thus both life history and interaction traits determine population fitness and therefore abundance, which ultimately influences dynamics and functioning of the wider ecosystem, such as carbon fixation rate or disease transmission rate. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Biochemical Kinetics\n",
"\n",
"The properties of an organism's metabolic pathways, and the underlying (enzyme-mediated) biochemical reactions (kinetics) are arguably its most fundamental \"traits\", because these drive all \"performance\" traits, from photosynthesis and respiration, to movement and growth rate.\n",
"\n",
"The [Michaelis-Menten](https://en.wikipedia.org/wiki/Michaelis%E2%80%93Menten_kinetics) model is widely used to quantify reaction kinetics data and estimate key biochemical parameters. This model relates biochemical reaction rate ($V$) (rate of formation of the product of the reaction), to concentration of the substrate ($S$):\n",
"\n",
"$$ \n",
"V = \\frac{V_{\\max} S}{K_M + S} \n",
"$$(eq:M-M)\n",
"\n",
"Here,\n",
"\n",
"* $V_{\\max}$ is the maximum rate that can be achieved in the reaction system, which happens at saturating substrate concentration (as $S$ gets really large), and \n",
"* $K_M$ is the Michaelis or half-saturation constant, defined as the substrate concentration at which the reaction rate is half of $V_{\\max }$. This parameter controls the overall shape of the curve, i.e., whether $V$ approaches $V_{\\max}$ slowly or rapidly. In enzyme catalyzed reactions, it measures how loosely the substrate binds the enzyme: large $K_M$ indicates loose binding of enzyme to substrate, small $K_M$ indicates tight binding (it has units of the substrate concentration, $S$).\n",
"\n",
"Biochemical reactions involving a single substrate are often well fitted by the Michaelis-Menten kinetics.\n",
"\n",
"\n",
"\n",
"The Michaelis-Menten model.\n",
"\n",
"Let's fit the Michaelis-Menten model to some data. \n",
"\n",
"\n",
"### Generating data\n",
"\n",
"Instead of using real experimental data, we will actually *generate* some \"data\" because that way we know exactly what the errors in the data are. You can also import and use your own dataset for the fitting steps further below.\n",
"\n",
"We can generate some data as follows.\n",
"\n",
"First, generate a sequence of substrate concentrations from 1 to 50 in jumps of 5, using `seq()` (look up the documentation for `seq()`)."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
- 1
- 6
- 11
- 16
- 21
- 26
- 31
- 36
- 41
- 46
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 1\n",
"\\item 6\n",
"\\item 11\n",
"\\item 16\n",
"\\item 21\n",
"\\item 26\n",
"\\item 31\n",
"\\item 36\n",
"\\item 41\n",
"\\item 46\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 1\n",
"2. 6\n",
"3. 11\n",
"4. 16\n",
"5. 21\n",
"6. 26\n",
"7. 31\n",
"8. 36\n",
"9. 41\n",
"10. 46\n",
"\n",
"\n"
],
"text/plain": [
" [1] 1 6 11 16 21 26 31 36 41 46"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"S_data <- seq(1,50,5)\n",
"S_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that because we generated values only at intervals of, there will be 50/5 = 10 \"substrate\" values.\n",
"\n",
"Now generate a Michaelis-Menten reaction velocity response with `V_max` = 12.5 and `K_M` = 7.1:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAAC8VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5wcHBx\ncXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4OE\nhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWW\nlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eo\nqKipqamqqqqrq6utra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7\nu7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjKysrLy8vMzMzNzc3O\nzs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh\n4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz\n8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////LnzozAAAACXBIWXMAABJ0\nAAASdAHeZh94AAAUP0lEQVR4nO3deXwU9f3H8U+WJdmEJNwQCCCXJAELtFjDFTRIDUcAERBR\nRKyIUY4fttaCUmvlsByigNKWIiJShP4MCqhAD0SQM4Agl4gQREDCnQRyzF+/nZ1NSPLLTib7\n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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"V_data <- ((12.5 * S_data)/(7.1 + S_data))\n",
"plot(S_data, V_data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that our choice of $V_{\\max} = 12.5$ and $K_M = 7.1$ is completely arbitrary. As long as we make sure that $V_{\\max} > 0$, $K_H > 0$, and $K_M$ lies well within the lower half of the the range of substrate concentrations (0-50), these \"data\" will be physically biologically sensible.\n",
"\n",
"Now let's add some random (normally-distributed) fluctuations to the data to emulate experimental / measurement error:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAAC/VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGTk5OUlJSV\nlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqan\np6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5\nubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrL\ny8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd\n3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v\n7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///93gpTw\nAAAACXBIWXMAABJ0AAASdAHeZh94AAAUJElEQVR4nO3deXwUZZ7H8V86TRIgCeFOuARE7gHG\nQQi3AYYzHBoQMiCiAkY5ZnBHZmAXd4YBl0sQwWsQ0WE4ZFajIMjlcAjrEiScA8ihcilgAnIl\n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\nIcWM7EYAAAAASUVORK5CYII=",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"set.seed(1456) # To get the same random fluctuations in the \"data\" every time\n",
"V_data <- V_data + rnorm(10,0,1) # Add 10 random fluctuations with standard deviation of 0.5 to emulate error\n",
"plot(S_data, V_data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That looks real!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Fitting the model using NLLS\n",
"\n",
"Now, fit the model to the data:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message in nls(V_data ~ V_max * S_data/(K_M + S_data)):\n",
"“No starting values specified for some parameters.\n",
"Initializing ‘V_max’, ‘K_M’ to '1.'.\n",
"Consider specifying 'start' or using a selfStart model”\n"
]
}
],
"source": [
"MM_model <- nls(V_data ~ V_max * S_data / (K_M + S_data))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This warning arises because `nls` requires \"starting values\" for the parameters (two in this case: `V_max` and `K_M`) to start searching for optimal combinations of parameter values (ones that minimize the RSS). Indeed, all NLLS fitting functions / algorithms require this. If you do not provide starting values, `nls` gives you a warning (as above) and uses a starting value of 1 for every parameter by default. For simple models, despite the warning, this works well enough.\n",
"\n",
"```{tip}\n",
"Before proceeding further, have a look at what `nls()`'s arguments are using `?nls`, or looking at the documentation [online](https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/nls).\n",
"```\n",
"\n",
"We will address the issue of starting values soon enough, but first let's look at how good the fit that we obtained looks.\n",
"\n",
"### Visualizing the fit \n",
"\n",
"The first thing to do is to see how well the model fitted the data, for which plotting is the best first option:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\ng+3atSsegQdyxTz6UVub/PxYrgQAFKbigF66dGliYuK+fftCQkJGjx7NNP7444979ux5/fp1\nYGCgnCsESk0l5oE2gwcTTvsDfD0qDuizZ8927ty59P3cI0eO9Pb2vnLlinwKg8+2bqWCAiKi\niRPZLgUAFKjigE5LS2vWrJnURfXr109JSZF1SfAfhYW0YwcRUcuW1KYN29UAgAJVHND29vbh\n4eFSF4WGhtrgfgk5O3mSmGuxkyezXQoAKFbFAd2zZ8///e9/gYGBIpFIsn3p0qVhYWHffvut\n3GoDon8vD+rr06BBbJcCAIpV8TjoOXPmXL58eeHChXv37jU2NiaigICA0NDQBw8eODg4LFq0\nSP5FVmDnzp02NjaSz+KqMWJj6do1IqJRo0hHh+1qAECxKj6CVlVVvXLlypo1awQCwZ07d4ho\n06ZNr169WrBgQUhIiJaWlvyLrMCYMWMOHDjAdhVysXEjicXE49H48WyXAgAKV6k7CTU0NKZO\nnTp16tSsrKyEhARTU1MF3+SdlJQUGRlZzgrx8fHnzp1jXteY+ZtycmjfPiKirl2pjMu0AFCT\nVeFWbyLi8/m2trbFbwsKCn7//ffZzKPx5Onq1at+5d6hceHChQsXLjCvxWKxvOtRjIMHiXkS\nJEbXAXydygzoe/fuzZ07NyIiIjs729HRMTAw0NPTMzMzc9euXRERERkZGZ8+fYqJiUlKSlJA\nQPft2/f69et79uzh8/lTpkypXbu25NI5c+a0a9euT58+1diySCQ6f/58bm5uOes8ePCgGlv+\ncsx8/A0bko8PK98PAGwTSxMeHq7672OitbW1iUhNTe369ettSg3EtbW1lboFeTh27JiBgYGF\nhcXNmzcl24lowoQJ1dvmixcv6tatW6dcOjo6RPTp0ydZdKKy7twRE4mJxL/8osivBfjq5Ofn\nE1FISAjbhUghPaB79+5NRD/88MPHjx/FYnFMTEzbtm35fD4RTZo06dGjR69fv05JScnJyVFs\nteLExEQPDw8VFZW5c+cKBAKm8UsCujK2bNlCRJmZmfL7itJGjBATidXVxcnJivxagK8OlwNa\n+iiO8PBwGxubVatWMdOKNmvWbN26dVlZWS1atFi/fr29vb2JiYmZmRlzcK1IDRo0CAoKWrFi\nxerVq9u2bRvNzPBW47x/T3/+SUTUty/Vq8d2NQDAEukBnZiYaGdnx+PxilscHByIqHnz5gqq\n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\nYfPmzVKXzpgxw8fH5+3bt8zbjIyMyZMnt2jRgs/nOzk5zZo1Kycnp3jlMWPG6OvrJyQkuLu7\n83g8DQ0Ne3v7nTt3Sm7w/fv348ePb968ub6+voeHx65duySXll98+duX0y7t37+/ZCB8+R6A\nL4eArskOHTpERCYmJkeOHMnLyytrtcoEtI2NTcOGDZs0aTJy5Eg3Nzcej8fn82/evMmssHTp\nUiIyMzMbMmRI9+7ddXR0VFRUbty4IRaLL126NGXKFCIaN27cnj178vLymDQZP368sbHxkCFD\nQkJCxGJxdHQ0n8/X1NTs16/f5MmTfXx81NTUDAwMkpOTpW4kPz/fzc2NiFq3bj1u3Dh3d3ci\natSoUXx8fFnddHR0JKL3799XuN9ev37dtGlTIurQocPYsWNbtWpFRPb29pmZmcwKY8aMqVWr\nloODg7m5+bRp0yZNmlS7dm0iOn78OLNCfHy8ubm5qqqql5fXuHHjLC0tiWjq1KnM0gqLL3/7\nctqlkgH95XsAZAIBXZMJhULmXx0R6erq9urVa+3atdHR0SVWq0xAE5GPj09xyjPR36ZNm+IV\nrK2ti5eeOHGCiEaNGsW8ZS5DHThwgHnr5+enqqrq4ODAHAgzJk+eTETnzp0rbtm4caPk4X+J\njaxZs4aIfvnll+L19+7dS0T9+vUra29oa2vXrl27on0mFovFzJnoNWvWFLfMnj2biJYsWcK8\nHTNmDBE5ODh8+PCBabl16xYRDR48mHk7fPhwIjpx4gTzViAQuLi48Hi8Z8+eVab4Crcvj10q\nGdBfvgdAJhDQNV9QUNCYMWMsLCyKf5+1sLBYvXq1UChkVqhMQKuqqsbFxUmu4+3tTUSRkZEC\ngUBNTc3CwkIgEDCLRCJRVFTUy5cvmbel04SIjh49Krm1GzduHDhwoLgksVh8/vx5yYwosZFG\njRpZWlpKri8Wi52dnTU0NLKzs0vvBKZH1tbWFe4ugUDA/MIuEokkP25qalqvXj3mLRNPJbrA\n5/M9PT3FYvG7d+9UVFS6dOkiufTcuXMdO3a8cuVKZYovf/ul94ZMdmlxQH/5HgBZwSiOmq9L\nly5dunQhopcvXwYHB58+ffrChQszZswICws7cOBAJTdiYWHRpEkTyRYvL69z587Fxsa2aNGi\nZ8+ef//9t6Oj48CBA93c3Nq3b29nZ1f+Bpnfmosxv/Ln5+c/e/bs1atXT5482blzZ1mfzc7O\n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\nQmCC",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"plot(S_data,V_data, xlab = \"Substrate Concentration\", ylab = \"Reaction Rate\") # first plot the data \n",
"lines(S_data,predict(MM_model),lty=1,col=\"blue\",lwd=2) # now overlay the fitted model "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This looks OK. \n",
"\n",
"```{note}\n",
"We used the `predict()` function here just as we did in any of the linear models chapters (e.g., [here](16-MulExp:Predicted-values)). In general, you can use most of the same commands/functions (e.g., `predict()` and `summary()`) on the output of a `nls()` model fitting object as you would on a `lm()` model fitting object. Please have a look at the [documentation](https://stat.ethz.ch/R-manual/R-devel/library/stats/html/predict.nls.html) of the predict function for `nls` before proceeding. \n",
"```\n",
"\n",
"However, the above approach for plotting is not the best way to do it, because `predict()`, without further arguments (see its [documentation](https://stat.ethz.ch/R-manual/R-devel/library/stats/html/predict.nls.html)), by default only generates predicted values for the actual x-values (substrate) data used to fit the model. So if there are very few values in the original data, you will not get a smooth predicted curve (as you can see above). A better approach is to generate a sufficient number of x-axis values and then calculate the predicted line. Let's do it:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"- V_max
- 12.9636890787612
- K_M
- 10.6072252168762
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636890787612\n",
"\\item[K\\textbackslash{}\\_M] 10.6072252168762\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636890787612K_M\n",
": 10.6072252168762\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96369 10.60723 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"coef(MM_model) # check the coefficients"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"Substrate2Plot <- seq(min(S_data), max(S_data),len=200) # generate some new x-axis values just for plotting"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"Predict2Plot <- coef(MM_model)[\"V_max\"] * Substrate2Plot / (coef(MM_model)[\"K_M\"] + Substrate2Plot) # calculate the predicted values by plugging the fitted coefficients into the model equation "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nXNixY0duJLlcfuzYsbwdkW8htWvXtrW1zTu/XC53d3fX0dFJTU0t+CYo1sjBwaHYt0sqlSo+\nsMtksrxPt7S0rF69uuKhop7yrYKhoaGPj49cLn/x4oWGhkb79u3zTj169Gjr1q1PnTpVkvDv\nX37Bd0Mpb2luQX/4O0DKwqM4Kr727du3b98ewP3798+ePXvo0KHjx49Pnjw5LCxsx44dJVyI\njY1N3bp18474+voePXo0JiamYcOGXbt2/e2331xdXT/99FNPT8+WLVs6Ozu/f4GKT825FB/5\nMzMz79y58+DBg3/++WfTpk1FPTc1NTU+Pt7d3f3nn3/OO66npyeVSmNjY11cXPI9RVdXV0dH\n5+nTp8WuaVxcnFQqVexazft0Dw+P/fv3p6amVqpUSTHo5uaW79UVP0RHR8tkMi8vr7xTu3Tp\n0qVLl1KFL2r5RfmQtzSvD38HSFlY0BVZTk6ORCLR0Hh3rI6Njc3QoUOHDh0aFRXl7e29c+fO\niRMn5vs/VhRLS8t8I4pv/J89ewZg586dixYt2rp16zfffAPAwMCge/fuixYtql69elELtLCw\nyPswLS1t/PjxO3fuTE9P19LSqlu3rr29/Z07dwp9blxcHIDLly9fvny54NS3b98W+iwbG5vo\n6OjExETFHpt8Dhw4sHPnziFDhhgZGRW6voojYR49emRvb68YMTExeU+8gksobfiill+UD3lL\n83r06FGh+Uv+DpCy8DC7CksmkxkYGLi7uxec5OzsrPiIGhUVVehzC3acoojzevLkCQDF8Wr6\n+vpz5syJjY2Njo7etGlTs2bNdu3a5evrK5fLi4qX+2tDoWfPnps2bZowYcLNmzczMjKio6Nn\nzZpV1HMVTRQUFFTop8JCVxmA4mPEnj17Cp26a9euffv2ValSRfFLpeD6KkbyHrD4/niJiYlK\nDF8SH/KW5vXh7wApCwu6wtLQ0LCzs7t161ZCQkLBqfHx8QCcnJwUD7OysvKW6Y0bN/LNf+/e\nvQcPHuQd+f333wE4OjrevXt39uzZ58+fB2Bvb//555+fP3++Q4cORb10QcnJyWfOnOnZs+eC\nBQtcXFw0NTUBvHnzpqj5zczMzMzMQkND840vXrx47ty5RT1r6tSplSpVmj9/fkpKSr5J9+/f\nP3z4cKVKlZo1a2Ztba2trX3hwoW8M0il0suXL1taWiq2r9/PwcEBQEhISN7BEydOaGtrr1+/\nvmzhS6u0b2leH/4OkLKwoCuyMWPGpKend+/e/fbt23nHDxw4sHv3bltb28aNGwMwNTXNzMxU\nfAsPID09vWBT5OTkTJgwIfeUhF9++eXQoUN+fn716tXT0NAIDg6eO3duVlaWYmpWVtarV690\ndXXzfkx+z+kMOTk52dnZr1+/zh1JSkoKDg4GkO+aIbkLGTVq1LVr1xYsWJA7adu2bVOmTLl7\n925Rr1K7du25c+c+efKkZcuW0dHRueOxsbFeXl4ZGRkLFizQ0dHR1tb+/PPPb968qTjmQWHe\nvHmPHj364osvilp4XjVr1vTz8zty5MiJEycUI9nZ2YsWLcrJyVEcUVeG8IVS7lua68PfAVKa\n8vv+kQSXk5Oj+H5fR0fH1dW1V69eAQEBjo6OACpXrhwZGamY7bfffgNgbGw8YcKEr776ysHB\nQV9f38jIKO9RHNWqVQNgZ2c3dOhQb29viURSrVq13CP2unXrBsDW1nbEiBF9+/ZV9PLs2bMV\nU0+ePAmgadOm3377bWpqqiLS27dv80bt1KkTAHd39xkzZowYMaJq1aqKPRIN/699O1ZNHYoD\nMH4k2NJGFKK0qB0yRGgl7ZAOGUqho0PBUkoXkS4OmnTppIv4IB2KQ1+gODj4Hn2ABhdpkSwO\ngnYIN0h7b3uht9w/936/SUw8HM7woeacg4PBYPB+kDAMbdtWSh0eHnqeV61WNU0rFotBEHyw\nIPP5PPpvJ5FI7O7unp+fR6uhlLq8vIw3LYzHY9M0lVInJyee57muG80knnM0yOqetuWP4zzR\n68fHx62tLU3TTk9Pfd+Pfqnc3NxEVz+d/Kfjf8eSrm6z+/oK4I8g0P++h4eHs7OzQqGwtra2\nvb3tum63251MJqv33N3d2ba9vr6ulDIMYzAYWJa1Gujr6+vhcFipVHK5nGmatVrt6ekp/ngY\nhr1eb29vT9f1XC53dHR0f38f9242m9Xr9Ww2axjGy8vLT2vy/PzcbDZ3dnbS6fTx8XG/318u\nl57nZTKZRqPxfpDonXa77TjO5uamZVmtVuvjk4Sx0Wh0cXFRLpc3NjYsy4q+7b65Zzqd+r6/\nv7+v67rjOJ1OZzabxVd/J0/j8fjq6qpUKqVSKcdxbm9vV3etfTz5T8f/jiV9c5Lw6yuAr0ss\nf/0YB/+bxWIRBEE+n08mk397LgAUgQYAoXhICABCEWgAEIpAA4BQBBoAhCLQACAUgQYAoQg0\nAAhFoAFAKAINAEIRaAAQikADgFAEGgCEItAAIBSBBgChCDQACEWgAUAoAg0AQhFoABCKQAOA\nUAQaAIQi0AAgFIEGAKEINAAIRaABQCgCDQBCEWgAEIpAA4BQBBoAhCLQACDUK/n6naGLoPny\nAAAAAElFTkSuQmCC",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"plot(S_data,V_data, xlab = \"Substrate Concentration\", ylab = \"Reaction Rate\") # first plot the data \n",
"lines(Substrate2Plot, Predict2Plot, lty=1,col=\"blue\",lwd=2) # now overlay the fitted model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That looks much better (smoother) than the plot above !"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Summary stats of the fit\n",
"\n",
"Now lets get some stats of this NLLS fit. Having obtained the fit object (`MM_model`), we can use `summary()` just like we would for a `lm()` fit object: "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"Formula: V_data ~ V_max * S_data/(K_M + S_data)\n",
"\n",
"Parameters:\n",
" Estimate Std. Error t value Pr(>|t|) \n",
"V_max 12.964 1.221 10.616 5.42e-06 ***\n",
"K_M 10.607 3.266 3.248 0.0117 * \n",
"---\n",
"Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n",
"\n",
"Residual standard error: 0.8818 on 8 degrees of freedom\n",
"\n",
"Number of iterations to convergence: 5 \n",
"Achieved convergence tolerance: 9.507e-06\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"summary(MM_model)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This looks a lot like the output of a linear model, and to be specific, of a [Linear Regression](./14-regress.ipynb). For starters, compare the above output with the output of `summary(genomeSizeModelDragon)` in [this section](regress:perform) of the Linear Regression chapter. \n",
"\n",
"So here are the main things to note about the output of `summary()` of an `nls()` model object:\n",
"\n",
"* `Estimate`s are, as in the output of the `lm()` function for fitting linear models, the estimated values of the coefficients of the model that you fitted ($V_{\\max}$ and $K_M$). Note that although we generated our data using $V_{\\max} = 12.5$ and $K_M = 7.1$, the actual coefficients are quite different from what we are getting with the NLLS fitting ($\\hat{V}_{\\max} = 12.96$ and $\\hat{K}_M = 10.61$). This is because we added random (normally-distributed) errors when we generated the \"data\". This tells you something about how experimental and/or measurement errors can distort your image of the underlying mechanism or process. \n",
"* `Std. Error`, `t value`, and `Pr(>|t|)` and `Residual standard error` have the same interpretation as in the output of `lm()` (please look back at the [Linear Regression Chapter](./14-regress.ipynb))\n",
"* `Number of iterations to convergence` tells you how many times the NLLS algorithm had to adjust the parameter values till it managed to find a solution that minimizes the Residual Sum of Squares (RSS)\n",
"* `Achieved convergence tolerance` tells you on what basis the algorithm decided that it was close enough to the a solution; basically if the RSS does not improve more than a certain threshold despite parameter adjustments, the algorithm stops searching. This may or may not be close to an optimal solution (but in this case it is).\n",
"\n",
"The last two items are specific to the output of an `nls()` fitting `summary()`, because unlike Ordinary Least Squares (OLS), which is what we used for Linear regression, NLLS is not an *exact* procedure, and the fitting requires computer simulations; revisit the [Lecture](https://github.com/mhasoba/TheMulQuaBio/blob/master/lectures/NLLS) for an explanation of this. This is all you need to know for now. As such, you do not need to report these last two items when presenting the results of an NLLS fit, but they are useful for problem solving in case the fitting does not work (more on this below). \n",
"\n",
"As noted above, you can use the same sort of commands on a `nls()` fitting result as you can on a `lm()` object. \n",
"\n",
"Thus, much of the output of NLLS fitting using `nls()` is similar to the output of an `lm()`, and can be further analyzed or processed using analogous functions such as `coef()`, `residuals()`, and `confint()`. \n",
"\n",
"For example, you can get just the values of the estimated coefficients using `coef()` as you did above for the plotting. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Statistical inference using NLLS fits\n",
"\n",
"So what do we do with the results of an NLLS fit? What statistical inferences can be made? We will address this issue here at a basic level, and then revisit it using model selection further below (in the Allometric growth example)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Goodness of fit\n",
"\n",
"Statistical inference based on the results obtained from NLLS fitting cannot be done using Analysis of Variance (ANOVA), because the model being fitted is not a Linear Model. Try `anova(MM_model)`, and see what happens. Thus, you do not have something like an $F$-value for the model fitting to assess the overall significance of the fit as you did in Linear Models. The best way to assess the quality of a NLLS model fit is to compare it to another, alternative model's fit. In this context, recall that running an ANOVA, using the [`anova()` function on a linear model fit](regress:perform) basically compares the fitted model to a null model. \n",
"\n",
"Other than that, the best thing to assess the quality of fit is to examine whether the fitted coefficients are reliable, ie.e., are significant, based on their (low) standard errors, (high) t-values, and (low) p-values (see the example model's summary above).\n",
"\n",
"#### R-squared values\n",
"\n",
"To put it simply, unlike an R$^2$ value obtained by fitting a linear model, that obtained from NLLS fitting is not reliable, and should not be used. The reason for this is somewhat technical (e.g., see this [paper](https://dx.doi.org/10.1186%2F1471-2210-10-6)) and we won't go into it here. But basically, NLLS R$^2$ values do not always accurately reflect the quality of fit, and definitely cannot be used to select between competing models (Model selection, as you learned [previously](./18-ModelSimp.ipynb)). Indeed R$^2$ values obtained from NLLS fitting even be negative when the model fits very poorly! We will learn more about model selection with non-linear models later below."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Confidence Intervals \n",
"\n",
"One particularly useful thing you can do after NLLS fitting is to calculate/construct the confidence intervals (CI's) around the estimated parameters in our fitted model. This is analogous to how we would in the OLS fitting used for Linear Models: "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Waiting for profiling to be done...\n",
"\n"
]
},
{
"data": {
"text/html": [
"\n",
"A matrix: 2 × 2 of type dbl\n",
"\n",
"\t | 2.5% | 97.5% |
\n",
"\n",
"\n",
"\tV_max | 10.640478 | 17.00502 |
\n",
"\tK_M | 4.924547 | 22.39247 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A matrix: 2 × 2 of type dbl\n",
"\\begin{tabular}{r|ll}\n",
" & 2.5\\% & 97.5\\%\\\\\n",
"\\hline\n",
"\tV\\_max & 10.640478 & 17.00502\\\\\n",
"\tK\\_M & 4.924547 & 22.39247\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 2 × 2 of type dbl\n",
"\n",
"| | 2.5% | 97.5% |\n",
"|---|---|---|\n",
"| V_max | 10.640478 | 17.00502 |\n",
"| K_M | 4.924547 | 22.39247 |\n",
"\n"
],
"text/plain": [
" 2.5% 97.5% \n",
"V_max 10.640478 17.00502\n",
"K_M 4.924547 22.39247"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"confint(MM_model)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `Waiting for profiling to be done...` message reflects the fact that calculating the standard errors from which the CI's are calculated requires a particular computational procedure (which we will not go into here) when it comes to NLLS fits. \n",
"\n",
"Calculating confidence intervals can be useful because, \n",
"\n",
"1. As you learned [here](13-t_F_tests:CI), [here](13-t_F_tests:CI2), and [here](15-anova:CI) (among other places) you can use a coefficient/parameter estimate's confidence intervals to test whether it is significantly different from some reference value. In our CI example above, the intervals for `K_M` do in fact include the original value of $K_M = 7.1$ that we used to generate the data.\n",
"\n",
"2. Confidence intervals can also be used to do a quick (but not robust - see warning below) test of whether coefficient estimates of the same model coefficient obtained from different populations (samples) are significantly different from each other (If their CI's don't overlap, they are significantly different).\n",
"\n",
"```{warning}\n",
"You can compare estimates of the same coefficient (parameter) from samples of different populations: if their CI's don't overlap, this indicates a statistically significant difference between the two populations as far as that coefficient is concerned (e.g., for 95% CI's this means at the 0.05 level of significance or p-value). However, the opposite is not necessarily true: when CI's overlap, there may *still* be a statistically significant difference between the coefficients (and therefore, populations).\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The starting values problem\n",
"\n",
"Now let's revisit the issue of starting values in NLLS fitting. Previously, we fitted the Michaelis-Menten Model without any starting values, and R gave us a warning but managed to fit the model to our synthetic \"data\" using default starting values. \n",
"\n",
"### Fitting the model with starting values\n",
"\n",
"Lets try the NLLS fitting again, but with some particular starting values:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"MM_model2 <- nls(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = 12, K_M = 7))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that unlike before, we got no warning message about starting values.\n",
"\n",
"*As will become apparent below, using sensible starting values is important in NLLS fitting.*\n",
"\n",
"```{note}\n",
"*How do you find \"sensible\" starting values for NLLS fitting?* This very much depends on your understanding of the mathematical model that is being fitted to the data, the mechanistic interpretation of its parameters, and the specific dataset. For example, in the Michaelis-Menten Model example, we can know that $V_{\\max}$ is maximum reaction velocity and $K_M$ is the value of the substrate concentration at which half of $V_{\\max}$ is reached. So we can choose starting values by \"eye-balling\" a particular dataset and determining *approximately* what the `V_max`and `K_M` are be for that particular dataset. In this particular case, we chose `V_max` = 12 and `K_M` = 7 because looking at the data plot above, these values seem to be reasonable guesses for the two parameters. \n",
"```\n",
"\n",
"\n",
"Let's compare the coefficient estimates from our two different model fits to the same dataset:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"- V_max
- 12.9636890787612
- K_M
- 10.6072252168762
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636890787612\n",
"\\item[K\\textbackslash{}\\_M] 10.6072252168762\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636890787612K_M\n",
": 10.6072252168762\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96369 10.60723 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"- V_max
- 12.9636297453629
- K_M
- 10.6070555266004
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636297453629\n",
"\\item[K\\textbackslash{}\\_M] 10.6070555266004\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636297453629K_M\n",
": 10.6070555266004\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96363 10.60706 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"coef(MM_model)\n",
"coef(MM_model2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Not too different, but not exactly the same! \n",
"\n",
"In contrast, when you fit linear models you will get exactly the same coefficient estimates every single time, because OLS is an *exact* procedure."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, let's try even more different start values:"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
"MM_model3 <- nls(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = .01, K_M = 20))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compare the coefficients of this model fit to the two previous ones: "
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"- V_max
- 12.9636890787612
- K_M
- 10.6072252168762
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636890787612\n",
"\\item[K\\textbackslash{}\\_M] 10.6072252168762\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636890787612K_M\n",
": 10.6072252168762\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96369 10.60723 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"- V_max
- 12.9636297453629
- K_M
- 10.6070555266004
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636297453629\n",
"\\item[K\\textbackslash{}\\_M] 10.6070555266004\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636297453629K_M\n",
": 10.6070555266004\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96363 10.60706 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"- V_max
- 0.816129927593736
- K_M
- -19.49936559059
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 0.816129927593736\n",
"\\item[K\\textbackslash{}\\_M] -19.49936559059\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 0.816129927593736K_M\n",
": -19.49936559059\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
" 0.8161299 -19.4993656 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"coef(MM_model)\n",
"coef(MM_model2)\n",
"coef(MM_model3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The estimates in our latest model fit are completely different (in fact, `K_M` is negative)! Let's plot this model's and the first model's fit together: "
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\nRK5CYII=",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"plot(S_data,V_data) # first plot the data \n",
"lines(S_data,predict(MM_model),lty=1,col=\"blue\",lwd=2) # overlay the original model fit\n",
"lines(S_data,predict(MM_model3),lty=1,col=\"red\",lwd=2) # overlay the latest model fit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you would have guessed from the really funky coefficient estimates that were obtained in `MM_model3`, this is a pretty poor model fit to the data, with the negative value of `K_M` causing the fitted version of the Michaelis-Menten model to behave strangely.\n",
"\n",
"*Also, you could have used the nicer plotting approach that was introduced before.*\n",
"\n",
"Let's try with even more different starting values. "
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"scrolled": false
},
"outputs": [
{
"ename": "ERROR",
"evalue": "Error in nlsModel(formula, mf, start, wts): singular gradient matrix at initial parameter estimates\n",
"output_type": "error",
"traceback": [
"Error in nlsModel(formula, mf, start, wts): singular gradient matrix at initial parameter estimates\nTraceback:\n",
"1. nls(V_data ~ V_max * S_data/(K_M + S_data), start = list(V_max = 0, \n . K_M = 0.1))",
"2. nlsModel(formula, mf, start, wts)",
"3. stop(\"singular gradient matrix at initial parameter estimates\")"
]
}
],
"source": [
"nls(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = 0, K_M = 0.1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `singular gradient matrix at initial parameter estimates` error arises from the fact that the starting values you provided were so far from the optimal solution, that the parameter searching in `nls()` failed at the very first step. The algorithm could not figure out where to go from those starting values. In fact, the starting value we gave it is biologically/ physically impossible, because `V_max` can't equal 0. \n",
"\n",
"Let's look at another pair of starting values that causes the model fitting to fail: "
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"ename": "ERROR",
"evalue": "Error in nls(V_data ~ V_max * S_data/(K_M + S_data), start = list(V_max = -0.1, : singular gradient\n",
"output_type": "error",
"traceback": [
"Error in nls(V_data ~ V_max * S_data/(K_M + S_data), start = list(V_max = -0.1, : singular gradient\nTraceback:\n",
"1. nls(V_data ~ V_max * S_data/(K_M + S_data), start = list(V_max = -0.1, \n . K_M = 100))"
]
}
],
"source": [
"nls(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = -0.1, K_M = 100))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case, the model fitting did get started, but eventually failed, again because the starting values were too far from the (approximately) optimal values ($V_{\\max} \\approx 12.96, K_M \\approx 10.61$).\n",
"\n",
"```{note}\n",
"There are other types of errors (other than the \"singular gadient matrix\" one) that the nlls fitting can run into because of poor starting parameter values.\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And what happens if we start really close to the optimal values? Let's try: "
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [],
"source": [
"MM_model4 <- nls(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = 12.96, K_M = 10.61))"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"- V_max
- 12.9636890787612
- K_M
- 10.6072252168762
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636890787612\n",
"\\item[K\\textbackslash{}\\_M] 10.6072252168762\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636890787612K_M\n",
": 10.6072252168762\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96369 10.60723 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"- V_max
- 12.9636623821246
- K_M
- 10.6071488812911
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636623821246\n",
"\\item[K\\textbackslash{}\\_M] 10.6071488812911\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636623821246K_M\n",
": 10.6071488812911\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96366 10.60715 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"coef(MM_model)\n",
"coef(MM_model4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The results of the first model fit and this last one are still not exactly the same! This drives home the point that NLLS is not an \"exact\" procedure. However, the differences between these two solutions are minuscule, so the main thing to take away is that if the starting values are reasonable, NLLS is *exact enough*. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that and even if you started the NLLS fitting with the exact parameter values with which you generated the data before introducing errors (so use `start = list(V_max = 12.5, K_M = 7.1)` above instead), you would still get the same result for the coefficients (try it). This is because the NLLS fitting will converge back to the parameter estimates based on the actual data, errors and all."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## A more robust NLLS algorithm\n",
"\n",
"The standard NLLS function in R, `nls`, which we have been using so far, does the NLLS fitting by implementing an algorithm called the Gauss-Newton algorithm. While the Gauss-Newton algorithm works well for most simple non-linear models, it has a tendency to \"get lost\" or \"stuck\" while searching for optimal parameter estimates (that minimize the residual sum of squares, or RSS). Therefore, `nls` will often fail to fit your model to the data if you start off at starting values for the parameters that are too far from what the optimal values would be, as you saw above (e.g., when you got the `singular gradient matrix` error). \n",
"\n",
"Some nonlinear models are especially difficult for nls to fit to data because such model have a mathematical form that makes it hard to find parameter combinations that minimize the residual sum of squared (RSS). If this does not makes sense, don't worry about it.\n",
"\n",
"One solution to this is to use a different algorithm than Gauss-Newton. `nls()` has one other algorithm that can be more robust in some situations, called the \"port\" algorithm. However, there is a better solution still: the Levenberg-Marqualdt algorithm, which is less likely to get stuck (is more robust than) than Gauss-Newton (or port). If you want to learn more about the technicalities of this, [here](https://en.wikipedia.org/wiki/Gauss%E2%80%93Newton_algorithm) are [here](https://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm) are good places to start (also see the Readings list at the end of this chapter).\n",
"\n",
"\n",
"To be able to use nlsLM, we will need to switch to a different NLLS function called `nlsLM`. In order to be able to use `nlsLM`, you will need the `nls.lm` R package, which you can install using the method appropriate for your operating system (e.g., linux users will launch R in `sudo` mode first) and then use:\n",
"\n",
"```r\n",
"> install.packages(\"minpack.lm\") \n",
"```\n",
"\n",
"Now load the `minpack.lm` package:"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"run_control": {
"marked": true
},
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Loading required package: minpack.lm\n",
"\n"
]
}
],
"source": [
"require(\"minpack.lm\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's try it (using the same starting values as `MM_model2` above):"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"MM_model5 <- nlsLM(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = 2, K_M = 2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now compare the `nls` and `nlsLM` fitted coefficients:"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"- V_max
- 12.9636297453629
- K_M
- 10.6070555266004
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636297453629\n",
"\\item[K\\textbackslash{}\\_M] 10.6070555266004\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636297453629K_M\n",
": 10.6070555266004\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96363 10.60706 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"- V_max
- 12.963651950733
- K_M
- 10.6071190268378
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.963651950733\n",
"\\item[K\\textbackslash{}\\_M] 10.6071190268378\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.963651950733K_M\n",
": 10.6071190268378\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96365 10.60712 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"coef(MM_model2)\n",
"coef(MM_model5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Close enough. \n",
"\n",
"Now, let's try fitting the model using all those starting parameter combinations that failed previously: "
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [],
"source": [
"MM_model6 <- nlsLM(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = .01, K_M = 20))"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"MM_model7 <- nlsLM(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = 0, K_M = 0.1))"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"MM_model8 <- nlsLM(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = -0.1, K_M = 100))"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"- V_max
- 12.9636487209143
- K_M
- 10.6071097943627
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636487209143\n",
"\\item[K\\textbackslash{}\\_M] 10.6071097943627\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636487209143K_M\n",
": 10.6071097943627\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96365 10.60711 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"- V_max
- 12.9636360068123
- K_M
- 10.6070734344093
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636360068123\n",
"\\item[K\\textbackslash{}\\_M] 10.6070734344093\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636360068123K_M\n",
": 10.6070734344093\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96364 10.60707 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"- V_max
- 12.9636401038953
- K_M
- 10.6070851518134
\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[V\\textbackslash{}\\_max] 12.9636401038953\n",
"\\item[K\\textbackslash{}\\_M] 10.6070851518134\n",
"\\end{description*}\n"
],
"text/markdown": [
"V_max\n",
": 12.9636401038953K_M\n",
": 10.6070851518134\n",
"\n"
],
"text/plain": [
" V_max K_M \n",
"12.96364 10.60709 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"coef(MM_model6)\n",
"coef(MM_model7)\n",
"coef(MM_model8)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nice, these all worked with `nlsLM` even though they had failed with `nls`! \n",
"\n",
"But `nlsLM` also has its limits. Let's try more absurd starting values:"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"scrolled": true
},
"outputs": [
{
"ename": "ERROR",
"evalue": "Error in nlsModel(formula, mf, start, wts): singular gradient matrix at initial parameter estimates\n",
"output_type": "error",
"traceback": [
"Error in nlsModel(formula, mf, start, wts): singular gradient matrix at initial parameter estimates\nTraceback:\n",
"1. nlsLM(V_data ~ V_max * S_data/(K_M + S_data), start = list(V_max = -10, \n . K_M = -100))",
"2. nlsModel(formula, mf, start, wts)",
"3. stop(\"singular gradient matrix at initial parameter estimates\")"
]
}
],
"source": [
"nlsLM(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = -10, K_M = -100))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"NLLS fails because these starting values are just too far from the best solution. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(20-ModelFitting-NLLS:Bounding)=\n",
"## Bounding parameter values"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also bound the starting values, i.e., prevent them from exceeding some minimum and maximum value *during* the NLLS fitting process.\n",
"\n",
"For example let's first re-run the fitting without bounding the parameters (and some relatively-far-from-optimal starting values):"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"Nonlinear regression model\n",
" model: V_data ~ V_max * S_data/(K_M + S_data)\n",
" data: parent.frame()\n",
"V_max K_M \n",
"12.96 10.61 \n",
" residual sum-of-squares: 6.22\n",
"\n",
"Number of iterations to convergence: 12 \n",
"Achieved convergence tolerance: 1.49e-08"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nlsLM(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = 0.1, K_M = 0.1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, the same with parameter bounds:"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Nonlinear regression model\n",
" model: V_data ~ V_max * S_data/(K_M + S_data)\n",
" data: parent.frame()\n",
"V_max K_M \n",
"12.96 10.61 \n",
" residual sum-of-squares: 6.22\n",
"\n",
"Number of iterations to convergence: 10 \n",
"Achieved convergence tolerance: 1.49e-08"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nlsLM(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = 0.1, K_M = 0.1), lower=c(0.4,0.4), upper=c(100,100))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So when you added bounds, the solution was found in two fewer iterations (not a spectacular improvement, but an improvement nevertheless).\n",
"\n",
"```{note}\n",
"The `nls()` function too has an option to provide `lower` and `upper` parameter bounds, but that is only in effect available when using `algorithm = \"port\"` (only available for a particular algorithm). \n",
"```\n",
"However, if you bound the parameters too much (to excessively narrow ranges), the algorithm cannot search sufficient parameter space (combinations of parameters), and will fail to converge on a good solution. For example: "
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"Nonlinear regression model\n",
" model: V_data ~ V_max * S_data/(K_M + S_data)\n",
" data: parent.frame()\n",
"V_max K_M \n",
"16.09 20.00 \n",
" residual sum-of-squares: 9.227\n",
"\n",
"Number of iterations to convergence: 3 \n",
"Achieved convergence tolerance: 1.49e-08"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nlsLM(V_data ~ V_max * S_data / (K_M + S_data), start = list(V_max = 0.5, K_M = 0.5), lower=c(0.4,0.4), upper=c(20,20))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here the algorithm converged on a poor solution, and in fact took fewer iterations (3) than before to do so. This is because it could not explore sufficient parameter combinations of `V_max` and `K_M` as we have narrowed the range that both these parameters could be allowed to take during the optimization too much."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Diagnostics of an NLLS fit\n",
"\n",
"NLLS regression carries the same three key assumptions as Linear models:\n",
"\n",
"* No (in practice, minimal) measurement error in explanatory/independent/predictor variable ($x$-axis variable)\n",
"\n",
"* Data have constant normal variance — errors in the $y$-axis are homogeneously distributed over the $x$-axis range\n",
"\n",
"* The measurement/observation errors are Normally distributed (Gaussian)\n",
"\n",
"At the very least, it is a good idea to plot the residuals of a fitted NLLS model. Let's do that for our Michaelis-Menten Model fit:"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAfPklEQVR4nO2deWAU1f3Av5sAAXJwBUyAcEYC\nSlABJYTIJSpgJCoIBBUQMCCHWmsV+HGK1npgsZVKVahnq4V6tJ5ILSpe1IqGoBxVBCmHgNwI\n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\n",
"text/plain": [
"Plot with title “Histogram of residuals(MM_model6)”"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"hist(residuals(MM_model6))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The residuals look OK. But this should not come as a surprise because we generated these \"data\" ourselves using normally-distributed errors!\n",
"\n",
"You may also want to look at further diagnostics, as we did [previously](14-regress:Diagnostics) in the case of Linear models. The most convenient way to do this is to use the `nlstools` package. We will not go into it here, but you can have a look at its [documentation](https://rdrr.io/rforge/nlstools/). Note that you will need to install this package as it is not one of the core (base) R packages. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{note}\n",
"For the remaining examples, we will switch to using `nlsLM` instead of `nls`.\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Allometric scaling of traits\n",
"\n",
"Now let's move on to a very common class of traits in biology: physical traits like body weight, wing span, body length, limb length, eye size, ear width, etc. \n",
"\n",
"We will look at a very common phenomenon called [allometric scaling](https://en.wikipedia.org/wiki/Allometry). Allometric relationships between linear measurements such as body length, limb length, wing span, and thorax width are a good way to obtain estimates of body weights of individual organisms. We will look at allometric scaling of body weight vs. total body length in dragonflies and damselfiles. \n",
"\n",
"Allometric relationships take the form:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y = a x^b\n",
"$$(eq:allom)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"where $x$ and $y$ are morphological measures (body length and body weight respectively, in our current example), the constant is the value of $y$ at body length $x = 1$ unit, and $b$ is the scaling \"exponent\". This is also called a power-law, because $y$ relates to $x$ through a simple power. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's fit a power low to a typical allometric relationship: The change in body weight vs change in body length. In general, this relationship is a allometry; that is, body weight does not increase proportionally with some measure of body length. \n",
"\n",
"First, let's look at the data. You can get the data [here](https://raw.githubusercontent.com/mhasoba/TheMulQuaBio/master/content/data/GenomeSize.csv) (first click on link and use \"Save as\" or `Ctrl+S` to download it as a csv). \n",
"\n",
"$\\star$ Save the `GenomeSize.csv` data file to your `data` directory, and import it into your R workspace:"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 6 × 16\n",
"\n",
"\t | Suborder | Family | Species | GenomeSize | GenomeSE | GenomeN | BodyWeight | TotalLength | HeadLength | ThoraxLength | AdbdomenLength | ForewingLength | HindwingLength | ForewingArea | HindwingArea | MorphologyN |
\n",
"\t | <chr> | <chr> | <chr> | <dbl> | <dbl> | <int> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <dbl> | <int> |
\n",
"\n",
"\n",
"\t1 | Anisoptera | Aeshnidae | Aeshna canadensis | 2.20 | NA | 1 | 0.159 | 67.58 | 6.83 | 11.81 | 48.94 | 45.47 | 45.40 | 369.57 | 483.61 | 2 |
\n",
"\t2 | Anisoptera | Aeshnidae | Aeshna constricta | 1.76 | 0.06 | 4 | 0.228 | 71.97 | 6.84 | 10.72 | 54.41 | 46.00 | 45.48 | 411.15 | 517.38 | 3 |
\n",
"\t3 | Anisoptera | Aeshnidae | Aeshna eremita | 1.85 | NA | 1 | 0.312 | 78.80 | 6.27 | 16.19 | 56.33 | 51.24 | 49.47 | 460.72 | 574.33 | 1 |
\n",
"\t4 | Anisoptera | Aeshnidae | Aeshna tuberculifera | 1.78 | 0.10 | 2 | 0.218 | 72.44 | 6.62 | 12.53 | 53.29 | 49.84 | 48.82 | 468.74 | 591.42 | 2 |
\n",
"\t5 | Anisoptera | Aeshnidae | Aeshna umbrosa | 2.00 | NA | 1 | 0.207 | 73.05 | 4.92 | 11.11 | 57.03 | 46.51 | 45.97 | 382.48 | 481.44 | 1 |
\n",
"\t6 | Anisoptera | Aeshnidae | Aeshna verticalis | 1.59 | NA | 1 | 0.220 | 66.25 | 6.48 | 11.64 | 48.13 | 45.91 | 44.91 | 400.40 | 486.97 | 1 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 6 × 16\n",
"\\begin{tabular}{r|llllllllllllllll}\n",
" & Suborder & Family & Species & GenomeSize & GenomeSE & GenomeN & BodyWeight & TotalLength & HeadLength & ThoraxLength & AdbdomenLength & ForewingLength & HindwingLength & ForewingArea & HindwingArea & MorphologyN\\\\\n",
" & & & & & & & & & & & & & & & & \\\\\n",
"\\hline\n",
"\t1 & Anisoptera & Aeshnidae & Aeshna canadensis & 2.20 & NA & 1 & 0.159 & 67.58 & 6.83 & 11.81 & 48.94 & 45.47 & 45.40 & 369.57 & 483.61 & 2\\\\\n",
"\t2 & Anisoptera & Aeshnidae & Aeshna constricta & 1.76 & 0.06 & 4 & 0.228 & 71.97 & 6.84 & 10.72 & 54.41 & 46.00 & 45.48 & 411.15 & 517.38 & 3\\\\\n",
"\t3 & Anisoptera & Aeshnidae & Aeshna eremita & 1.85 & NA & 1 & 0.312 & 78.80 & 6.27 & 16.19 & 56.33 & 51.24 & 49.47 & 460.72 & 574.33 & 1\\\\\n",
"\t4 & Anisoptera & Aeshnidae & Aeshna tuberculifera & 1.78 & 0.10 & 2 & 0.218 & 72.44 & 6.62 & 12.53 & 53.29 & 49.84 & 48.82 & 468.74 & 591.42 & 2\\\\\n",
"\t5 & Anisoptera & Aeshnidae & Aeshna umbrosa & 2.00 & NA & 1 & 0.207 & 73.05 & 4.92 & 11.11 & 57.03 & 46.51 & 45.97 & 382.48 & 481.44 & 1\\\\\n",
"\t6 & Anisoptera & Aeshnidae & Aeshna verticalis & 1.59 & NA & 1 & 0.220 & 66.25 & 6.48 & 11.64 & 48.13 & 45.91 & 44.91 & 400.40 & 486.97 & 1\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 6 × 16\n",
"\n",
"| | Suborder <chr> | Family <chr> | Species <chr> | GenomeSize <dbl> | GenomeSE <dbl> | GenomeN <int> | BodyWeight <dbl> | TotalLength <dbl> | HeadLength <dbl> | ThoraxLength <dbl> | AdbdomenLength <dbl> | ForewingLength <dbl> | HindwingLength <dbl> | ForewingArea <dbl> | HindwingArea <dbl> | MorphologyN <int> |\n",
"|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n",
"| 1 | Anisoptera | Aeshnidae | Aeshna canadensis | 2.20 | NA | 1 | 0.159 | 67.58 | 6.83 | 11.81 | 48.94 | 45.47 | 45.40 | 369.57 | 483.61 | 2 |\n",
"| 2 | Anisoptera | Aeshnidae | Aeshna constricta | 1.76 | 0.06 | 4 | 0.228 | 71.97 | 6.84 | 10.72 | 54.41 | 46.00 | 45.48 | 411.15 | 517.38 | 3 |\n",
"| 3 | Anisoptera | Aeshnidae | Aeshna eremita | 1.85 | NA | 1 | 0.312 | 78.80 | 6.27 | 16.19 | 56.33 | 51.24 | 49.47 | 460.72 | 574.33 | 1 |\n",
"| 4 | Anisoptera | Aeshnidae | Aeshna tuberculifera | 1.78 | 0.10 | 2 | 0.218 | 72.44 | 6.62 | 12.53 | 53.29 | 49.84 | 48.82 | 468.74 | 591.42 | 2 |\n",
"| 5 | Anisoptera | Aeshnidae | Aeshna umbrosa | 2.00 | NA | 1 | 0.207 | 73.05 | 4.92 | 11.11 | 57.03 | 46.51 | 45.97 | 382.48 | 481.44 | 1 |\n",
"| 6 | Anisoptera | Aeshnidae | Aeshna verticalis | 1.59 | NA | 1 | 0.220 | 66.25 | 6.48 | 11.64 | 48.13 | 45.91 | 44.91 | 400.40 | 486.97 | 1 |\n",
"\n"
],
"text/plain": [
" Suborder Family Species GenomeSize GenomeSE GenomeN\n",
"1 Anisoptera Aeshnidae Aeshna canadensis 2.20 NA 1 \n",
"2 Anisoptera Aeshnidae Aeshna constricta 1.76 0.06 4 \n",
"3 Anisoptera Aeshnidae Aeshna eremita 1.85 NA 1 \n",
"4 Anisoptera Aeshnidae Aeshna tuberculifera 1.78 0.10 2 \n",
"5 Anisoptera Aeshnidae Aeshna umbrosa 2.00 NA 1 \n",
"6 Anisoptera Aeshnidae Aeshna verticalis 1.59 NA 1 \n",
" BodyWeight TotalLength HeadLength ThoraxLength AdbdomenLength ForewingLength\n",
"1 0.159 67.58 6.83 11.81 48.94 45.47 \n",
"2 0.228 71.97 6.84 10.72 54.41 46.00 \n",
"3 0.312 78.80 6.27 16.19 56.33 51.24 \n",
"4 0.218 72.44 6.62 12.53 53.29 49.84 \n",
"5 0.207 73.05 4.92 11.11 57.03 46.51 \n",
"6 0.220 66.25 6.48 11.64 48.13 45.91 \n",
" HindwingLength ForewingArea HindwingArea MorphologyN\n",
"1 45.40 369.57 483.61 2 \n",
"2 45.48 411.15 517.38 3 \n",
"3 49.47 460.72 574.33 1 \n",
"4 48.82 468.74 591.42 2 \n",
"5 45.97 382.48 481.44 1 \n",
"6 44.91 400.40 486.97 1 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"MyData <- read.csv(\"../data/GenomeSize.csv\") # using relative path assuming that your working directory is \"code\"\n",
"\n",
"head(MyData)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[Anisoptera](https://en.wikipedia.org/wiki/Dragonfly) are dragonflies, and [Zygoptera](https://en.wikipedia.org/wiki/Damselfly) are Damselflies. The variables of interest are `BodyWeight` and `TotalLength`. Let's use the dragonflies data subset. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So subset the data accordingly and remove NAs:"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [],
"source": [
"Data2Fit <- subset(MyData,Suborder == \"Anisoptera\")\n",
"\n",
"Data2Fit <- Data2Fit[!is.na(Data2Fit$TotalLength),] # remove NA's"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot the data:"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2dZ0AURxuA3zvuqAdKUUAQRBFF\nsURQRBELNowt9t5iQcUao2I+o7FEjTWWaDQaNZrEFntNYowxxobdJPZeiFhRmnDzbTs44Ljb\nvd07lmGeH7dzezO7I4+3tzM7My8gAtZAYVeAYFmIYMwhgjGHCMYcIhhziGDMIYIxhwjGHCIY\nc4hgzCGCMYcIxhwiGHOIYMwhgjGHCMYcIhhziGDMIYIxhwjGHCIYc4hgzCGCMYcIxhwiGHOI\nYMwhgjGHCMYcIhhziGDMIYIxhwjGHCIYc4hgzCGCMYcIxhwiGHOIYMwhgjGHCMYcIhhziGDM\nIYIxhwjGHCIYc4hgzCGCMYcIxhwiGHOIYMwhgjGHCMYcIhhziGDMIYIxhwjGHCIYc4hgzCGC\nMYcIxhwiGHOIYMwhgjGHCMYcIhhziGDMIYIxhwjGHCIYc4hgzCGCMYcIxhwiGHOIYMwhgjGH\nCMYcIhhziGDMIYIxhwjGHCIYc4hgzCGCMYcIxhwiGHOIYMwhgjGHCMYc8YK/OSZBNQiWQrxg\niJWgGgRLYa7g+3t0QAz1ImmdCBJiruC1kAtJ60SQEHPVvO4HmkmzaSCcepG0TgQJMf+7t8Ut\n4A/mCOQ3WM6IuLjeb6KMzyCCZY6YX0/tXNual4lgeSPu9uhcsP1Ck4LPnyFIxHnhikTe/6YM\nB1OCTwNBMk4LNiS6gfPLvJ+NZ/gT0sWeg8CSDn8KLmP5FiwRLBlEMOYUluAXNWvm2fMoMjSb\nQEiV4BzFlndPc9KFJTgpX1fl2/mzs/kAkiU4RzFlR107cOt6g3tXWIIzfvnFyKcriGCzmaEa\n8/PlzU1czrBv5fkbTASbTYJyB73R9grOZN5bX/CrB4+yTOUhgs0mrim7TVQdZbZWFnypjxfV\n9Lbx6W58SAcRbDaNp3CJysuZjXUFxynAO7xVq7q+AAON5SOCzaZQBS+DFmfZ1OWuMN9IRiLY\nbAr1El2v0jtdUtugvpGMRLDZFOpNlkvfnPSkEkYyEsHmU5jNpHqVM7PTjck32ELsiCi0jo5l\nEHORTV3tAV8YyUgEi6LwuipjAcpGtm0XFQDQT2skHxEsGVZuB5/r7kG3g727HzGajQiWDOv3\nZL2495j0ZFkP0heNOUQw5hDBmEMEYw4RjDlEMOYQwZhDBGMOEYw5RDDmEMGYQwRjDhGMOUQw\n5hDBmEMEYw4RXDTIvH45w6yCRHBR4HWcE4C660MzihLBRYA3oRU3P3i6L8L3gfCyRHARYKof\nMw42rW434WWJ4CJAhUXsdr/dG8FliWD5807JziNDiXBFcGEiWP5kqbnlLu7DNcGFieAiQFg8\nu13nKrypRAQXAdZomKmC98pOEF6WCC4CaAc4jNz00yfuTVKElyWCiwQ/NvUsGbn4nemM+SCC\nMYcIxhwiGHOIYMwhgjGHCMYcIhhziGC5k7mua43oj26YzmgYIljmJDd0GbjofxEOW80sXziC\nn5tYhoUIzqZv0H16M8tO+IMkBusKTl3Sf+Y1tL0MaNoZHV9EBOt4rDzMJiLjDGc4MXvg1H1G\nvi9WFfyiCgB4Jti5NA4Bz+dGMhLBOnY4cwvGzQkz9HFKF2XtXo3swwserGVVweNg7MWfA538\nqG/vD/CRkYxEsI7vy3CJ5cGGPu7tT0eue1S/ZoHPIawquEpd6mUvfE6nG+UNq6MPEazjT5tn\nbGJkSwOf/q04yWyflthY0AGsKtiBDln4ADbT6aGORjISwToyy05ktg9LfmPg08WVuET3/gUd\nwKqCy0dTLymxTDzMjh5GMhLB2exWjX+CMn4JijR0EZ7SmEuMbVNQeasK7qrepUvecGhlJCMR\nnMPeAChlqxrwytBnyypyiS4fFlTcqoJvOipCd9OJSyNLKH4zkpEI1iPz0pZfkwx/dF35O7N9\npNlSUGnrtoOvd/BcSm9XgOdmY/mIYJ4M8abjE92oVbfAlrDVe7KYmtz40/j4TyKYJ+kDFcFt\naqmi/ys4B+mLLtpcWT5mvrEoY0Qw5sgnfnDaN19n05MIlgr5xA9+EJ4TINqPCJYKEj8Yc8hv\nMOaQ+MGYQ+IHY45YwUlpXOKtsQf4Okj8YKsjVjCs5RLT3E0XJPGDrY8owds3bIDBGxjWhPEQ\nTOIHWx9RgsuBHn1MFyTxg62PKMGHduyAkTtYDqWaLkjiB1sfsb/BTQ8KKEjiB1sfEj8Yc0QL\n3tqrJQefoiR+sLURK3gVgK2GhWdpEj/YqogVXEXzu7FrrZkQwZIhVrBjV+nqkgMRLBliBb83\nRrq65EAES4ZYwfEBL6WrTDZEsGSIEfyG4mmj6lvvJNMp4UsZFwwRnJeCh02aQIxgyI25VTAA\nEZyLUy1dwLn5X2aVFSN4YG7MOr9hiGB9flJ33XV5dw/VJnMKkyE7sueZ6zRmO9vFnOs0ESx7\nVpZhH7Jm+i01o7RYwdkX6OETVj414/yGIYL1GPkBl+gy1IzSYgV7OOTcZTmMN6MCBiGC9Shc\nwU8DAhafunNmWfmY8/vawwYzamAIIliPlT7cJdq/MC7R/bweM9sn3pORtkkTM2pgCCJYj6SS\nM5jtHJdEM0qLFezXl0sMqELd55UyowaGIIL12abqsefK3l6qH80pLFpway7R3hOhj3kMvOMF\nEZyLE8014NRUuCgasYL7qnYw2z3qHuhexUZm1SE/RHAetE/MfSgr+iarPNQfN+fjKPBNvGSr\nOGRmLfJCBEuG6I6OR3F2VAtJOeAJOl1vt1S1IoIlQ4KerLR/Dp6X8lESIoIlhHRVYo64x4UP\nEHlcKHPECG7fPgl1ykHCWhHBkkEu0ZgjgeC3F80ba2AEIlgyRAu+00FN/fx+2rPgNcfNgAiW\nDLGCH5WFeo0BzQWfR9JVigiWDrGCh8N6tIHasdZmmHSVIoKlQ6xg/8aIEYzaViwouxkQwQwv\nNsZP3iyyD0msYKchnOChTuIqkgsimGZTidLNmrh6iuvgFys4vA4nuFaoqHrkhgim+FU1OwOh\n1I8cLog5iljBM2B6Fi14BsSLqUYeiGCK8CHstl07MUcRKzgzCgIjYFgoVOOxRgdviGCEnnMh\nc9AOBzETdEW3g9MX+QGA+/9ei6hEPoqP4Evff3PScFCrq8BF/zsBi3/82+wTiBE87zS7aE7y\nlWdmn98wxUXwtQgoU15Z3uB6Fs/gDL1JW+cBgZ7Q+K6ZpxD3NMk5Zs6JAoOqiaCYCH5cJuYW\nQknD7U8Y+jR0JEI7Q21A4X4aXW0UwGepSAOIEfxhVSV1dXZqPtNEiA3hFBPBce+lM9te9Qx9\nuk+1ZJ5qbEANVTPb/eht0CTzziHuN/jloWkxbpRkx+hpv6cZKSGUYiLYdxW7PaPINeL55Jdj\nv6KbRt/aQ51oKLETjfd+g+ZVMe8c4p8maf9dG1vDBsCeV9nEf7lL+lNjTyeKh+AsJffj+woS\ncva+aK2s0aaKohfVKhlTbkRnBXV/k+KyFe10Me8kkjwP/u+HzkpeIzrOVQfwYtenbWksf/EQ\njJy3s9vbcD17nza6Kn3LfMq/J0IdR6AEoH97I6ejtb7mnUO04LRfJ9RSAFQcvsN0wRv2yqat\n7GEZnS4Wgm8NrGQb2Offgj5u1YvdLiiTs3LYAbtbzPaM4hzqPBylM1FH681EbbuZVwVxgi/N\nb+kA4Nrp69u8CnZT7KO+7oH29L+4OAg+5hK5/MDKaMeC1vM8qmJ+hH93Xpyzb3QMl6g5G02r\nrkUz3E6hJ467FqjPmlcHMYJ7ewGoGkw7kWk0tx4BLejXqw50LNRiIPitbyzTBzXevaAmzirb\nOmPjWyhH63VV9RjMJdqMRXfsl6Kszgo7UDjbfW9mJcS1g+3GCJr07cyu4zEZjhYLwd+XfMts\nM3yWF5Tl2idtm43JZWCELhJw2OfUfbRNrxkOAe42VavbfGtmJUR9g72pBlKLuWd5d5VGsrf6\nb8pWTS8OgsfrrrbdBhvNl4tdjmwP5WXlKer1WAsl+PSgbsGW2d8xrxLifoOvfNnGGcC989c3\neBWMhzimtbwXuqUWA8Fj2nKJPgP4F8qKCKN7Jf+p1J55u8OJbSJrq003rxKi76LfHZsaqQbw\n//AH0wVTG4AzM910MviUwl/wCj/u5rjqbAGlEhvYNexdz6Y1+/RmeiS3e2gX8yohSTs4eU9X\nfu3gFxMrs1fptZWM5sdDcKJmCbNdb3tbSDHtoc8GfH6UezMtiksMN3NigXjBmWeX9SwPAMJ6\nWrS3i0HswjU2oxNenotXLzT/EFtKcM/ZQz817wDiBD/dPamxEyW3ROt5Z3g3lniAiWC0twb1\nx6m8VcQR3nixSxd9p75m3gHECO4bRM85K9lmfoLJJdz58Op5NgswEYzQy/N8H/Od+rTToKX5\nM++37XLg5pFRqkVmVkBcO9i17YKz5snNHyD6hkJ/ZVNcBPMla7iywfCefh6/5vvkTHMHUNc2\ne269GMELz5n/zc0fIBrduZnNjGIneLorHa7z3WjN7fyfZd5LN//AJEC0LEjRsM/YtBHDJT4y\nmT4qC44q2V5NtLCqxEcmAaJlwS5dI3NjGYmPTAJEy4LTiiQ2MSNM4iNbVzAJEF0AmT5sV3NK\n4FSJj2xVwSRAdIF8r/oyA6F7zcpJHcRGrOC1rwQUJAGiC2aNi0vdSjbhN6U+rugQ7/YdNqfw\nLUgCRBvh5a7ZK05IHyZQrOBlDZWg6bWH38h3EiDa+oj/DX68lHLsNugwj14tEiDa+khyk/V4\naZQSvEcZnGGTCxIg2upIcxd9fmoA/YQgyOSDMRIg2tqIF/zu8Ch/AO/YQwljNYrTpkuTANFW\nRazgrb1dASqMO85ccM/CRGlqRQRLhuhmEtSYmr1IyCuPuVLUiQiWELGC50neMqchgiWDPC7E\nHDGCfXMjYa2IYMkQIziShrqDLvVeOSVExkpYKyJYMsReom95NaCbRrfe15yTrE7FUfDdW9J3\nQzOIFdzZj1WRWoEs6W82yaNKAGgGSb0YFYNYwT59uMQAb0nqw1K8BCfXCtxw8/aWakFJFji4\naMG6gKNN/aWoDkfRFvzvkrgpOwUsHzapHGM2OUTALFPeiBXcQcmuzbFTSS7RLNqPlcGdGjsF\n8199UDc/fLOz1OuNIfGC/3VWdlm9f00XpctV6SolV8G8/v7TShygXp+38+U7+CYZuB7822Dm\nJG9jiO7oOF6bmWoScVyyKiF5Cn41sYq6RNQWk9kcNjLbtPIzeR44FbioNdfgvrmVKxgJerLO\nbJy3Sco2EpKl4CeVAhf9tmO03WgT+fY6cvNM4nnH2q00i92uLC3JJL7cSNFV+eaqpGsJI1kK\n7hTGVOmoeo/xfGv9ucRS3nMUFrkxK2nd8/mfeVUzimjBrz/zpq7QXp9JGn9UfoKfKLk59wNa\nG8+4T/g3+F2HEpN275/q0UTKNdV1iBWcEgJeHYZ38oEaeC9G+quKu3yu8zOe8bXjemabGjCL\n98Gzvo5wdqq90BILM4sWPB4m0mbTP8E8ZsMhW64rcaOPiZwzXeiLeNL7fkJGjFOSzaqWacQK\nzg62UgfvqCt3Fdx95KhoEzm18TYV20U6hkjZbBSB6LhJut6XoRpJ6sMiP8GoSQtmTPc/mvUm\ns15fPnLGHimXLBGDWMHVdOs4NawuSX1YZCj4WqkGu+9eXOzewVLXUgshPnbhIubHaSmMkKpK\nSJaC0d0ujgC+c+TyzeSLWMGvykNI3IwR1SFA2D2FceQomLoPupnncc9/FnqGKyWi28GPh6qp\ndrB6iJTRZeUmOO3IV+vy9dWdjnEB52bC/3pWRoKerIzrR65J/BhEXoL3lFFX9oeI67l27lR3\n2XV5Ty8VjyU6CxUpuiozDyzbIekXWF6Cf1XHU7W53cJXf23s525TmO1c5yeFUineiBKcOCYq\nZj1KrE5do+0/l7JWshJcjV3ZKK3qR3o7V3uxF62sgC+p15SEa5koYVDt4I7r5HaTLUbwA0/6\nQeHUTtBp7jg3+FHCWslJ8C3ggmos1g+Bnb0WdPfB6EYrJYBTY1WrOcuHOLewRIeyCMQI7g+D\nr10fqlLQna43HcMlrJWcBP8BXB/xPke9vXqC/3VvduTVw2lQiX7KcMtvlJXrZwIxgisEUNcj\nbSD8R79paWbgJoPISfAF4MKSrdcfVrjam9VOXaKbtaTbxp1al2JWDd5mL5+q04gRrGJWne/I\nvu0r5YQWOQl+57GMTbTTX3P9udtnzHae5oKCDq6Ayq6dyvTGpyjk1XIStdosE9epH/u2H66C\n0TyXP+jNXLV+/LnF0YrK06/s66P6/g8Fc7vlsZUNPqdV75NR3YlgHmhHKJuOH1rNUe8u8rhX\n2T49Pag7q+hj6CQwYx1qf7bZg9q8Gw82ioD4t4VU1/wQwTw4/vH7nWfcy3mf6DaYvqG67D2M\nek22ZwYOz/Xq0AyhjJZ2vn+cWlquptTrmZmNKMGhiyjqwCJ2I2GtZCY4L5OrsI8cDtjQvRyx\nFanX1ZUAVK2uTLCzP0ntehYUV6gV1EPciu+5kLBWMhccxY2Oyyq5jXp9HVF68vu2oTaVlAoA\n75PMJz+6iFjDW1LECF6aGwlrJXPBNXQBFMqvpl/TF1QHz9Z70Ys/mgC3etB9uF5AWWtDZvjn\noL198EKeL96BDhV8mq3I+wy41Uh2m+JwgE30+4Dd3gduFsoDMDNIiuQQwdnsCQQ7cJ6qP7Zx\noqrvqu/HukbnWY1zeSl2pucSLvokCteFNlNzM7S2OEs5yFQMRLCOzapxN7XP1nn0ytm13ZYJ\nLHHXb2zurOk1Q69QLaIVdiu4HfV001RcXejAg+hlsJTrHYjCmoKXlMyFkZyFIPhtqRnM9qz6\nUPa+JkPZ7Q+aPE8QEltB2fecnJe95i7esS3Y7W1FuOeiU+dWBVbjGy3J4lhT8PWR1CUwJBsj\nOQtB8C4Ndx3u8GH2vhLb2W0SnM+b/cp3C77rWQYcIuj7aJSgZBZxzHi/TvrMCgrw/UjquTzm\nY91L9AEwMfGDoxAEL9IF6pqSM+XEnruHegsnUdLjPAX+KR2+PuHgWNtP6DdzVEN++nNlLU/6\nyWLyC8vXlj9W/g0Okq3gFUFcYlxM9r6QOez2uHKMN4B7XK7uqfA2x1fM3JZ0QMnEFzkQ7aos\nH5v3P4EMsLLgnh/wylYIgs8q2JartnpOmM+ZPswoncymrmVXbu4aaOeyOmcY5QVFmE1QfVen\nxe37cXvkct+cG3IXrSMqivnhnOqUMwv7bVilnc/e/tnS0fPRIlXLWV+UVLXLbievUUXdptyv\nsusodSAcaSGCdTwI8otfPzvKcafevldDbAGgedlFR2y+p95ucfLKXk63uw1bxS8da1m5osIg\ngrNJntXUr87wnB6oGwsHjv322YUTr1LheNue9J57MD+7wRQGTIsXvVE2s3pNhUAEF8QMVdUe\nbT09j1B/I8UxT/oLjG7DBTjDfVzJryMzgPI3sMS8fOkoLMH54wc/jmmaTTAUekPya3u6hZsW\np7mJUPDnGiZ+73rXVAU30R/VjXNtuPWfo/+zV+0rvEryoLAE548f/GbqhGy6QWE/bcv0YiOz\naRsMQmihexDdYHpS7qOLoHvuH1/tRteSoKo+0k42z/YNIs/4wX8WuuDzurGUK8oj9K6NQ8kd\nv80tE/Gme4Quw2PXgWnoUfrJUhJFMbAU8vwNtq7gh5tnfnslz75fbbgmLzOULnOuvUJVZcbl\nPo5nsnMc9y7TZXiUcoBFVtaQDnnGD7am4KxJth71yyk65u5gvAwP2MQSdj7D0y5KW2eoeUov\ny+uVsZ0n/2WlWpqNPOMHW1NwfMmfqC/ruSqNck321fqzcV4zQ7mH++jp4T03i8B84LzIM36w\nhQXfigvzipzEzuZ+oGZ7Nu46bcuV50fVcupC86K7x0NL1sTyyDN+sGUF/+Ic8cX30yuXYdaD\nXe3LfS27DMid62tHz2Z1HSuetWBFrIFVBfOOH2xRwc/cPqKdprUPoWszQ7eKzISWefI93Thp\n1j4LLPBrXawqmHf8YIsKXuTPWntqRz/uXVqJ292/u8DjZBQJ+db9BvONH2xRwb101+IIepDO\nFQV7EU72/FrIQTK+CFGrq86Wv2Mr/wbzjB9sUcGdhnOJaKYXuXPQDer1VesKvAOZU6Q2KT37\n8G9zPBvJbLp3fqx7F803frBFBU+IYrdZnmvpTXJL25ajOrkF/Zsv47Mdc74pYCHsad5Ml+UD\nn08Nfy4frNwO5hk/2KKCzynZXtKlzuyqKtr94z8Yvj7/eIwlTiXCyyujDTWTtL5L2MRyb7k3\nja3fk8UnfrBlm0njNIsfaG98olr1+/wJqwsMk7DCbiV1x3AtoqqBq/Bz3TDLy+zyBjKmOPZF\na78sBTYQsCJCXSvGXxXPfgcvD6rlEz07Z15vSkn2S/rS68v8R0gC7l7ib5D5Kkr4C740b/Ck\nn/Le7GZeP3wnNTiKHn21y2X0ktjxG9baNZu/YZJvcPa4yEN2nOyxBkZsaL1WsYk1peS2bFJe\nMBecOUxRs0dT5+B/8n+0zJNdXbMbBHaNcVUwE3pfRTTXfbzOn0sYjL0wMYD5/U6qME6aeloO\nzAVPdP+den3e1i//CJHW7BztlfaO2xAaVdqF+TG+DFdQJnPunc5cm31KZL6i1K13WMA3ly6v\nLl+r0EeemAJvwUm2PzHbVP/8re46zK5Mr3lVvkKo4acR7HQx376h9qrgqSkoSb2L2ZFZ1eCY\nq7fjvQA8x0kaisQi4C14Wwnua/hR83yfxYyhX8/BE/dN9PzPZYH020yNw5RDRxb4hr1Co73p\nNnDaQLfEnDJP9BdXSdJfu1K24C34a918lPn5By/P96O7rn5W7VFRN8I9em5nZjsugG/pzdOK\ncSijp030qO4+3tmP9B/1dQNlpWVyb/jmAW/B2124x1ej8z4qQui1X9sX9Dp2HvTk31128cxD\nh9LO7Ik30RO4f49vP+ir7HXOb3nX/uHKX5+79C5ahvEW/MKeGc+Mkn0W5f/wn8olWvQNgzDm\n/0AnVfOnmf8OA2Ym919LRsDPebM3b8I0ts45bJakatYCb8HoMyaI0aPoiuyPZ9r5v/QGuaZv\nmdh/9nT1aqop+7K7gwbUUEV5BKHEpjbVGoNydO6VOe4puIXuhua/GMgZzAVrJ9qUb1PbPuwW\n/YaeaaSAZvoBjY7PHtTG1icmUlMhIePS4QcoeA7KrB12He1y2OWeu4l70I67NK83EfpMZmAu\nmPrpXPnRnF+Y7iZ6ruDzlOMxbtnPjd60V9bpWV/l6qH27bV9e0IqQnM8728skYje1OyH9qpy\nBXs9pBOcHX2yaIC94Bw+Z2f7ZrXMbjJ1DLyMUIKrY8DubmrQQMm52rRGZcJbX9sQUvE/pPVZ\no1/6oYJd4gwNfF/6qlmQYiQ4hFvr6C8l9wTojOIi9Qeo0OuuY0/HLz8qeWOlyziUNsUOwC2W\nXkMlInd0ydb1mcdKJ2x3SF81C1KMBDvsZ7cpcIJNzKIbxzsdX6Jomy3oXcBCdEh5CaFuvbgA\nI+VW5ip+3z/km1M/T3IYIn3NLEkxElzyJ5R1/Otlvz3WPcz9iF4wZEpDhOo5U4l+fRCqPRWh\nVaXYpu8xxY3c5ZPi/MEubJ30FbMo+Aq+dz3Pk7ymseeq2gSFqD0cuEf4c+gZrJOoX+SAClRi\nSDdKcl+EUoOa0UPiL/j1z3/MtzKfiGQATAWnjHcFcOid62n8TrVzt0SErjiruNul84ozCH3r\nlXlHRZuu8yl110UvAH2zunPz/vWUXWQ/no4X2Al+c/psGkqt77/2xr0dYX65BlRVU/ReuWGs\na3TXhtyOHv5n0DOX+GohTs/Qdpu/0Rt35gL87qeJvWfIK/KC+WAm+F57JYCqz2TvB/umDV3w\no3/FqbtzOqRcJ3UK9G32deZxJTeTMKWHolq7clDu10rRU+ynoYyefvJZil8q8BJ836fBb69f\n7KthNzrUIaqLBzgrGzhW190r0evVMSTC37oC55aMmj+/GtCrta+Ir+xZ1CciGQAvwT3qMuVe\nKFwaP0EfeywrDReftqjAfS21dtxqGpchz1DY56euzmxZudmUIvGAVyBYCU6x38NstUrlS5So\n3ok2wWH0poxuWGQzbk26KRUNF8cSrARfB6772Bneok3uWegHxTcIjdStj3lExazHvtPuO0kq\nWTTARfB/uxZsvnVPFynBD07ToyGflPech9Ds7KiKq+1rxI6IsJkuYU1lDx6CtQNsbDQOyt6e\nX7Hvg+2cPv7YeZpXhBfV7olrk53v9oyuHSZfkrKmsgcPweEQOn1ajNK1YmnmYe9JO82KBiWg\nwpxdqgfotfeS3Jkfbpy8RGQr9+XWaXMPFY1eLfkLTvrT5Nonc4G56u61VUc4j9rw7WC7gVUb\nPECT3OaXGoMeRwflnhc63darcYgq8r7BI/FjY4mSDcLsgxJM5yx85C74SE2qker+hfEJIqXp\n1QIS5g9voBmytoVvudY/oft17cLbuUHJdhH2obdz5f3CaRP1/+VOg2DzeyL3qOZmUG2rnm73\nTOctdGQueI9qyPn0O8tLflhg1qQjhy5CKErtrnivc1Vw0/U+a3+ZPXLZnuUjPz+Y+//GKydm\nUjB66ZXnwi2AYHYwT2bdovDkUN6C08qwCwWeUv1qOOOTjkq1PUA51Ns/gR4D61Y70/hP4y4N\n919nVIzRfEa4BdyorlVlzT2EFZG34P26cNofDDCY73lQ7T/SM08r4StmQM0QsAUbRYVhRkIn\nrNR1cix4z9zKHQdusvghtbmHsCLyFrxEF3vnsyjqkph/rvXHlZj/AB/Y2lHetH0UNkrPip5l\na3gamEzIsa0kd8meEG1u5f7llgJH673MPYQVkbfglYHcjvhm+yMdwLXD37nz+bPt3msaUHaY\nUAuUyu9GfvC8Sr+2oQXed//HzSlLr/C5uZXTluUGa8X0MPcQVkTeghMUN9kdtaNthh28vC3G\n8Q/9bO+Uv7OJYwD2aijZswnLdCUAAApOSURBVCHqOBjttvtbebLAQ4/1pBcUTe7ibX50ozXM\nWuHvJtlfNvsQ1kPeglF9Ni7kQlvVBuZ9bLlci6XYc8+H7oJi1nbn7Y2mPNJsRa/hdGDu8XL6\nvOuvrPdhW7fyF0RUb6ZNtb6dy7ruFXEIqyFzwbfLBc7c9lUr27Zcf/Irh1x/1Sgu0PbyUr39\nTmt2NxgbVjeLHjVZebmRg5+c0XPMd+LG41z7ov/QFc9EHcJayFwwejG5rnuVPhfa6uJ/1s41\nk3u7LTMU9rLHjNSeCsfgUspGiQj9bnND/ZvFq1hUkLtgjgIEo09tOs3/qr9DV6rxe7aDfS/F\nb9S/KLL9kApFo5/YGhQRwfF12W2eSzRCR/vWqtqZCf2JMpp5N7UfN/89jxYOfyACRxER/K/a\n4E1WbtKn0svJg7q5mBso3CgigtEiQ82k/CTefHFV/ivAWpOiIhgZ7OggmKTICDbYVUkwSRES\nTDAHIhhziGDMkafg00CQjNOC//yWF4zOnxFAndbfCaZtNeFl4lyEl5kLi4UXsh8rvEzQoAL+\nOueF//WtIFgQMROEl5mUf/FKk2wqLbzMNV0MRCGw0YqFESnhcH4imD9EsAQQwYgIzgsRbAQi\nmD9EsAQQwYgIzgsRbAQimD9EsAQQwYgIzgsRbAS5CW43WXiZKa1N58nLdl/hZe6YE9zQ7aDw\nMk3mCC9TEHITnJgsvExyouk8ecksMJClEW6aUea2GfHyHku4hpvcBBMkhgjGHCIYc4hgzCGC\nMYcIxhwiGHOIYMwhgjGHCMYcIhhziGDMIYIxhwjGHCIYc4q64OS1YlYDLwbIRfCt7oGOIR+/\nZNJf1S9R/yue5frBHkFlfNlZev8TdJ6j0S7eXW4IOc+T7PmA3wg40bOxVRyrjH0u5EQmkYng\n606qJrHhUJVetC4WKvUJgjhe5bYAK5hvmRRFmUY0q4Wc50fbMj3a2bjfFVDmeSMWf9gtoFB5\naDS4IQS+FFI5U8hEcEcFvXDsGFiC0Dlo+Q69a67gE1DlgZuGEcy7zEXIHs/Gu8xdVTj1J18F\nfYXVjSa5XHsBhSbBMup1EUwRfqKCkYlgz1D69SL0R6g70EtjJUAf06W0TQImMYJ5l9kKW3RJ\n3mXGwl/0uRYuF1Q3hiGl/xNQ6H1mUN9DaC/8RAUjD8FZS5nBpT/DTIQ82PGO3jxW6J6r/GM2\nI5h3mVlwasOUVVeQkDJlclb7F1A3mp/hJyGFPoPvqdf18LngExlBHoJpUh7uq+h5Db2A+szb\ncHhtqsQ523jECOZfZgCUom58lCPe8S+TDA3OtyldttN1IedhyAiMQkIKvWyk7j6lu6rpa6En\nMoZ8BMcCOCUgdA/aMm9bmRxlnlKlZjormH+ZSOh2MflYbZjDv8x9qKCpNqCl0vG0gPMwLGau\n7QIKrVZR//vU3wkqYwr5CD6/aaaf3Q70GNoxb1vBIxMFhtOrtDOC+Zc5eph+feqqyeJd5hbA\nRC11uVW8J+A8NK88mNz8C82Cthfenn8f5gs8kVHkI5jiobMPyrKJYtJ1bUyMGP8FFiJOMO8y\nOjrBNd5lnoA7E3i8OSQKO89COERveBd6Zh9ML82ZXtHxleB/UMHIQ/CNFWx7oDE8R97lmWRZ\nHxNl5un1JfAto2MIXOFdJss+jNnGQoKw8wT7sXb4FjoOQ5ntQDgt+B9UMPIQ/CeMZLYhmiyq\nhUDHqroM3U2U+TmWJhxiYo/xLnOlcjyzrWv3jncZ1NKFiRnQUPmGfxmKo8BNs+Jb6CF3XaZb\nS0JOZBx5CM4oXYKe9/Mj/U88Ar2oVmdX4LcQONtM4lsmq6wDHadlNQwWcJ6DMJz6Km6C1sLq\nNhqOsQnehWrY0Nf0/craQv8IxpCHYLRJ4dhpWGPwpG8a+0GTSVFQcITDXLCCeZc54qb+YGh9\nCH4h5Dz9oNrgZuB9X1jdgu11653zLXTRWdFiaFNFiX+Encg4MhGMDrd0d6zB9rNr59RzqTeX\nZzlOMO8yd/uHaMImpwo7z7xI5ypxAut2H6J0Sd6FHg2q4lhlyBNhJzKBXAQTLAQRjDlEMOYQ\nwZhDBGMOEYw5RDDmEMGYQwRjDhGMOUQw5hDBmEMEYw4RjDlEMOYQwZhDBGMOEYw5RDDmEMGY\nQwRjDhGMOUQw5hDBmEMEYw4RjDlEMOYQwZhDBGMOEYw5RDDmEMGYQwRjDoaClzJL76gqfvjQ\n4MeRBkJDr4B5ws4xEN6YUbPCAEvBob169WoXAJ4GA0eLFXyo3HYiuFBZCovoTdYgGGPoY7GC\nd8AGIrhQ4QSjaznLoOgjTHB6vj1EcGGjE3wdYqjXVyOqa0LHp9A7rnb09el8mxI8D7axGddx\nRfQFZ86sqykXR68RObDkvUYK2xB6dXj0tL+fX78kj4GoKf0DnzQQnk6q5VT1Gyv+s8wEX8Ha\nobS/JxWg/qBaEJKM0HEXRaPeZb38fdFN6E3naGj3iiuiJzg9CsIGNwK/u5Rgp2rlRse5wFaE\nHldQvd/HM8BxIDo4EgavTRsIjQJGd9Gw/1FkDZaC6/Tr169TRdUU6s0wxvYEmIZQHSV1d/Q6\nEqhLdA23d5Q0ZQddET3Bi5hF/9dBR/o6XO0FQsegG0IjgCr7qBwMzL5EV3+J0O/0enQyB0vB\nLIrO/6EM2xAttSvNqww6A53pT0/RgqfCYTrfZl0RPcF+gcwSohG2bymLm+ikpilKs6tHp77U\nE0x9rZHWtqU1/2FmgaVg5hL9ZBZUz7zOBS7pAG82AvNjikpRgi/AKOoKrUnRFckR/AYiNtA0\nhouURSaUjkdT9A+Mo1On9ATfoXdoiOBCQHeThTrCgSMwg0kOh6vzYD+TfI++i67gT12hc66v\nOYKvZC9SfJyymETvogQfhDl06o6e4GR6BxFcGGQLngvLrsEIJtkJXm+CNUyyHC14HJxfyoXU\noskRnATDs/fmCD4PH9OpM3qCmWYSEVwYZAseBzsy1NXpVLqPFzoHXenkLSUt+DhMjXLLyC6i\n9xvszi7/PfdTfcFvlEyTehkRLAd0gm+62T9CQ2AplfwEPkOornInQqnv0zdZSOsdoByUU0RP\n8Cd0aB/qLrqHvmA0APZSv+rlWcFriOBChW0m9W3lSAcgopo2jYaFQ/U3dDtY2ezDChq2JysW\n4HBOkRUQ1o9hOXodAqHD2tn4PMgl+Imv+oMPvWPo6/chCJv+lgguRLhmkkv4D/S7l8OrOdWa\nyCwQfbWTn1eHs7GM4EPgrRfvYoXuzopq8qZOqOUYOJTpycoRjBJ7eAb/7zxMoD7v7e72nAiW\nOwl0Q4k/p5mgIftgpWVqY0GKq+CxcEJI9nq296gf7vYOTy1VH4tRPAW/OqsJElRgl6Li+DnR\nMN5C9bEgxVOwByi2CitxsKGbR6PvLFMbi1I8BX8x4XRhV8FaFE/BxQgiGHOIYMwhgjGHCMYc\nIhhziGDMIYIxhwjGHCIYc4hgzCGCMYcIxhwiGHOIYMwhgjGHCMYcIhhziGDMIYIxhwjGHCIY\nc4hgzCGCMYcIxhwiGHP+Dy4zSGvwT6wKAAAAAElFTkSuQmCC",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"plot(Data2Fit$TotalLength, Data2Fit$BodyWeight, xlab = \"Body Length\", ylab = \"Body Weight\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Or, using `ggplot`:"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\nmKARQoih/gf/MmD7hk3h5AAAAABJRU5ErkJggg==",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"library(\"ggplot2\")\n",
"\n",
"ggplot(Data2Fit, aes(x = TotalLength, y = BodyWeight)) + \n",
"geom_point(size = (3),color=\"red\") + theme_bw() + \n",
"labs(y=\"Body mass (mg)\", x = \"Wing length (mm)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can see these body weights of dragonflies does not increase proportionally with body length – they curve upwards w.r.t. wing length (so the allometric constant $b$ in eqn {eq}`eq:allom` mustbe greater than 1), instead of increasing as a straight line (in which case $b = 1$ (isometry, instead of allometry). "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now fit the model to the data using NLLS:"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"60"
],
"text/latex": [
"60"
],
"text/markdown": [
"60"
],
"text/plain": [
"[1] 60"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nrow(Data2Fit)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"PowFit <- nlsLM(BodyWeight ~ a * TotalLength^b, data = Data2Fit, start = list(a = .1, b = .1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### NLLS fitting using a model object \n",
"\n",
"Another way to tell `nlsLM` which model to fit, is to first create a function object for the power law model:"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"powMod <- function(x, a, b) {\n",
" return(a * x^b)\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now fit the model to the data using NLLS by calling the model:"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"Nonlinear regression model\n",
" model: BodyWeight ~ powMod(TotalLength, a, b)\n",
" data: Data2Fit\n",
" a b \n",
"3.941e-06 2.585e+00 \n",
" residual sum-of-squares: 0.04569\n",
"\n",
"Number of iterations to convergence: 39 \n",
"Achieved convergence tolerance: 1.49e-08"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"PowFit <- nlsLM(BodyWeight ~ powMod(TotalLength,a,b), data = Data2Fit, start = list(a = .1, b = .1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Which gives the same result as before (you can check it)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Visualizing the fit\n",
"\n",
"The first thing to do is to see how well the model fitted the data, for which plotting is the best first option. So let's visualize the fit. For this, first we need to generate a vector of body lengths (the x-axis variable) for plotting: "
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"Lengths <- seq(min(Data2Fit$TotalLength),max(Data2Fit$TotalLength),len=200)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"a: 3.94068495559397e-06"
],
"text/latex": [
"\\textbf{a:} 3.94068495559397e-06"
],
"text/markdown": [
"**a:** 3.94068495559397e-06"
],
"text/plain": [
" a \n",
"3.940685e-06 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"b: 2.58504796499038"
],
"text/latex": [
"\\textbf{b:} 2.58504796499038"
],
"text/markdown": [
"**b:** 2.58504796499038"
],
"text/plain": [
" b \n",
"2.585048 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"coef(PowFit)[\"a\"]\n",
"coef(PowFit)[\"b\"]"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"Predic2PlotPow <- powMod(Lengths,coef(PowFit)[\"a\"],coef(PowFit)[\"b\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, calculate the predicted line. For this, we will need to extract the coefficient from the model fit object using the `coef()`command. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now plot the data and the fitted model line:"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n0+n6+vqdufzBgwd//vlnQkJCRUWFgoKClZXVqlWrhgwZ8qlhfPgAPj5w5UrzroIC7N8POKsN\n+lT8E7SFhYWI40Doy0VHR8+ePbuoqKhXr161tbU5OTnW1taHDx826NzMQ+fPn/fy8vL09Dx6\n9Ki+vn52dvaJEyccHByOHDkyceLEzoeRkAATJkBeXvOuiQlERoKh4WfcEPrmdTjWsLCwMD09\nvbGxsfWhoqKit2/fCmF8I7XgUG+JcO3aNSkpqWXLlnH/pbKyslxcXHR0dIqKijq8vKSkRFVV\ndeXKlS3K//77bwUFhYKCgs7EwOEQISGElNTHyY+8vQn8j0NxVB7q3V6CTklJ6devH5nHNTU1\nDx482OIEV1fXzqR4SYcJWiL07dt33rx5LQrr6upMTEx+//33Di/ft2+fpqZmQ0NDi3I2m62n\np7d161ZuSU1NTXJyckZGRlNTE0EQycnJP/3006BBg/r0Gdy9+z1uamaxiO3bv/iukPBROUG3\n+Sw7MzPT2to6NTXV0dHRzc2trKzM19d3586dImjUI/SpsrKynj596ufn16KcxWL9/PPPnVl+\nPjU1dfDgwa3njKbT6VZWVmlpaQCQmZk5atQoeXl5CwuLPn36KCkpDR8+3NLSMi8vz8rKr6Qk\n9t27QeRVurpEfDzMny+Ie0PfsDYT9B9//FFfX3/x4sWrV69GR0fn5uYaGBj8/vvvL168EGV8\nCHUGufpPr169Wh8yMDDI4/YHf4EXL15YWlo2NjZev369vLw8Ly9v6dKlN27c6NXLYNiw83v2\nTPnwQYE8s0uXG25ufwwe/OV1om9dmwk6KSnJ2dl55MiR5G63bt2io6NpNNrixYtFFRtCnaWo\nqAgAJSUlrQ99+PChxQomfJmamt6/f7+pqalFOYfDuXv3romJiZ+f36BBgy5duuTg4KCoqNi9\ne/cnT544O3tnZW1evJjR0AAAwGTC+vVw5EjpoUP/VFVVCeDG0LetzQT94cMHXV1d3pI+ffos\nWrTowoULt27dEn5gCH0CY2NjNTW106dPtz4UGRlpZ2fX4Sd4enrW19evW7euRfnmzZuLioqG\nDh0aGxu7evVqBs9rzPHxxIMH4Q0NruSujg7cuAFLl4Kb28j6+nqhTpiHvhVtdU7b2toaGxu3\nKKyqqtLV1TUxMamvryfwISGikpCQEEVFxVu3bvEW/v3331JSUsnJye1fW1paum3bthEjRtBo\n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\nJujS0lImk3nx4kWh8traWh0dnZ07d3agzSFDhgjt2NjYqKamtnv3bmNj4x9//JEsdHZ2/vbb\nb21tbYOCgp4+Jby8hFMzh/OEyXRiMBhGRkYbNmyoqakhA5aUlLxy5YrQQRsbG01MTNatW9eB\ngPmqq6tXrlyppqZGfrJUVVX95ptvqqqq/k2bqEfoeQlaW1tbSUnpszurqqq29ZHzS/KlJugL\nFy7Iycm1ekO6fPnyYcOGdaDNESNGLF26VLCEnEBYWFjI5XLPnj1LFlpbW2/fvn3FinPS0r8J\npWYJicdSUiNCQ0Nv3rx59+7dvXv39u7d28rKiuw2WbJkibq6+vPnz/nt19XVzZ49W1FRsaio\nqP3YCgsLBR9CtqW0tLTlGEH0Bet5CZrBYIjy9zly5EgGg9HZIVHOl5qgDx8+bGBg0OqmPXv2\nWFhYdKDNPXv2aGtrkze8pFu3bjEYjGvXrjEYDH6H2NChGzQ0koVSs7U1MWfORQD46aefBNss\nKSnp168f2XPS0NDg5+cnISHh7u6+ePHiKVOmaGpqqqurP3r0qK2QCgoKAgICFBUVAYBOpxsa\nGoaFheHQZsRH5QTd+lTvxsbGlm9+a0lFRaWxsbHjDyiRWKmoqBQWFrb6E8zNzRXlF6ClwMBA\nAJg8eTL/NQ7kL8n06dMXLVqkqqp6+za4ucGtW6EFBQP4ew0ZAtevw+PHcOlSEIfD8fX1FWxT\nSUlp8+bNkZGR9fX1kpKSUVFRcXFxQ4YMyc7OlpGRWbt27atXr9p66cm7d+8sLS3T0tLCwsL+\n+OOPBw8eBAQErFmzJiAggMDXtCPK+/wrr9CXysXFpaGh4dy5c1OmTBEsr6qqOnfu3IoVKzrQ\nJofDiY2NHT9+vK6uro2NjZqa2h9//AEAurp97Ox2WlvDkyd/qy8vnx4erunjI52ZmTl//g/F\nxcVbtmwRfHPN48ePExMTMzIyKisr4+PjPTw8AMDJycnJyUmUeIKCgoyMjH799Vf+wEEbG5sR\nI0bY2dmNHj164sSJHThHhLoNJuivl7y8/Jo1a4KCgmRlZUeNGkUWvn//furUqWw2m7wXFlRf\nX//q1ava2lojI6N2hsD3798/OTn5ypUrSUlJRUVF48dP0tL69tKlfj4+f1vKSEXlVUXFN42N\n9yZPrpKUlOTxeMbGxnQ6nf/esuLiYnIBLGNjY3Jy//DhwxctWrR7924J0VZFys3NvXXrVmJi\n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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"plot(Data2Fit$TotalLength, Data2Fit$BodyWeight)\n",
"lines(Lengths, Predic2PlotPow, col = 'blue', lwd = 2.5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Summary of the fit\n",
"\n",
"Now lets get some stats of this NLLS fit. Having obtained the fit object (`PowMod`), we can use `summary()` just like we would for a `lm()` fit object: "
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"Formula: BodyWeight ~ powMod(TotalLength, a, b)\n",
"\n",
"Parameters:\n",
" Estimate Std. Error t value Pr(>|t|) \n",
"a 3.941e-06 2.234e-06 1.764 0.083 . \n",
"b 2.585e+00 1.348e-01 19.174 <2e-16 ***\n",
"---\n",
"Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n",
"\n",
"Residual standard error: 0.02807 on 58 degrees of freedom\n",
"\n",
"Number of iterations to convergence: 39 \n",
"Achieved convergence tolerance: 1.49e-08\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"summary(PowFit)"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Waiting for profiling to be done...\n",
"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 2.5% 97.5%\n",
"a 1.171935e-06 1.205273e-05\n",
"b 2.318292e+00 2.872287e+00\n"
]
}
],
"source": [
"print(confint(PowFit))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Examine the residuals \n",
"\n",
"\n",
"As we did before, let's plot the residuals around the fitted model:"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAbi0lEQVR4nO2deYAUxdmH39kFVtyFBRbIciy3\nXAGMHLLAypEgiiBEDjkEXAGXOx7Jp8iHIqIxKBhMJDEqRBATFRSMt1GCBtDwGcEFlCOKEASV\n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\nuK8nPdvWH+uJVedqBy39AlK1YWbB4rSU02IM79/tEQUH1xdGMJubrmcbXxYUmDfYc330pGt1\nwUy/TJU5Ux9kmcIJtXr7PPQz0Uyw4ODw+Gmh2JUcEkn7REJowb7OOl+bGlRY9ZD4QdaJJb1b\nVK/b+VbtEsCRGxtUb7uTT5x/aHCzGt0n+T6Yn9/UJmfQxj8GCS7/XafMzreffJlXfWtkwUH1\nhRPMNt3Qofolw/WvpI2B+YdML17fvO7Av7zhFVzy4GWZda771DuKNoUTcvUGUtp/WQjBQeHx\nY4Q2VGhM1FZLCC3Y11lrjBftopHUP9m5W7tul8K85T2hd5fBlPGN5cxJKXhGq1bdz/ITjvb6\nZYoUpgvlWf/q1iJ702m69dxJKfh3fA817K23+Ulh9j7ZsThjsyemXwpZYhLlHLOeOykFl4/0\njlQy18oOxSmF1KrS71iccaAq/SmG7EkpmJ9qDml3cW6PX1o/1CQrx9atOxE9VyzsW/dyDL+5\nS1bBwC0gWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEg\nWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEg\nWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWHEgWOfVIkvMlx1nzECwTmHTERYoyJQdZ8xAsE7h\n0O0WWArBqQoEKw4EKw4EKw4EKw4EKw4EKw4EKw4EKw4EKw4EpyyXkCUgOFXJnPWkBepDcKqS\nudSKuiYQnKpAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJA\nsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsOJAsCPK9+wsdSWQuAHB9pi7jL+ULswiyig64WJA\nrgPBNgv25S+zqPaIKfnU/pyLEbkNBNssyAXv8Fx+lE8uo3tcjMhtINhmQS74CdqsTffq5lo8\n7gPBNgtywffQaW16ag3X4nEfCLZZkAt+hnZo0z/v6Fo87gPBNgs2XLB6S73RYnJL1YnuBeQ6\nEGyPPI92a4v1jM2unnPAzZBcBoJtcrZ4zYMTC95nrG3ehkoLTx4PcNRJfM6BYKfsLK+U9B+P\n4f41njLnbTgAguPB/s/9rKbz8WnDIhAcZzZBsEwgGIIdAsFSsSv497VMRMgJwVKxK3jvLzKo\n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\nQuEpdtgz6/f0bUXtoS/TC+EFz/Ak6GEMFlFAMMvRzz0fvoftnfsPMXUl7RedvpVGibkv0oTg\nDHEsfZcLPlFluEh92yvYUORZ2igmjYJLqnYSb+cbieenXNpxdBvGhuTcln48vOBR9eO6xjGj\nguD/pQeYGCKNZZ9Tbz5iKumacV7r9Py0lxn7YZAYZE2g9/k5TAEXfIz4OJgd602PaIINRXbT\nE6JSo2A2hR7TWpjPX+/w5ExifDuv24OFEqzvLn48MFErbw0VBJ/qQF2mD01vdJBvXtSqaHQu\n3e07D067clLLLHGhYy1l33pHm+o1xC6aeswpqvsz6vSqtosOFGF5E0WlJsGHmlHf6d2pk2jn\nXaI/a98yCNvBgt+mrgv4UO1k2qJEdkB0VBDMfriz88WtpokrWafmtcus2+vZCt+VrBFNcod9\nPFVcqvxzhwyq82orLvjY1MY1r1jBpmdP1gQHirAZzcSrSTA7MaNjZufZ2kXp85niQRpl2fQh\nqyz4h/E5dY6LDXlXolbeGqktOCbK95dEyfGpk9v464y40mkNLnMBCbbA1Y7u4885kvG6K4G4\nBwQb+SzrC2cV/HKwO4G4BwSbWOTsq4IT+QdcCsQ1IFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhx\nIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhxIFhx\nIFhx/h/S9XOlYQeW+QAAAABJRU5ErkJggg==",
"text/plain": [
"Plot with title “Histogram of residuals(PowFit)”"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"hist(residuals(PowFit))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The residuals look OK."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{tip}\n",
"Remember, when you write this analysis into a stand-alone R script, you should put all commands for loading packages (`library()`, `require()`) at the start of the script. * \n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Exercises \n",
"\n",
"(a) Make the same plot as above, fitted line and all, in `ggplot`, and add (display) the equation you estimated to your new (ggplot) plot. The equation is: $\\text{Weight} = 3.94 \\times 10^{-06} \\times \\text{Length}^{2.59}$\n",
"\n",
"(b) Try playing with the starting values, and see if you can \"break\" the model fitting -- that is, change the starting values till the NLLS fitting does not converge on a solution.\n",
"\n",
"(c) Repeat the model fitting (including a-b above) using the Zygoptera data subset.\n",
"\n",
" \n",
"(d) There is an alternative (and in fact, more commonly-used) approach for fitting the allometric model to data: using Ordinary Least Squares on bi-logarithamically transformed data. That is, if you take a log of both sides of the [allometric equation](#eq:allom) we get,\n",
"\n",
"$$\n",
"\\log(y) = \\log(a) + b \\log(x)\n",
"$$\n",
"\n",
"This is a straight line equation of the form $c = d + b z $, where $c = \\log(c)$, $d = \\log(a)$, $z = \\log(x)$, and $b$ is now the slope parameter. So you can use Ordinary Least Squares and the linear models framework (with `lm()`) in R to estimate the parameters of the allometric equation. \n",
"\n",
"In this exercise, try comparing the NLLS vs OLS methods to see how much difference you get in the parameter estimates between them. For example, see the methods used in this paper by [Cohen et al 2012](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3465447/).\n",
"\n",
"(e) The allometry between Body weight and Length is not the end of the story. You have a number of other linear morphological measurements (`HeadLength`, `ThoraxLength`, `AdbdomenLength`, `ForewingLength`, `HindwingLength`, `ForewingArea`, and `HindwingArea`) that can also be investigated. In this exercise, try two lines of investigation (again, repeated separately for Dragonflies and Damselfiles): \n",
"\n",
" (i) How do each of these measures allometrically scale with Body length (obtain estimates of scaling constant and exponent)? (Hint: you may want to use the `pairs()` command in R to get an overview of all the pairs of potential scaling relationships. \n",
"\n",
" (ii) Do any of the linear morphological measurements other than body length better predict Body weight? That is, does body weight scale more tightly with a linear morphological measurement other than total body length? You would use model selection here, which we will learn next. But for now, you can just look at and compare the $R^2$ values of the models."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(Model-Fitting-R-Comparing-Models)=\n",
"## Comparing models\n",
"\n",
" *How do we know that there isn't a better or alternative model that adequately explains the pattern in your dataset?* \n",
"\n",
"This is important consideration in all data analyses (and more generally, the scientific method!), so you must aim to compare your NLLS model with an one or more alternatives for a more extensive and reliable investigation of the problem. \n",
"\n",
"Let's use model comparison to investigate whether the relationship between body weight and length we found above is indeed allometric. For this, we need an alternative model that can be fitted to the same data. Let's try a quadratic curve, which is of the form:\n",
"\n",
"$$\n",
"y = a + b x + c x^2\n",
"$$\n",
"\n",
"This can also capture curvature in data, and is an alternative model to the [allometric equation](#eq:allom). Note that this mode is linear in its parameters (a linear model), which you can fit to the simply data using your familiar `lm()` function: "
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"QuaFit <- lm(BodyWeight ~ poly(TotalLength,2), data = Data2Fit)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And like before, we obtain the predicted values (but this time using the `predict.lm` function):"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"Predic2PlotQua <- predict.lm(QuaFit, data.frame(TotalLength = Lengths))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's plot the two fitted models together:"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\nYII=",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"plot(Data2Fit$TotalLength, Data2Fit$BodyWeight)\n",
"lines(Lengths, Predic2PlotPow, col = 'blue', lwd = 2.5)\n",
"lines(Lengths, Predic2PlotQua, col = 'red', lwd = 2.5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Very similar fits, except that the quadratic model seems to deviate a bit from the data at the lower end of the data range. Let's do a proper, formal model comparison now to check which model better-fits the data.\n",
"\n",
"First calculate the R$^2$ values of the two fitted models:"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"0.90054752976309"
],
"text/latex": [
"0.90054752976309"
],
"text/markdown": [
"0.90054752976309"
],
"text/plain": [
"[1] 0.9005475"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"0.900302864503218"
],
"text/latex": [
"0.900302864503218"
],
"text/markdown": [
"0.900302864503218"
],
"text/plain": [
"[1] 0.9003029"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"RSS_Pow <- sum(residuals(PowFit)^2) # Residual sum of squares\n",
"TSS_Pow <- sum((Data2Fit$BodyWeight - mean(Data2Fit$BodyWeight))^2) # Total sum of squares\n",
"RSq_Pow <- 1 - (RSS_Pow/TSS_Pow) # R-squared value\n",
"\n",
"RSS_Qua <- sum(residuals(QuaFit)^2) # Residual sum of squares\n",
"TSS_Qua <- sum((Data2Fit$BodyWeight - mean(Data2Fit$BodyWeight))^2) # Total sum of squares\n",
"RSq_Qua <- 1 - (RSS_Qua/TSS_Qua) # R-squared value\n",
"\n",
"RSq_Pow \n",
"RSq_Qua"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Not very useful. In general, R$^2$ is a good measure of model fit, but cannot be used for model selection – especially not here, given the tiny difference in R$^2$'s.\n",
"\n",
"Instead, as explained in the [lecture](https://github.com/mhasoba/TheMulQuaBio/blob/master/lectures/ModelFitting), we can use the Akaike Information Criterion (AIC):"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"-2.14742608125084"
],
"text/latex": [
"-2.14742608125084"
],
"text/markdown": [
"-2.14742608125084"
],
"text/plain": [
"[1] -2.147426"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n <- nrow(Data2Fit) #set sample size\n",
"pPow <- length(coef(PowFit)) # get number of parameters in power law model\n",
"pQua <- length(coef(QuaFit)) # get number of parameters in quadratic model\n",
"\n",
"AIC_Pow <- n + 2 + n * log((2 * pi) / n) + n * log(RSS_Pow) + 2 * pPow\n",
"AIC_Qua <- n + 2 + n * log((2 * pi) / n) + n * log(RSS_Qua) + 2 * pQua\n",
"AIC_Pow - AIC_Qua"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Of course, as you might have suspected, we can do this using an in-built function in R! "
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"-2.1474260812509"
],
"text/latex": [
"-2.1474260812509"
],
"text/markdown": [
"-2.1474260812509"
],
"text/plain": [
"[1] -2.147426"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"AIC(PowFit) - AIC(QuaFit)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" * So which model wins? * As we had dicussed in the NLLS lecture, a rule of thumb is that a AIC value difference (typically denoted as $\\Delta$AIC) > 2 is a acceptable cutoff for calling a winner. So the power law (allometric model) is a better fit here. Read the [Johnson & Omland paper](https://github.com/mhasoba/TheMulQuaBio/blob/master/readings/Modelling/JohnsonOmland2004.pdf) for more on model selection in Ecology and Evolution. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercises \n",
"\n",
"(a) Calculate the Bayesian Information Criterion (BIC), also know as the Schwarz Criterion (see your Lecture notes and the [Johnson & Omland paper](https://github.com/mhasoba/TheMulQuaBio/blob/master/readings/Modelling/JohnsonOmland2004.pdf), and use $\\Delta$BIC to select the better fitting model. \n",
"\n",
"(b) Fit a straight line to the same data and compare with the allometric and quadratic models.\n",
"\n",
"(c) Repeat the model comparison (incuding 1-2 above) using the Damselflies (Zygoptera) data subset -- does the allometric model still win?\n",
"\n",
"(d) Repeat exercise (e)(i) and (ii) from the [above set](#Allom_Exercises), but with model comparison (e.g., again using a quadratic as an alternative model) to establish that the relationships are indeed allometric.\n",
"\n",
"(e) Repeat exercise (e)(ii) from the [above set](#Allom_Exercises), but with model comparison to establish which linear measurement is the best predictor of Body weight."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Albatross chick growth\n",
"\n",
"Now let's look at a different trait example: the growth of an individual albatross chick (you can find similar data for vector and non-vector arthropods in [VecTraits](https://vectorbyte.org/)). First load and plot the data:"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2dB1gUxwKA53qh944KKIgFEbGL\nYgexFyJ27AVNFDUae42xF6LGFmsSY48xlthibxHbUywhUUSxIihSb9428FA87vb27vaG+b/P\nm7ndmd3hfm9vZ3YKgBikAaYuAMawYMGIgwUjDhaMOFgw4mDBiIMFIw4WjDhYMOJgwYiDBSMO\nFow4WDDiYMGIgwUjDhaMOFgw4mDBiIMFIw4WjDhYMOJgwYiDBSMOFow4WDDiYMGIgwUjDhaM\nOFgw4mDBiIMFIw4WjDhYMOJgwYiDBSMOFow4WDDiYMGIgwUjDhaMOFgw4mDBiIMFIw4WjDhY\nMOJgwYiDBSMOFow4WDDiYMGIgwUjDhaMOFgw4mDBiIMFIw4WjDhYMOJgwYiDBSMOFow4WDDi\nYMGIgwUjDhaMOFgw4mDBiIMFIw4WjDhYMOJgwYiDBSMOFow4WDDiYMGIgwUjDhaMOFgw4mDB\niIMFIw4WjDhYMOJgwYiDBSMOFow4WDDiYMGIgwUjDhaMOFgw4mDBiIMFIw4WjDhYMOJgwYiD\nBSMOFow4RhCceBnDEYm6f/qGF3wJYDjjks4fv+EFnwE5Bj9HGSEHnNE5DxZsRmDBiIMFmxRV\nmqHPgAWbkFPNLIB1xGWDngMLNh2bRX1+v7mvi/Q3Q54ECzYZqRaLqXCSY7pW6bNYnQULNhkL\n/QqoMNfpx9ITn45wAJ497ut+FizYZMT2YiKRY0tNu17Uc8e5zU2szul8FizYZPTXXnCy/Hsy\nUMX66Py5YMEmY1HhJdq51Ev0tCA6fKPYr+tZsGCTocNNVucRTKTuXF3PggWbDqKadEC7alKH\nUUykwWxdT4IFm5BTzSy1a+iYWJcOs6x26XoOLNhkPN638shr7Zoq/yf+hQrHur3T9SxYsInI\nGiyyriyz/E6lVervxPGn/z0cLT2o83n4I/iBRP0ptc7/U82N9t5HIMxbbzlTu+S7gkVA1oJF\nszV/BKtOHSliFMg0yDn4wyHpbSr8RbZ300mtmiqzk/PYnIg/gtVZhbzgIe2oQDVPIPQUK6fk\nG+xEWLBpiBpDBd9Y+U+COdschhnsRFiwaYiJJV8fiPdVW0SEp4R/G+pEWLBpWOlGPv1bFJAk\npDo91p9sqBNhwabhrdcX7yH8MqJmS+ptv96GOhEWbCKueXkNnFZVXOc59a6TwX6EsWBT8WZp\nTFgryWM6brfFUKfBgk1Jfo2WGUTwvrPve0OdAgs2Kf9UdB+2MK6c100innHxHxWEWVeSOK0U\nY8Gm5e3SrjU7zU+H8EpDAID96EgRABZfvuXuBFgwPzit+OLCu+TZQpcT6Y9/qdAgm7MDY8G8\noCBgABm0ri8nH/imuiwoMVXGTd2/2lgwL7ggfEK8pgnP9etEvp1Zo4Q0u6sBIAw5rOORsWBe\nsMWDfD0LspdVIyP7LT5Nskw89lLa+eGizbodGQvmBdsdydfL4M38EDKy0454ef0MvnlalCJZ\nRve9XGT9XKcjY8G84D64Sry+U+5sNZB8O7RZ9lQvAIg7avuBjM+5Vegw3+MHnY6MBfODiHrk\nXzzcWUQ+Vjou3d7YfUWYXY/yvqtrlFs/efiyO7BfHyYl86BRW7BgfpDqX2H23jWdBZaTdm4a\nKImf65qyyvYezKgy8G+FuGnXQOHYgTFMytbjdTowFswTMqbVsfHtenJxmL13m/2w4nxYeyKx\ndafSvaH4FYQHbaK86R47WXbbdDouFsxHcgWnoNU+IvIYeL8CF4jIFoXtJHKPapiHbnVhLJgn\nFOsnnCc8CW32EpFHYNhbcJHcrZgmj9hwfE1jy790PC4WzAMeD/IVOrQ+/mFDldmwYTwRbhMu\n+0P6htzivfFm9/Ii3773dDw0FswDbjqF/nD6136i5UVbltjf22hxDT738xhTvTeEV1ZPlpJP\njLXrJV8MLNj0FNToSN1AbRbfLNyU19Z+ZnNlK6fKkZLKz9NaCiv6C6TTWejFgvnAWRHdrwM2\n+ooOC9Y0sldaiIVykdDHuvWTmiF39lnN2W41i83BsWDTs8qfiUxqRgW5HWzG79w53rpdXv57\neKeqVBzhK/pGBbfJX7A4OBZsehICmci0JlQwzzGJDJIcvyOD/Aaho1Y9ICN221kcHAs2PUel\nr+hI5BAqKLeIfruwPBU0KLw0By1NHRPqFDLiX10OjgWbnjwfWuyfQmoSnRdg5s/U3dZVQImP\nKhze7zrDsca8HQvqWp/U4eBYMA/4S9HxcMqlafJx5JuzfsDdFdS9A+EtQA0PX+RNd7k8LvTq\nSd5tFwx3eaP9sbFgPnCtlRQIAtb90NYvpIMi1nYLfNDGNQVutqem4cnw7Ex+Gje8mltlUKmz\nXXV4YogFG4icK9uOvdQu6fuLW0++uJeRGWYXt3a+oyAhrnIGzA0dmFE5DsLUQ79cv+br0GlY\nuKjr2JZMhujBOpQDCzYIW12Bu0QyXJv5JVc5CNzF8nE5A/1SIHwtnCQ8ElBt9+Ol1tUCXr6I\nFiqcgd/vm0Z2m3QSftWOydG3r/YFwYINwgbJ7Ncw94B3m9JbnxbJl2TAnJ2uXSUHIPW72yHm\nZX8FAKDvy6waQWfy4ZNRkqNUyoTyzNGCdWjywIINQaYdXdO5pyia9ijt6NESZ9RJU26gwqsi\nEXkH9RAkrfYj6rx318pUcIEbfZEfEUCZTVWspd7uEidpXxQs2BDssWR6rvfoQYfJrYBUClon\nf5p0gys9oSGsJSFfVeXn0j0sB4ZDWI8ZNfwQ3KDCFZIp9/L/mSufoUNRsGBDsKw6E5nZkApS\n3JtezMu72NQj5ZOk0xszkb4gmQxWWXRvRARbxIchdN/K7LNgpqj8uQJx6Vb6dp3/SuuiYMGG\nYF15JhLfmgr61KGe5+fU/vTuaEEwExlg248Kh4LAb8Y1FC8johVX0rtyRMcLk1+tZNtv9rAK\n7le0LYrxBb9JSS0oLY25C74NrlFhfuB0Msiz3EFv32H1ycjBs6JkKsz2+kre93bB298rVotr\nHjHuFrmtTwSdZpcsozB509pkN9rsnh4ZHx/oMxhZ8I3ersRFRuTR/bTGZOYuGLYNJu+oCkbb\nUD3XnwB6UixC/JOPU6oaNnxNBHn9XdLPBwO5QDL4g7pE6nsM73kVNlbC80K6R8d79wQtS2Jc\nwSMEwK1OZGRdTwAGaEpn9oJfhNoPWjyuuu2f1Lt0wExRdwl82sj4uIrL0CXx/k7nifjDgxeK\n/eGbZQ2/WdBLGVU02HAhM3E0jI2B2mFUwQmgFTNd0M1osFBDQrMXDHPXRge3nsw8yIcBzH3v\n9IASkmYldK0RNeNZiYdJGtMspNf2D5XpaY2ZyOi2WhbEqILr+xfNxqdq1EBDQvMXXJzVlmfJ\n4KylbsNOPmW9OyM7SttZW4wq2LrPh/hEGw0JUROsGibpsWxZD8kwVt2q1Hgip2tONyR/apnD\nuN/ggA83keFl6RsM4R8x1avH/KH/ceYqV2fD/AOeXbTNYOTf4IjrdCwpBnynISEagq/N6zt2\nG3eTMdAssRb7KCRxF7U9tnHvoocA4NWwXfuwCgD01XS1QkFwwQhBSJ9IOx8WK3BrJPPkukNP\ntD+2kevBV7s7kvVgt+4nNCZDQfAke7JnTWa0i5ZPhQ10bOO3ZL1++AT5liyCdDm9zEJupWkl\n7C34Y9aI5bcMc+zi4KZKA7FfmUtHJjX6dGdyTXmDzlUEw1hOeabx2B+BmyoNxEZvJlLU6/kD\n7ys1JZswTzjGc3/sj8FNlQbioJyZfnJ8+Cf7vneh25t/k3zSNK33sT8GN1WyJL+UNou3VnT3\ni3fen9YH2zPNUCon3Ubra3Psj8FNlWzImVdTblV3rUbHC5VkG3JqC59P/5SiBeqClrI7v4Zj\nfwxuqmTB24ausw/vn2jVTeNN0iypZ6ua0loPIMz6Y/7SY2qL4nTQ8xusfuzSwE2VLIgvn0oG\nN22+15gsZeOEBceJb9oBV2WtIGnFS0U79P0NVjt2qeCmSt3Jtd1ER6ZV15yQ5rR0wjsIX/a2\nLVqgXd+7aF3ATZW6cx88pCPHRdosRlaf7mtV0KRn0SY968G6gJsqdecOSKUjpwVarKH5QnCB\njvxk92Gjfi1ZusCfpsr7YvXFKbXtU2YKspR76chiXy1S3wRMZ42FwLdc5CZ9nwjrCo+aKhMv\nFzGR199g2DeYWhz1qYc2PdAfA/qbGicWrf5xhGWHXP3P/+70+gOpMOfixt3JpabFTZUsSPMN\n+jX57oby9bQZWwb9qfEJmxUtyU6wd5x1GZZQMmsdRBUsRC09BeVsQbunpSTGTZVseNHfCgCH\nsdotcrxNSs6tEdpUTH3S3yhC/Tuu0+fuapV00Tuo+lZQ/iWEV2pVKaUQuKmSHarkx6WmISj4\n344/0+aJaw7qA2RUb6pVIvD16mE24ezXVXljTXaJVvkNtCD/36R7ztOcHDdVGpJjlYCjTBhz\ncU73XoCcWxReFC0hO8E/9NFhCPdH7LImb90TweNe3cm3U+tqTo6bKg1AYU/nY9K4FJj3V9Wa\n7yH0WkXuiWl/SEp+efdLXrM9+FKqdeU3S2Zg21Z3zclxUyW35N78/c5/zFiFc5XpNucXrosg\nHFeRHNTg930jqj9krvgY2zOspx4GnxBlj6FGLiX4a06Omyq5RLXUASiBtCI92sihsMVrUn2i\n+l+5xqE3WU5VXOlZrgoHhOpOEiBHFmbKf65EjfNvEas5OReCc55p02JHgkZT5ef52nL5M7hP\nKJtPvsl2lDGbt5JDup/3FAMh8E2mtiSD/7E+Saeq5Cjj0UobsgFlnrSU9jB9BV+c0dgeAIFz\nxII72mRFoqnys9wSkV3bF1SZLKW+um0ETKPGykpU8O7yue+c6Hpr/2rsz5Le0LrXrLhKMkmX\nGfFB8vmltJbqJTh/UwgQh8TETRzWrYoQtDigVW6Ee1VOCyVefrYl/gvbriNiI4R76O2RRet7\n59T1P5ilSoqVa27o0Uzeln71Os9+9tugWk7EqWRDNTbr6iP47xDr2D8LG3Pe7Oksi3qo5RFe\nlaKYr4KPxLfps+Tz0yf06UfOo9HeKbd5Q3Iejcjq3tQT+QTx1aIkbwZIRApQ/SwXpbltH3k2\n6+XuirU1LT6sj2DnecVbUZ6PLqVOBt8v7zf7LtztDizba2wn4KfgnG6S1vH9yjl/dtWEwd3I\nmXDSlBuaTdwlTroqPhRh0Xfx1DBmzTKG9LMHkrkpT4tI6nuS5qaprUMfwemf7Pl0SzFeBxKX\nFJcrMuvwqsBF0zwi/BQ80oOc7CZvmE3qZxKsd84i57JaJJP+BGt0d+0BVT/F1Aj/8rZhivO0\n8Dnk7CANqYxaTYoHo68f8bPwJr69PwFNC3jxUvBzMV21Kaj+dbHt6auGdJ9BNcFmesSOakfc\nPgeLBO5C0Tj69ufWnJiBy4utN5i5btgXU8/pXZ6zgBl8VtJSlkXoK3hAIcPH/1DqqomB5CX8\ndzCHjDcpaQXVQngpeG/hDCrT66tvPu7kET24ruBLstp3wdHZ98fJldyvXNralO7HAacIQwZ1\nL29bWO19nqy64OnSZUgjYay2dcvPcQUwF8wd9hpS6SvYUfHhIb1iXCkZFeS8yCmAmrh8qFJD\nQl4K3lTieIJ/LUeSlaHjNnPJd086iryaTnnxYUbYlQpSbf4kOTkDdO4MdwAsZdHkTdFFp9I+\nrdLIsmBmgB/UQkMqfQU/r1Bh2cV/Lyf4RCQe6AC2aM7oQ65JkDWEGvTY2VFDQl4K/lPGPAIa\nrf6BDq9Lt9iss6buZbMrFJvTucCNWcu7dQ/i17uVy8obyV0UnlRlY5dU+9nMSmZU+UdkcEjy\nm4ZE+gru60r3/HzqNhmqmjbVnDFasq8wel8RqSEhLwVnO9ATUL5yWa62NXAJHWYK6artlWKz\nst8ETG3hR3eiBmWfTMQaTGrQkdySZ6HJiza8C7eP3/ZDb/E3mhLpK9i7DxOJJa5b3zppzvhA\nKQih/qobI20ExzUk5KVguE6ygrga/y+0uvrIerfCvutWjK9i6yqcAswv7R9yCGtRXTsCE06I\nqGG93pv0LVDe9809/DprXvRdb8FRTKSDC4RjHUrJea+TywoyXAVcNK4gwk/BcLW1soYXaF2s\nl0zNuXT4vHAurGLcB0xn6JUVILSk/gs0G5cFyDmxsmRHDFnWQvQV3EdMN8ftl8TAhxWblJ6Z\nqpvfP6O56xlPBcP0g4s33yy+aXIl+vs8y73EbjgBdN/2vJARENpQH9UijyeAHOSQYKNVjy59\n0fsmywc0iJ83Ngx4pt2QCjRfLbSHr4JL4JVXBPEzm7dCvLXE3fvF3xLV4WddnIhEYdTCZu/8\nq0ozYMEGubaTEeqH3g0dqSNkRA1JGPsUXqqv711DEXwSfH31pLWanpTdDZFUaWBrteYzu3+y\ns64bJK1CPgffqqSu4jeUgoBGDopFnJe0RDhoycq+fSiRfR+yEuGP4MxugootfASxGmYsUp1a\nMWvn56s8GXvnLD1O/TCpYpXj9x9bVC7oyMoZv5Y8dSH34PmiNdOmItkIedqzd6kptWFTfStJ\nlcna9bblCH0Ex3+8WOID/Tt10/BG8DEJvTzCReHVUlJqiYqDgQ06oY/gQTbj1G4pVadiLRdw\nUyj+CI5vzkQKa0Nmh16X6L9qgWojNl+49+TO6R9iywsitOq1ow28EdyrPxPpMEpjOv6i52/w\nmR6OzJMGr+Hsu5F9Am8Ejypsx6k3/eNdBRfXrbtUaucjk6P3TZbq743zJizcepezEpHwRvA+\nJf1w/674405UlwMFFSoIqpTUfMUr8F20Rgrq1CGfFvxTtfVHO+7Y9HwK4dOeNpz9LBkILFgz\nT+oqWgxoKm328UiTTq2op4SqVp0Ktzw99ON5ozQ+6gYWXAoFv03oMenQx730c2W/05H9crre\n83agWOEtdNpg1LJpAxbMilTALB/IzNehaulzJB9mzpd8rsXSZGDBrMgUMJ3mzgqoVtpflf+Q\nWy/0tzTA7NB6gQWzoyYzxdWYmlTQvReEeZMthA7A7kcNuUwAFsyOnZKdEP4dV1XQghoH2nAW\nhH2dtr2FVdpJV5i6bMXQV/CLwscs7/TtQqYO/wXDb0UNwwS2glbtxcOJO7DW8fAvEfkY33v9\nDxaldh82JvoKBoVXpBmlddfRBTMQDG90FdSacAPCM1bLIZwZkB9HVpWvgKQCZ737WnGJXoJ3\nb9kCBm2hWF8LdcEF2wc1iV6gdg8VxswZO99L9XSixLNcBxVMrdaR2P5Jq6Yp0UtwefW56bh5\nYkrDQ8EZ4Rbdpg32cSkaF6iSHKQjSWCbXUB7hVhQuZdN/dcQBnP1TI0T9BJ8eM8eMHIPzWFN\nYxh1hYeCu1X+j3jNHehY+BD8PWBqSmlAGV8An0bIZZU25kH4n0ifsb+co+9vcPND3JXlA/wT\nfA9cpMJcvzmFm1yY24+TgiCyoeuVY5QoDcI3TeoZezpKjeBqknZs8GIio4tGZAwNpoYPqtra\nzqTen7IXdkn4yt1f21HwxkFvwTt6tmbgrEx8FLy0cO7vWQ0LNz3xaH4Lwn9jrH2ZDrCp1lUr\nt1vIcf9DfdFX8BoApJY03BWKh4J32jCdqdpV7zlsDb2O94MmwNYRBF1p9SW9K0Ny3DSF04S+\nggMtTxrgJ4d/gt9YrSYD1UDgO6CLmws9tAw+2LP9fy9TVjrSTRtznbWYH9zY6CtYGc1dWT7A\nP8FwhSyB0DdUWKOA+NCGW/9Hb82b4w2Ir3GVKxBmzfvM4AbToq/g4K+4K8sHeCgYfm8jDbAB\n9Yir83/fD3NrSf3U5kU6L79675fqSoG9v9hxs6mLWBL6Cp5QoZSJV1jBO8FpKvjszdFVc4WE\n10VSv26Vxa7Hic3f21HzJL2v13rH6hM87M4B9RP8luB5k+o7/s0kY1zePfJL8OUIayASA0Wj\nw/usINwk3QLhNtc4y3sQhk6iUxwXc/mohVP0EQyKw2GpeCV4n7TrbFloE+H4IaKxgpcqb3IO\n0Lk1VU36fRj0TY/45SX6CB5QHA5LxSfB6Q6T33uNIK7MFqkbpE5zbgPi/irbfxJc51k44hfC\nTHBJ80FMB27JKo0Nzrl7LIjiFPgtgiEdJGNAHnzSxvMlNSlDI2ayrwOyN6Yt5OfBgksjvg2c\nTU2M1bM/jOu0SgFCgyTBSRCu8YZwswU1Ji29Wh+TFlETRp0ITWv4JHhsMcHwuUvjpSeIunBB\ng0EQqnpbTjx4cqlP1Y/HWfIHo06EpjV8Evyjc+7eokv0ZAi3i1cRfjNjbcmJdFTrQ5Vi/4n8\nKe0nGHUiNK3hk+BiN1lE1QiuVrpHhFmVK7xvLtAw+J8HGHUiNM28fVXEIh4JVq8m0R0m0zaO\nm76b31o/YNSJ0DRyX8jXxSk/NHSYuiQsMO5EaBq5zuPFKcmmSv6PBS4Jo0+EphV8+g02c/BE\naIiDJ0JDHDwRGuLgpkrE0e9xYQosA48LzRt9BHfo8AJ2+QCHpcKCOQNfohGHA8Hvruu/BtBH\n8EBwzrVjn1v/yqzQW/C/nSTEz++UHimcFQnyQHD2eCWQgKBTpi0FF+grONUL1A8HcD7w4PL/\nu6kFq6Lcf3qZf2ug9KhJi8EF+goeDjbBLcSGH0XDuCuUyQX/ZHGPCuN8H57n27Q5OqKv4HLh\nkBIM21XkrEymF9x+EBWoFpDVv+rm+BCpCH0FWwxmBA/VtEKirhhbcOLULn0Wqq2WU5Ve+mq8\n0mZhVuII0S9GLQy36Cu4Tm1GcM0QzspkdMFfC+sP61vRejfzNuVuyHdk+LfwkP0OIpxjz9s+\nk6Wjr+BZYGYBKXgWmMBdoYwseLkFeREumCEll0bJnuQAgMiFrBTEN7kgIDte5dr9bMTScIy+\ngvPDgF89MCwEVDPbOTquWYaOXEeer013+GyZhzL6+KMEgQ1htv2QYGqVQdhwpvFKwzV614Nz\nlngTNyIOkzjtY2NEwapxAhDdycWNqPJuctthZS/tVFm6DK4RuCzeHKAMonsCh2paQ53n6CuY\nfE6YeYvrqoQRBX9ntQjkwewhNg/hH1LJ7JCpEG6U7IQbBNU8/JzpBXCeSY2yyqBh0FewrPn8\nG9yVphDjCc62+eEBuEt8kUNHwgRlN3oBya8DqeFkqZbUMkG5navou1i3CdFXcABxffaI3c7x\n6EnjCT4tzISB5Bwbi6rmBov3QlvyVvo6eJJBLia6S9Zy5b4F1V1ulnYUHqP3b3Dar3HVBUBU\nb/oFzspkTMHkiN+D4hnv4TaX9i7Et7bxSGLjM3BznzzztwYKILe2qDn6aalH4TGcPC58tfcr\nRzN94H9RQNw/7HRU1nIS1Lhlsx3+rDgP4SXB3YCBc8VxhxJ/amzzt5FKYiA4EJx3YUF7ou5o\nw1GJSIwnON/1W+L17cFvXXur4BctVKrB8q92Rnp5hpwS7SL3q2ICS1wX2GzQV/DRac0sALBr\nt/Ayl5+DEe+iN0p+KCB+aNp6EN/kO1aDMuBPYQpQcdb7Ec3o/Wki835mqPd80cC+09JErqfK\nMmZDR4LSKbymtPptMn66nEXtRjYO5Hc3fAqzP2Cl0YpiCPQVLAaSuvG7uV4M16gtWc9+nrrw\nGDMuJef3b2ftos7dZCqzu/L3xiuKAdBX8LtjM1paA+Dff8M97gpl8seFBMNb0uEz8UnTFkRP\nuLiLLri6/AsHM72LVif/1KpVpwpvJS4L95GBqndA2b7JInm+M66aAJjz82CKcxXFAQHiioU9\nCKdL4o/e3tnc6qLxS8Ileg8+o+QKgsYd5XIiTlMIvmnZ/wWEL2KtbjEbdoZKgW1nbpdVNT76\nChYA4BSz8Ql3BaIwheD2bejlJtu0h/DBjvXniP+wuWbdhkWjr+DGsy+jMZ1wjuwAHTkge9gG\n2PsIPfYauwgGAY9sYHj8YbnJirWvQZj+jfiAsctgCLBghrcCZsGcMwJPugtWvC+vVtdgCRZc\nSCgzMf+XFtPoyGOQaPRCcE8ZF5z3Y3RQs3hyaVi4V7KNDLaK7bcxOy05m7HAhJRtwRmNbAYu\nnVRHST04WiwOHT48VLzYn1lE5b3QvNuwaIwv+E1KaqkTEhlLcM8AaszcLPl9MrgztUuXqXdg\n/+b0zl8UPFshhxVGFnyjtysAQOTRXfPyb0YS/FjAfEfrjYKnRoS3HEN2jIa3pHPIu6sbruON\nUQZDY1zBIwTArU5kZF1PADTOH24kwTttmfvkOXW+ErWZ8nVj8WLy3Q6LGl9O7SiNzjVGGQyN\nUQUngFZMB5ib0WChhoRGEry5cL26FW6WJ8jwJzG1ouh/Uzs0HoJELdjIguv7F/U/VTVqoCGh\nkQT/JX5NR4YrmK7tg7maq483GFWwdZ8P8Yma+nAZSXCexzdU+MiqsBnrgBSFxg11jPsNVnu2\nGs6DbzDcI/76Kcw97BcK0ugN5wCXQ6z4gJF/gyOu07GkGPCdhoQGFZz3y1cd4/fQVbXfygMn\niXhASuGizhudDXde02Dcu+ghAHg1bNc+rAIAfTVdCw0p+FGwVfuRbRQN6HFl+Td+PfYSwhYd\nqeLk1hpssPOaCCPXg692dyTrwW7dT2hMZkDB+TUbkV0EU2oWm50+0bJvKoR3I9weG+q8psL4\nLVmvHz4xZUvWLgv65/YfcbH/YxcCgYcjaGDu/Tc+pcw1Vca1ZSL1pxXbXpC4dfttQ53UhJS5\npspesUykwyhDnYJXlLmmynGFv71B3xrqFLyizDVV/iWmFzw6IzTAwHUeUtaaKo83EwPbbnfg\nEVcuV0vlMWWsqXK1KPbXtgK5yFE0HIlnRaVTtpoqH8jWEK93N4U6JRnk+DykbDVVTgmmwwwl\nCt2ttKJsNVV2imMiNaNnbkKvUaMkeNRUmWH4xSk7jqSC3OEC64Zegj7vDHISfsGfpsr7AvXF\nKQ3T3+2b2lQwwEWxm6gole9kkJPwCx41Vd76sDjlesDlWMUPJEm2Eq/XhdEeWUR4U/yXQc7C\nK/jZVHnGAIJVfy2dvG26eBWhrzYAABCxSURBVOTRpL428j+pTeGcLVnOX/jZVGkAwcl1xEFN\nXWV960iBxIUZkxLbi+uz8A9+NlVyL/itX9NHED4eJx2VnjKVqoJnnlxXZyDHZ+Eh/Gyq5F7w\nfK+3MDNWZOEI7NeekPwD4RJrcTkgikOtC9Yn8LOpkkPBJ3oFV+m2C4aPh6rmvsdUWfLB0tXh\nNVPmKlc/ahS835PLBfl4CT+bKrkTPEHcdVFCH3mPwAS43SKZ2OC9aYVNcgO5sHV7q5qP4A2J\nGU8FrRX8bKrkTPB2GbUmzjX78lNg995ELFe5P8dqd8EIy45fbSd/L6K4XO6Jj/CzqZIzwfW+\nosNllgF5DWcRkV9lr2H1pXBaYyKeuzY6uHwl5LrZFYdHTZVqcCW4QExdgdPP/gjse7SIh/C0\nw0QIvTbAhUEQvgi1H7S4mq3tn5yciq/wp6lSHa4EZ4NzEL7sJRJJgb+b0rJPbcGQfHgZJMEL\nwvuwbXAazHJfMdoGgcmSPg8/R/hzdol2XwvfVq/2Z9YRcQfrifJKs65AmFKlM7Gjae0z4BrM\n7umRkV95Ojfn4ieIC/4y8N1M71cwv3l7VcfGfzn6x83qZdUwndiRVtPCcvawCu6E8fjW3JyL\nnyAu+IVv3Qpz8hOjHO7BK4LUZ7M71+u3hW5syYmxq9d1PrmYyMyG3JyLnyAuGKZ2AGIZCLv9\n6V+61yqbjvTowdG5eIkxBS+3LYaGlFw2VdpPO0zVhF6Bq8W2Z9otosK7it2fZkIHYwq+N1IG\nrKoWoSEll4Ij+tHh1sJvbCEbJHNew9wD3m1QG/NdDONeog+CKK3S6Sn47xndh6xKZ94cEu8h\ng/senzz83eoK3CWS4Vn6nIr3GPk3uJIRBKtGCeoOjvZwPs68nyPqtPiHIVZtsj9JmXNl2zEz\nX8G9VIwsuEdHrZLpJXiODdlMljvS6t/Co/UJrthxE9IX4s+D3l30e+t1VKiqO6LYdvNeeoE1\n6Ak+JWR6ZC6uAlWJW7dSizrtDreTVP3ajFdqZw1yggvGSupFTXl0cFCj6ha7g4CHB6iRCMdK\n43YeW+znj3Src8mgJvhtCwWYHF9NIu40q7EShD6C8FG03TrxMXJfZq2y0BH6I1AT3M/3vvts\nOEMhT35fqXJlEfnHFTRz70PvPC3kevUQ/oOM4Cd7l+xMgU+ER+FWyVK7H2oPau0p+y26A7lr\nn2ANnaZAepjbcpoBiAjOHy+1DrITD//FhrilWmMBajsLQs6AO9uoec3ugGVMMsUfHBeU/yAi\nOM5hD2H2kHt9av7Yg2B6twqqTHD+gIJ8ew4MpVPdAMmcFtMcQEPw/4THqfCKUExWhR6Cm3ER\n8H+uAbWciLssOK6cBTVBUn5kY26LaQ6gIfi7akykkcUMMgiNtl8zR+QrVDooNsF90p87OSy/\n+ej3Jg4oToRVCmgIHtWBicSGiaenQ9VKgcty2c5r5UBYc2GIaCbMn+cBgLxzMucF5T9oCJ4S\nxkTaj/jVTeBlIWzhCyxtQas/xrR0K08Ph3p+t2y2VaIh+E/peaojzgvr7TD74sYDj+EjMH83\ntRzSb4oy+pSBAQnBR+oLgDT8WEIHK6upzGrzNwETOY/cFN+6gYLgtaIh26tYeAGJ3GWgvxM9\nkd1LwQV65zY77otnTiAg+JHiewhzt7gqZMvfZ50Js6Nnz2nQhwoKGpeBQd6aQEDweLd5O5/C\nM6J7Lus3OAq9BMKB5PPCM9JxmcStVQ+7BwYrpVlgRoLfnLtWwtaMGKCsbSebPL8GbNNKMj8T\n9g+v0Iq8rzroLg+uIgm4bPDC8huzEZzUAgAgG5rx0WZVy4rtekLVr7ZhjWEL2XJiy+i2D5Q7\nyF3ZhxclnCybdSM1zEXwbfvIs1kvd1eszdwT5zPhb/IHS3wKINwrcs6ylpO5IkfAnjEGL6HZ\nYC6CW0RSQxLT3MglylRrQmRCv/Hkt3lQJ/jUai4RcZdGWJFdra+KjyM+GEU3zEOwahWoFP4l\nOf5kZhDM2R8s67bvxAB7+wX/wqgxEG4Xd9txKdAJNPGCOTtde0A4JsLgJTQbzELw+wgFmD81\nTNYpUCIRji4nE9a0sXGxCrO2kszp0emvNHgxygGIg6bYASexfFwOzA+YafASmg1mIFi1r5q8\nAbgLM8qD0ce7i4DEoSP8Tyn8Hf4hXSuWErde1Y5BeFFwFb5v4rUrnfh5jrNLM3gJzQb+C37f\nVi78YqDQ4siXvs17DxYqfJQi8eD4oIF14HogBAKLZueHin/7t0o7Iunr+jZ9v/2ysoPm+SHK\nFvwXPLjcJnEOHGltYbV1pbNCrNw+U7jAymPBJcEwORBuEFQS2UfXkSvCqaFIeRt71W0/owx2\njv08vBecJjq03xLCd+EisGKAUDgenD8BJswUb3sGhIuEbaHVnkifwa3FU0qd9qOswnvBe6wL\nboCHxJezKXC1AwlQufeUwHY3mHUdtKnjOCNdcP4+uAGrLjd4kcwV3gve5AVhZXK2ssXCTc7g\nNozqtsAvyg74DJB4lA+buNQhF7r8DH3XGLxI5grvBR+TZhD/4lLgSCd5kNUOeEFsNTuvpxAA\nYb3nX/uSD5Jcfr4v+NvgRTJXeC84x/lbwnIlYC8QWPuHVbu82kFUrquDrcRe4tzBG0RCeB9c\nCm9k8BKZLbwXDLeIv8uCBb+Wr5TyepgdAI4TH8S7W0z7N2eGoPOq5dLWS0I8fXz+M3iJzBb+\nC4abHcX+9oJOL8j45eYCiUTQhhI6Rj7h6O7GSmHNqWVxWKi2mIFgmHVy9Y5/Ct+8OH78BRPd\nFiIFTr0fGbw0Zo05CP48uS9KT1PGMW/BmFLBghEHC0Ycfgq+BDCccUnnj9/wgmHih2XuLsvH\nbGZPWJgemcfI9Mi8WWa6csvVPr5E3T99IwhWx2K/Hpn79tUj834LPTKbbbmxYC0x13JjwVpi\nruXGgrXEXMuNBWuJuZYbC9YScy03Fqwl5lpuLFhLzLXcWLCWmGu5sWAtMddyG12wnT4ziA4a\npEfmw3rN72Gu5Ta64GR9OrW/eqVH5oJkPTKbbbmNLhhjbLBgxMGCEQcLRhwsGHGwYMTBghEH\nC0YcLBhxsGDEwYIRBwtGHCwYcbBgxMGCEadMCM780dymDrjH2WRhRhX8fQObBt/rni17YiNr\nn+732R+iL9jPNvNfzazdurE89cvRgcrA0a/YZB5py0TU8rH79IwpeAjw710JjNA1W3ojEDig\npUBxle0hfgW0YBaZf5a6x7QXOfzHJvcrH9BkUGPgl6575sMyRrBaPpafnhEFXwWt82BeS8EN\nHfNNAMOJ19+FQSwPkWJvSQlmkfk/cR1CzxrQh03uiSCBeF0CpuqauYc/ALRgtXxsPz0jCu4O\nrhGvV0BvHfMFWGWTQXOQxuoQqqYVJlKCWWQeDc6RR1i8kk3uNtSCbY9BB10zd4yKsqIFq+Vj\n++kZUbCjJxW4ueqYLzCKCiLBHVaHmC889S0lmEVmd6+iqO65p4NtxOsmMIdF5qq2H5+U7adn\nPMGvQQMqrAM+Xk5HK57JXfLYHOKqdAKkBLPInAkaJbZ19upyj1Xu9CaS7lO7i5tnsMhMC1bL\nx/rTM57gh6AdFUaCFBa5k/zABjaHyAqskUMLZpH5EfC1rBbbWqi8xKr068QAAMlmNqemBavl\nY/3pGU/wE9CeCiNBqs55305RyFewOsRw+U1IC2aR+R8AvlZBeEQQzCb3XNDu2rvENmAhi8y0\nYLV8rD894wkuENErP9cV6dyJ/IA3iLrD6hB/gsWQEczi/E+BA7XaWkuQpnvul/LKuUSQU1H5\nRvfMtGC1fKw/PSPeZLn5UIGXh64Zp4AqJ1keYkHRBERrWZy/QF6LCoeAK7rnPguGUuEAcEn3\nzMxNllo+tp+eUatJSZBc7bm7jvl+BF8UTqWm8yGODCGpAyKGnGZz/tbW1Kp7jYVvdc/9mLmo\nkrUlnTNXLawmFeVj++kZUfAJ0JOoU0aDU7plU/l7FK37zfIQdDWJReZDYDhxRfwFRLHJHSQi\nR6z9IQxlkZkRrJaP5Z9u1KbKvqDpxDDQX8dcycCpNc1ztoegBbPJ3BdUG9QCuD1ik/u6laDV\n0OYCm9ssMjOC1fOx+9ONKlg1r751/fm65jpa9DOawvYQjGA2mRc0tAoc8Ypd7tSBgcrAwU/Z\nZC4UrJaP3Z9eNh4XlmWwYMTBghEHC0YcLBhxsGDEwYIRBwtGHCwYcbBgxMGCEQcLRhwsGHGw\nYMTBghEHC0YcLBhxsGDEwYIRBwtGHCwYcbBgxMGCEQcLRhwsGHGwYMTBghEHC0YcLBhxsGDE\nwYIRBwtGHCwYcbBggkHxRdGGnqUlTne+atDCcAwWDOEpmxdF8dIFw3m18g1ZGo7BgiEMHfsh\nroXgd1abDFgYrsGC4RmgNgezFoJhbC3DFYZzUBb8X6/Kcq/OiWT0eT9v774vHAcQ0fzZdS3L\nj1Cb8bFnNSpI6uzp0TWZElyUcQHYSe5aATZCuKmurUPYQfLtn+Cikf8SPUBY8C1LWee4KLH9\nYwif+Irb9HapoCQE54SBWoOaAO//CpOpHKlp8s9aC5r08nIt56me8QHoRe5rLHsDZwO37hFK\nITmnYpZ4hon+JBYgLDgO/E68JoBNZHQ3hKnlwQByiv2ZxNaNoHNhsr/BZjKoLSSSZDQEnsUy\nBtnnEf89hJ0gdPTPhnAXiCXThjQ2xd/DDoQFn9xCTsx6ACyB2bL65IalpGBvP2q61nrSd0yy\njeAC8XoZdCXfXCQFf8gIp4Fj5BV6O8wVV8glvu03k8lUMfZG/2NYg7BgCLOv75tXifB0G1AV\n3YuE4Leg3haScHCdSTQP3CNet4J11DsnT/WM8BoYRVyhLbMg7AgqTz3K/KeIAzmfnIuvICz4\n3QAFEFeKIjwdAvPIDf8Sgm8VTYx4lkk2ATyB5O3UH9S7YE/1jBD6liOu0D2JSNZ0HwCUMY/J\nRBOp5TbMA4QFtxJMuJ4PzxOeEgFV071MCH5BrdGjzkJAzjX+C1hPvSvvqZ4RwniQuIJZVgsm\nrWsMqqmIyHBBntH+Cn1BV3C6mLqPOkx4eiukpktPIH+DHehK7Pwphem2gtOQXJYomnzzj9BT\nPSM5rfe0MHvi1/fepOPkxhaAvPuOdjbi36En6Ap+CZqRr2FgEYSx5H3xUx9S8DdgNiTvrGIK\n0yWBH8igrnAvhO/bEDdZ6hmhyq2CcCARPgBhhObcWjLy17dKhCn+IHagKxi2AvUmDnJsBqrv\nh089JR37u0WQl+eMqiBkWHuRx4fFS7yoqs9Za2GL/r6WZEOHWkZyOn/yRhrCdsBv0BeuYDIR\nfSNcYJI/iBUIC345xNO60UY4zIb43qbFuFSelAjGE5vfj6+p9Buq1pI1vDz5uwqTuni7dvp7\niGfxjMSV2o2qV2VMrWzh2GArmXQP9attJiAsWI1LVGvzAfpi/DH/0zhN/hWyolScLi04KpYx\nKBuC60sfEj+nHRTPS9zbWtM8+aPB+Y+2PJcd4KxghqdsCN4nqDhuXjMwruS9ty3/+VzGN39b\nVvp425go7gpmeMqGYHiosb1jk82f27vgsw8PHIFgx0eb0us+5KxYRqCMCGbLd+MvmboIeoIF\nIw4WjDhYMOJgwYiDBSMOFow4WDDiYMGIgwUjDhaMOFgw4mDBiIMFIw4WjDhYMOJgwYiDBSMO\nFow4WDDiYMGIgwUjDhaMOFgw4mDBiIMFIw4WjDj/B1lRJRID9+K+AAAAAElFTkSuQmCC",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"alb <- read.csv(file=\"../data/albatross_grow.csv\")\n",
"alb <- subset(x=alb, !is.na(alb$wt))\n",
"plot(alb$age, alb$wt, xlab=\"age (days)\", ylab=\"weight (g)\", xlim=c(0, 100))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Fitting the three models using NLLS\n",
"\n",
"Let's fit multiple models to this dataset.\n",
"\n",
"The Von Bertalanffy model is commonly used for modelling the growth of an individual. It's formulation is:\n",
"\n",
"$$\n",
"W(t) = \\rho (L_{\\infty}(1-e^{-Kt})+L_0 e^{-Kt})^3\n",
"$$\n",
"\n",
"If we pull out $L_{\\infty}$ and define $c=L_0/L_{\\infty}$ and $W_{\\infty}=\\rho L_{\\infty}^3$ this equation becomes:\n",
"\n",
"$$\n",
"W(t) = W_{\\infty}(1-e^{-Kt}+ c e^{-Kt})^3.\n",
"$$\n",
"\n",
"$W_{\\infty}$ is interpreted as the mean asymptotic weight, and $c$ the ratio between the initial and final lengths. This second equation is the one we will fit.\n",
"\n",
"We will compare this model against the classical Logistic growth equation and a straight line.\n",
"\n",
"The logistic equation is:\n",
"\n",
"$$\n",
"N_t = \\frac{N_0 K e^{r t}}{K + N_0 (e^{r t} - 1)}\n",
"$$\n",
"\n",
"Here $N_t$ is population size at time $t$, $N_0$ is initial population size, $r$ is maximum growth rate (AKA $r_\\text{max}$), and $K$ is carrying capacity.\n",
"\n",
"\n",
" First, as we did before, let's define the R functions for the two models:"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
"logistic1 <- function(t, r, K, N0){\n",
" N0 * K * exp(r * t)/(K+N0 * (exp(r * t)-1))\n",
"}\n",
"\n",
"vonbert.w <- function(t, Winf, c, K){\n",
" Winf * (1 - exp(-K * t) + c * exp(-K * t))^3\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the straight line, we use simply use R's `lm()` function, as that is a linear least squares problem. Using NLLS will give (approximately) the same answer, of course. Now fit all 3 models using least squares. \n",
"\n",
"We will scale the data before fitting to improve the stability of the estimates:"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"scale <- 4000\n",
"\n",
"alb.lin <- lm(wt/scale ~ age, data = alb)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"alb.log <- nlsLM(wt/scale~logistic1(age, r, K, N0), start=list(K=1, r=0.1, N0=0.1), data=alb)\n",
"\n",
"alb.vb <- nlsLM(wt/scale~vonbert.w(age, Winf, c, K), start=list(Winf=0.75, c=0.01, K=0.01), data=alb)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next let's calculate predictions for each of the models across a range of ages."
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
"ages <- seq(0, 100, length=1000)\n",
"\n",
"pred.lin <- predict(alb.lin, newdata = list(age=ages)) * scale\n",
"\n",
"pred.log <- predict(alb.log, newdata = list(age=ages)) * scale\n",
"\n",
"pred.vb <- predict(alb.vb, newdata = list(age=ages)) * scale"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And finally plot the data with the fits:"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n1gjSvN3VKBSKjIyMYK0GFxeXnJycb65X19DQEBERMXHiRDSdAQAEAmHLli179+4tKyuDAd3n\nZGVlm5ubhUs+fvwYHBwcFRW1ZcsWdFS7mJiYm5vboEGDbGxsvLy8hg8f3keV/Q9mXlHd/rN8\nGh0AIG1rofTnvB9Y/+BXBUdx/BQVMdIPv1aBoIjHfHshrrKyMjabPX78eOHxyEQicezYsVVV\nVW1tbSUlJSwWq133GTrkuSMCgTBt2rSSkhJTU9MdO3Y8e/aMwWAYGRlpamp2Xo2CggI+nz9h\nwgThQgcHh5cvX6KPpKC+ZWVl9fDhQwaDISj5999/dXV19fX1c3NzhZ9yjxs3ztzc/M6dO31R\nzfbaXqXVBp3g0+gAg5Gf56jsuwCmszDYgv4pU1Wcx8hbcZAfmeqtQFDCYb79u4g+tVNVVW1X\nTiaT0aPl5eUAABUVFeGjnQx9jYiICAkJuXz58s6dOwEAkpKSLi4uISEhwkvZdYTOUexYDUhE\nLFy4cM+ePZ6enpcuXUKn/peXl2tpabm5uU2aNGnkyJHCJ+vr66M/0L5FvfOk+dp9gCAYPE5p\n+YI+mZQr4mBA/yx5Qs9OiUZzs7a2tl05WkImk9FGk2CxJFS7b4VJSEhs3759+/bthYWFr169\nunLlyrVr17KzszMzMzuZNIjOUezkslDfkpKSio6OdnJy0tPTs7OzU1NTi42Nff/+vZmZWURE\nRLuTqVRq3/6tRXj8pnM3WmMTAQBYKYkB673FjdsP8YQA7OIQTYmJiYJl8jU1NQkEwvPnzwVH\nX758icFgoqOjVVVVZWRkdHV1sVhsu9mDX5xrCwAoKiratm1bQkICAEBPT8/T0zMhIWHy5MnZ\n2dkVFRUAgJiYz13qY8aMwWAw6Aqlenp658+fB/8/AV3g0aNHBALhzJkz3fS+oZ9iYmKSk5Oz\nbt26tra2Z8+eqampYTCYqKgoZWVl4dNaWlri4+P7cEgZn8Gs2xeKpjNeRZG8OwCm89fAgBZF\nY8eORZ/aVVdXEwgET0/PrKwswWN3tPeQyWSiKzpKSUktWbLkxYsXgmytra09ePDgF6+MxWJ3\n7doVGBgomJvD4XCam5uJRGK7JpW9vb27uzu6xj+Xy/3nn3+IRGJ0dPSjR4/QE7hcbkhICI/H\nGz9+fBff19OnT7W0tOBU8p4jKyu7cuXKiIiI58+fP3jwwMjIyMPDo7W1VXACk8n09PRUVFRE\n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\n3dzcoqKiiouLjSfU1dUtXbrU3d3d3d39vffeq6+vd3BwWLZsmTiho6MjNTXV399fJpMplcrk\n5OTq6uruT7pv3z4vL6+xY8caD5aWlkZFRbm6urq4uMyfP//u3bu9j7pr1y6JRHL8+HHj+Xv3\n7pVIJFlZWcLmgQMH/P39hwwZolAogoODz549azw5JiamoKDgypUrPb5j8DLjAZhx8+ZNW1tb\nS0vLyMjI5ORktVotlUrt7e0fPHggTKiurh45cqRUKp01a1ZcXJyjo6NSqbSxsXn//feFCa2t\nrUFBQUQ0YcIEjUYTEhJCRG5ubhUVFc87qcFgUCgUSUlJxoMXL14cPHiwRCIJCQmJjY11dXV1\ncnJyd3d3cXHpTVThWnZsbKzxMYODgy0tLXU6Hc/zn3/+ORE5OztHR0fPnDnTxsaG47i8vDxx\ncnNzs1Qq3bp1a9/fVRi4UNDAkOTkZCI6deqUOLJ3714iysrKMp5w4sQJYbOqqmrEiBFEJBZ0\neno6EX322WfiETIzM4koMjLyeSctLCwkogMHDhgPvvnmmxzHiSdqbGwMDAwkIrGge4zq7e1t\nb2/f3t4ubFZXV3McFxERIWwqFIrRo0fr9XphU/hZe+nSpcYZfHx8goODu3/H4OWGggaG5OXl\nHTx4sKOjQxw5ffo0EaWnp/M8r9frLS0tAwICjF/y5ZdfGhe0m5ubh4eH8RF4nvf397ewsGhq\naurypEKDX758WRwpKCggonnz5hlP+/XXX40LuvuoPM9v3ryZiH766Sdhc8+ePUR09OhRnufb\n2tqkUqlSqWxraxP2GgyGGzdulJeXG58xJibG3t6+m7cLXnp4zA4YIlydaG1tLS0tvXv3bklJ\nSUZGhri3vLy8tbU1ICDA+CX+/v7in5uamu7du+fv73/48GHjOVZWVm1tbWVlZV5eXp1PWlNT\nQ0T29vbiiFarJaLQ0FDjab6+vg4ODr2MSkTh4eGbN2/+7rvv3nrrLSI6duyYra2tWq0mInNz\n89mzZ584ccLb23v+/PlBQUF+fn6vv/66STC5XP748eO2tjYLC4tu3jR4iaGggSHNzc2rVq3K\nzs5uaWmRSqWvvvrqqFGjSktLhb337t0jIuOWJKKhQ4eKf66oqCCiS5cuXbp0qfPB//rrry5P\n2tDQQES2trbiiHBTcdiwYSYzXVxcHj161JuoRDRu3LiRI0eePHkyPT29pqYmPz8/JibG2tpa\n2JudnZ2WlpaZmbllyxYisrGxmTt3blpamvFJZTIZEel0OpMlw78HnuIAhkRERGRkZHzwwQfX\nrl3T6/VarXbjxo3iXkdHRyKqq6szfonxpjAhMTGxy98WjX/WNqZQKIhIp9OJI8LXBTs/+/Hk\nyZNeRhWEh4dXVFQUFxd/++23BoNhwYIF4i5ra+tPP/20rKxMq9VmZGT4+voeOnQoNDSU53lx\njk6nk0gkQ4YM6fY9g5cZChpYodPpzp07FxERkZqa6uXlJXyJrrGxUZzg4eHBcdzly5eNX2W8\nKZfL5XK5yQQi2rlzZ0pKyvPO6+TkRM8W/ahRo4jI5Lm38vJy4Uf43kQVREREENHJkyePHj1q\nb28/ffp0Yfz27dubNm06f/68cK6lS5eeP39+2rRp169fv3//vvjyuro6BwcHqRS/5v57oaCB\nFR0dHU+fPhUuOAgeP368bds2IjIYDEQ0aNCgJUuW/Pzzz8LtOCKqra3dtWuX8UESEhIKCgpS\nU1PFkaysrLVr196+fft5550wYQIR/f777+LI+PHj/fz8jh079v333wsjer0+OTlZiNGbqAI/\nPz9nZ+fMzMwLFy5ERkaam5sL4xzHbdu2LSUlpb29XRhpb29/8uSJpaWl8GkhuHHjho+PT09v\nG7zU/rf3JAG6M2PGDCLy9/ffsGGDRqNRKBRvv/02EY0bN+6HH37geb6mpsbFxcXc3Dw8PDw+\nPt7Z2XnmzJlkdFmjsbFR+L6Jj4/PypUr58yZY2ZmNnz48MrKym7O6+rqavKIm/AcNMdx06ZN\ni4+PHzlypK2tbWBgoPgUR49RBQkJCcJfNPFxDsE777xDRB4eHhqNZsGCBUIvb9q0SZyg0+k4\njtu5c2ff3lEY2FDQwJD6+vqEhAQXF5fBgwdPnjw5MzOT5/mVK1fa2dmJD9LV1tbGxMQ4Ojp6\nenpu3LhR+Fff1q1bJx6kpaVl3bp1b7zxho2NjYeHx4oVK6qqqro/b2Ji4ogRIwwGg/GgVquN\niopyc3NzcnKKiIgoLCwUsvU+Ks/zubm5ROTs7Gzy5F9jY2NKSoqnp+egQYMUCsWkSZOys7ON\nA5w8eZKIbt269TfeRnhpSHijmxIAjCsoKLCysjL+TvaZM2fCwsL2799v/G3v/1ZJSYlKpcrP\nzxe+jfICFRYW+vj4rFq1SvgGTe/NmzdPp9MJ/Q7/WrgGDQPJqlWrfHx8xDtpPM/v37/f2to6\nPDy8L4f19PQMDQ395ptvXkDEZ2VnZxNRdHT0f/Wqurq6nJyc1atXv/A8MLDgJ2gYSHJycubM\nmePh4REeHi6Xy3Nzc8+dO/fxxx/v2LGjj0e+deuWr6/vtWvXlErlC4na2NhYVlYWFBQ0bNgw\n4ZsvvffRRx9ptdqcnJwXkgQGLhQ0DDC5ubmpqanXr1/nOG7s2LHx8fGLFi16IUfetWtXc3Pz\npk2bXsjRHBwc6urqJBLJsWPHIiMje/9CnU4XGhp69OjR/8H/3gKMQ0ED/CPS0tLq6+ujoqKE\nx/gA/gYUNAAAo3CTEACAUShoAABGoaABABiFggYAYBQKGgCAUShoAABGoaABABiFggYAYBQK\nGgCAUShoAABGoaABABiFggYAYBQKGgCAUShoAABGoaABABiFggYAYBQKGgCAUShoAABGoaAB\nABiFggYAYBQKGgCAUShoAABGoaABABiFggYAYBQKGgCAUf8H7jaQE+leSyAAAAAASUVORK5C\nYII=",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"plot(alb$age, alb$wt, xlab=\"age (days)\", ylab=\"weight (g)\", xlim=c(0,100))\n",
"lines(ages, pred.lin, col=2, lwd=2)\n",
"lines(ages, pred.log, col=3, lwd=2)\n",
"lines(ages, pred.vb, col=4, lwd=2)\n",
"\n",
"legend(\"topleft\", legend = c(\"linear\", \"logistic\", \"Von Bert\"), lwd=2, lty=1, col=2:4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next examine the residuals between the 3 models:"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO2dB1zUyNuAJ8lWFlhg6b33KiAg\nIIogFrAAFhSxoqDI2VEUe8GuZ0WRs57YG7azYzmsd2cv2M4OiJUOO1+2Ah7VLN/+CXl+mk1m\n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\nCyYdZgAAAABJRU5ErkJggg==",
"text/plain": [
"Plot with title “VB resids”"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"par(mfrow=c(3,1), bty=\"n\")\n",
"plot(alb$age, resid(alb.lin), main=\"LM resids\", xlim=c(0,100))\n",
"plot(alb$age, resid(alb.log), main=\"Logisitic resids\", xlim=c(0,100))\n",
"plot(alb$age, resid(alb.vb), main=\"VB resids\", xlim=c(0,100))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The residuals for all 3 models still exhibit some patterns. In particular, the data seems to go down near the end of the observation period, but none of these models can capture that behavior. \n",
"\n",
"Finally, let's compare the 3 models using a simpler approach than the AIC/BIC one that we used [above](#Allom_Exercises) by calculating adjusted Sums of Squared Errors (SSE's):"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\t- $lin
\n",
"\t\t- 0.00958
\n",
"\t- $log
\n",
"\t\t- 0.0056
\n",
"\t- $vb
\n",
"\t\t- 0.00628
\n",
"
\n"
],
"text/latex": [
"\\begin{description}\n",
"\\item[\\$lin] 0.00958\n",
"\\item[\\$log] 0.0056\n",
"\\item[\\$vb] 0.00628\n",
"\\end{description}\n"
],
"text/markdown": [
"$lin\n",
": 0.00958\n",
"$log\n",
": 0.0056\n",
"$vb\n",
": 0.00628\n",
"\n",
"\n"
],
"text/plain": [
"$lin\n",
"[1] 0.00958\n",
"\n",
"$log\n",
"[1] 0.0056\n",
"\n",
"$vb\n",
"[1] 0.00628\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n <- length(alb$wt)\n",
"list(lin=signif(sum(resid(alb.lin)^2)/(n-2 * 2), 3), \n",
" log= signif(sum(resid(alb.log)^2)/(n-2 * 3), 3), \n",
" vb= signif(sum(resid(alb.vb)^2)/(n-2 * 3), 3)) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The adjusted SSE accounts for sample size and number of parameters by dividing the RSS by the residual degrees of freedom. Adjusted SSE can also be used for model selection like AIC/BIC (but is less robust than AIC/BIC). The residual degrees of freedom is calculated as the number of response values (sample size, $n$) minus 2, times the number of fitted coefficients $m$ (= 2 or 3 in this case) estimated.\n",
"\n",
"The logistic model has the lowest adjusted SSE, so it's the best by this measure. It is also, visually, a better fit. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercises \n",
"\n",
"(a) Use AIC/BIC to perform model selection on the Albatross data as we did for the trait allometry example.\n",
"\n",
"(b) Write this example as a self-sufficient R script, with ggplot istead of base plotting "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Aedes aegypti fecundity\n",
"\n",
"Now let's look at a disease vector example. These data measure the reponse of * Aedes aegypti * fecundity to temperature. \n",
"\n",
"First load and visualize the data:"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAf1klEQVR4nO2deWBM1/7Av7NkT4SILAgSSyKW\n2oUQoalIRO0lakmJpQjea60Pr6+t11rap4+oX1uK0vKKaouWqqKo2htRhNqqtiDUlojM/c1d\n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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"aedes <- read.csv(file=\"../data/aedes_fecund.csv\")\n",
"\n",
"plot(aedes$T, aedes$EFD, xlab=\"temperature (C)\", ylab=\"Eggs/day\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(Model-Fitting-NLLS-TPCs)=\n",
"### The Thermal Performance Curve models\n",
"\n",
"Let's define some models for Thermal Performance Curves:"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [],
"source": [
"quad1 <- function(T, T0, Tm, c){\n",
" c * (T-T0) * (T-Tm) * as.numeric(TT0)\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Instead of using the inbuilt quadratic function in R, we we defined our own to make it easier to choose starting values, and so that we can force the function to be equal to zero above and below the minimum and maximum temperature thresholds (more on this below)."
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [],
"source": [
"briere <- function(T, T0, Tm, c){\n",
" c * T * (T-T0) * (abs(Tm-T)^(1/2)) * as.numeric(TT0)\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The Briere function is a commonly used model for temperature dependence of insect traits. See here [section](Miniproj-TPCs-Models) for more info. Unlike the original [model definition](Miniproj-TPCs-Models), we have used `abs()` to allow the NLLS algorithm to explore the full parameter space of $T_m$; if we did not do this, the NLLS could fail as soon as a value of $T_m < T$ was reached during the optimization, because the [square root of a negative number is complex](https://en.wikipedia.org/wiki/Square_root). Another way to deal with this issue is to set parameter bounds on $T_m$ so that it is can never be less than T. However, this is a more technical approach that we will not go into here. \n",
" \n",
"As in the case of the albatross growth data, we will also compare the above two models with a * straight line * (again, its a linear model, so we can just use `lm()` without needing to define a function for it). \n",
"\n",
"Now fit all 3 models using least squares. Although it's not as necessary here (as the data don't have as large values as the albatross example), lets again scale the data first: "
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"scale <- 20\n",
"\n",
"aed.lin <- lm(EFD/scale ~ T, data=aedes)\n",
"\n",
"aed.quad <- nlsLM(EFD/scale~quad1(T, T0, Tm, c), start=list(T0=10, Tm=40, c=0.01), data=aedes)\n",
"\n",
"aed.br <- nlsLM(EFD/scale~briere(T, T0, Tm, c), start=list(T0=10, Tm=40, c=0.1), data=aedes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercises \n",
"\n",
"(a) Complete the * Aedes * data analysis by fitting the models, calculating predictions and then comparing models. Write a single, self-standing script for it. Which model fits best? By what measure?\n",
"\n",
"(b) In this script, use ggplot instead of base plotting."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Abundance data as an example\n",
"\n",
"Fluctuations in the abundance (density) of single populations may play a crucial role in ecosystem dynamics and emergent functional characteristics, such as rates of carbon fixation or disease transmission. For example, if vector population densities or their traits change at the same or shorter timescales than the rate of disease transmission, then (vector) abundance fluctuations can cause significant fluctuations in disease transmission rates. Indeed, most disease vectors are small ectotherms with short generation times and greater sensitivity to environmental conditions than their (invariably larger, longer-lived, and often, endothermic) hosts. So understanding how populations vary over time, space, and with respect to environmental variables such as temperature and precipitation is key. We will look at fitting models to the growth of a single population here. \n",
"\n",
"(Model-Fitting-R-Population-Growth)=\n",
"\n",
"## Population growth rates\n",
"\n",
"A population grows exponentially while its abundance is low and resources are not limiting (the Malthusian principle). This growth then slows and eventually stops as resources become limiting. There may also be a time lag before the population growth really takes off at the start. We will focus on microbial (specifically, bacterial) growth rates. Bacterial growth in batch culture follows a distinct set of phases; lag phase, exponential phase and stationary phase. During the lag phase a suite of transcriptional machinery is activated, including genes involved in nutrient uptake and metabolic changes, as bacteria prepare for growth. During the exponential growth phase, bacteria divide at a constant rate, the population doubling with each generation. When the carrying capacity of the media is reached, growth slows and the number of cells in the culture stabilizes, beginning the stationary phase. \n",
"\n",
"Traditionally, microbial growth rates were measured by plotting cell numbers or culture density against time on a semi-log graph and fitting a straight line through the exponential growth phase – the slope of the line gives the maximum growth rate ($r_{max}$). Models have since been developed which we can use to describe the whole sigmoidal bacterial growth curve (e.g., using NLLS). Here we will take a look at these different approaches, from applying linear models to the exponential phase, through to fitting non-linear models to the full growth curve.\n",
"\n",
"Let's first generate some \"data\" on the number of bacterial cells as a function of time that we can play with:"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"A data.frame: 6 × 2\n",
"\n",
"\t | Time | N |
\n",
"\t | <dbl> | <dbl> |
\n",
"\n",
"\n",
"\t1 | 0 | 28577.04 |
\n",
"\t2 | 2 | 33915.52 |
\n",
"\t3 | 4 | 42120.88 |
\n",
"\t4 | 6 | 80370.17 |
\n",
"\t5 | 8 | 464096.05 |
\n",
"\t6 | 10 | 1502365.99 |
\n",
"\n",
"
\n"
],
"text/latex": [
"A data.frame: 6 × 2\n",
"\\begin{tabular}{r|ll}\n",
" & Time & N\\\\\n",
" & & \\\\\n",
"\\hline\n",
"\t1 & 0 & 28577.04\\\\\n",
"\t2 & 2 & 33915.52\\\\\n",
"\t3 & 4 & 42120.88\\\\\n",
"\t4 & 6 & 80370.17\\\\\n",
"\t5 & 8 & 464096.05\\\\\n",
"\t6 & 10 & 1502365.99\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A data.frame: 6 × 2\n",
"\n",
"| | Time <dbl> | N <dbl> |\n",
"|---|---|---|\n",
"| 1 | 0 | 28577.04 |\n",
"| 2 | 2 | 33915.52 |\n",
"| 3 | 4 | 42120.88 |\n",
"| 4 | 6 | 80370.17 |\n",
"| 5 | 8 | 464096.05 |\n",
"| 6 | 10 | 1502365.99 |\n",
"\n"
],
"text/plain": [
" Time N \n",
"1 0 28577.04\n",
"2 2 33915.52\n",
"3 4 42120.88\n",
"4 6 80370.17\n",
"5 8 464096.05\n",
"6 10 1502365.99"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"t <- seq(0, 22, 2)\n",
"N <- c(32500, 33000, 38000, 105000, 445000, 1430000, 3020000, 4720000, 5670000, 5870000, 5930000, 5940000)\n",
"\n",
"set.seed(1234) # To ensure we always get the same random sequence in this example \"dataset\" \n",
"\n",
"data <- data.frame(t, N * (1 + rnorm(length(t), sd = 0.1))) # add some random error\n",
"\n",
"names(data) <- c(\"Time\", \"N\")\n",
"\n",
"head(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note how we added some random \"sampling\" error using `N * (1 + rnorm(length(t), sd = .1))`. \n",
"\n",
"This means that we are adding an error at each time point $t$ (let's call this fluctuation $\\epsilon_t$) as a *percentage* of the population ($N_t$) at that time point in a vectorized way. That is, we are performing the operation $N_t \\times (1 + \\epsilon_t)$ at all time points at one go. This is important to note because this is often the way that errors appear – proportional to the value being measured."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's plot these data:"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAcDElEQVR4nO3dCXwTZcLH8alAAbmUV+Uqh+CL\nuiLybrse+6qLyusLQirLVRZppVxCBbULu6VSlltcwV0VRble0GUBd1VAWeR8AbmFIlexRcvZ\nQtuUo2fakuTZOZpkOnmeZNpMSp7p//f5mKYzT+aZ8rVJmmQSgSBTJ9zqHUDBDcAmD8AmD8Am\nD8AmD8AmD8AmD8AmLwjA1zQVOkq0i+iVFegbZ6/QN67Qpm9cqUPnxDf1DStwlOobaCvSN67C\nrnPiMte5G8EEtmoqICXaRfTKrusb57TrG1dg0zeulOic2KFv2HVSqm+grUDfOLtT58RlrnPX\nAKwKwABWAjCApQDMCMCMAEwPwACWAzCAlQAMYCkAMwIwIwDTAzCA5UIcOGvNX9797IKuiQFM\nLaSB8+a1FMSapeTqmBjA1EIZOO8lobJ+Of4nBjC1UAb+s+Buiv+JAUwthIGzW3qAb//J78QA\nphbCwP8UVC32OzGAqYUw8Dw18GS/EwOYGi/Ak/xODGBqIQz8DzXwx34nBjC1EAbOutPj2yjD\n78QAphbCwNY5HuDf+58YwNRCGThvoMu31xX/EwOYWigDW/OmN5N4G0/27wtgRiENbLWeWzFz\nxlK/D3LIEwOYWogD4+lCVgAGsByAAawEYABLAZgRgBkBmF6IAJ/8MHnOeurLMRTgvN2frT7q\nc4N+gDO+/vyAMjGAqQUV+Off1ZMeqOi4ijJQBl7YXlofucHHBn0C735OmqDTB3kAZhVM4PT/\ndD3UOM97oAjsec3VO+wN+gJe2ajy8oNzAMwomMDPeJ4s2OQ1UASe5ln/FXODPoB3NXJf/vcA\nZhRE4K9VT+c+6TXQVpDRxLP+IeYGfQCr/gcKPwZgekEEHqsCvs3r+VxbwQfqJ/T3sDbIBv7x\nNtXlZwGYXhCBn1MDfqsdaCsYr16/hLVBNvBX6svHAJhebQFv1g60FYxSr1/I2iAbeLX68tEA\npldLV9H1KFfRM9RAzL+U2MDfqS8/AcD0ggj8jerf/ymvgbaCvar1d15mbZANnBeh2sB6ANML\n5p9Jquto6p9JFs/6GcwN+rgXvcBz+cfwZxKjYAJndHX9+7/tPVAEzujsWv88++AyH8B57v9D\n7joKYEZBfagy8yX5ocpOqykDpYcqM/rIPOHjmVfQvh/JujIhXN7Ar1LxUCWrID/ZkPZR8twN\nPp5s2PGHIUNn+Xy2wfeTDanTBvUZ/2WeFcCs8HQhgJUADGApADMCMCMA0wMwgOUADGAlAANY\nCsCMAMwIwPQADGA5AANYCcAAlgIwIwAzAjA9AANYDsDVy6nNewk93eMM3qDR29O9weD9wPZg\nAmv/v8JvMCtOf4O10wKYFYDpAZg1MYCpARjASgAGsBSAGQGYEYDpARjAcgAGsBKAASwFYEYA\nZgRgegAGsByAAawEYABLAZgRgBkBmB6AASwHYAArARjAUgBmBGBGAKYHYADLARjASgAGsBSA\nGQGYEYDpARjAcgAGsBIVOHNe36heU9RvBwxgRlwCr2ypvKH31Dz3IgAz4hF4mfsjEya6lwGY\nEYfAPzb1fCjG166FAGbEIfAfVZ9q08u1EMCMOAT+lQo43PW5DABmxCFwe/Unj6VVLgQwIw6B\nH1QDX6hcCGBGHALHqHy7uhYCmBGHwOtUwNNcCwHMiENg64tu3/svuZYBmBGPwBdcn7F+X6p7\nGYAZ8QhszZnfReS9O/GcZxGAGXEJLHZy++Fc9fcAZsQrsDYAMwIwIwDTAzCA5QAMYCUAA1gK\nwIwAzAjA9AAMYDkAA1gJwACWAjAjADMCMD0AA1gOwABW4h+4Ys+8CUPG/OnrAgDT4h345Nim\nQuP23Tu3EOr12ewEsFd8A+cOq//C0lOy66V/jmwe9QOAtfENHJGco1IqXdLpqOe782OKKJLO\nVaPil0ufc/nd5CEp2QB2FaLAal4p2w332YqJlkIK8Nph+7+PW07I7sFbjiWPd1+na6cFMKtb\ndC+6Yv3G4qpLlo2nAdvjNou4MTaSsE783yPlCoArC2Hg4pHdiPNZQXjgsnrpsRGpEnDJRyNj\nZlmlBQ6bdHreIn5TZEm7aMmrshHttABmVfvAk4Q+ZKuQ+FWLBNXCwhGpP0nAU988dWZBgvTL\nfTpRWn402iGeDtp7LHrvxJiUC9Kiq1lZWZevaSoipdpF9MoL9I1z2vWNKyrTN66MFOob6NA3\nrJDonbhI3zi7U9+4gnLXOc/Na1XgTv0ImdiyjMTep1o47xMiAWf0F20dsVvdwLsHS6exm3ZH\njzv44+y4EvGbqZGRkb0IuuU53OeqAjeaTUiPgYTMb+RZtmN8uQy83dJfzLLW6XCcTHQ4HORI\ntHS/atDuQ5bT4l2ywTvFb9YkJSXNKtNUQW5qF9FzVOgbR5z6xlXY9Y2zk3J9A3XOW070Tqzz\nB3YSfeMqHO6zDOAug8nFsEWEjOngWbbIIvfe/jjl+1Tl+wkk0yJe05daTqRbpF/ehC9cF9De\nMuA2mFXt3wYnNXjj4fDswoXhsZ5lVy9cuPCdJS0/K/oiIfmTzhHXVbR9+A5C9g+xlcUcE++e\nDTwA4MpCGLgwOqze++SI0PVclcXyVTR5a1zq8eRXHW5gsjo+/cyYZYSsGH04fVqCHcCVhTAw\nITfEe1L5O0s1S2XgskXxQ+fmEg+w87NR8ctEcOfK0cPevuoerJ0WwKzwdCE9ALMm9gn8eJUA\nTIlv4CerBGBKfAMblnZaALMCMD0AsybGbTC1OgKM22C/8Q1sWNppAczqVgAXbl19pbjmL7gD\nsDW0gT9pIgi7VrX/B4Bp8Q/8jdBzjbArrXPYtwCmxD/wkz3sRNhFSro+DWBK/AM3m0kkYJJ8\nB4Ap8Q/cIVkBfr09gCnxDzwk4roEnNlqIIAp8Q98rnmnuULK9NbNfgIwJf6ByQn57Y+fPxaA\nL4BDGZiQ6weOBnTwKIBDGvjae+JdrI/n3yABpJ0WwKxqHzi/k/CReB9a6HgRwJT4B45v8elN\n8cveO18CMCX+gbtMVr5OiQAwJf6BW85Qvs6+E8CU+Ad+vpt0FAqxPfIcgCnxD7y/wcNLDxz+\nW+Rt/w9gSvwDk41dpQc6ItYE4AvgUAYmN7//+4q9tkB8ARyiwNkap9LrANbEN3D7pCsqpeJF\nHVRvowRgOb6BrbH1ey8+KR/7f2FtXNPHjtfQF8AhCkxI2rjmQsN2D3VsKtTvu7WmvAAOXWDx\nLta+P7/2u3EzNtLe1w7AJgA2JO20AGYFYHoAZk0MYGoABrASgAEsBWBGAGaEowvpAdgbGEcX\n+op/YBxd6DP+gXF0oc/4B8bRhT7jHxhHF/qMf2AcXegz/oFxdKHP+AfG0YU+MwEwji70Ff/A\nWZWfiHVhFYAp8Q8stNkjf/0ikIeotdMCmNUtAG5e/z0AMzMB8IqRQkwxgBmZAHgtWRz+i3QA\n0zMFMDnYrvmXAKZmDmCS21N4AsC0TAJMbv5eADAt/oFvVChfN70HYEr8AxuSdloAs6pd4F4v\niv+5AzAlvoGjeqo/eQXAlPgGNizttABmdYuAK9ZvLA4EuEiTjZRrF9G7WapvnNOhb5ytQt+4\nCqJ3Yn3DSojeiW36xjl0Tlx603XOA1gVuHhkN+J8VhAeuBwAcLEmEVi7iN7NUn3jnA5942wV\n+saJwDon1jeslOid2KZvnEPvxDdd50oYwJOEPmSrkPhVi4QAgLVXHLiKZlX7V9Gd+hEysWUZ\nib0PwJT4B240m5AeAwmZ3wjAnjKPnFPO8A/cZTC5GLaIkDEdAFzZ5bcfFISwRxbmWs0AnNTg\njYfDswsXhscCWOnMY4JSr/NmAC6MDqv3PjkidD0HYLmcXwuu+pkBmJAb4l9Q+TtLA/A1FfCH\ngqc1pgA2IO20PAM/oQLuB2DzATdSAbcFsOmAs1W+QhMAmw7Y2lIF3AXA5gN+UQU8EsDmA/7W\n4xt+wATABaM63KUEYKXX3MAzzfB38GghauRoOQAr5SWFy7wN37KaAbjVkABgTQlstR6c+Gjn\nxxN/kM5yD1whLAOwj7gHdtw9AcA+4h6YrGm01AFgZvwD979XaPpQDykAU+IfuLc7AFPiH9iQ\ntNMCmNWtAHae2775bGC3w9ppAczqFgBve0T6q/7hHQCmxT/wkfC2M79aP6dt+A8ApsQ/cO+O\nVulLfse+AKbEP3CrZOXr1NYApmQC4DcrgVsBmBL/wH065ktf8jv1ATAl/oFTw9vN3bB+brvw\nIwCmxD8w2d5d+jOpWwAfLgvgkAYmzswtWzLxQAc9MwAbkHZaALPCu+zQAzBrYrzLDrU6AmxY\n2mkBzKr2gYf/qHz97lUAU+IcuCg/X9iQL5X35u0ApsQ58AjVYRrPAJgS58DfLlggjF8gt+Q6\ngClxDizWM6BPxAKwUggDu9r+vwCmZALgz8cMl+p8D4Ap8Q+8WGh+u9AxIqz13wBMiX/gRx4t\nv9LoGNlz1yUAU+IfuOlbhEQuJ2TsMABT4h/47nmEDPoDIcvxVoa0+Ad++rFrJCWKkD/eAWBK\n/AP/S2hR/H3YK9PuwGuyaPEPTFY+X0RmNRDu/RHAlEwALFd4qiIAXwCHPHCAaacFMKvaBX68\nSgCmxDfwk1UCMCW+gQ1LOy2AWQGYHoBZE/sF7uYOwJT4B+4n1ecXQpPXAUyJf+DKdjYZDmBK\npgEmUwUrgL0zD/CKsBLqcgDrKfSB7ZYI1XflH4+NSTlLGeZcNSp+uV08893kISnZAHYVwsDy\nnax+fbsIiaqFs+IPps+IK/IGXjts//dxywnZPXjLseTxTgBXFsLAPZSeSCnzLLNajhNiG7TT\n+/c8brOIG2MjCesIyUm5AuDKQhiYVmaiTbw2Hr6OlHw0MmaWfOfLYZNOz1vEb4osaRcteVUu\noJ0WwKxuBXDeqplTP80m2g5ZzpCpb546syBB+vDw0/I1+NFo6Z0ABu09Fr13YkzKBWnR+rlz\n5/7Vpqmc3NQuomcv1zfO6dQ3rtyuc16id2Kd8xK9EwfvB2YBz2siHZnUeFbVpc4tAxaTjP6i\nrSN2qxt492DpNHbT7uhxB3+cHSfd754aGRkZyLHjyKA8b8JRFXil8OtNOdZtTwkr1EtzkmI2\nEbLd0l/MstbpcJxMdDgc5Ei0dL9q0O5DltPijfTgneI32adPn864rqmY2LSL6JUX6hvndOgb\nV1yub1wZ0TmxznkLSZm+geXFOud16pzY/QMXMIAf6yb/bpd1Vz8fnBHzzg3xy/445dtUi9wE\nkmkRr+lLLSfSLdIvb8IXrvHaWwbcBrOq9dtgZ8MU5cyMZp6F9hFL5a9Z0RcJyZ90jriuou3D\nd4jsQ2xlMccIKR54AMCVhS5wRYNXlDMJUZ6Fh6P3nRS7St4al3o8+VWHG5isjk8/M2YZIStG\nH06flmAHcGWhC0xebSS/U/TOxis8y9YpV8kbSdmi+KFzc4kH2PnZqPhlIrhz5ehhb191X0A7\nLYBZ3YKDz9oJT0+Y8LTQLkXsG1KztNMCmFXtA6s/Lleo6WcoaacFMKvaB7arq+kbGmqnBTAr\nfCgHPQCzJsaHclCrQ8D4UA6f8Q+MD+XwGf/A+FAOn5kAGB/K4Sv+gfGhHD7jHxgfyuEz/oHx\noRw+MwEwPpTDV7wDFx7ed83bC8Du+AZ2/ilcEOol3wQwM76BlwhtJ77WVngXwMz4Bv7lPVZC\nrra6H8DM+AZuOkY6HVcfwMz4BhamSqfTA39PB+20AGZVy8DyKypnAJgdgAEsFarAL64SGyCs\nkqs7wKnJfZ+L+TBLz1DOgatUV4BzJ4XLP2/E1zo2yDfw2irVFeCXXf9HN9zgfzDfwIalnTaU\ngT/zXGe1ueh3NIC5A/6V6lZpvt/RAOYN+OfbVMB9/G4QwLwB71Xfr+zud4MA5g34qBr4Cb8b\nBDBvwDn/oQJ+xe8GAcwbsPUVFfAOv6MBzB1wRhu3b6z/DQKYO2Drztau+9DZ/gcDmD9g6+kR\nzUTezn/N1TEWwBwCW63ZR/Yc17dBAHMJXFeeLgSw3wAMYCkAMwIwIwDTAzCA5QAMYCUAA1gK\nwIwAzAjA9AAMYDkAA1gJwACWAjAjADMCMD0AA1gOwABWAjCApQDMCMCMAEwPwACWAzCAlQAM\nYCkAMwIwIwDTAzCA5QBcvZzavJfQ0z3O4A0avT3dGwzeD+z+rF/8BlvxGwxgVwAGsBSAGQGY\nEYDpARjAcgAGsBKAASwFYEYAZgRgegAGsByAAawEYABLAZgRgBkBmB6AASwHYAArARjAUgBm\nBGBGAKYHYADLARjASgAGsBSAGQGYEYDpARjAcgAGsBKAASwFYEYAZgRgejJw7ifPR9z9y6QM\nH+MAzDHwqSjlownvWMseB2B+gc8+4Ppw0fANzHEA5hc4wfPxwB2ZHy8KYG6Bs5uoPgB6BWsc\ngLkF3qTyFUazxgGYW+BP1cDRrHEA5hZ4gxp4BGscgLkFPh+uAl7EGgdgboGtwzy+d59njQMw\nv8BpbdzA/8ccB2B+ga17OlY+zvEuexyAOQa2nk++XxBaDj3gYxyAeQYWy2be+ioBmHNgfwEY\nwEoABrAUgBkBmBGA6QEYwHIABrASgAEsBWBGAGYEYHoABrAcgEMbOC/tVC51HIDNAHz0pTsF\noXnMIco4AJsAeFXlC2MbLfUeB2AugI+/+8bkJWfVS1TAWxq6j1xY73VJANcGcM7a1+NeXXqB\nuVMHX25fv9mTH+RY6cAXXq4v8TWfnedZpgLu4XnNVdcc7WUBXAvAm7vK//r3sF4R9Xbl6x6j\n0qjA592CsZ6FHuBd6pfFfqO9MICDD7yhkeuffwF1lxa6ebpdpAEP9fh94F7oAX5XDTxDe2EA\n6wN2rhoVv9zuY4VmgGrGs3e5//nD91D2KKO5xyeJAvy9yq+t+28hD/B0NXCi9tIA1ge8dtj+\n7+OW+1ihGaCaUQ0wkLJHc1Xr78n1Bp6lBtziWuoBXqRe/7b20gDWBWyP20zI7hgbc4V2gGrG\nJ1T//s3zvPfIogY66A08Ur3+Y9dSD/CJ21Tr92svDWBdwOctVkKKLGmk5KORMbOs0iKHTb3C\nPcAbOEINRHkXhf9Wr/+XN/Bo9folrqWqe9H9Pat7eW0dwLqAj0Y7xNNBe8nUN0+dWZBQLH5z\nOlG9wj2AkKtZWVmXr3nqoga6dM2raPX6w+UF2vXz1eu/cy112t0D0tu51t59wmvrRWXeM9Iq\nI4X6Bjr0DSskeicu0jfO7tQ3rqDcde5GNYB3D5ZOYzdl9BdtHbFb3cCuFa6v4snUyMjIXqrL\n/lblcy9l2++r1rdxeK/PUh08dj91787+l7L2oXS/P0hdyvNv6R/4SLRTPB20e7ulv5hlrdPh\nOJnocDjcK1xfxZM1SUlJs8o8/V0FOKXMu8t3eNZPL3NUeA1I9Kz/wr2QOFUjSlb2f/CBfsuK\nKVuvsFMWUrKTcn0Dnf6HSJUTvRN7/8D0eYm+cRUO99lqAGdaxCv0UsuJ/XHK96kWuQnuFa6v\nrguobhRyH3X7tP2ZdqvxoXt990u0v4Mv93KtT/IsxNOFrIlrdi96+A5C9g+xZUVfJCR/0jni\nuop2rXB9pQBb01zvcnPXDvo+Lai8En7sNP2hypypzaTV7dVvsAFg1sQ1+zt4dXz6mTHLCHlr\nXOrx5FcdbmD3CtdXCrD13PjGok/9AcdYO3V4ZKcGdzz9ofQoBv3Jhkv/mPeXTVWe8AUwa+Ia\nPpL12aj4ZaJr2aL4oXNziQfYtcL1lQYsAv3r8w1ndO0fXtHBKIQfi5bCS3ZYAZgegFkTA5ga\ngAGsBGAASwGYEYAZAZgegAEsB2AAKwEYwFIAZgRgRiEGfENT1v6ftYvo2Qr1jTt0RN+4olJ9\n49L35+gbWKFvWM7+dH0DS4v0jTtySN+4Qpv7XDCBte2JXGrsBp8ZYOz25keeMnR7aZHvGLo9\nMuCZml8WwAAONAAHGoADC8CBZd2WaewGd+0zdnsZ2woM3V7BNoNf4rlvV80vWwvA6FYGYJMH\nYJMXfGDm0ac17EvpVdn9Ddvcp9LLfY3cR3mDRu1k+cdjY1LOBrKDwQdmHn1awxZNT01NPWrU\n1k5bpAd9DNxHZYNG7eSs+IPpM+KKAtjBoAMzjz6tadPXGLYp8sO8AZKHcftYuUGjdtJqOU6I\nbdDOAHYw6MDag0sDbtxOW6H/Ufo6vW6J5GHcPlZu0KidzEwUTZ3D1wWwg0EHVh1cakjO306K\ntiScNmpzP0keRu6jvEFDd/KQ5UwAOxh0YNXBpYaUP3DZdes7w274H6kr2cPIfZQ3aOBOOrcM\nWBzIDgYdWHVwqXGVDd5h0JZkDyP3Ud6gnCE7mZMUsymgHQw6sPbgUmNK+NKgDckeRu6jB9iI\nncyIeUe6GghgB4N/L1pzcGmg7U0oIKRk0GGDNid7GLmP8gaN2kn7COV5mgB2MPh/B2sOLg20\nwuHTfziVkkh5v4capfzCGbiP8gaN2snD0ftOil0NYAdr4ZGsqgeXBlzeW8Nfft+wP5QUYAP3\nUdmgQTu5Tnk3hY0B7CAeizZ5ADZ5ADZ5ADZ5ADZ5ADZ5ADZ5ADZ5pgce4X6zxPtIVC//463t\nL5M5wkHlm9ZReqa4EpEbyB4GN9MDf5mSkjJC+I14+hfS80X/42P/SKoLTKYMC2AHg5zpgaUO\nCnP0Dk2rf7n6wDn1jT00wsjqIvBNHy9PHNeb6AQuUZ3vM7bmOxfk6hTw4+JtcO8XZ99eL3J9\nReJ9zV+4KC47N7RT86c2ukbebL6YaIFTX2jd5oVU8UyPftKyft0I6Tno5C/vJYVT7mvcebL0\nFvhLm1bU7k+kv7oH3OzOOR+0C4/6zSdjhWhCTrSImDLzkbDFlSP3CSeJBnh7eIcpUzqEb6sC\n/GyHuKUkuv6g2f2EkeKyU4JhrzkzuroHHHaIkEVCpIOQ++8h5NmO18Xf255NKp/ae6eh9Jzc\nHPc97yji7N7WKt63bvOIUw0sLCHkRtgb4re9HxZPnI3n3ZqfzH91D7gLkX7jpAM8xzUl15U1\na4StysjX2kmnc4QRKXJNokimMmKmcE4N3ES8GS+u9/Al1wztJ9Tij1Ot6h5wD/FMuiC9OmJC\nU3LA9au6Whn5u4ekU/VV9BZhvXTuK2G7GvhB6dxfw8N6TNwmvRyOdB9Siz9OtarjwEeFlF1y\nV5SR4zpKp1WBN0jn1gubK4H7SMDKvevsRQNaCs9J9686j6m9n6Z61XHgAmGGtCJtVbEyckZT\n6VQNnCnMVRadJT36Sud+4QLOPyLecJe9If+Gt/hTLf441aqOA5P/aZ0p/knbub1TGblRuECq\nAju6tbsqYrbr5iBPdBFveXcJLuCdwkIiXXeLf2NdUn7NQ7G6DvxDs9aJyV3DPq8cWVh/LdH8\nmbS1QadpKZ3CtxMyVbCsSGnSxAVc2jV87IK4FvcXEfLPekYdaWF4dR2Y/DQgosVT37qH9n2Z\naB/oONy7Vas+0qGgZYntwoSXXnffBp99KaJh5/HZ4rmRvWvvh6lmdQK4Gm1pWuJrdbGVtrS0\n+be0xSERgDU9+nH1L7M0ymn8jhgUgDUd61ha3YuUdTLsDQeMD8Dajl6v7iVuhLAvgM0egE0e\ngE0egE0egE0egE0egE0egE0egE0egE3evwEtdSkF3lwRkwAAAABJRU5ErkJggg==",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"ggplot(data, aes(x = Time, y = N)) + \n",
" geom_point(size = 3) +\n",
" labs(x = \"Time (Hours)\", y = \"Population size (cells)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Basic approach\n",
"\n",
"The size of an exponentially growing population ($N$) at any given time ($t$) is given by:\n",
"\n",
"$\n",
"N(t) = N_0 e^{rt} ,\n",
"$\n",
"\n",
"where $N_0$ is the initial population size and $r$ is the growth rate. We can re-arrange this to give:\n",
"\n",
"$\n",
"r = \\frac{\\log(N(t)) - \\log(N_0)}{t} ,\n",
"$\n",
"\n",
"That is, in exponential growth at a constant rate, the growth rate can be simply calculated as the difference in the log of two population sizes, over time. We will log-transform the data and estimate by eye where growth looks exponential."
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAAC91BMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycp\nKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7\nOzs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExN\nTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5f\nX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBx\ncXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKD\ng4OEhISFhYWGhoaHh4eJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWW\nlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eo\nqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS2tra3t7e4uLi5ubm6urq7\nu7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzN\nzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f\n39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx\n8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///+JFy8uAAAACXBI\nWXMAABJ0AAASdAHeZh94AAAbjUlEQVR4nO3de2ATZboG8EGwiBQQjyu4XEUXFRTW4qq7XgA5\nLoitigiKtYKiAt7grHsE27VcZVk9Ku5yd5Ejiu5a64VrQUARESyg0Ipyyk2Q0lR6oW2a6/fH\n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\ndG4Qb0ECAAAAAElFTkSuQmCC",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"data$LogN <- log(data$N)\n",
"\n",
"# visualise\n",
"ggplot(data, aes(x = t, y = LogN)) + \n",
" geom_point(size = 3) +\n",
" labs(x = \"Time (Hours)\", y = \"log(cell number)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By eye the logged data looks fairly linear (beyond the initial \"lag phase\" of growth; see below) between hours 5 and 10, so we'll use that time-period to calculate the growth rate. "
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"0.732038333517017"
],
"text/latex": [
"0.732038333517017"
],
"text/markdown": [
"0.732038333517017"
],
"text/plain": [
"[1] 0.7320383"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"(data[data$Time == 10,]$LogN - data[data$Time == 6,]$LogN)/(10-6)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is our first, most basic estimate of $r$.\n",
"\n",
"Or, we can decide not to eyeball the data, but just pick the maximum observed gradient of the curve. For this, we can use the the `diff()` function:"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"- 0.171269154259665
- 0.216670872460636
- 0.646099642770272
- 1.75344839347772
- 1.17470494059035
- 0.639023867964838
- 0.44952974020198
- 0.181493481601755
- -0.000450183952025895
- 0.0544907101941003
- -0.0546009242768832
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 0.171269154259665\n",
"\\item 0.216670872460636\n",
"\\item 0.646099642770272\n",
"\\item 1.75344839347772\n",
"\\item 1.17470494059035\n",
"\\item 0.639023867964838\n",
"\\item 0.44952974020198\n",
"\\item 0.181493481601755\n",
"\\item -0.000450183952025895\n",
"\\item 0.0544907101941003\n",
"\\item -0.0546009242768832\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 0.171269154259665\n",
"2. 0.216670872460636\n",
"3. 0.646099642770272\n",
"4. 1.75344839347772\n",
"5. 1.17470494059035\n",
"6. 0.639023867964838\n",
"7. 0.44952974020198\n",
"8. 0.181493481601755\n",
"9. -0.000450183952025895\n",
"10. 0.0544907101941003\n",
"11. -0.0546009242768832\n",
"\n",
"\n"
],
"text/plain": [
" [1] 0.171269154 0.216670872 0.646099643 1.753448393 1.174704941\n",
" [6] 0.639023868 0.449529740 0.181493482 -0.000450184 0.054490710\n",
"[11] -0.054600924"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"diff(data$LogN)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This gives all the (log) population size differences between successive timepoint pairs. The max of this is what we want, divided by the time-step."
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"0.87672419673886"
],
"text/latex": [
"0.87672419673886"
],
"text/markdown": [
"0.87672419673886"
],
"text/plain": [
"[1] 0.8767242"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"max(diff(data$LogN))/2 # 2 is the difference in any successive pair of timepoints"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Using OLS\n",
"\n",
"But we can do better than this. To account for some error in measurement, we shouldn't really take the data points directly, but fit a linear model through them instead, where the slope gives our growth rate. This is pretty much the \"traditional\" way of calculating microbial growth rates – draw a straight line through the linear part of the log-transformed data."
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"Call:\n",
"lm(formula = LogN ~ Time, data = data[data$Time > 2 & data$Time < \n",
" 12, ])\n",
"\n",
"Residuals:\n",
" 3 4 5 6 \n",
" 0.21646 -0.38507 0.12076 0.04785 \n",
"\n",
"Coefficients:\n",
" Estimate Std. Error t value Pr(>|t|) \n",
"(Intercept) 7.9366 0.5350 14.835 0.00451 **\n",
"Time 0.6238 0.0728 8.569 0.01335 * \n",
"---\n",
"Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n",
"\n",
"Residual standard error: 0.3256 on 2 degrees of freedom\n",
"Multiple R-squared: 0.9735,\tAdjusted R-squared: 0.9602 \n",
"F-statistic: 73.42 on 1 and 2 DF, p-value: 0.01335\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"lm_growth <- lm(LogN ~ Time, data = data[data$Time > 2 & data$Time < 12,])\n",
"summary(lm_growth)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Npw we get $r \\approx 0.62$, which is probably closer to the \"truth\". \n",
"\n",
"But this is still not ideal because we only guessed the exponential phase by eye. We could do it better by iterating through different windows of points, comparing the slopes and finding which the highest is to give the maximum growth rate, $r_{max}$. This is called a \"rolling regression\". \n",
"\n",
"Or better still, we can fit a more appropriate mathematical model using NLLS!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Using NLLS\n",
"\n",
"For starters, a classical, (somewhat) mechanistic model is the logistic equation:\n",
"\n",
"$$\n",
"N_t = \\frac{N_0 K e^{r t}}{K + N_0 (e^{r t} - 1)}\n",
"$$(eq:logist_growth_sol)\n",
"\n",
"Here $N_t$ is population size at time $t$, $N_0$ is initial population size, $r$ is maximum growth rate (AKA $r_\\text{max}$), and $K$ is carrying capacity (maximum possible abundance of the population). Note that this model is actually the solution to the differential equation that defines the classic logistic population growth model (eqn. {eq}`eq:logist_growth`). \n",
"\n",
"```{note}\n",
"The derivation of eqn. {eq}`eq:logist_growth_sol` is covered [here](Logistic-Population-Growth). But you don't need to know the derivation to fit eqn. {eq}`eq:logist_growth_sol` to data. \n",
"```\n",
"\n",
"Let's fit it to the data. First, we need to define it as a function object:"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
"logistic_model <- function(t, r_max, K, N_0){ # The classic logistic equation\n",
" return(N_0 * K * exp(r_max * t)/(K + N_0 * (exp(r_max * t) - 1)))\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now fit it:"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"Formula: N ~ logistic_model(t = Time, r_max, K, N_0)\n",
"\n",
"Parameters:\n",
" Estimate Std. Error t value Pr(>|t|) \n",
"r_max 6.309e-01 3.791e-02 16.641 4.56e-08 ***\n",
"N_0 3.317e+03 1.451e+03 2.286 0.0481 * \n",
"K 5.538e+06 7.192e+04 76.995 5.32e-14 ***\n",
"---\n",
"Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n",
"\n",
"Residual standard error: 119200 on 9 degrees of freedom\n",
"\n",
"Number of iterations to convergence: 12 \n",
"Achieved convergence tolerance: 1.49e-08\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# first we need some starting parameters for the model\n",
"N_0_start <- min(data$N) # lowest population size\n",
"K_start <- max(data$N) # highest population size\n",
"r_max_start <- 0.62 # use our estimate from the OLS fitting from above\n",
"\n",
"fit_logistic <- nlsLM(N ~ logistic_model(t = Time, r_max, K, N_0), data,\n",
" list(r_max=r_max_start, N_0 = N_0_start, K = K_start))\n",
"\n",
"summary(fit_logistic)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We did not pay much attention to what starting values we used in the simpler example of fitting the allometric model because the power-law model is easy to fit using NLLS, and starting far from the optimal parameters does not matter too much. Here, we used the actual data to generate more realistic start values for each of the three parameters (`r_max`, `N_0`, `K`) of the Logistic equation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, plot the fit:"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"timepoints <- seq(0, 22, 0.1)\n",
"\n",
"logistic_points <- logistic_model(t = timepoints, \n",
" r_max = coef(fit_logistic)[\"r_max\"], \n",
" K = coef(fit_logistic)[\"K\"], \n",
" N_0 = coef(fit_logistic)[\"N_0\"])\n",
"df1 <- data.frame(timepoints, logistic_points)\n",
"df1$model <- \"Logistic equation\"\n",
"names(df1) <- c(\"Time\", \"N\", \"model\")\n",
"\n",
"ggplot(data, aes(x = Time, y = N)) +\n",
" geom_point(size = 3) +\n",
" geom_line(data = df1, aes(x = Time, y = N, col = model), size = 1) +\n",
" theme(aspect.ratio=1)+ # make the plot square \n",
" labs(x = \"Time\", y = \"Cell number\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That looks nice, and the $r_{max}$ estimate we get (0.64) is fairly close to what we got above with OLS fitting. \n",
"\n",
"Note that we've done this fitting to the original non transformed data, whilst the linear regressions earlier were on log transformed data. What would this function look like on a log-transformed axis?"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\nbNgwiqJ++OEHQsi77747fPjwc+fOEUJGjhzp7Ox8+PDhu3fvzpw5s8IL79+/P27cuIULF27f\nvj0+Pn7BggW9e/c+f/58cHAw15hgGJhbr9eHh4e3aNFi3759d+7c4Z5av3698d7Gjh2r1+t3\n7doll8s//fTTF1988dSpU3K5PDQ01MvLa+/evXl5ee+88879+/dNf5zRo0e7urr+8MMPFEV9\n8MEHM2bMOHfuXJVVmfjghJC5c+d++umnvr6+UVFRr7322ogRI2QyWe2OMKlpG3RhYWFycnJ2\ndvbAgQPt7OwUCoVFJtdohK5f0d+7wy1eU2uP331gevOkpKS8vDz+szcB1JuEhISUlJTMzMy2\nbdsSQn766ScvL6/ExESKotLS0h4+fOji4tK7d+979+69++67xi+8deuWRqN58803vby8evTo\n0alTp1atWlX5FkeOHLl161ZcXJyTk1NQUJBWq01MTDTe4OzZsydPnnzy5An3b2fnzp1ubm4x\nMTFisTgvLy82Ntbe3p4QIpfLX3zxRROfhWXZ6dOnv/zyy56enoSQrKyshQsX1vSDh4SEEELm\nzJkzbtw4QsiqVauio6MfPnzo5eVl1gGtSg0Cetu2bYsWLSouLiaEnDhxIisra9myZevXr3/l\nlVdq/faNk07H/n6obJmivrh5x4xX6O7du4eAhgbk+vXrnp6eXEgRQtzd3d3d3a9fv67Var28\nvFxcXLj1vXv3rvDCoKCgPn36+Pn5DRs2LCwsbMyYMW3atKnyLdLT0/39/Q3TPL7++uuvv/56\nhRo0Go3xhTutVvvnn38WFhb26tWLS2dCSGhoqOlTSYqi5syZs3///q+//vrGjRtxcXEMw9T0\ng3MB3b17d2694QjwYW5A//rrr7Nnzx4wYMCsWbMmTpxICOnWrZtYLB4/frydnd3QoUP5l9Jo\niNNTSc5Tblnr2znzrFm/Q/FbBGqE9QvQPW82y+fvpFXr2r+2UqsdTdNarVaj0Rh/mSvPkCeX\ny0+dOnXq1Knffvttx44dixcv/vHHH6sc2FKj0ZgISkKIg4ODq6vro0ePKqyfN2+ecQ3VTThp\nmLytqKgoODhYJBJFRka+8cYbo0aNWrx4cXVvWt0H55b5T/FszNyAXrduXdeuXY8dO8YwDBfQ\nnTp1Sk9P79at29q1axHQBpTG+MZuRhU80Dvp7IkTJ0y/SiwWe3h41HVt0Jjo2/uS9r5WLMDX\n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\nuXGkGr2EhITDhw8br1nSp4eTrKzD2afnU9NuZXzxxRfWKA0AGidTAT1w4MDz58+bmFbrm2++\nSUtLq6NhnISmwngjre1s3w4sm339qbLks/Op3DY8u3wBABiYCuilS5f6+flNmTLl//7v/yp0\nWS0oKIiKinr77bc9PT25m78bqLy8vHv37pkzitCVK1eMH77fv49MVHb/yOrT5wrVakJIVlYW\n/wGJAAA4pi4SSqXSX375ZcaMGUuWLImKivL39/fw8KAoKjMz88qVKwUFBX379t2+fXv931LI\nn1ar/f7777/++utr165xazp06PDGG29MmzatupcY32/dqZnzJP+O3HJmXv7XaVeq3AwAgI/n\n3Eno7e0dHx8fExOzffv2GzdunD59mmVZNze3Xr16TZgwYdq0aQ1xoqbCwsKpU6cmJCQYr7x5\n8+ayZcv27du3d+/eKm+tbt269e3bt7nlqNB+TPkH/+Bksqb8Vh2JRPLCCy/UZe0A0ISYNRZH\nREREREQEIUSpVGq12gYxTJ8Js2fPrpDOBsnJyRMnToyOjq7c9TssLIx7Vf82rYZ7eXArL/71\n5Ofrfxi2CQ0NFf9zEDsAgFoz1Qb9559/VlijUChMpHNJSUmF0coF6PDhw7///ruJDeLj42Nj\nYyuvnzx5MjdN7+rQfoaVKxJOGV8TnD9/vqXqBAAwFdB9+vR57733/vrrr+fupbi4eMuWLR07\ndrxz547lajOXUqk8c+bM/v37L1y48NxO2d9///1zd1jllJF2dnZbt26N8O3Qu5Urt+bonfsn\n7mUZNliyZEmvXr1qUjgAgCmmmjhSUlIWLlzYpk2bwYMHjx07NigoqFOnTsa//e/fv3/mzJlD\nhw7Fxsb6+fkdOHAgICCg7mv+25MnT1avXh0TE2MYh8ze3n7q1KkLFiyo7tJlSkpKlevN2WZA\nSEhY5FhSUkwI0bPsvxNPc+ttbGxWrlz55ptv1uYzAABUw1RAN2vWbOfOne+9996mTZuWLFlS\nUFAglUqbNWvm6OhYVFSUk5NTVFTEzecYGxs7ZMiQeiuac+PGjcjIyEePHhmvLCgo+Oyzz44e\nPRoTE1PlSI/mjHdeUlKi1Wor3+MuTk+TlRRzy2dL1M5+nSP6OwUGBo4dO7Z58+a1/RwAAFV7\n/kXCTp06bdmyZdOmTefOnUtKSnr48OHTp08dHBxcXV179OgRGhpqlRHKi4qKXn311QrpbHDt\n2rVp06bt27evcieTFi1a3L171/TOmzVrVjmdKa1Gerr80iLDBMxf8qODYy0qBwAwk7kzqohE\noqCgoKCgoDqtxnzbtm178OCBiQ3OnDlz4MCB0aNHV1g/YMCA//3vf6Z3XuW9kZILZ6misrNv\nddceeqQzANSxhjpjaYUbr83fZubMmc/tCffWW29VXFWiFJ8ra3FmpVJ132CzqgQA4MHcM+hu\n3bpVuV4sFtvb2wcEBMyfP79t27aWK8wUtVptuGfEhKtXr1Ze6ePjs2LFig8++KC6V/373/+u\nfKlTmpxEqUq5ZU3PIFauqEG5AAC1Yu4ZdI8ePf7666+0tDSuIx1N0/fu3UtLS8vJyXn69OmX\nX37Zvn37Y8eO1WWpf1OpVOaMSVRaWlrl+jlz5qxZs6byzKcSieT//b//t3Llygrrqfw8cWrZ\nqH6sja26R5+alwwAUGPmBnR4eHh2dva2bduePn2ampp68eLFJ0+efP311/n5+V999dWjR4/G\njh07derU+hnLzc7OztHx+U3AxvMoVjBjxozk5ORFixYFBQW1b9++b9++8+fPP3PmzLx58ypf\nV5SdSqB0Wm5ZFRTC4l5BAKgX5jZxrF+//o033pg5c+bfrxSJpk2bdu7cuZUrV/72229r1qxp\n167dnTt32rVrZ2I/O3fujIyMlMlk3EOWZb///vv4+Hi9Xt+/f//XX3+9ynEwKhs8ePBzm6EH\nDx5s4tnWrVu/9957z30jJvuJ6Nplblnv5KzpXHVTDwCAxZl7Bn3jxo0qm5jd3d3PnTtHCOFu\ng753756JnVy/fn3Pnj0ajcaw5qeffjp06ND06dPfeuuthISEb7/91sx63nnnHYlEYmIDZ2dn\nE0PTmU+ScJyU/yxQB4cR8/5+AADwZ25ABwYGxsbGVhhLs7S0NCYmplOnToSQs2fPkupbFdLS\n0j766KMKzbs6ne7QoUNTpkzp27dvz549p0+f/vvvv1fXcFyBr6/vf/7zn+qelUgkW7duNacZ\nxDTmwT1R5q2yal1bado3ibljAEAgzG3iWLVq1eDBg3v06DFz5swOHTqwLHvr1i1uDNLjx4+f\nOHFi3Lhx/fv3r659QyqVduzY0cXF5cCBA4aV3PD23bt35x4GBgYqlcrMzEwu8Z9r+vTpTk5O\ny5Yty83NNV7v4eHx+eef9+3b18yPVi2WlSX+fdlTFTqINMCxVQGg4TI3oIODgw8fPrx06VLj\nAdt8fX2PHDkSEhLy5ZdfBgYG7t69u7qX+/r6+vr6ZmRkGAd0bm4uRVHOzmUzYdva2kqlUuMZ\nSa5cuWIYqkkikVTu6jdx4sSRI0fu37///PnzhYWFzs7O/fr1Gz58uOnWDxNomqZpmuvgQd+4\nSv/5kFuv9/IR+XQ092ARwo1YIpVKeV41FYlEFEVV7nBSCxbZD8MwYrG48lisNcK9nGEY/vVQ\nFFXr/9cG3F2j/MeJpSjKUv+zADjmZw4JCwu7cOFCZmZmRkaGWq329vb28fHhrunNmDHD+Pqh\nmQoLC6VSqfG/drlcXlBQYHgYHR195MgRbtnJyeno0aOVd2JnZzd79uzZs2fX9N1NsLOzI3q9\nOuFYWbhSlGzky1TNp7u31E3wlgpou5p/hMosNeC1WCy2yK4s8qEIITKZzHDtmg9L1QNAahTQ\nhBCWZWma5k6jpFKpoUda7eZVsbGx4Xo0G15eUlJiPArdSy+9FBgYyC1LpdIK8yIak0gkEomk\ntLRUq9XWohID7vS5pKSETjnPPH3CrdT7dym2dyDVv3tlMplMJBIVFxfzPIMWi8UURT13DNXn\nsrGxYVlWqVTy3I9UKtVqtTqdjs9OaJpWKBQajcYwBmGtKRSKkpIS/gdZKpXy//JQFCWXyysc\nZKuMVAONRg0C+tixY4sXL7506ZJhTefOnT/99NOwsLDavbeTkxPLsnl5eU5OToSQkpISlUrF\nLXN69uzZs2dPw8Ps7OzqdsX91FWr1TyzjPvboyoqtEk4ZlhV0jdEb96lSwPud3dpaSn/juE0\nTZt54dQELqD570ckEqnVauN+OLXbiUKh0Ol0/OuRy+X8DzLXLsH/Dwb3173Ch0JAAx/mNiZe\nvHhxxIgRT58+XbVqVWxs7N69e6OionJycoYNG5aWlla793Z3d3dwcEhNTeUepqWlyeVyHx+f\n2u3NgsQYFwkABMDcM+iVK1e2bNnywoULhkGWX3rppdmzZ3fv3n3lypW//vprLd6bYZjhw4fv\n3r3bzc2NpukdO3aEh4dbpB2QD1ZZLDmPcZEAwPrMDejU1NRp06ZVGALfxcXltdde+/rrr2v9\n9hMmTNBqtZ988oler+/Xr9/UqVNrvSuLSThOlRrGReqLcZEAwFpq0AZd3ZVA81sAvb299+/f\nX2GfkydPnjx5svll1CkqP489W376jHGRAMCqanAn4XfffZeTk2O8Micn57vvvjN0tGgEJKdO\n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\nRtgAAAAASUVORK5CYII=",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"ggplot(data, aes(x = Time, y = LogN)) +\n",
" geom_point(size = 3) +\n",
" geom_line(data = df1, aes(x = Time, y = log(N), col = model), size = 1) +\n",
" theme(aspect.ratio=1)+ \n",
" labs(x = \"Time\", y = \"log(Cell number)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The model actually diverges from the data at the lower end! This was not visible in the previous plot where you examined the model in linear scale (without taking a log) because the deviation of the model is small, and only becomes clear in the log scale. This is because of the way logarithms work. Let's have a look at this in our Cell counts \"data\":"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAAC6FBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycpKSkq\nKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg6Ojo7Ozs8PDw9\nPT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERGRkZISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBR\nUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJj\nY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFzc3N0dHR2dnZ3\nd3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4OEhISFhYWGhoaHh4eIiIiJ\niYmKioqLi4uMjIyNjY2Pj4+QkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqbm5uc\nnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2u\nrq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6/v7/A\nwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS\n0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk\n5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX2\n9vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///9fr2yFAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAVoElEQVR4nO3dbWBU1Z3H8QvFUCwi0laKj8Vu6cr6FJ+qLmopVIdVFENpQMCgPCgWu4rg\nitgQy1pQCwqiDVVXtq6Nqy6Vp2VBfEAIgQIRaAFjeQo3QDJJmMzjebtzZ+bMuXM5Z+7knhnm\n3Mvv+yKZ3Lk5/umnuZPMTe5oBHk6rdgDoMIGYI8HYI8HYI8HYI8HYI8HYI8HYI8HYI/nHFjP\nrIkEddk6mmVXOEY6pKcInpBd4TgJSE8ROi43AYCFARjANgFYEIBZAOYGYDoBgIUBGMA2AVgQ\ngFkA5gZgOgGAhQEYwDYBWBCAWQDmdgYCr/7lz4ZM+fCUCQAszFXA+/5FS3T7l5YJACzMTcBf\nX6Wl6r8ncwIAC3MT8EQt3T2ZEwBYmLrAB37ao2uXbw7an96wt4QBa5szJgCwMGWBl3ZNSnaZ\nT7dUm3y1uRkTAFiYqsDvM8ulqU1zzMBTMyYAsDBVgc9mlmcdSW6aZwZ+ImMCAAtTFPhNzuF4\npXnbmxkTyAP7M2slYb9soXbZFfIxRVh6ijYSkp+izbJhkBnziuS2lh+yTX0bTTu35gH4ZGYB\nEjkpW6RDdgXvTBENWDb80AzcL7XR9Lj8esbeeQC2HEFwiGYV5BB9tRn4B3Trv/MegfEYnDVF\ngWeYgSvSm5ffZPzwdM071gkALExR4ANdmW+XfaY76j94f9upEwBYmKLA+sMMeLT9BAAWpiqw\nPoT63pLDBAAWpiywvrCnwXv287lMAGBhBQbeNGFA7353vmW3Bv9s0v63lu7jbT91AgALKyzw\nc6kTQEP2C3dJhF/Z4aY88PPpb5QGHc66BoC5qQ68owf7Vjj7QymAuakO/KTpyYoBWdcAMDfV\ngW81Px21K9saAOamOvBAM/DH2dYAMDfVgW8xA+/MtgaAuakO/JjJ9/tZ1wAwN9WBt5h+DfKZ\nrGsAmJvqwPpTad9rDmZdA8DclAc++quU7/VfinZJBmBuygPr+qq7+mgl179wxGYNAHNzAXC8\nr3NYA8Dc3AGcSwDmBmA6AYCFARjANgFYEIBZAOYGYDoBgIUBGMA2AVgQgFmnF3hpIP7mXV+8\nuwBsn+uA633++NuFT9fW1m4BsH0uA66rGp4AfvrtjM2WJQHMchlwfc3iBPDEtQE/gHPJZcCE\n/NUAjt392DDf5Hrj44P19fW7T2TWTEInZAu2yq7QkocpQn7ZFfwkKD1FuEXms1scADfds+SE\nPndUc/zjGaWlpYNz+URUpKLpW7kDJ+oYsSb+9r3Kysp5gcw6SDQgWyQou0IHiUhPEVVjig6p\nT3cKTCa/S29Zjvp4DGa58zF4w+T4gb393k0Ats2dwP7yp+t2zJyWPrpblnQ18P/cd3Hv7/9i\nTfKDMxWYHJ1Tfv8L7Acly5IuBj40NvWbjlMbjQ/PQGBuliVdDDw6/bvKiet5AthjwO+a/pxk\ntQ5gzwEPNQGP1AHsOeDeJuCLdQB7DfiQ+S86z9YB7DVgvacJ+EIdwJ4Dvt0EbLx0CYA9BvwH\nE/D7OoA9B6zfmfYtNz4EsNeAv6bCIxN/kw1grwHrevWtPbRvDf5j8gMAew84XkP6FoA9CcwC\nMIBtArAgALMAzA3AdAIACwMwgG0CsCAAswDMDcB0AgALAzCAbQKwIACzAMwNwHQCAAsDMIBt\nArAgALMAzA3AdAIACwNwsuOZnSCh47IF/bIrNJOg9BShFtkVWoo+RXMegEOWSMy6pdNFw7Ir\nhEnUI1PEpKYI5gHYclDAIZrljUO0ZUkAswAsCMAsAHMDMJ0AwMIADGCbACwIwCwAcwMwnQDA\nwgAMYJsALAjALABzAzCdwJXAn7309IK6rHsAmE7gQuCPbzIus9Dljq1Z9gEwncB9wB/Q61l9\nd4N4JwDTCVwHvLtP+lo4/Q8K9wIwncB1wFNNV7N6TrgXgOkErgO+1AR8k3AvANMJ3AZ8sIsJ\n+HzhbgCmE7ga+DvC3QBMJ3AbsH6RCfgG4V4AphO4DvghE/Bs4V4AphO4Dnj7Oeyizg3CvQBM\nJ3AdsP5295Rvr1XinQBMJ3AfsP7RwITvjz/Lsg+A6QQuBNYbl896tHJt1l0ATCdwI3AOAZhO\nAGBhAAawTe4DXpp6weGvJrQC2D7XAdenXiA69IjPi68+aumMA66rGp5yXTIJwLnkMuD6msVJ\n161jawGcSy4Dpi8Q7R9b+1cA55JLgateSd0gM0pLSwfn8omoSEXTt3IHXjMpSIEXlJeXTwpb\nIjHrlk4Xi0gvocQUERIt8hQhB8ALfYnm042WgwIO0Sx3HqKPNTQ0rPftbAKwbe4EzrgB4GwB\nWBCAWXgumhuA6QQAFgZgANsEYEEAZgGYG4DpBAAWBmAA2wRgQQBmAZgbgOkEABYGYADbBGBB\nAGYBmBuA6QQAFgZgANsEYEEAZgGYG4DpBAAWBmAA2wRgQQBmAZgbgOkEABYGYADbBGBBAGYB\nmBuA6QQAFgZgANsEYEEAZgGYG4DpBAAWBuBkMUunbul08itgimQRfAWLw1cwgG0CsCAAswDM\nDcB0AgALAzCAbQKwIACzAMwNwHQCAAsDMIBtArAgALMAzA3AdAIACwMwgG0CsCAAswDMDcB0\n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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"ggplot(data, aes(x = N, y = LogN)) +\n",
" geom_point(size = 3) +\n",
" theme(aspect.ratio = 1)+ \n",
" labs(x = \"N\", y = \"log(N)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you can see the logarithm is a strongly nonlinear transformation of any sequence of real numbers, with small numbers close to zero yielding disproportionately large deviations."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{note} \n",
"You may play with increasing the error (by increasing the value of `sd` in synthetic data generation step above) and re-evaluating all the subsequent model fitting steps above. However, note that above some values of `sd`, you will start to get negative values of populations, especially at early time points, which will raise issues with taking a logarithm.\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The above seen deviation of the Logistic model from the data is because this model assumes that the population is growing right from the start (Time = 0), while in \"reality\" (in our synthetic \"data\"), this is not what's happening; the population takes a while to grow truly exponentially (i.e., there is a time lag in the population growth). This time lag is seen frequently in the lab, and is also expected in nature, because when bacteria encounter fresh growth media (in the lab) or a new resource/environment (in the field), they take some time to acclimate, activating genes involved in nutrient uptake and metabolic processes, before beginning exponential growth. This is called the lag phase and can be seen in our example data where exponential growth doesn't properly begin until around the 4th hour.\n",
"\n",
"To capture the lag phase, more complicated bacterial growth models have been designed. \n",
"\n",
"One of these is the modified Gompertz model (Zwietering et. al., 1990), which has been used frequently in the literature to model bacterial growth:\n",
"\n",
"$$ \n",
" \\log(N_t) = N_0 + (N_{max} - N_0) e^{-e^{r_{max} \\exp(1) \\frac{t_{lag} - t}{(N_{max} - N_0) \\log(10)} + 1}}\n",
"$$(eq:Gompertz)\n",
"\n",
"Here maximum growth rate ($r_{max}$) is the tangent to the inflection point, $t_{lag}$ is the x-axis intercept to this tangent (duration of the delay before the population starts growing exponentially) and $\\log\\left(\\frac{N_{max}}{N_0}\\right)$ is the asymptote of the log-transformed population growth trajectory, i.e., the log ratio of maximum population density $N_{max}$ (aka \"carrying capacity\") and initial cell (Population) $N_0$ density."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{note}\n",
"Note that unlike the Logistic growth model above, the Gompertz model is in the log scale. This is because the model is not derived from a differential equation, but was designed * specifically * to be fitted to log-transformed data.\n",
"```\n",
"\n",
"Now let's fit and compare the two alternative nonlinear growth models: Logistic and Gompertz. \n",
"\n",
"First, specify the function object for the Gompertz model (we already defined the function for the Logistic model above):"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [],
"source": [
"gompertz_model <- function(t, r_max, K, N_0, t_lag){ # Modified gompertz growth model (Zwietering 1990)\n",
" return(N_0 + (K - N_0) * exp(-exp(r_max * exp(1) * (t_lag - t)/((K - N_0) * log(10)) + 1)))\n",
"} "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again, note that unlike the Logistic growth function above, this function has been written in the log scale. \n",
"\n",
"Now let's generate some starting values for the NLLS fitting of the Gompertz model. \n",
"\n",
"As we did above for the logistic equation, let's derive the starting values by using the actual data: "
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [],
"source": [
"N_0_start <- min(data$LogN) # lowest population size, note log scale\n",
"K_start <- max(data$LogN) # highest population size, note log scale\n",
"r_max_start <- 0.62 # use our previous estimate from the OLS fitting from above\n",
"t_lag_start <- data$Time[which.max(diff(diff(data$LogN)))] # find last timepoint of lag phase"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" * So how did we find a reasonable time lag from the data? * \n",
"\n",
"Let's break the last command down:"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"- 0.171269154259665
- 0.216670872460636
- 0.646099642770272
- 1.75344839347772
- 1.17470494059035
- 0.639023867964838
- 0.44952974020198
- 0.181493481601755
- -0.000450183952025895
- 0.0544907101941003
- -0.0546009242768832
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 0.171269154259665\n",
"\\item 0.216670872460636\n",
"\\item 0.646099642770272\n",
"\\item 1.75344839347772\n",
"\\item 1.17470494059035\n",
"\\item 0.639023867964838\n",
"\\item 0.44952974020198\n",
"\\item 0.181493481601755\n",
"\\item -0.000450183952025895\n",
"\\item 0.0544907101941003\n",
"\\item -0.0546009242768832\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 0.171269154259665\n",
"2. 0.216670872460636\n",
"3. 0.646099642770272\n",
"4. 1.75344839347772\n",
"5. 1.17470494059035\n",
"6. 0.639023867964838\n",
"7. 0.44952974020198\n",
"8. 0.181493481601755\n",
"9. -0.000450183952025895\n",
"10. 0.0544907101941003\n",
"11. -0.0546009242768832\n",
"\n",
"\n"
],
"text/plain": [
" [1] 0.171269154 0.216670872 0.646099643 1.753448393 1.174704941\n",
" [6] 0.639023868 0.449529740 0.181493482 -0.000450184 0.054490710\n",
"[11] -0.054600924"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"diff(data$LogN) # same as what we did above - get differentials"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"- 0.0454017182009707
- 0.429428770309636
- 1.10734875070745
- -0.578743452887371
- -0.535681072625511
- -0.189494127762858
- -0.268036258600224
- -0.181943665553781
- 0.0549408941461262
- -0.109091634470984
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 0.0454017182009707\n",
"\\item 0.429428770309636\n",
"\\item 1.10734875070745\n",
"\\item -0.578743452887371\n",
"\\item -0.535681072625511\n",
"\\item -0.189494127762858\n",
"\\item -0.268036258600224\n",
"\\item -0.181943665553781\n",
"\\item 0.0549408941461262\n",
"\\item -0.109091634470984\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 0.0454017182009707\n",
"2. 0.429428770309636\n",
"3. 1.10734875070745\n",
"4. -0.578743452887371\n",
"5. -0.535681072625511\n",
"6. -0.189494127762858\n",
"7. -0.268036258600224\n",
"8. -0.181943665553781\n",
"9. 0.0549408941461262\n",
"10. -0.109091634470984\n",
"\n",
"\n"
],
"text/plain": [
" [1] 0.04540172 0.42942877 1.10734875 -0.57874345 -0.53568107 -0.18949413\n",
" [7] -0.26803626 -0.18194367 0.05494089 -0.10909163"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"diff(diff(data$LogN)) # get the differentials of the differentials (approx 2nd order derivatives)"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"3"
],
"text/latex": [
"3"
],
"text/markdown": [
"3"
],
"text/plain": [
"[1] 3"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"which.max(diff(diff(data$LogN))) # find the timepoint where this 2nd order derivative really takes off "
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"4"
],
"text/latex": [
"4"
],
"text/markdown": [
"4"
],
"text/plain": [
"[1] 4"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data$Time[which.max(diff(diff(data$LogN)))] # This then is a good guess for the last timepoint of the lag phase"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now fit the model using these start values:"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"fit_gompertz <- nlsLM(LogN ~ gompertz_model(t = Time, r_max, K, N_0, t_lag), data,\n",
" list(t_lag=t_lag_start, r_max=r_max_start, N_0 = N_0_start, K = K_start))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You might one or more warning(s) that the model fitting iterations generated NaNs during the fitting procedure for these data (because at some point the NLLS fitting algorithm \"wandered\" to a combination of K and N_0 values that yields a NaN for log(K/N_0)). \n",
"\n",
"You can ignore these warning in this case. But not always – sometimes these NaNs mean that the equation is wrongly written, or that it generates NaNs across the whole range of the x-values, in which case the model is inappropriate for these data. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get the model summary:"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"Formula: LogN ~ gompertz_model(t = Time, r_max, K, N_0, t_lag)\n",
"\n",
"Parameters:\n",
" Estimate Std. Error t value Pr(>|t|) \n",
"t_lag 4.80680 0.18433 26.08 5.02e-09 ***\n",
"r_max 1.86616 0.08749 21.33 2.45e-08 ***\n",
"N_0 10.39142 0.05998 173.24 1.38e-15 ***\n",
"K 15.54956 0.05056 307.57 < 2e-16 ***\n",
"---\n",
"Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n",
"\n",
"Residual standard error: 0.09418 on 8 degrees of freedom\n",
"\n",
"Number of iterations to convergence: 10 \n",
"Achieved convergence tolerance: 1.49e-08\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"summary(fit_gompertz)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And see how the fits of the two nonlinear models compare:"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 240,
"width": 240
}
},
"output_type": "display_data"
}
],
"source": [
"timepoints <- seq(0, 24, 0.1)\n",
"\n",
"logistic_points <- log(logistic_model(t = timepoints, \n",
" r_max = coef(fit_logistic)[\"r_max\"], \n",
" K = coef(fit_logistic)[\"K\"], \n",
" N_0 = coef(fit_logistic)[\"N_0\"]))\n",
"\n",
"gompertz_points <- gompertz_model(t = timepoints, \n",
" r_max = coef(fit_gompertz)[\"r_max\"], \n",
" K = coef(fit_gompertz)[\"K\"], \n",
" N_0 = coef(fit_gompertz)[\"N_0\"], \n",
" t_lag = coef(fit_gompertz)[\"t_lag\"])\n",
"\n",
"df1 <- data.frame(timepoints, logistic_points)\n",
"df1$model <- \"Logistic model\"\n",
"names(df1) <- c(\"Time\", \"LogN\", \"model\")\n",
"\n",
"df2 <- data.frame(timepoints, gompertz_points)\n",
"df2$model <- \"Gompertz model\"\n",
"names(df2) <- c(\"Time\", \"LogN\", \"model\")\n",
"\n",
"model_frame <- rbind(df1, df2)\n",
"\n",
"ggplot(data, aes(x = Time, y = LogN)) +\n",
" geom_point(size = 3) +\n",
" geom_line(data = model_frame, aes(x = Time, y = LogN, col = model), size = 1) +\n",
" theme_bw() + # make the background white\n",
" theme(aspect.ratio=1)+ # make the plot square \n",
" labs(x = \"Time\", y = \"log(Abundance)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Clearly, the Gompertz model fits way better than the logistic growth equation in this case! Note also that there is a big difference in the fitted value of $r_{max}$ from the two models; the value is much lower from the Logistic model because it ignores the lag phase, including it into the exponential growth phase. \n",
"\n",
"You can now perform model selection like you did above in the allometric scaling example. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercises\n",
"\n",
"(a) Calculate the confidence intervals on the parameters of each of the two fitted models, and use model selection (using AIC and/or BIC) as you did before to see if you can determine the best-fitting model among the three.\n",
"\n",
"(b) Alternatively, for a different random sequence of fluctuations, one or more of the models may fail to fit (a `singular gradiant matrix` error). Try repeating the above fitting with a different random seed (change the integers given to the `random.seed( )` function), or increase the sampling error by increasing the standard deviation and see if it happens. If/when the NLLS optimization does fail to converge (the RSS minimum was not found), you can try to fix it by changing the starting values. \n",
"\n",
"(c) Repeat the model comparison exercise 1000 times (You will have to write a loop), and determine if/whether one model generally wins more often than the others. Note that each run will generate a slightly different dataset, because we are adding a vector of random errors every time the \"data\" are generated. This may result in failure of the NLLS fitting to converge, in which case you will need to use the [`try()` or `tryCatch` functions](https://nbviewer.jupyter.org/github/mhasoba/TheMulQuaBio/blob/master/notebooks/07-R.ipynb).\n",
"\n",
"(d) Repeat (b), but increase the error by increasing the standard deviation of the normal error distribution, and see if there are differences in the robustness of the models to sampling/experimental errors. You may also want to try changing the distribution of the errors to some non-normal distribution and see what happens."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Some tips and tricks for NLLS fitting \n",
"\n",
"(Model-Fitting-NLLS-Starting-Values)=\n",
"### Starting values \n",
"\n",
"The main challenge for NLLS fitting is finding starting (initial) values for the parameters, which the algorithm needs to proceed with the fitting/optimization. Inappropriate starting values can result in the algorithm finding parameter combinations represent convergence to a local optimum rather than the (globally) optimal solution. Starting parameter estimates can also result in or complete \"divergence\", i.e., the search results in a combination of parameters that cause mathematical \"singularity\" (e.g., log(0) or division by zero).\n",
"\n",
"#### Obtaining them \n",
"\n",
"Finding the starting values is a [bit of an art](https://en.wikipedia.org/wiki/Non-linear_least_squares#Initial_parameter_estimates). There is no method for finding starting values that works universally (across different types of models). \n",
"\n",
"The one universal rule though, is that finding starting values requires you to understand the meaning of each of the parameters in your model. So, for example, in the population [growth rate example](Model-Fitting-R-Population-Growth), the parameters in both the nonlinear models that [we covered](Model-Fitting-R-Population-Growth) (Logistic growth, eqn. {eq}`eq:logist_growth_sol` , Gompertz model; eqn. {eq}`eq:Gompertz`) have a clear meaning.\n",
"\n",
"Furthermore, you will typically need to determine starting values *specific* to each model *and* each dataset that that you are wanting to fit that model to (e.g., every distinct functional response dataset to be [fitted to the Holling Type II model](Miniproject-FR-Models)). To do so, understanding how each parameter in the model corresponds to features of the actual data is really necessary. \n",
"\n",
"For example, in the Gompertz population growth rate model (eqn. {eq}`eq:Gompertz`), your starting values generator function would, for each dataset, \n",
"* Calculate a starting value for $r_{max}$ by searching for the steepest slope of the growth curve (e.g., with a rolling OLS regression)\n",
"* Calculate a starting value of $t_{lag}$ by intersecting the fitted line with the x (time)-axis \n",
"* Calculate a starting value for the asymptote $K$ as the highest data (abundance) value in the dataset. \n",
"\n",
"```{tip}\n",
"Ideally, you should write a separate a function that calculates starting values for the model parameters.\n",
"```\n",
"\n",
"#### Sampling them\n",
"\n",
"Once you have worked out how to generate starting values for each non-linear model and dataset, a good next step for optimizing the fitting across multiple datasets (and thus maximize how many datasets are successfully fitted to the model) is to *rerun fitting attempts multiple times, sampling each of the starting values (simultaneously) randomly* (that is, randomly vary the set of starting values a bit each time). This sampling of starting values will increase the likelihood of the NLLS optimization algorithm finding a solution (optimal combination of parameters), and not getting stuck in a combination of parameters somewhere far away from that optimal solution. \n",
"\n",
"In particular, \n",
"* You can choose a Gaussian/Normal distribution if you have high confidence in mean value of parameter, or\n",
"* You can uniform distribution if you have low confidence in the mean, but higher confidence in the range of values that the parameter can take.\n",
"In both cases, the *mean* of the sampling distribution will be the starting value you inferred from the model and the data (previous section).\n",
"\n",
"Furthermore,\n",
"* Whichever distribution you choose (gaussian vs uniform), you will need to determine what range of values to restrict each parameter's samples to. In the case of the normal distribution, this is determined by what standard deviation parameter (you choose), and in the case of the uniform distribution, this is determined by what lower and upper bound (you choose). Generally, a good approach is to set the bound to be some *percent* (say 5-10%) of the parameter's (mean) starting value. In both cases the chosen range to restrict the sampling to would typically be some subset of the model's *parameter bounds* (next section). \n",
"* *How many times to re-run* the fitting for a single dataset and model?* – this depends on how \"difficult\" the model is, and how much computational power you have. \n",
"\n",
"```{tip}\n",
"For the sampling of starting values, recall that you learned to generate random numbers from probability distributions in both the [R](R-random-numbers) and [Python](Python-scipy-stats) chapters). \n",
"```\n",
"You may also try and use a more sophisticated approach such as [grid searching](https://en.wikipedia.org/wiki/Hyperparameter_optimization#Approaches) for varying your starting values randomly. An example is in the [MLE chapter](ModelFitting-MLE-LikelihoodSurface).\n",
"\n",
"### Bounding parameters revisited\n",
"\n",
"At the start, we looked at an [example](20-ModelFitting-NLLS:Bounding) of NLLS fitting where we bounded the parameters. It can be a good idea to restrict the range of values that the each of the model's parameters can take *during any one fitting/optimization run*. To \"bound\" a parameter in this way means to give it upper and lower limits. By doing so, during one optimization/fitting (e.g., one call to `nlsLM`, to fit one model, to one dataset), the fitting algorithm does not allow a parameter to go outside some limits. This reduces the chances of the optimization getting stuck too far from the solution, or failing completely due to some mathematical singularity (e.g., log(0)).\n",
"\n",
"The bounds are typically fixed for each parameter of a model *at the level of the model* (e.g., they do not change based on each dataset). For example, in the Gompertz model for growth rates (eqn. {eq}`eq:Gompertz`), you can limit the growth rate parameter to never be negative (the bounds would be $[0,\\infty]$), or restrict it further to be some value between zero and an upper limit (say, 10) that you know organismal growth rates cannot exceed (the bounds would in this case would be $[0,10]$). \n",
"\n",
"However, as we saw in the Michaelis-Menten model fitting [example](20-ModelFitting-NLLS:Bounding), bounding the parameters too much (excessively narrow ranges) can result in poor solutions because the algorithm cannot explore sufficient parameter space. \n",
"\n",
"```{tip}\n",
"The values of the parameter bounds you choose, of course, may depend on the *units of measurement* of the data. For example, in [SI](https://en.wikipedia.org/wiki/International_System_of_Units), growth rates in the Logistic or Gompertz models would be in units of s$^{-1}$).\n",
"```\n",
"Irrespective of which computer language the NLLS fitting algorithm is implemented in (`nlsLM` in R or `lmfit` in Python), the fitting command/method will have options for setting the parameter bounds. In particular,\n",
"\n",
"* For `nlsLM` in R, look up https://www.rdocumentation.org/packages/minpack.lm/versions/1.2-1/topics/nlsLM (the `lower` and `upper` arguments to the function). \n",
"\n",
"* For `lmfit` in Python, look up https://lmfit.github.io/lmfit-py/parameters.html (and in particular, https://lmfit.github.io/lmfit-py/parameters.html#lmfit.parameter.Parameter) (the `min` and `max` arguments).\n",
"\n",
"*Bounding the parameter values has nothing to do, per se, with sampling the starting values of each parameter, though if you choose to sample starting values (explained in previous section), you need to make sure that the samples don't exceed the pre-set bounds (explained in this section).*\n",
"\n",
"```{note}\n",
"Python's `lmfit` has an option to also internally vary the parameter. So by using a sampling approach as described in the previous section, *and* allowing the parameter to vary (note that `vary=True` is the default) within `lmfit`, you will be in essence be imposing sampling twice. This may or may not improve fitting performance – try it out both ways.\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Readings and Resources\n",
" \n",
"* Motulsky, Harvey, and Arthur Christopoulos. Fitting models to biological data using linear and nonlinear regression: a practical guide to curve fitting. OUP USA, 2004: \n",
"\n",
"* These are a pretty good series of notes on NLLS (even if you are using R instead of Python): \n",
"\n",
"* Another technical description of NLLS algorithms: \n",
"\n",
"* Johnson, J. B. & Omland, K. S. 2004 Model selection in ecology and evolution. Trends Ecol. Evol. 19, 101–108.\n",
"\n",
"* The *nlstools* package for NLLS fit diagnostics: \n",
" * The original paper: "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "R",
"language": "R",
"name": "ir"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "4.0.3"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
"autoclose": false,
"autocomplete": false,
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 1,
"hotkeys": {
"equation": "Ctrl-E",
"itemize": "Ctrl-I"
},
"labels_anchors": false,
"latex_user_defs": false,
"report_style_numbering": false,
"user_envs_cfg": false
},
"tags": [
"remove-cell"
],
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": false,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {
"height": "421.6px",
"left": "10px",
"top": "150px",
"width": "477.2px"
},
"toc_section_display": false,
"toc_window_display": true
}
},
"nbformat": 4,
"nbformat_minor": 4
}