Documentation
  1. Data integration [FR]
  2. Déterminer la taille des échantillons par site
  • Introduction
    • Purpose of this documentation
    • Contribute to this documentation
  • Database
    • Database structure
    • Lab results importation example
    • Database query
  • Data integration [FR]
    • Recensement des projets
    • Recensement des sites
    • Consolidation de la nomenclature des analytes
    • Description des contaminants
    • Déterminer la taille des échantillons par site
    • Injections des données

On this page

  • Criteria 1. On retire les sites pour lesquelles, il y a une seule année de collecte (impossibilité de calibrer un modèle de tendance temporelle).
  • Site Battures aux Loups Marins
  • Site Bonaventure Island
  • Site Grande Ile
  • Site Ile Carillon
  • Site Ile Dickerson
  • Site Ile Eaton
  • Site Ile Laval
  • Site Ile Manowin
  • Site Ile Matane
  • Site Ile Saint-Bernard
  • Site Ile Steamboat
  • Site Ile Villemomble
  • Site Ile aux Basques
  • Site Ile aux Herons
  • Site Ile aux Hérons
  • Site Ile aux Oeufs
  • Site Ile de Carillon
  • Site Ile de la Corneille
  • Site Ile du Bic
  • Site Ile du Corossol
  • Site Iles Sainte-Marie
  • Site Maria
  • Site Petit lac Jacques-Cartier
  • Site Refuge Watshishou
  • Site Yamachiche
  1. Data integration [FR]
  2. Déterminer la taille des échantillons par site

Déterminer la taille des échantillons par site

Author

Steve Vissault

Published

January 5, 2024

On compte le nombre de mesures pour chaque combinaison.

source("src/itgr_measurements.R")
contaminants <- itgr_measurements()

data_count <- contaminants |> 
    dplyr::mutate(Year = as.integer(Year)) |>
    toxbox::uncensored(cols = "value", keep_cens = TRUE) |>
    dplyr::group_by(Location, Year, Species, conpound_family, variable) |>
    dplyr::summarise(n = dplyr::n(), n_censored = sum(value_censored))
Warning: There was 1 warning in `dplyr::mutate()`.
ℹ In argument: `dplyr::across(tidyselect::all_of(cols), remove_cens)`.
Caused by warning:
! NAs introduced by coercion
`summarise()` has grouped output by 'Location', 'Year', 'Species',
'conpound_family'. You can override using the `.groups` argument.
data_count |>
    reactable::reactable()

Criteria 1. On retire les sites pour lesquelles, il y a une seule année de collecte (impossibilité de calibrer un modèle de tendance temporelle).

Voici la liste des sites pour lesquelles, on a une seule année de mesure

crit1 <- contaminants |> 
    dplyr::select(Location, Year) |>
    dplyr::distinct() |>
    dplyr::group_by(Location) |>
    dplyr::count() |>
    dplyr::filter(n == 1) |>
    dplyr::pull(Location)

cat(paste("*", crit1), sep="\n")
  • Archipel de Mingan (approximative location)
  • Beauharnois
  • Betchouanes
  • Bonaventure
  • Deslauriers
  • Escuminac
  • Gros Pot
  • Ile Beauséjour
  • Ile Bellechasse
  • Ile Bienville
  • Ile Blanche
  • Ile Dodens
  • Ile Dowker
  • Ile Nue
  • Ile Saint-Barnabé
  • Ile a Bouleau de Terre
  • Ile aux Pommes
  • Ile de la Madeleine
  • Ile de la Mine
  • Ile du Petit Caoui
  • Ile du Petit Caouis
  • Ile à Calculot des Betchouanes
  • Iles aux Loups Marins
  • Iles de la Madeleine
  • Ilets Boisés
  • Ilets De Quen
  • Kamouraska
  • Kukuministuk (Caye à Cochons)
  • Lac Bleu
  • Lac Evans
  • Lac Saint-Bernard
  • Lac St-Pierre
  • Lac à la Carpe
  • Long Island
  • Miller island
  • Missipinuk (Grosse Romaine)
  • Petit Lac Jacques Cartier
  • Petite Ile Ste-Geneviève
  • Pointe Saint-Pancrace
  • Prairie du Castor
  • Riviere George

On retire ces sites pour l’étude de la taille de l’échantillon

data_count <- data_count |>
    dplyr::filter(!(Location %in% crit1)) |>
    dplyr::ungroup()

Site Battures aux Loups Marins

Site Bonaventure Island

Site Grande Ile

Site Ile Carillon

Site Ile Dickerson

Site Ile Eaton

Site Ile Laval

Site Ile Manowin

Site Ile Matane

Site Ile Saint-Bernard

Site Ile Steamboat

Site Ile Villemomble

Site Ile aux Basques

Site Ile aux Herons

Site Ile aux Hérons

Site Ile aux Oeufs

Site Ile de Carillon

Site Ile de la Corneille

