donnees <- donnees %>%
mutate(
## Nb de déglutitions par IDDSI
n_iddsi0 = nb_deglu_iddsi0_1 + nb_deglu_iddsi0_2 + nb_deglu_iddsi0_verre,
n_iddsi2 = nb_deglu_iddsi2_1 + nb_deglu_iddsi2_2 + nb_deglu_iddsi2_3,
n_iddsi4 = nb_deglu_iddsi4_1 + nb_deglu_iddsi4_2 + nb_deglu_iddsi4_3,
## Sommes YaleV par IDDSI
sum_yalev_iddsi0 = somme_de_yale_v_iddsi0_1 +
somme_de_yale_v_iddsi0_2 +
somme_de_yale_v_iddsi0_verre,
sum_yalev_iddsi2 = somme_de_yale_v_iddsi2_1 +
somme_de_yale_v_iddsi2_2 +
somme_de_yale_v_iddsi2_3,
sum_yalev_iddsi4 = somme_de_yale_v_iddsi4_1 +
somme_de_yale_v_iddsi4_2 +
somme_de_yale_v_iddsi4_3,
## Sommes YaleS par IDDSI
sum_yales_iddsi0 = somme_de_yale_s_iddsi0_1 +
somme_de_yale_s_iddsi0_2 +
somme_de_yale_s_iddsi0_verre,
sum_yales_iddsi2 = somme_de_yale_s_iddsi2_1 +
somme_de_yale_s_iddsi2_2 +
somme_de_yale_s_iddsi2_3,
sum_yales_iddsi4 = somme_de_yale_s_iddsi4_1 +
somme_de_yale_s_iddsi4_2 +
somme_de_yale_s_iddsi4_3,
## Sommes PAS par IDDSI
sum_pas_iddsi0 = somme_de_pas_iddsi0_1 +
somme_de_pas_iddsi0_2 +
somme_de_pas_iddsi0_verre,
sum_pas_iddsi2 = somme_de_pas_iddsi2_1 +
somme_de_pas_iddsi2_2 +
somme_de_pas_iddsi2_3,
sum_pas_iddsi4 = somme_de_pas_iddsi4_1 +
somme_de_pas_iddsi4_2 +
somme_de_pas_iddsi4_3
)
## analyses par IDDSI
deg_iddsi <- bind_rows(
donnees %>%
transmute(
sujet,
iddsi = "IDDSI 0",
nb_deglutitions = n_iddsi0,
sum_yalev = sum_yalev_iddsi0,
sum_yales = sum_yales_iddsi0,
sum_pas = sum_pas_iddsi0
),
donnees %>%
transmute(
sujet,
iddsi = "IDDSI 2",
nb_deglutitions = n_iddsi2,
sum_yalev = sum_yalev_iddsi2,
sum_yales = sum_yales_iddsi2,
sum_pas = sum_pas_iddsi2
),
donnees %>%
transmute(
sujet,
iddsi = "IDDSI 4",
nb_deglutitions = n_iddsi4,
sum_yalev = sum_yalev_iddsi4,
sum_yales = sum_yales_iddsi4,
sum_pas = sum_pas_iddsi4
)
) %>%
mutate(
iddsi = factor(iddsi, levels = c("IDDSI 0", "IDDSI 2", "IDDSI 4")),
moy_yalev = if_else(nb_deglutitions > 0, sum_yalev / nb_deglutitions, NA_real_),
moy_yales = if_else(nb_deglutitions > 0, sum_yales / nb_deglutitions, NA_real_),
moy_pas = if_else(nb_deglutitions > 0, sum_pas / nb_deglutitions, NA_real_)
)
head(deg_iddsi)
## sujet iddsi nb_deglutitions sum_yalev sum_yales sum_pas moy_yalev moy_yales
## 1 2 IDDSI 0 3 NA NA NA NA NA
## 2 3 IDDSI 0 5 2 0 5 0.4000000 0.0000000
## 3 4 IDDSI 0 8 0 2 8 0.0000000 0.2500000
## 4 5 IDDSI 0 26 7 39 57 0.2692308 1.5000000
## 5 6 IDDSI 0 7 4 5 7 0.5714286 0.7142857
## 6 7 IDDSI 0 6 1 0 6 0.1666667 0.0000000
## moy_pas
## 1 NA
## 2 1.000000
## 3 1.000000
## 4 2.192308
## 5 1.000000
## 6 1.000000
# Nombre de déglutitions par type d’IDDSI
nb_iddsi <- donnees %>%
summarise(
`IDDSI 0` = sum(n_iddsi0, na.rm = TRUE),
`IDDSI 2` = sum(n_iddsi2, na.rm = TRUE),
`IDDSI 4` = sum(n_iddsi4, na.rm = TRUE)
) %>%
pivot_longer(everything(),
names_to = "iddsi",
values_to = "n_deglutitions")
nb_iddsi
## # A tibble: 3 × 2
## iddsi n_deglutitions
## <chr> <int>
## 1 IDDSI 0 484
## 2 IDDSI 2 250
## 3 IDDSI 4 257
ggplot(nb_iddsi, aes(x = iddsi, y = n_deglutitions)) +
geom_col(fill = "steelblue") +
labs(x = "Niveau IDDSI",
y = "Nombre total de déglutitions") +
theme_minimal()

