fit_gam | R Documentation |

Fits a (penalized) basis splines curve through a set of ordered pair
retention times, modeling one set of retention times (rty) as a function
on the other set (rtx). Outlier filtering iterations are performed first,
then with the remaining points, the best value of parameter `k`

is
selected through 10-fold cross validation.

```
fit_gam(
object,
useID = FALSE,
k = seq(10, 20, 2),
iterFilter = 2,
outlier = c("MAD", "boxplot"),
coef = 2,
prop = 0.5,
weights = 1,
bs = c("bs", "ps"),
m = c(3, 2),
family = c("scat", "gaussian"),
method = "REML",
rtx = c("min", "max"),
rty = c("min", "max"),
optimizer = "newton",
message = TRUE,
...
)
```

`object` |
a |

`useID` |
logical. If set to TRUE, matched ID anchors detected from previous step will never be flagged as outliers. |

`k` |
integer k values controlling the dimension of the basis of the GAM fit (see: ?mgcv::s). Best value chosen by 10-fold cross validation. |

`iterFilter` |
integer number of outlier filtering iterations to perform |

`outlier` |
Thresholding method for outlier dection. If "MAD", the
threshold is the mean absolute deviation (MAD) times |

`coef` |
numeric (> 1) multiplier for determining thresholds for outliers
(see |

`prop` |
numeric. A point is excluded if deemed a residual in more than this proportion of fits. Must be between 0 & 1. |

`weights` |
Optional user supplied weights for each ordered pair. Must be of length equal to number of anchors (n) or a divisor of (n + 2). |

`bs` |
character. Choice of spline method from mgcv, either "bs" (basis splines) or "ps" (penalized basis splines) |

`m` |
integer. Basis and penalty order for GAM; see ?mgcv::s |

`family` |
character. Choice of mgcv family; see: ?mgcv::family.mgcv |

`method` |
character smoothing parameter estimation method; see: ?mgcv::gam |

`rtx` |
ordered pair of endpoints for rtx; if "max" or "min", gives the maximum or minimum rtx, respectively, as model endpoints for rtx |

`rty` |
ordered pair of endpoints for rty; if "max" or "min", gives the maximum or minimum rtx, respectively, as model endpoints for rty |

`optimizer` |
character. Method to optimize smoothing parameter; see: ?mgcv::gam |

`message` |
Option to print message indicating function progress |

`...` |
Other arguments passed to |

A set of ordered pair retention times must be previously computed using
`selectAnchors()`

. The minimum and maximum retention times from both
input datasets are included in the set as ordered pairs (min_rtx, min_rty)
& (max_rtx, max_rty). The `weights`

argument initially determines the
contribution of each point to the model fits; they are equally weighed by
default, but can be changed using an `n+2`

length vector, where n is
the number of ordered pairs and the first and last of the weights determines
the contribution of the min and max ordered pairs; by default, all weights
are initially set to 1 for equal contribution of each point.

The model complexity is determined by `k`

. Multiple values of k are
allowed, with the best value chosen by 10 fold cross validation. Before
this happens, certain ordered pairs are removed based on the model errors.
In each iteration, a GAM is fit using each selected value of k. Depending on
the `outlier`

argument, a point is "removed" from the model (i.e. its
corresponding weight set to 0) if its residual is above the threshold
for a proportion of fitted models, as determined by `prop`

. If an anchor
is an "identity" (idx = idy, detected in the `selectAnchors`

by setting
`useID`

to TRUE), then setting `useID`

here prevents its removal.

Other arguments, e.g. `family`

, `m`

, `optimizer`

, `bs`

,
and `method`

are GAM specific parameters from the `mgcv`

R package.
The `family`

option is currently limited to the "scat" (scaled t) and
"gaussian" families; scat family model fits are more robust to outliers than
gaussian fits, but compute much slower. Type of splines are currently limited
to basis splines ("bs" or "ps").

metabCombiner with a fitted GAM model object

`selectAnchors`

,`fit_loess`

,

```
data(plasma30)
data(plasma20)
p30 <- metabData(plasma30, samples = "CHEAR")
p20 <- metabData(plasma20, samples = "Red", rtmax = 17.25)
p.comb = metabCombiner(xdata = p30, ydata = p20, binGap = 0.0075)
p.comb = selectAnchors(p.comb, tolmz = 0.003, tolQ = 0.3, windy = 0.02)
anchors = getAnchors(p.comb)
#version 1: using faster, but less robust, gaussian family
p.comb = fit_gam(p.comb, k = c(10,12,15,17,20), prop = 0.5,
family = "gaussian", outlier = "MAD", coef = 2)
#version 2: using slower, but more robust, scat family
p.comb = fit_gam(p.comb, k = seq(12,20,2), family = "scat",
iterFilter = 1, coef = 3, method = "GCV.Cp")
#version 3 (with identities)
p.comb = selectAnchors(p.comb, useID = TRUE)
anchors = getAnchors(p.comb)
p.comb = fit_gam(p.comb, useID = TRUE, k = seq(12,20,2), iterFilter = 1)
#version 4 (using identities and weights)
weights = ifelse(anchors$labels == "I", 2, 1)
p.comb = fit_gam(p.comb, useID = TRUE, k = seq(12,20,2),
iterFilter = 1, weights = weights)
#version 5 (using boxplot-based outlier detection
p.comb = fit_gam(p.comb, k = seq(12,20,2), outlier = "boxplot", coef = 1.5)
#to preview result of fit_gam
plot(p.comb, pch = 19, outlier = "h", xlab = "CHEAR Plasma (30 min)",
ylab = "Red-Cross Plasma (20 min)", main = "Example GAM Fit")
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.