This document was compiled in RMarkdown, and shows the incremental results of the Chilean Jack Mackerel (Trachurus murphyi) stock assessment update in 2021. The files associated with this document can be found on Github.
Annoted data files can be found in the Excel spreadsheet JM Data files for SC09.xlsx on jjm/assessment/data.
The code to create the input files for this assessment and to run these models can be found in jjm/assessment/R/SC09_Bridging.R. Should you choose to run the models, please ensure that you have:
jjm/src/jjms.tpl
jjm/src folder in your Terminal, and using the make commandjjmR package
R using the command remotes::install_github("SPRFMO/jjmR")File naming conventions have been changed to reflect the stock structure hypotheses associated with each run. The h1 denotes the single-stock hypothesis, while h2 denotes the two-stock one.
| Model | Description |
|---|---|
| Models 0.x | Data introductions |
| 0.00 | Exact 2020 (single stock h1 and two-stock h2) model and data set through 2020 (mod1.0 from SC08) |
| 0.01 | As 0.00 but with revised catches through 2020 (currently still estimates) |
| 0.02 | As 0.01 but with updated 2020 fishery age composition data for N_Chile, SC_Chile, and Offshore_Trawl, and updated 2020 fishery length composition data for FarNorth |
| 0.03 | As 0.02 but with updated 2020 weight at age data for all fisheries and their associated CPUE indices |
| 0.04 | As 0.03 but replaced offshore CPUE up to 2020 |
| 0.05 | As 0.04 but with 2021 catch projections |
| 0.06 | As 0.05 but with updated 2021 fishery age composition data for N_Chile, SC_Chile, and Offshore_Trawl, and updated 2020 fishery length composition data for FarNorth |
| 0.07 | As 0.06 but but with updated 2021 weight at age data for N_Chile, SC_Chile, and FarNorth fleets, and for their associated CPUE indices |
| 0.08 | As 0.07 but replaced SC_Chile_CPUE index (traditional absolute scaled CPUE by trip) |
| 0.09 | As 0.08 but replaced Peru_CPUE index |
| 0.10 | As 0.09 but with updated AcousN 2021 index, with associated age composition and weight at age |
| ———– | ————– |
| Models 1.x | Updated Model and Sensitivities |
| 1.00 | Update model (selectivity changes, recruitment) to 2021; 0.10 data file |
| 1.01 | As 1.00 but use revised data series “antiguo” of age composition and weight at age data for both Chilean fisheries and both Chilean acoustic surveys (assessment/NewAgeData/AgeDataInAssessment.csv) |
| 1.02 | As 1.01 but incorporate revised (validated) age data for surveys and fleets with M and maturity updated (M=0.35) (NOT RUN) |
| 1.03 | As 1.02 but M=0.45 (NOT RUN) |
| 1.04 | As 1.01 but with increased uncertainty (CV=0.4) for final year CPUE indices |
| 1.05 | As 1.04 but replacing 2020/2021 weight at age with 2019 revised “antiguo” data for N_Chile |
if(!'devtools' %in% installed.packages()) install.packages('devtools')
devtools::install_github("SPRFMO/jjmR")
if(!'kableExtra' %in% installed.packages()) install.packages('kableExtra')
You’ll need to be in the jjm/assessment directory in order for the code here to run.
library(jjmR)
library(tidyverse)
library(kableExtra)
# MP note: normally I never use setwd in rmarkdown because it has unexpected behaviour.
# I thought you would always end up in the jjm rootdirectory if you start up the markdown file?
# I cannot change the working directory by using setwd() ??
# LQ It might depend on the programme you use to open the file? Would be great if someone could test if this runs.
pwd <- getwd()
# if (!grepl(basename(pwd), "assessment", ignore.case = TRUE)) {
# stop(paste("Set working directory to jjm/assessment"))
# }
geth <- function(mod,h=hyp) paste0(h,"_", mod)
fn.plotind <- function(mods2compare, indname) {
fn.seldata <- function(x) {
x$data$Index[,i] %>%
bind_rows() %>%
pivot_longer(everything(), names_to="year") %>%
drop_na() %>%
mutate(year=as.numeric(year),
assessment_year=max(year))
}
mods <- compareModels(geth(mods2compare, "h1"))
i <- grep(indname,mods[[1]]$data$Inames)
dat2use <- list()
for(m in 1:length(mods)) {
dat2use[[m]] <- fn.seldata(mods[[m]])
}
p <- map_dfr(dat2use, ~as_tibble(.)) %>%
mutate(assessment_year=as.factor(assessment_year)) %>%
ggplot(aes(x=year,y=value,colour=assessment_year)) +
geom_line() +
theme_minimal() +
scale_x_continuous(breaks= scales::pretty_breaks())
print(p)
}
fixed_bmsy <- function(mod,refpt=5500){
old_rat <- (mod[[1]]$output[[1]]$msy_mt[,13])
new_rat <- (mod[[1]]$output[[1]]$msy_mt[,12]/ refpt)
mod[[1]]$output[[1]]$msy_mt[,13] <- new_rat
mod[[1]]$output[[1]]$msy_mt[,10] <- refpt
return(mod)
}
FinModName <- "1.05"
Re-running the 2020 model and comparing the results with that year’s SC meeting.
Plot comparing biomass estimated by last year’s model (h1_1.00) with a re-run of the model this year (h1_0.00).
Plot comparing recruitment estimated by last year’s model (h1_1.00) with a re-run of the model this year (h1_0.00).
Plot comparing fishing mortality estimated by last year’s model (h1_1.00) with a re-run of the model this year (h1_0.00).
Plot comparing biomass estimated by last year’s model (h2_1.00) with a re-run of the model this year (h2_0.00).
Plot comparing recruitment estimated by last year’s model (h2_1.00) with a re-run of the model this year (h2_0.00).
Plot comparing fishing mortality estimated by last year’s model (h2_1.00) with a re-run of the model this year (h2_0.00).
The most updated table of model runs can be found on Github.
The data updated to 2020 include catch estimates, age and length compositions, and indices of abundance.
Plot comparing biomass estimated by last year’s model (h1_0.00) with data updated to 2020.
Plot comparing recruitment estimated by last year’s model (h1_0.00) with data updated to 2020.
Plot comparing fishing mortality estimated by last year’s model (h1_0.00) with data updated to 2020.
Plot comparing biomass estimated by last year’s model (h2_0.00) with data updated to 2020.
Plot comparing recruitment estimated by last year’s model (h2_0.00) with data updated to 2020.
Plot comparing fishing mortality estimated by last year’s model (h2_0.00) with data updated to 2020.
The data updated to 2021 include projected catch estimates, age and length compositions, and indices of abundance.
Plot comparing biomass estimated with last year’s data using the same model (h1_0.04) but with data updated to 2021.
Plot comparing recruitment estimated with last year’s data using the same model (h1_0.04) but with data updated to 2021.
Plot comparing fishing mortality estimated with last year’s data using the same model (h1_0.04) but with data updated to 2021.
Plot comparing biomass estimated with last year’s data using the same model (h2_0.04) but with data updated to 2021.
Plot comparing recruitment estimated with last year’s data using the same model (h2_0.04) but with data updated to 2021.
Plot comparing fishing mortality estimated with last year’s data using the same model (h2_0.04) but with data updated to 2021.
This just shows the final data update, using the exact same model (i.e., with the same control files).
Plot comparing biomass estimated by last year’s model (h1_0.00) with data updated to 2021 (h1_0.10).
Plot comparing recruitment estimated by last year’s model (h1_0.00) with data updated to 2021 (h1_0.10).
Plot comparing fishing mortality estimated by last year’s model (h1_0.00) with data updated to 2021 (h1_0.10).
Plot comparing fishing mortality estimated by last year’s model (h2_0.00) with data updated to 2021 (h2_0.10).
Plot comparing recruitment estimated by last year’s model (h2_0.00) with data updated to 2021 (h2_0.10).
Plot comparing fishing mortality estimated by last year’s model (h2_0.00) with data updated to 2021 (h2_0.10).
These results are from updating the model to include selectivity changes in the most recent year, and to extend the recruitment regime shift time series. This was the same procedure that was applied to the previous year.
Plot comparing biomass estimates from last year’s model (h1_0.00) to this year’s (h1_1.00).
Plot comparing recruitment estimates from last year’s model (h1_0.00) to this year’s (h1_1.00).
Plot comparing fishing mortality estimates from last year’s model (h1_0.00) to this year’s (h1_1.00).
Plot comparing biomass estimated by last year’s model (h2_0.00) to this year’s (h2_1.00).
Plot comparing recruitment estimated by last year’s model (h2_0.00) to this year’s (h2_1.00).
Plot comparing fishing mortality estimated by last year’s model (h2_0.00) to this year’s (h2_1.00).
The final year of each CPUE index was downweighted, doubling the CV from 0.2 to 0.4.
The final two years of weight at age for the northern Chilean fleet appeared to be out of the ordinary. They are now fixed to the weight at age from 2019.
Model 1.05 was selected as the final model for 2021. This model incorporates:
| Multiplier of \(F_{2021}\) | \(B_{2023}\) | P(\(B_{2023}\) > \(B_{MSY}\)) % | \(B_{2027}\) | P(\(B_{2027}\) > \(B_{MSY}\)) % | \(B_{2031}\) | P(\(B_{2031}\) > \(B_{MSY}\)) % | Catch 2022 (kt) | Catch 2023 (kt) |
|---|---|---|---|---|---|---|---|---|
| 0 | 12675 | 100 | 15884 | 100 | 15594 | 100 | 0 | 0 |
| FMSY | 10191 | 100 | 7669 | 96 | 5925 | 63 | 1654 | 1911 |
| 0.75 | 11502 | 100 | 11282 | 100 | 9654 | 99 | 748 | 941 |
| 1 | 11145 | 100 | 10156 | 100 | 8404 | 95 | 987 | 1214 |
| 1.25 | 10805 | 100 | 9184 | 99 | 7390 | 87 | 1220 | 1469 |
Note that BMSY is set to the interim level of 5.5 kt in this scenario.
| Multiplier of \(F_{2021}\) | \(B_{2023}\) | P(\(B_{2023}\) > \(B_{MSY}\)) % | \(B_{2027}\) | P(\(B_{2027}\) > \(B_{MSY}\)) % | \(B_{2031}\) | P(\(B_{2031}\) > \(B_{MSY}\)) % | Catch 2022 (kt) | Catch 2023 (kt) |
|---|---|---|---|---|---|---|---|---|
| 0 | 10702 | 100 | 13425 | 100 | 13267 | 100 | 0 | 0 |
| FMSY | 8722 | 100 | 6977 | 100 | 5418 | 100 | 1264 | 1404 |
| 0.75 | 9674 | 100 | 9533 | 100 | 8106 | 100 | 631 | 763 |
| 1 | 9367 | 100 | 8610 | 100 | 7072 | 100 | 830 | 978 |
| 1.25 | 9075 | 100 | 7823 | 100 | 6247 | 100 | 1023 | 1175 |
| Multiplier of \(F_{2021}\) | \(B_{2023}\) | P(\(B_{2023}\) > \(B_{MSY}\)) % | \(B_{2027}\) | P(\(B_{2027}\) > \(B_{MSY}\)) % | \(B_{2031}\) | P(\(B_{2031}\) > \(B_{MSY}\)) % | Catch 2022 (kt) | Catch 2023 (kt) |
|---|---|---|---|---|---|---|---|---|
| 0 | 3101 | 99 | 2746 | 98 | 2371 | 91 | 0 | 0 |
| FMSY | 2798 | 98 | 1806 | 69 | 1108 | 2 | 202 | 164 |
| 0.75 | 3014 | 99 | 2441 | 94 | 1949 | 76 | 53 | 55 |
| 1 | 2987 | 98 | 2353 | 92 | 1830 | 68 | 70 | 70 |
| 1.25 | 2962 | 98 | 2271 | 90 | 1719 | 59 | 87 | 85 |
| h1_1.05 | h2_1.05 | |
|---|---|---|
| catch_like | 1.08 | 1.37 |
| age_like_fsh | 377.38 | 344.94 |
| length_like_fsh | 463.43 | 507.26 |
| sel_like_fsh | 270.95 | 140.88 |
| ind_like | 265.32 | 207.14 |
| age_like_ind | 109.41 | 96.40 |
| length_like_ind | 0.00 | 0.00 |
| sel_like_ind | 15.83 | 15.59 |
| rec_like | 0.36 | 4.67 |
| fpen | 0.01 | 0.02 |
| post_priors_indq | 0.23 | 0.21 |
| post_priors | 0.00 | 0.00 |
| residual | 0.01 | 0.10 |
| total | 1504.01 | 1318.58 |