Conditioning with Composition Data

Add Data to OM

To condition our OM with catch-at-age (CAA) and catch-at-length (CAL) data, we create a blank Data object:

Data <- new('Data')

and populate the Year, CAA, and CAL slots with our observed data:

# years - must be length(OM@nyears)
Data@Year <- RealData@Year 

# must be the same as OM@maxage
Data@MaxAge <- RealData@MaxAge

# 'real' CAA (can be patchy)
Data@CAA <- RealData@CAA[1,,,drop=FALSE] 

# an array with dimensions c(1, OM@nyears, OM@maxage+1)
dim(Data@CAA)
## [1]  1 50 16
# length bins
Data@CAL_bins <- RealData@CAL_bins
Data@CAL_mids <- RealData@CAL_mids

# 'real' CAL (can be patchy)
Data@CAL <- RealData@CAL[1,,,drop=FALSE] 

# an array with dimensions c(1, OM@nyears, length(Data@CAL_mids))
dim(Data@CAL)
## [1]  1 50 28

The selectivity pattern for the CAA and CAL data can be added with the Data@Vuln_CAA and Data@Vuln_CAL slots:

  • Data@Vuln_CAA: Optional vulnerability-at-age schedule for catch-at-age samples. Used to condition OM for closed-loop simulation testing. Replaces the fleet selectivity schedule in the OM used to generate CAA samples. Matrix with dimensions nsim x MaxAge+1 .
  • Data@Vuln_CAL: Optional vulnerability-at-length schedule for catch-at-length samples. Used to condition OM for closed-loop simulation testing. Replaces the fleet selectivity schedule in the OM used to generate CAL samples. Matrix with dimensions nsim x length(CAL_mids) .

These selectivity patterns are used to generate the CAA and CAL data in the simulation.

Note that in the case of real data, nsim is always 1 (only one version of the real data!).

We add the Data object to the cpars slot:

OM <- new('OM', Albacore, Generic_IncE, Generic_Obs, Perfect_Imp, nsim=4)
OM@cpars$Data <- Data

We also need to add the CAL_bins to cpars:

OM@cpars$CAL_bins <- Data@CAL_bins

Condition Simulated Data

The observation model is conditioned on the index data when the historical spool-up period is simulated:

Hist <- Simulate(OM, silent=TRUE)

We can now compare our simulated CAA data with our ‘real’ observed CAA data:

# The CAA data passed to the MPs (first 5 years and 3 age-classes only shown)
Hist@Data@CAA[,1:5,1:3]
## , , 1
## 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   21   28   21   11   11
## [2,]   21   28   21   11   11
## [3,]   21   28   21   11   11
## [4,]   21   28   21   11   11
## 
## , , 2
## 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   28   28   39   39   28
## [2,]   28   28   39   39   28
## [3,]   28   28   39   39   28
## [4,]   28   28   39   39   28
## 
## , , 3
## 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   32    7   39   28   53
## [2,]   32    7   39   28   53
## [3,]   32    7   39   28   53
## [4,]   32    7   39   28   53
# Our 'observed' CAA data (first 5 years and 3 age-classes only shown)
OM@cpars$Data@CAA[,1:5,1:3]
##      [,1] [,2] [,3]
## [1,]   21   28   32
## [2,]   28   28    7
## [3,]   21   39   39
## [4,]   11   39   28
## [5,]   11   28   53
# The CAL data passed to the MPs (first 5 years and 3 length-classes only shown)
Hist@Data@CAL[,1:5,1:3]
## , , 1
## 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
## 
## , , 2
## 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
## 
## , , 3
## 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
# Our 'observed' CAL data (first 5 years and 3 length-classes only shown)
OM@cpars$Data@CAL[,1:5,1:3]
##      [,1] [,2] [,3]
## [1,]    0    0    0
## [2,]    0    0    0
## [3,]    0    0    0
## [4,]    0    0    0
## [5,]    0    0    0

Note that the effective sample size in the observation model is NOT updated when CAA and CAL data are provided in the OM. That is, Obs@CAA_ESS, and Obs@CAL_ESS are not updated.

Obs@CAA_nsamp and Obs@CAL_nsamp are updated based on the mean observed sample size for the real data.