Fit catch data to size-selectivity models

Share:

Description

First fits selection curves by log-linear fitting using glm and then (if tangle is TRUE) uses the SELECT method (of Millar 1992) to fit a slightly modified model with a tangle parameter (see Bromaghin 2005 for the concept of tangle parameters).

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
fit.catch(catch, sel.curve = norm.loc, tangle = TRUE,
  perimeter.factor = 1, tol = 1e-08, omega0 = 0.1, effort = NULL)

## S3 method for class 'fit.catch'
AIC(object, corrected = TRUE, ..., k = 2)

## S3 method for class 'fit.catch'
coef(object, ...)

## S3 method for class 'fit.catch'
coefficients(object, ...)

## S3 method for class 'fit.catch'
print(x, digits = max(3, getOption("digits") - 3), ...)

## S3 method for class 'fit.catch'
plot(x, y, xlab = "Fork length (mm)",
  ylab = "Relative selection probability", resolution = 500,
  plot.type = c("selcurve", "totalselcurve", "residuals",
  "observedvrsexpected"), max.cex = 2, min.cex = 0.5, leg.pos = "topleft",
  data.name = NULL, justtangle = TRUE, ...)

## S3 method for class 'fit.catch'
deviance(object, ...)

Arguments

catch

an object of class catch created using make.catch.

sel.curve

one of a number of selection curve function including norm.loc, norm, lognorm, gamm and inv.gau. These functions create a range of functions that are required to make various calculations. In effect, the selection curve chosen defines the model to be fitted.

tangle

If TRUE, a tangle parameter is included in the fitted process (Bromaghin (2005).

perimeter.factor

Factor by which to multiply the inputted mesh sizes to obtain mesh perimeters, which are required by the analyses. perimeter.factor = 4; if using stretch mesh perimeter.factor = 2, the default).

x

an object of class fit.catch.

object

an object of class fit.catch.

y

not used. only for consistency with S3 plot method.

xlab

x-axis label

ylab

y-axis label

resolution

higher numbers make smoother selection curves

plot.type

type of plot to produce, either "selcurve", "totalselcurve", or "residuals" for selection curves, total selection curve, or residual plot; in this last type, the sizes of the circles are proportional to deviance

max.cex

maximum size of the deviance circles

min.cex

minimum size of the deviance circles

leg.pos

position of the legend if necessary, see legend.

data.name

name of the data set to be plotted

justtangle

should only the tangle model be plotted?

corrected

if TRUE, the small-sample-size corrected version of AIC is returned (recommended)

k

not used. only for consistency with default S3 method.

tol

tolerance used to decide on whether fitted values are numerically zero. used to correct AIC values. this correction depends on sample size, and the standard way to calculate sample size is as the number of mesh sizes times the number of fish length categories and then to subtract from this number the number of zero fitted counts

omega0

initial value for the tangle parameter

digits

number of digits to round to

...

additional arguments to be passed

effort

TODO (sorry!)

Value

An object of class fit.catch with components:

catch the original catch object

sel.curve the original selection curve

theta the fitted parameters of the selection curve

mu the fitted values

res the deviance residuals (see Millar and Fryer 1999)

dev model deviance(s)

tangle TRUE if tangle parameter fitted, FALSE otherwise

call the matched call

l the 'length matrix'.

m the 'mesh matrix' (with input mesh sizes multiplied by perimeter.factor).

Author(s)

Steve Walker

References

J.F. Bromaghin (2005) A versatile net selectivity model, with application to Pacific salmon and freshwater species of the Yukon River, Alaska. Fisheries Research 74: 157-168.

R.B. Millar & R.J. Fryer (1999) Estimating the size-selection curves of towed gears, traps, nets and hooks. Reviews in Fish Biology and Fisheries 9: 89-116.

Examples

1
2
3
4
5
data(north.pike)
np <- make.catch(north.pike$MESH, north.pike$FLEN)
plot(np)
(np.fit <- fit.catch(np, gamm))
plot(np.fit)