knitr::opts_chunk$set(
  echo = TRUE,
  message = FALSE,
  warning = FALSE,
  fig.width = 8,
  fig.height = 4,
  dpi = 150
)

library(dplyr)
library(forcats)
library(tidyr)
library(readr)
library(scales)
library(knitr)
library(plotly)

# Charte graphique Okabe-Ito pour une question d'accessibilité aux daltoniens
pal_okabe <- c(
  "Bleu"   = "#0072B2",
  "Orange" = "#E69F00",
  "Vert"   = "#009E73",
  "Violet" = "#CC79A7",
  "Gris"   = "#999999"
)

# Mappings de couleurs
cols_freq_internet <- c(
  "Plusieurs fois par jour" = unname(pal_okabe["Violet"]),
  "1 fois par jour (ou presque)" = unname(pal_okabe["Orange"]),
  "Moins d’1 fois / jour" = unname(pal_okabe["Gris"])
)

cols_expo_bin <- c(
  "Non exposé" = unname(pal_okabe["Gris"]),
  "Exposé"     = unname(pal_okabe["Violet"])
)

cols_expo_force <- c(
  "Aucune exposition"  = unname(pal_okabe["Gris"]),
  "Faible (1–3)"       = unname(pal_okabe["Orange"]),
  "Exposé (4–6)"       = unname(pal_okabe["Bleu"]),
  "Forte (7–10)"       = unname(pal_okabe["Vert"]),
  "Très forte (11–14)" = unname(pal_okabe["Violet"])
)

cols_diff_confiance <- c(
  "+ journalistes" = unname(pal_okabe["Bleu"]),
  "Équivalent"    = unname(pal_okabe["Orange"]),
  "+ créateurs"   = unname(pal_okabe["Violet"])
)

cols_adhesion_force <- c(
  "Faible (0–2)" = unname(pal_okabe["Gris"]),
  "Moyen (3–5)"  = unname(pal_okabe["Orange"]),
  "Élevé (6–8)"  = unname(pal_okabe["Violet"])
)

1 Présentation des données utilisées

Cette analyse s’appuie sur la base anonymisée fournie pour le sujet (les-francais-et-l-information-arcom-2024-base-anonymisee.txt), issue de l’enquête ARCOM « Les Français et l’information ».

Élément Valeur
Fichier analysé les-francais-et-l-information-arcom-2024-base-anonymisee.txt (base anonymisée)
Nombre de répondants (base) 3346
Nombre de variables (base) 1076
Poids d’enquête POIDS03 (poids de redressement)
Remarque Les non-réponses (NA) seront exclues au moment des analyses sur INF3

Pondération (POIDS03) : utilité et fonctionnement (simple)

La variable POIDS03 est un poids de redressement : elle sert à rendre les statistiques plus représentatives de la population (corrige les déséquilibres de l’échantillon sur des critères comme l’âge, le sexe, etc.).
Intuition : un répondant avec un poids 2 “compte” environ deux fois plus qu’un répondant avec un poids 1 dans les pourcentages.

Conséquence : - Pour décrire (graphiques et %), on privilégiera des pourcentages pondérés (avec POIDS03). - Les effectifs bruts (non pondérés) restent utiles pour vérifier qu’il y a assez de répondants dans chaque catégorie.

Gestion des non-réponses sur la confiance (INF3)

Les variables de confiance (INF3) peuvent contenir des non-réponses (NA).
Dans les analyses « confiance journalistes vs créateurs », les pourcentages seront calculés uniquement sur les répondants à ces questions : une non-réponse n’est pas une “absence de confiance”, et ne doit pas être traitée comme 0.

Non-réponses (NA) — Confiance envers journalistes et créateurs
Variable Manquants (n) Manquants (%) Manquants pondérés (%)
Confiance envers les journalistes 397 11.9 14.7
Confiance envers les créateurs 397 11.9 14.7

2 Problématique, objectifs et hypothèses

Problématique

La fracture de confiance entre journalistes et créateurs de contenus est-elle principalement générationnelle, ou s’explique-t-elle par l’exposition numérique ?

Objectif général

Mettre en évidence (ou non) une fracture de confiance entre journalistes et créateurs de contenus, puis tester si cette fracture semble surtout liée à l’âge ou si elle est en partie liée à l’exposition au numérique et aux plateformes.

