Combining bioeconomic modelling with valuation (4): valuing scuba diving

This week I will introduce valuation to my bioeconomic model, as a follow-up to previous blog posts: [1], [2] and [3]. Last time, I wrote down the profit maximization problem, not specifying whose economic agent’s problem this is. I found the optimal effort in a five-period timeline that maximizes profits of the fishery.

As I explained in the very first blog post of this series: Sometimes bioeconomic modelling combined with environmental valuation can be policy-relevant. For example, let us say that there is a species of rare fish that is harvested for consumption and has great value for fishermen. Concurrently, that species is also the reason why some visitors come to the region to go scuba diving. It goes without saying that scuba divers want to be able to see this fish species, and not spend an unnecessarily long amount of time underwater. Hence, the value for commercial fisheries and for the scuba diving industry depends on the stock of this one species of fish. It could be beneficial if both values related to the stock could be included when modelling how optimal harvesting should look like.

However, the value of the scuba diving industry does not necessarily have a market price. Especially if divers bring their own equipment and perform the activities without purchasing any services. In that case, environmental valuation is one option to find the value of scuba diving (per trip or per sighting of fish). It can then be included in the bioeconomic model as a function of the stock of fish.

This is the same example I will use for the sake of illustration. Gill et al. (2015) estimate the value of fish stock changes on scuba divers’ WTP in Caribbean countries. They use a choice experiment and find that divers care are fish abundance or number of large fish. So the higher the fish stock, the higher the value of a scuba diving trip.

I use the estimated WTP for fish abundance: mean WTP in US dollars was estimated to be -96.42 for reduced fish abundance (down to 25% median), -43.76 US dollars for less reduced fish abundance (down to 50% median) and 83.64 US dollars for increased fish abundance (125% median) for all Carribean countries.

When I plot the relationship between the three changes in fish abundance in percentage terms and estimated WTP by Gill et al. (2015), the relationship looks linear:

changes <- c(0.25,0.5,1,1.25)
WTP <- c(-96.42,-43.76,0,83.64)
plot(changes, WTP, type="o")

To double-check this relationship, I run an OLS regression to see how changes in fish abundance explain WTP:

> summary(lm(WTP ~ changes))
lm(formula = WTP ~ changes)
      1       2       3       4 
 -1.509  10.763 -26.253  16.999 
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  -135.30      25.11  -5.389   0.0328 *
changes       161.55      29.61   5.455   0.0320 *
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 23.41 on 2 degrees of freedom
Multiple R-squared:  0.937,	Adjusted R-squared:  0.9055 
F-statistic: 29.76 on 1 and 2 DF,  p-value: 0.032

In summary, it seems that a 100% change in fish abundance results in increase in WTP of 162 US dollars. This value is per diver. As Gill et al. (2015) assumed, there are around 153276 divers in the Caribbean countries. The WTP should be calculated by the amount of corresponding divers in the area of interest.

The way to incorporate this value into the maximization problem is to write scuba diving value for all divers as a function of stock X(t). For each period, this value may be different depending on the existing stock.

( -135.30 + 161.55 * X[t]/X[1] ) *153276

It is only a matter of adding this expression to the maximization problem. Instead of talking about profit maximization, I am now maximizing the social value since I am considering values outside of the fishery (i.e. externalities).

The parameters, constraints and new function to be optimized are:


# Parameters

numberOfYears <- 5                      # Number of time periods
X <- c(rep(0, times = numberOfYears+1)) # Stock size vector
X[1] <- 521832                          # Stock size in the first time period
r <- 0.302                              # stock growth parameter
q <- 0.1                                # Catchability parameter
p <- 1293.362                           # Price per unit of harvest
c <- 1.5892                             # Cost per unit of effort
i <- 0.04                               # Discount rate
m <- 521832                             # Carrying capacity of the ecosystem (i.e. largest biomass of the species it can sustainably maintain)