# Distribution de YaleV, YaleS et PAS par IDDSI
dist_scores <- deg_iddsi %>%
select(sujet, iddsi, moy_yalev, moy_yales, moy_pas) %>%
pivot_longer(
cols = starts_with("moy_"),
names_to = "categorie",
values_to = "score_moyen"
) %>%
mutate(
categorie = recode(
categorie,
"moy_yalev" = "YaleV",
"moy_yales" = "YaleS",
"moy_pas" = "PAS"
)
)
head(dist_scores)
## # A tibble: 6 × 4
## sujet iddsi categorie score_moyen
## <int> <fct> <chr> <dbl>
## 1 2 IDDSI 0 YaleV NA
## 2 2 IDDSI 0 YaleS NA
## 3 2 IDDSI 0 PAS NA
## 4 3 IDDSI 0 YaleV 0.4
## 5 3 IDDSI 0 YaleS 0
## 6 3 IDDSI 0 PAS 1
ggplot(dist_scores, aes(x = iddsi, y = score_moyen)) +
geom_boxplot(fill = "grey85") +
facet_wrap(~ categorie, scales = "free_y") +
labs(x = "IDDSI",
y = "Score moyen par sujet") +
theme_minimal()

# Références globales
refs <- donnees %>%
summarise(
ref_yalev = mean(ref_yale_v_global, na.rm = TRUE),
ref_yales = mean(ref_yale_s_golbal, na.rm = TRUE),
ref_pas = mean(ref_pas_global, na.rm = TRUE)
)
refs
## ref_yalev ref_yales ref_pas
## 1 1.020408 1.122449 2.416667
# Comparaison entre références et moyennes par IDDSI
## YaleV
moy_iddsi_yalev <- deg_iddsi %>%
group_by(iddsi) %>%
summarise(
yalev_moyen = sum(sum_yalev, na.rm = TRUE) /
sum(nb_deglutitions, na.rm = TRUE),
.groups = "drop"
)
ggplot(moy_iddsi_yalev, aes(x = iddsi, y = yalev_moyen)) +
geom_col(fill = "steelblue") +
geom_hline(yintercept = refs$ref_yalev,
colour = "red", linetype = "dashed", size = 1) +
labs(x = "IDDSI",
y = "YaleV moyen (toutes déglutitions)",
title = "YaleV moyen par IDDSI\nLigne rouge = YaleV de référence") +
theme_minimal()

## YaleS
moy_iddsi_yales <- deg_iddsi %>%
group_by(iddsi) %>%
summarise(
yales_moyen = sum(sum_yales, na.rm = TRUE) /
sum(nb_deglutitions, na.rm = TRUE),
.groups = "drop"
)
moy_iddsi_yales
## # A tibble: 3 × 2
## iddsi yales_moyen
## <fct> <dbl>
## 1 IDDSI 0 1.03
## 2 IDDSI 2 1.05
## 3 IDDSI 4 0.868
ggplot(moy_iddsi_yales, aes(x = iddsi, y = yales_moyen)) +
geom_col(fill = "darkorange") +
geom_hline(yintercept = refs$ref_yales,
colour = "red", linetype = "dashed", size = 1) +
labs(x = "IDDSI",
y = "YaleS moyen (toutes déglutitions)",
title = "YaleS moyen par IDDSI\nLigne rouge = YaleS de référence") +
theme_minimal()