Site Ile du Bic

Site Ile du Corossol

Site Iles Sainte-Marie

Site Maria

Site Petit lac Jacques-Cartier

Site Refuge Watshishou

Site Yamachiche

Source Code
---
title: "Déterminer la taille des échantillons par site"
author: "Steve Vissault"
date: "2024-01-05"
---

On compte le nombre de mesures pour chaque combinaison.

```{R, results = "asis"}
source("src/itgr_measurements.R")
contaminants <- itgr_measurements()

data_count <- contaminants |> 
    dplyr::mutate(Year = as.integer(Year)) |>
    toxbox::uncensored(cols = "value", keep_cens = TRUE) |>
    dplyr::group_by(Location, Year, Species, conpound_family, variable) |>
    dplyr::summarise(n = dplyr::n(), n_censored = sum(value_censored))
```

```{r}
data_count |>
    reactable::reactable()
```

### Criteria 1. On retire les sites pour lesquelles, il y a une seule année de collecte (impossibilité de calibrer un modèle de tendance temporelle).

Voici la liste des sites pour lesquelles, on a une seule année de mesure

```{R, results = "asis"}
crit1 <- contaminants |> 
    dplyr::select(Location, Year) |>
    dplyr::distinct() |>
    dplyr::group_by(Location) |>
    dplyr::count() |>
    dplyr::filter(n == 1) |>
    dplyr::pull(Location)

cat(paste("*", crit1), sep="\n")
```

On retire ces sites pour l'étude de la taille de l'échantillon

```{r}
data_count <- data_count |>
    dplyr::filter(!(Location %in% crit1)) |>
    dplyr::ungroup()
```

```{r, include = FALSE, eval = FALSE}
library(ggplot2)

data_count <- data_count |> 
    dplyr::mutate(n = cut(n, 
        breaks = c(1, 2, 3, 5, 10, Inf), 
        labels = c("1", "2", "3", "5-9", ">=10"), 
        right = FALSE)) |>
    dplyr::mutate(n_censored = cut(n_censored, 
        breaks = c(1, 2, 3, 5, 10, Inf), 
        labels = c("1", "2", "3", "5-9", ">=10"), 
        right = FALSE))

sites <- data_count |> 
    dplyr::pull(Location) |> 
    unique()

for(s in sites){

    conpounds <- data_count |> 
        dplyr::filter(Location == s) |>
        dplyr::pull(conpound_family) |>
        unique()

    figs <- list()

    for (c in seq_along(conpounds)) {
        d <- data_count |> 
            dplyr::filter(conpound_family == conpounds[c] & Location == s) |>
            tidyr::complete(
                tidyr::nesting(Location, Species, conpound_family, variable), 
                Year = min(data_count$Year):max(data_count$Year), 
                fill = list(n = NA)
            )
        
        figs[[c]] <- ggplot(d, aes(x = Year, y = variable, fill = n)) + 
            geom_tile() + 
            # coord_fixed(xlim = range(data_count$Year)) + 
            ggtitle(conpounds[c]) +
            scale_x_continuous(breaks = seq(min(data_count$Year), max(data_count$Year), 1), limits = range(data_count$Year)) +
            viridis::scale_fill_viridis(discrete = TRUE, na.translate = FALSE, drop = FALSE) +
            theme_grey(base_size = 20) +
            theme(
                axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1), 
                panel.grid.major = element_blank(), 
                panel.grid.minor = element_blank()
            ) + xlab("Year of measurement") + ylab("Contaminant") +
            labs(fill='Measurements (n)') + facet_wrap(~Species, ncol = 1) 
    }

    # rename figs list
    names(figs) <- conpounds

    # Calcul les tailles des figures
    tmp <- data_count |> 
        dplyr::filter(Location == s) |>
        dplyr::group_by(Location, conpound_family) |>
        dplyr::summarize(h = dplyr::n_distinct(variable)) |>
        dplyr::mutate(tot = sum(h) + 10) |>
        dplyr::mutate(h = h / sum(h)) |>
        dplyr::arrange(factor(conpound_family, levels = names(figs)))
    
    heights <- tmp |> dplyr::pull(h)
    tot <- tmp |> dplyr::pull(tot) |> unique()

    filename <- paste0(janitor::make_clean_names(s), ".png")
    p <- patchwork::wrap_plots(figs, ncol = 1, heights = heights)
    
    ggsave(
        p, 
        file = file.path("figures", filename),
        create.dir = TRUE,
        dpi = 300,
        width = 50,
        height = tot,
        units = "cm",
        limitsize = FALSE
    )
}
```

```{R, echo = FALSE, results = "asis"}
sites <- data_count |> 
    dplyr::pull(Location) |> 
    unique()

for (s in sites){
    cat("\n### Site ", s, "\n")

    cat(paste0("![](", file.path("figures", paste0(janitor::make_clean_names(s), ".png")), ")"), "\n")

    cat("\n")
}

```