# Specifying harvest and profit vectors

Y      <- c(rep(0, times = numberOfYears))
Profit <- c(rep(0, times = numberOfYears))

# Profit maximization function
profit_max <- function(par){
  for(t in 2:(numberOfYears+1)){X[t]      <- X[t-1]+r*X[t-1]*(1-X[t-1]/m)-q*par[t-1]*X[t-1]  }
  for(t in 1:numberOfYears){Profit[t] <- (p*q*par[t]*X[t]-c*par[t])/((1+i)^t) + ( -135.30 + 161.55 * X[t]/X[1] ) *153276         

# Constraints function
constraint_1 <- function(par) {
  for(t in 2:(numberOfYears+1)){X[t]      <- X[t-1]+r*X[t-1]*(1-X[t-1]/m)-q*par[t-1]*X[t-1]  }
  constr_1 <- q*par[1]*X[1] - X[1]  # Harvest has to be lower than stock
  constr_2 <- q*par[2]*X[2] - X[2]
  constr_3 <- q*par[3]*X[3] - X[3]
  constr_4 <- q*par[4]*X[4] - X[4]
  constr_5 <- q*par[5]*X[5] - X[5]
  constr_6 <- -q*par[1]*X[1]       # Harvest has to be non-negative
  constr_7 <- -q*par[2]*X[2] 
  constr_8 <- -q*par[3]*X[3] 
  constr_9 <- -q*par[4]*X[4] 
  constr_10<- -q*par[5]*X[5] 
  constr_11<- -X[2]                  # Stock has to be non-negative
  constr_12<- -X[3]
  constr_13<- -X[4]
  constr_14<- -X[5]   
  constr_15<- -X[6]   
return (c(constr_1 ,
          constr_2 ,
          constr_3 ,
          constr_4 ,
          constr_5 ,
          constr_6 ,
          constr_7 ,
          constr_8 ,
          constr_9 ,
          constr_15)  ) 

# Optimizing

optimal <- nloptr( x0=c(rep(10, times = numberOfYears)),     # Starting values
                   eval_f=profit_max,                       # Specifying the minimization problem function
                   eval_g_ineq = constraint_1 ,             # Specifying the constraints function
                   lb = c(rep(0, times = numberOfYears)),   # Effort cannot be lower than zero
                   opts=list("algorithm"="NLOPT_LN_COBYLA", # which algorithm to use
                             "maxeval"= 160000,             # How many iterations
                             "xtol_rel"=1.0e-8)             # Tolerance margin

The different results (profit and effort level) are shown in the table below:

Without scuba divingWith scuba diving
Effort year 15.665.01
Effort year 21.711.46
Effort year 31.771.30
Effort year 4100
Effort year 51010

When taking into account the value of scuba diving, which decreases if stock decreases, social value decreases. This is to be expected. Scuba divers depend on a large enough stock to have more frequent encounters with fish. Hence, the larger the harvest compared with the initial stock (which is very high), the lower the value for scuba divers.

Another interesting finding is that optimal effort is lower in some time periods as a result of accounting for the value of scuba diving. Effort reduces by 0.6, 0.25 and 0.4 in the first three time periods, and from 10 to 0 in the fourth time period. This is also to be expected. To preserve the scuba diving value, fishing effort should be lower to keep the fishing stock at a higher level.

This model can be used to produce policy implications. Fishing effort may need to be reduced if other economic agents also dependent on fish abundance. Scuba divers is one example, but there are likely to be many other competing uses for fishing resources.

This concludes my effort to include non-market values when modelling optimal resource extraction. This analysis is but a starting point. Since WTP is usually estimated with a confidence interval, one can use lower and higher bounds of this interval to see how effort and social value would change. How sensitive are optimal fishing strategies to the WTP of scuba divers?


Rahul Bhadani. Nonlinear Optimization in R using nlopt. arXiv preprint arXiv:2101.02912, 2021.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s