moy_iddsi_yalev
## # A tibble: 3 × 2
## iddsi yalev_moyen
## <fct> <dbl>
## 1 IDDSI 0 0.798
## 2 IDDSI 2 1.06
## 3 IDDSI 4 1.14
## PAS
moy_iddsi_pas <- deg_iddsi %>%
group_by(iddsi) %>%
summarise(
pas_moyen = sum(sum_pas, na.rm = TRUE) /
sum(nb_deglutitions, na.rm = TRUE),
.groups = "drop"
)
moy_iddsi_pas
## # A tibble: 3 × 2
## iddsi pas_moyen
## <fct> <dbl>
## 1 IDDSI 0 1.53
## 2 IDDSI 2 1.40
## 3 IDDSI 4 1.44
ggplot(moy_iddsi_pas, aes(x = iddsi, y = pas_moyen)) +
geom_col(fill = "seagreen") +
geom_hline(yintercept = refs$ref_pas,
colour = "red", linetype = "dashed", size = 1) +
labs(x = "IDDSI",
y = "PAS moyen (toutes déglutitions)",
title = "PAS moyen par IDDSI\nLigne rouge = PAS de référence") +
theme_minimal()

# Analyse en fonction de la sévérité (EDG_severite)
deg_iddsi_sev <- deg_iddsi %>%
left_join(
donnees %>% select(sujet, edg_severite),
by = "sujet"
) %>%
mutate(
edg_severite = as.factor(edg_severite) # si tu veux un ordre particulier, on pourra le préciser
)
# Moyennes YaleV / YaleS / PAS par IDDSI et par sévérité
resume_sev <- deg_iddsi_sev %>%
group_by(edg_severite, iddsi) %>%
summarise(
moy_yalev = mean(moy_yalev, na.rm = TRUE),
moy_yales = mean(moy_yales, na.rm = TRUE),
moy_pas = mean(moy_pas, na.rm = TRUE),
n_sujets = n_distinct(sujet),
.groups = "drop"
) %>%
pivot_longer(
cols = starts_with("moy_"),
names_to = "categorie",
values_to = "score_moyen"
) %>%
mutate(
categorie = recode(
categorie,
"moy_yalev" = "YaleV",
"moy_yales" = "YaleS",
"moy_pas" = "PAS"
)
)
resume_sev
## # A tibble: 90 × 5
## edg_severite iddsi n_sujets categorie score_moyen
## <fct> <fct> <int> <chr> <dbl>
## 1 1 IDDSI 0 9 YaleV 0.101
## 2 1 IDDSI 0 9 YaleS 0.151
## 3 1 IDDSI 0 9 PAS 1.06
## 4 1 IDDSI 2 9 YaleV 0.0926
## 5 1 IDDSI 2 9 YaleS 0.157
## 6 1 IDDSI 2 9 PAS 1.14
## 7 1 IDDSI 4 9 YaleV 0.0833
## 8 1 IDDSI 4 9 YaleS 0.175
## 9 1 IDDSI 4 9 PAS 1
## 10 2 IDDSI 0 9 YaleV 0.654
## # ℹ 80 more rows
ggplot(resume_sev,
aes(x = edg_severite, y = score_moyen,
fill = iddsi)) +
geom_col(position = position_dodge(width = 0.8)) +
facet_wrap(~ categorie, scales = "free_y") +
labs(x = "Sévérité (EDG_severite)",
y = "Score moyen",
fill = "IDDSI") +
theme_minimal()

# Analyse du degré de sévérité _EDG_severite
donnees <- donnees %>%
mutate(edg_severite = as.factor(edg_severite))
# Effectif par niveau de sévérité
tab_sev <- donnees %>%
count(edg_severite) %>%
arrange(edg_severite)
tab_sev
## edg_severite n
## 1 1 9
## 2 2 9
## 3 3 7
## 4 4 5
## 5 5 2
## 6 6 5
## 7 7 4
## 8 8 3
## 9 9 1
## 10 <NA> 5
## Sévérité et scores globaux_ toutes IDDSI confondues
### Moyennes globales par sévérité, indépendamment de l'IDDSI
sev_global <- donnees %>%
group_by(edg_severite) %>%
summarise(
n_sujets = n(),
yalev_moy = mean(moyenne_de_yale_v_global, na.rm = TRUE),
yales_moy = mean(moyenne_de_yale_s_global, na.rm = TRUE),
pas_moy = mean(moyenne_de_pas_global, na.rm = TRUE),
.groups = "drop"
)
sev_global
## # A tibble: 10 × 5
## edg_severite n_sujets yalev_moy yales_moy pas_moy
## <fct> <int> <dbl> <dbl> <dbl>
## 1 1 9 0.0962 0.157 1.06
## 2 2 9 0.487 0.438 1.46
## 3 3 7 0.648 0.814 1.19
## 4 4 5 0.620 0.352 1.47
## 5 5 2 1.85 1.81 2.04
## 6 6 5 1.21 1.54 1.50
## 7 7 4 1.80 1.79 2.51
## 8 8 3 2.06 1.60 2.39
## 9 9 1 3.42 3.09 3.15
## 10 <NA> 5 0.577 0.659 1.19
sev_global_long <- sev_global %>%
pivot_longer(
cols = c(yalev_moy, yales_moy, pas_moy),
names_to = "categorie",
values_to = "score_moyen"
) %>%
mutate(
categorie = recode(
categorie,
"yalev_moy" = "YaleV",
"yales_moy" = "YaleS",
"pas_moy" = "PAS"
)
)
ggplot(sev_global_long,
aes(x = edg_severite, y = score_moyen, fill = categorie)) +
geom_col(position = position_dodge(width = 0.8)) +
labs(x = "Sévérité (EDG_severite)",
y = "Score moyen global (toutes IDDSI confondues)",
fill = "Catégorie") +
theme_minimal()