Questions d’analyse

  1. Exposition numérique : les tranches d’âge ont-elles des profils différents d’usage d’internet ?
  2. Exposition aux plateformes : les tranches d’âge ont-elles des niveaux différents d’exposition aux plateformes (présence/usage déclaré de plateformes) ?
  3. La fracture est elle générationelle : le différentiel de confiance (journalistes vs créateurs) varie-t-il selon la tranche d’âge ?
  4. Générationnel vs technologique : à exposition comparable aux plateformes (exposé vs non exposé), l’effet de l’âge diminue-t-il ou persiste-t-il ?
  5. Complotisme :l’adhésion complotiste modifie-t-elle cette fracture ?

Hypothèses

  • ** exposition numérique** : l’intensité d’utilisation d’internet varie selon la tranche d’âge.
  • ** exposition plateformes** : le niveau d’exposition aux plateformes varie selon la tranche d’âge.
  • ** confiance** : le différentiel de confiance entre journalistes et créateurs varie selon la tranche d’âge.
  • ** lecture technologique ** : une partie de la fracture observée pourrait être liée à l’exposition aux plateformes.
  • ** Liaison avec le complotisme ** : Est ce que l’adhésion complotiste fais pencher la confience plus vers les journaliste ou les créateurs de contenue.

Opérationnalisation

  • Tranche d’âge : variable en classes d’âge (affichée avec des libellés lisibles, ex. « 15–17 ans »).
  • Exposition numérique : fréquence d’utilisation d’internet (3 niveaux).
  • Exposition aux plateformes : score basé sur le nombre de réponses renseignées dans la question plateformes (slots non-vides).
    • Un slot vide (NA) compte pour 0.
    • La modalité « Aucun » (si présente) ne doit pas être comptée comme une plateforme.
  • Exposition comparable : variable binaire « exposé » (score ≥ 1) vs « non exposé » (score = 0).
  • Différentiel de confiance : comparaison entre confiance envers journalistes et confiance envers créateurs → 3 catégories : « + journalistes / égal / + créateurs ».
  • Non-réponses : pour la confiance, les non-réponses (NA) sont exclues des calculs (une non-réponse n’est pas une absence de confiance).

Limites et précautions d’interprétation

L’exposition aux plateformes est utilisée comme un indicateur de substitution ** (proxy) ** : elle renseigne l’environnement numérique des répondants, sans mesurer directement l’exposition aux influenceurs. De plus, les plateformes étant de plus en plus hybrides ** (formats courts, convergence réseaux sociaux/vidéo) **, cet indicateur capte surtout une exposition globale plutôt qu’un type précis de contenu. Enfin, la mesure est déclarative, donc susceptible d’erreurs de mémoire ou de biais de désirabilité sociale, et l’enquête étant transversale, les résultats décrivent des associations entre variables sans permettre de conclure à une relation causale.

#1 Vérifier la présence des variables du plan
rsinfo_slots <- paste0("RSINFO_1_LR_R_", 1:14)
complot_items <- paste0("COMPLOT2_R_", 1:8)

vars_expected <- c(
  "RS2C_RECODE_AG_R", "FREQ_INTERNET_R",
  "INF3_R_1", "INF3_R_6",
  "POIDS03",
  rsinfo_slots,
  complot_items
)

vars_missing <- setdiff(vars_expected, names(arcom))

if (length(vars_missing) == 0) {
  cat("OK — Toutes les variables attendues pour le plan sont présentes.\n")
} else {
  cat("ATTENTION — Variables attendues manquantes dans la base :\n")
  print(vars_missing)
}
## OK — Toutes les variables attendues pour le plan sont présentes.
#2 Recodages lisibles (labels) pour affichage

arcom <- arcom %>%
  dplyr::mutate(
    age_lbl = dplyr::case_when(
      RS2C_RECODE_AG_R == 1 ~ "15–17 ans",
      RS2C_RECODE_AG_R == 2 ~ "18–24 ans",
      RS2C_RECODE_AG_R == 3 ~ "25–34 ans",
      RS2C_RECODE_AG_R == 4 ~ "35–44 ans",
      RS2C_RECODE_AG_R == 5 ~ "45–59 ans",
      RS2C_RECODE_AG_R == 6 ~ "60–69 ans",
      RS2C_RECODE_AG_R == 7 ~ "70 ans et +",
      TRUE ~ NA_character_
    ),
    age_lbl = factor(
      age_lbl,
      levels = c("15–17 ans","18–24 ans","25–34 ans","35–44 ans","45–59 ans","60–69 ans","70 ans et +")
    ),

    # FREQ_INTERNET_R : labels à vérifier dans le datamap si besoin
    freq_internet_lbl = dplyr::case_when(
      FREQ_INTERNET_R == 1 ~ "Plusieurs fois par jour",
      FREQ_INTERNET_R == 2 ~ "1 fois par jour (ou presque)",
      FREQ_INTERNET_R == 3 ~ "Moins d’1 fois / jour",
      TRUE ~ NA_character_
    ),
    freq_internet_lbl = factor(
  freq_internet_lbl,
  levels = c("Plusieurs fois par jour",
             "1 fois par jour (ou presque)",
             "Moins d’1 fois / jour")
)
  )

