Week 1: Understand size-spectrum modelling

Your goal in this first week of the course is to gain a thorough understanding of size spectra and their dynamics. This means that at the end of the week you will understand the parameters that shape the size spectra and how size spectra respond to changes. You will have a feel for how size-spectrum dynamics is different from usual single-species age-based dynamics.

It is worth spending an entire week on building this understanding, because it will enable you to build more reliable models in the second week and to appropriately explore the model predictions in the third week.

Guest lecture by Ken Andersen

In the following video Ken Andersen introduces many of the concepts that we will be discussing in this course. However don’t feel that you have to take it all in at once. We will come back to these topics during the course where we hope to make them concrete by working hands-on with mizer.


The material is split into 5 tutorials:

  1. Observed size spectra
    Because many of the physiological rates in fish (like growth, mortality, metabolism, reproduction) depend on the size of the individuals, a mizer model needs to keep track of the size distribution of the populations, the so-called size spectra. To get a feel for size spectra, in this first tutorial you will take observational data and make plots of size spectra. There is confusion in the size spectrum literature because there are different ways to represent the size spectra and this tutorial will introduce these, so that you can cut through the confusion.

  2. Single-species spectra
    At the community level, size spectra tend to look like power laws. But the size spectrum of each individual species making up the community will look different. In this tutorial we will investigate how the shape of the single species spectrum is determined by an interplay of growth and mortality.

  3. Predation, growth and mortality
    A particular strength of a mizer model is that growth curves and mortality rates are not fixed externally but are emergent and dependent on the availability of prey and the presence of predators. In this tutorial we explore how predation is modelled in mizer and how it effects growth and mortality.

  4. Species interactions
    In a mizer model all the species in the community interact with each other through size-based predation. So any changes in one species’ size spectrum affects the size spectra of the other species, which in turn affects that first species. In this tutorial we start investigating some of the effects this has.

  5. Dynamics of spectra
    In previous tutorials we have concentrated on the steady state of the mizer model, where for each size class and each species, the rate at which individuals grow into the size class balances the rate at which individuals grow out of the size class or die, thus keeping the size spectrum constant. In this tutorial we explore the dynamic that takes place when this balance is changed.



Now that the live version of this course has finished, you no longer need to use the worksheets mentioned below. It is not guaranteed that they will still work. You are still encouraged to try out the code that you find in the tutorials on this website and to complete the exercises but you do not need these worksheets for that purpose. All the code you need is given in the tutorials.

Each tutorial comes with exercises and a worksheet in which to complete the exercises. These worksheets are contained in a dedicated repository on GitHub to which you will push your work to get feedback. This will work the same way as we discussed in the tutorial Use Git and GitHub. If you did not yet get a chance to work through that tutorial, please do so now before continuing with this week’s tutorials.


Now that the live version of this course has finished, you no longer need the worksheet repository mentioned below. Instead you can simply create your own worksheets by copying code over from the tutorials.

To get your worksheet repository for this week, follow this link:


While reading through a tutorials in your web browser, you may want to have the accompanying worksheet open in RStudio and occasionally copy and paste code from the tutorial there and possibly modify it to see for yourself what happens. Copying code from the tutorial is made easy because when you hover over a chunk of R code in the tutorial you will see a copy icon appearing that you can click to copy the entire content of that R chunk to your clipboard. You can then create a new R chunk in your worksheet and paste the code into it.

Do save the worksheet frequently and commit all those experiments of yours to your repository. You never know whether you may not want to revisit some of them later.