/habitat_suitability_curves_fda

Scientific research taking a new look at habitat suitability curves through functional data analysis.

Primary LanguageR

A new look at habitat suitability curves through FDA 👓

  • A scientific research by Jeremie Boudreault, André St-Hilaire, Normand Bergeron and Fateh Chebana
  • This project is part of my master studies at Institut National de la Recherche Scientifique
  • All scripts and data are made freely available here under the Creative Common License
  • Any questions should be sent to Jeremie.Boudreault [at] ete.inrs [dot] ca

Data

Data consists of a field survey that have been conducted during summer 2017 on the Sainte-Marguerite River (SMR) and Petite-Cascapedia River (PCR) :

  • data/field-data/* : contains the two raw xlsx files filled after each day of field work.
  • data/gps/* : locations of the studied sites for the two rivers.

R scripts

Scripts are all from Jeremie Boudreault. They make the use of the R package FDboost for fitting functional regression models (FRM) :

  • s01_clean_field_data.R : clean the field data spreadsheets and produced cleaned datasets.
  • s02_compute_salmon_numbers.R: convert measured salmon fork-lengths to number of fry and parr.
  • s03_select_study_case.R: select optimal data subset for this project.
  • s04_map_studied_sites.R: map sites studied in this project.
  • s05_generate_fd_curves.R: generate (functional) curves of availability and selection/preference.
  • s06_prepare_data_modelling.R: prepare data prior to fit function regression models (FRM).
  • s07_fit_function_models.R: fit FRMs to curves using a parallelized k-fold cross-validation.
  • s08_define_optimal_stopping.R: choose optimal early stopping parameter.
  • s09_compute_coef_bootstrap.R: compute standard-error of FRM coefficients using bootstrap.
  • s10_plot_frm_coefficients.R: plots intercept and coefficients surfaces from fitted FRM.
  • s11_build_classical_models.R: build classical local and regional models of HSC.
  • s12_assess_models_performance.R: calculate some goodness-of-fit metrics for the fitted models.

Enjoy ! ✌🏻