Fit a generalized additive model to a water quality time series
Arguments
- moddat
input raw data, one station and paramater
- kts
optional numeric vector for the upper limit for the number of knots in the term
s(cont_year)
, see details- ...
additional arguments passed to other methods, i.e.,
trans = 'log10'
(default) ortrans = 'ident'
passed toanlz_trans
Value
a gam
model object
Details
The model structure is as follows:
- model S:
chl ~ s(cont_year, k = large)
The cont_year
vector is measured as a continuous numeric variable for the annual effect (e.g., January 1st, 2000 is 2000.0, July 1st, 2000 is 2000.5, etc.) and doy
is the day of year as a numeric value from 1 to 366. The function s
models cont_year
as a smoothed, non-linear variable. The optimal amount of smoothing on cont_year
is determined by cross-validation as implemented in the mgcv package and an upper theoretical upper limit on the number of knots for k
should be large enough to allow sufficient flexibility in the smoothing term. The upper limit of k
was chosen as 12 times the number of years for the input data. If insufficient data are available to fit a model with the specified k
, the number of knots is decreased until the data can be modelled, e.g., 11 times the number of years, 10 times the number of years, etc.
Examples
library(dplyr)
tomod <- rawdat %>%
filter(station %in% 34) %>%
filter(param %in% 'chl')
anlz_gam(tomod, trans = 'log10')
#>
#> Family: gaussian
#> Link function: identity
#>
#> Formula:
#> value ~ s(cont_year, k = 348)
#>
#> Estimated degrees of freedom:
#> 219 total = 219.93
#>
#> GCV score: 0.07280572