File size: 3,252 Bytes
6c8b83d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
[//]: # (Rôle du fichier: helpafc.md documente une partie de l'application Rainette.)
[//]: # (Ce document sert de référence fonctionnelle/technique pour l'équipe.)
[//]: # (Il décrit le comportement attendu afin de sécuriser maintenance et diagnostics.)
## Aide AFC : calcul, affichage des termes, rôle de `top_termes`, calcul du `residu de Pearson`

### 1) Comment l’AFC est calculée dans le script

L’AFC classes × termes est calculée en 3 étapes :

1. Construction de la table de contingence **Classes × Termes** depuis le DFM.
2. Exécution de l’AFC avec `FactoMineR::CA(tab, graph = FALSE)`.
3. Récupération des coordonnées des classes (`rowcoord`) et des termes (`colcoord`) pour le tracé.

### 2) Qu’est-ce que `top_termes` ?

`top_termes` est **une limite d’affichage graphique** des mots sur le plan AFC. Par défaut : `top_termes = 120`

### 3) Sur quoi `top_termes` filtre ?

Le filtrage est fait dans la fonction de tracé des termes :

1. on part de `termes_stats`,
2. on enlève les termes vides,
3. on trie par `frequency` décroissante,
4. on garde les `top_termes` premiers.

Pourquoi top_termes est en fréquence et pas en p-value ?

Parce que top_termes est une contrainte de lisibilité graphique.
Le rôle de top_termes est de limiter le nombre de labels affichés dans `tracer_afc_classes_termes`, sinon le plot devient illisible (chevauchements). 
Le code trie les termes par `frequency` qui détermine ensuite le `top_termes`.
En amont, dans le pipeline serveur, on construit termes_signif avec `p <= input$max_p`, puis on passe ces termes à `executer_afc_classes`, `termes_cibles` = termes_significatifs). **Donc la p-value réduit le périmètre des termes de l'AFC**.

### 4) Le CSV contient-il seulement `top_termes` ?

Le CSV `stats_termes.csv` exporte la table `rv$afc_obj$termes_stats` (jeu complet de stats AFC disponible), sans appliquer la réduction `top_termes`.

### 5) Note sur l'afc chi2/résidu de Pearson

- Les **positions AFC** viennent de `FactoMineR::CA`.
- Les **résidus/chi2** sont des statistiques d’association utilisés pour l’interprétation.

### 6) Comment le résidu de Pearson est calculé

Pour chaque mot et chaque classe :

- On regarde combien de fois le mot apparaît réellement dans cette classe.
- On calcule ensuite combien on aurait “normalement” attendu pour ce mot dans cette classe, si la répartition était neutre.
- On compare les deux : réel vs attendu, et transforme cet écart en une valeur (le résidu).

Le résidu ne sert pas à recalculer l’AFC.

- Le code extrait, pour chaque mot, la classe où la surreprésentation est la plus forte et sa valeur (`resid_max`).
- `Classe_max` = la classe où le mot apparaît le plus en quantité brute (le plus d’occurrences observées).
- `resid_max` = la valeur qui mesure à quel point ce mot est plus (ou moins) présent que prévu dans la classe (sur/sous-représentation)
 
### 7) Résidu positif / résidu négatif

- Résidu positif => le mot est plus présent que prévu dans cette classe (**surreprésenté**).
- Résidu négatif => le mot est moins présent que prévu dans cette classe (**sous-représenté**).
- Résidu proche de 0 => présence “normale”, pas d’écart fort.