R/plot_model.R
plot_model.Rd
plot_model
creates a tibble with up to 4 individual plots and one
combined plot (all ggplot2 objects) for each IND~pressure pair in the
input tibble. The number of plots generated depends on the information
provided in the input tibble. If all model IND~pressure modeling functions
have been applied to create the final input tibble all five plots will be
produced.
plot_model( init_tbl, mod_tbl, choose_thresh_gam = NULL, pos_label = "topleft", header = TRUE )
init_tbl | The output tibble of the |
---|---|
mod_tbl | Any output tibble from the IND~pressure modeling functions. |
choose_thresh_gam | Selects the threshold_GAM for the thresh_plot, which is relevant if several models are listed in `thresh_models`. The default is NULL, which shows the best performing threshold_GAM (based on the GCV as selection criterion). |
pos_label | Specifies the position of the annotation in the plot. Should
be one of "topleft" (default), "topright", "bottomleft" or "bottomright".
For more details see |
header | logical; if TRUE, each plot will have a header including the IND name, pressure name(s) and the model type. |
The function returns a tibble
, including the
following elements:
id
Numerical IDs of the IND~press combinations.
ind
Indicator names.
press
Pressure names.
response_plot
A list-column of ggplot2 objects that show
the observed (black points) and predicted IND response to the single
pressure (based on the training data). The solid blue line represents
the predicted mean and the transparent polygon the 95% confidence interval.
The effective degrees of freedom (edf), R_sq, and p-value from the
fitted model are additionally provided. The input needed for this
plot is generated from the model_gam
or
model_gamm
functions.
predict_plot
A list-column of ggplot2 objects that show the robustness
of the modeled relationship expressed as the predictive performance
(the NRMSE) on a test dataset, e.g the last years of the time series.
The solid green line represents the predicted IND value given the
observed pressure value for that particular year (both in the training and
test data, the latter displayed as green triangles). The transparent
polygon represents the 95% confidence interval. Observed IND values
of the test data are shown as black triangle, the trainings observations
are presented as black circles. The input needed for this plot is
generated from the model_gam
or
model_gamm
functions.
deriv_plot
A list-column of ggplot2 objects that show the first
derivatives (S`) of non-linear IND~pressure response curves (edf > 1.5)
and the proportion of the pressure range where the IND shows no further
significant change (i.e., slope approximates zero). Black triangles
represent values at the pressure`s boundary where the zero line falls
into the confidence interval, which indicates no further significant
IND change. Circle represent values that were considered positive
for the calculation of the pressure range (see for more details
calc_deriv
). The input needed for this plot is generated
from the calc_deriv
function.
thresh_plot
A list-column of ggplot2 objects that show the observed IND
response curve for a specific pressure under a low (left panel, in black)
and high (right panel, in red) regime of an interacting 2nd pressure
variable. The solid lines represent the predicted mean and the transparent
polygons the 95% confidence intervals. Filled circles represent the
observed training observations in each regime. If no thresh_plot is
created for that IND~pressure pair, no interaction was found. If more
than one interacting pressure variable has been detected, i.e. more than
one threshold-GAM performed better than its corresponding GAM, the
threshold-GAM with the best GCV will be displayed. The input needed for
this plot is generated from the test_interaction
function.
If the plot shows strange patterns such as smoothers hardly differ in both
regimes with wide confidence intervals at the edge or few data points in one
regime check the model diagnostics of this threshold model! Outliers can cause
such patterns or if threshold is at the edge of the pressure range or other
thresholds are similarly likely (see also plot_diagnostics
.)
all_plots
A list-column of ggplot2 objects that show all
plots together using additional drawing canvas from the
cowplot
package on top of ggplot2.
Other IND~pressure modeling functions:
find_id()
,
ind_init()
,
model_gamm()
,
model_gam()
,
plot_diagnostics()
,
scoring()
,
select_model()
,
test_interaction()
# \donttest{ # Using some models of the Baltic Sea demo data in this package mod_tbl <- all_results_ex[4:5, ] init_tbl <- ind_init_ex[4:5, ] dat <- plot_model(init_tbl, mod_tbl, pos_label = "topleft")#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).dat$response_plot[[1]]dat$predict_plot[[1]]#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).dat$deriv_plot[[2]]dat$thresh_plot[[2]]dat$all_plots[[2]]# Apply function to all sign. models and save specific plots id <- which(all_results_ex$p_val <= 0.05) init_tbl <- ind_init_ex[id, ] mod_tbl <- all_results_ex[id, ] dat <- plot_model(init_tbl, mod_tbl, pos_label = "bottomright")#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 8 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> Warning: Removed 1 row(s) containing missing values (geom_path).#> Warning: Removed 1 rows containing missing values (geom_point).#> [[1]]#> #> [[2]]#> #> [[3]]#> #> [[4]]#> #> [[5]]#> #> [[6]]#> #> [[7]]#> #> [[8]]#> #> [[9]]#> #> [[10]]#> #> [[11]]#> #> [[12]]#> #> [[13]]#>#> agg_png #> 2# }