### Sévérité × IDDSI pour chaque catégorie
deg_iddsi_sev <- deg_iddsi %>%
left_join(
donnees %>% select(sujet, edg_severite),
by = "sujet"
) %>%
mutate(edg_severite = as.factor(edg_severite))
# Résumé des moyennes par Sévérité × IDDSI
sev_iddsi <- deg_iddsi_sev %>%
group_by(edg_severite, iddsi) %>%
summarise(
n_sujets = n_distinct(sujet),
moy_yalev = mean(moy_yalev, na.rm = TRUE),
moy_yales = mean(moy_yales, na.rm = TRUE),
moy_pas = mean(moy_pas, na.rm = TRUE),
.groups = "drop"
)
sev_iddsi
## # A tibble: 30 × 6
## edg_severite iddsi n_sujets moy_yalev moy_yales moy_pas
## <fct> <fct> <int> <dbl> <dbl> <dbl>
## 1 1 IDDSI 0 9 0.101 0.151 1.06
## 2 1 IDDSI 2 9 0.0926 0.157 1.14
## 3 1 IDDSI 4 9 0.0833 0.175 1
## 4 2 IDDSI 0 9 0.654 0.524 1.70
## 5 2 IDDSI 2 9 0.512 0.333 1.17
## 6 2 IDDSI 4 9 0.5 0.377 1.30
## 7 3 IDDSI 0 7 0.606 0.976 1.06
## 8 3 IDDSI 2 7 0.309 0.495 1.04
## 9 3 IDDSI 4 7 1 0.732 1.27
## 10 4 IDDSI 0 5 1.02 0.327 1.7
## # ℹ 20 more rows
sev_iddsi_long <- sev_iddsi %>%
pivot_longer(
cols = starts_with("moy_"),
names_to = "categorie",
values_to = "score_moyen"
) %>%
mutate(
categorie = recode(
categorie,
"moy_yalev" = "YaleV",
"moy_yales" = "YaleS",
"moy_pas" = "PAS"
)
)
ggplot(sev_iddsi_long,
aes(x = edg_severite, y = score_moyen, fill = iddsi)) +
geom_col(position = position_dodge(width = 0.8)) +
facet_wrap(~ categorie, scales = "free_y") +
labs(x = "Sévérité (EDG_severite)",
y = "Score moyen",
fill = "IDDSI") +
theme_minimal()

### Distribution des scores par sujet (Sévérité × IDDSI)
dist_scores_sev <- deg_iddsi_sev %>%
select(sujet, edg_severite, iddsi, moy_yalev, moy_yales, moy_pas) %>%
pivot_longer(
cols = starts_with("moy_"),
names_to = "categorie",
values_to = "score_moyen"
) %>%
mutate(
categorie = recode(
categorie,
"moy_yalev" = "YaleV",
"moy_yales" = "YaleS",
"moy_pas" = "PAS"
)
)
ggplot(dist_scores_sev,
aes(x = edg_severite, y = score_moyen, fill = iddsi)) +
geom_boxplot(outlier.alpha = 0.5,
position = position_dodge(width = 0.7)) +
facet_wrap(~ categorie, scales = "free_y") +
labs(x = "Sévérité (EDG_severite)",
y = "Score moyen par sujet",
fill = "IDDSI") +
theme_minimal()