#3 Préparation RSINFO : score d'exposition = nb de slots renseignés (non-NA)

rsinfo_slots_present <- intersect(rsinfo_slots, names(arcom))
if (length(rsinfo_slots_present) == 0) {
  cat("\nATTENTION — aucune colonne RSINFO_1_LR_R_* trouvée : impossible de préparer l'exposition plateformes.\n")
} else {

  slots_df <- arcom %>% dplyr::select(dplyr::all_of(rsinfo_slots_present))
  slots_mat <- as.matrix(slots_df)

  # Fréquence brute des codes (hors NA)
  all_codes <- slots_mat[!is.na(slots_mat)]
  code_counts <- sort(table(all_codes), decreasing = TRUE)

  # Co-occurrence : un candidat "Aucun" apparaît quasi toujours seul (sans autre code dans la même ligne)
  row_codes <- lapply(seq_len(nrow(slots_mat)), function(i) {
    unique(slots_mat[i, !is.na(slots_mat[i, ])])
  })

  codes_unique <- sort(unique(unlist(row_codes)))
  cooc_rate <- sapply(codes_unique, function(cd) {
    idx <- vapply(row_codes, function(v) cd %in% v, logical(1))
    if (!any(idx)) return(NA_real_)
    mean(vapply(row_codes[idx], function(v) length(v) > 1, logical(1)))
  })

  stats_codes <- dplyr::tibble(
    code = as.character(codes_unique),
    n = as.integer(code_counts[as.character(codes_unique)] %>% replace(is.na(.), 0)),
    cooc_rate = as.numeric(cooc_rate)
  ) %>%
    dplyr::arrange(cooc_rate, dplyr::desc(n))

  # Heuristique : "Aucun" = fréquent ET cooc_rate très faible
  cand <- stats_codes %>%
    dplyr::filter(!is.na(cooc_rate), n >= 50, cooc_rate <= 0.05) %>%
    dplyr::slice_max(order_by = n, n = 1)

  aucun_code <- if (nrow(cand) == 1) cand$code else NA_character_

  cat("\nDétection automatique du code 'Aucun' (candidat) : ", ifelse(is.na(aucun_code), "NON DÉTECTÉ", aucun_code), "\n")

  # Score = nombre de slots non-NA
  expo_slots_filled <- rowSums(!is.na(slots_mat))

  # Si 'Aucun' détecté : on ne le compte pas comme plateforme
  if (!is.na(aucun_code)) {
    has_aucun <- apply(slots_mat, 1, function(r) any(as.character(r) == aucun_code, na.rm = TRUE))
    expo_score <- pmax(expo_slots_filled - ifelse(has_aucun, 1, 0), 0)
  } else {
    expo_score <- expo_slots_filled
  }

  arcom <- arcom %>%
    dplyr::mutate(
      expo_score = expo_score,
      expo_bin = dplyr::if_else(expo_score >= 1, "Exposé", "Non exposé"),
      expo_bin = factor(expo_bin, levels = c("Non exposé", "Exposé"))
    )


#4 Présentation lisible de l’exposition plateformes
#Binaire : Non exposé vs Exposé
expo_bin_tbl <- arcom %>%
  dplyr::filter(!is.na(expo_bin)) %>%
  add_weight(weight_col = "POIDS03", out = "w", na_value = 0) %>%
  dplyr::group_by(expo_bin) %>%
  dplyr::summarise(
    n = dplyr::n(),
    w_n = sum(w, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  dplyr::mutate(
    pct = w_n / sum(w_n),
    `% pondéré` = scales::percent(pct, accuracy = 0.1)
  ) %>%
  dplyr::rename(`Exposition (binaire)` = expo_bin) %>%
  dplyr::select(`Exposition (binaire)`, n, `% pondéré`)


knitr::kable(
  expo_bin_tbl,
  caption = "Exposition aux plateformes — synthèse (Non exposé vs Exposé)"
)

#Score : résumé simple (pas une distribution brute)
expo_score_resume <- arcom %>%
  dplyr::summarise(
    `Score min` = min(expo_score, na.rm = TRUE),
    `Score médian` = stats::median(expo_score, na.rm = TRUE),
    `Score max` = max(expo_score, na.rm = TRUE)
  )

knitr::kable(
  expo_score_resume,
  caption = "Score d’exposition — résumé (min / médiane / max)"
)

}
## 
## Détection automatique du code 'Aucun' (candidat) :  14
Score d’exposition — résumé (min / médiane / max)
Score min Score médian Score max
0 4 13

3 Intensité d’utilisation d’internet selon la tranche d’âge

Avant d’analyser la confiance envers les journalistes et les créateurs de contenus, on observe l’exposition numérique “générale” via la fréquence d’utilisation d’internet. L’objectif est d’identifier si les tranches d’âge ont des profils d’usage différents.

La Fréquence d’usage d’internet varie selon l’âge

Le graphique met en évidence un effet générationnel net : les plus jeunes (notamment 15–17 ans) déclarent majoritairement une utilisation d’internet plusieurs fois par jour, tandis que la part des usages moins quotidiens augmente fortement avec l’âge, surtout à partir de 60 ans et plus encore chez les 70 ans et +. Cette relation est statistiquement significative, mais non linéaire : les écarts ne progressent pas de façon régulière tranche par tranche, avec des variations locales entre âges proches selon la modalité (“1 fois par jour” vs “plusieurs fois”).

L’exposition aux plateforme présente aussi un marqueur générationnel

Le graphique confirme un gradient générationnel : plus l’âge augmente, plus la distribution se déplace vers “aucune exposition” et “faible”, alors que les classes jeunes concentrent davantage les niveaux “exposé”, “forte” et “très forte”. Un point saillant concerne les 18–24 ans et les 25–34 ans : ce sont les tranches où la part de “très forte exposition” (11–14) est la plus visible, et où l’on observe aussi une forte présence des catégories “forte” et “exposé”. Autrement dit, ces deux groupes se distinguent par une intensité d’exposition élevée, cohérente avec un environnement numérique plus dense et plus régulier que chez les tranches plus âgées.

4.1 Différentiel de confiance (journalistes vs créateurs) selon l’âge

On compare la confiance déclarée envers les journalistes et envers les créateurs de contenus.
L’objectif est d’obtenir, par tranche d’âge, la part de répondants qui font davantage confiance aux journalistes, autant confiance, ou davantage confiance aux créateurs.

Répartition des réponses de confiance (libellés lisibles)
Source Réponse n % pondéré
Journalistes Tout à fait confiance 246 9.7%
Journalistes Plutôt confiance 1679 55.3%
Journalistes Plutôt pas confiance 789 26.8%
Journalistes Pas du tout confiance 235 8.3%
Créateurs Tout à fait confiance 91 3.7%
Créateurs Plutôt confiance 472 18.3%
Créateurs Plutôt pas confiance 1124 37.6%
Créateurs Pas du tout confiance 1262 40.4%
Différentiel de confiance (pondéré POIDS03) — % par tranche d’âge
Tranche d’âge Plus confiance aux journalistes Confiance équivalente Plus confiance aux créateurs
15–17 ans 59.3 30.7 9.9
18–24 ans 40.3 42.7 17.0
25–34 ans 50.5 36.2 13.4
35–44 ans 55.7 31.1 13.2
45–59 ans 69.8 25.0 5.2
60–69 ans 73.1 21.4 5.6
70 ans et + 72.9 21.7 5.4
## 
## Test du Chi-2 (non pondéré) : âge × différentiel de confiance
## Chi-2 = 222.56  | ddl = 12  | p-value = <2e-16
## V de Cramér = 0.194

La distribution globale montre d’abord un niveau de confiance nettement plus élevé envers les journalistes : la modalité dominante est « plutôt confiance » (55,3 % pondéré), alors que pour les créateurs, les réponses se concentrent surtout sur la défiance (37,6 % « plutôt pas confiance » et 40,4 % « pas du tout confiance »). Quand on regarde le différentiel “journalistes vs créateurs” par âge, la plupart des tranches déclarent davantage confiance aux journalistes, et ce phénomène devient très marqué après 45 ans (≈70 % “plus confiance aux journalistes”). À l’inverse, les 18–24 ans se distinguent par une part élevée de confiance équivalente (42,7 %) et la part la plus forte de “plus confiance aux créateurs” (17,0 %), signe d’un rapport plus équilibré aux deux sources chez les jeunes adultes. Le test du χ² (âge × différentiel) est hautement significatif (χ² = 222,56 ; ddl = 12 ; p < 2e-16) : la répartition des profils de confiance dépend bien de l’âge ; on parle donc d’une association statistique robuste (sans conclure à une causalité).

4.2 Générationnel ou technologique : comparaison à exposition comparable

Ici, on observe le différentiel de confiance à exposition comparable aux plateformes (deux groupes : Non exposé vs Exposé).
L’objectif est de voir si l’effet “âge” persiste dans les deux groupes.

Même à exposition comparable aux plateformes, le différentiel de confiance reste majoritairement en faveur des journalistes : dans les deux groupes (“non exposé” et “exposé”), les tranches d’âge les plus élevées se caractérisent par une part très dominante de « + confiance aux journalistes », ce qui suggère que l’effet âge ne se réduit pas uniquement à un effet “technologique”. En revanche, chez les plus jeunes (notamment 15–24 ans), la structure est plus équilibrée : la confiance équivalente prend davantage de place et, dans le groupe exposé, on observe une part non négligeable de « + confiance aux créateurs ». Autrement dit, à niveau d’exposition similaire, la fracture générationnelle persiste, mais elle se traduit surtout par un profil plus nuancé chez les jeunes, comparé à une préférence plus nette pour les journalistes chez les seniors.

5.1 Adhésion complotiste selon la tranche d’âge

On construit un indicateur de force d’adhésion complotiste à partir de 8 items (COMPLOT2).
L’indicateur correspond au nombre d’items “adhésion” (score de 0 à 8), puis il est regroupé en 3 niveaux : faible (0–2), moyen (3–5), élevé (6–8).

## 
## Répondants avec 8/8 items complot répondus (et âge renseigné) : 3346 / 3346

Le graphique suggère une variation de l’adhésion complotiste selon l’âge : la répartition entre niveaux faible / moyen / élevé n’est pas identique d’une tranche d’âge à l’autre, ce qui indique un effet générationnel (au sens descriptif) sur cet indicateur. On observe globalement que la majorité des répondants se situe entre faible et moyen, tandis que le niveau élevé reste minoritaire dans toutes les tranches, avec des écarts de proportion selon l’âge.

Limite importante de lecture : cette association ne signifie pas que l’âge “explique” à lui seul l’adhésion complotiste. L’âge peut être corrélé à d’autres facteurs susceptibles d’influencer l’indicateur (niveau d’éducation, catégories socio-professionnelles, rapport à l’information, environnement médiatique, etc.). Comme l’enquête est transversale, on décrit une relation entre variables, sans pouvoir isoler un effet causal ni contrôler tous les facteurs de confusion avec ce seul graphique.

5.2 Adhésion complotiste et fracture de confiance (journalistes vs créateurs)

On observe ici si la force d’adhésion complotiste (faible / moyen / élevé) s’accompagne d’un profil de confiance différent entre journalistes et créateurs, et si ce profil varie selon la tranche d’âge.

Le graphique suggère un double effet : l’âge reste structurant, mais il est modulé par la force d’adhésion complotiste. Quand l’adhésion est faible (0–2), la confiance penche largement vers les journalistes dans presque toutes les tranches d’âge, surtout chez les plus âgés. À mesure que l’adhésion passe à moyenne (3–5) puis élevée (6–8), on observe chez les plus jeunes (en particulier 18–44 ans) un déplacement vers une confiance plus “équivalente” et, pour certains groupes, une part plus importante de “+ confiance aux créateurs”. À l’inverse, même en adhésion élevée, les 60 ans et + restent majoritairement du côté journalistes, ce qui montre que l’effet générationnel ne disparaît pas. Lecture à garder en tête : les sous-groupes “adhésion élevée” peuvent être moins nombreux, donc on évite de sur-interpréter des écarts fins.

Conclusion de l’analyse

Les résultats indiquent que la fracture de confiance est principalement générationnelle : même à exposition comparable aux plateformes, les tranches plus âgées accordent nettement plus de confiance aux journalistes, tandis que les plus jeunes présentent un profil plus équilibré (confiance équivalente plus fréquente) et une part légèrement plus tournée vers les créateurs. L’exposition numérique joue néanmoins un rôle : chez les jeunes plus exposés, la confiance relative envers les créateurs apparaît plus visible, ce qui suggère un effet d’environnement numérique qui s’ajoute à l’effet âge, sans l’effacer.

Limites : l’exposition aux plateformes reste un proxy (pas une mesure directe de l’exposition aux influenceurs) ; les données sont déclaratives (biais de mémoire/désirabilité sociale) ; l’enquête est transversale (associations, pas causalité) ; enfin, d’autres variables non isolées ici (éducation, CSP, politisation, rapport aux médias, etc.) peuvent confondre la relation observée.