Choisir et construire un modèle
Quelle analyse ? (Modèle › Quelle analyse ?)
Modèle › Quelle analyse ? (aussi un bouton de la page d'accueil, à côté de Nouveau modèle, et Ctrl+K) : quelques questions en mots simples, puis l'analyse qui y répond, déjà réglée.
- Votre question : comparer des groupes ou des périodes ; l'effet de variables sur une réponse ; beaucoup d'espèces à la fois (comment la composition change, un modèle par espèce, les espèces qui caractérisent chaque groupe) ; une tendance dans le temps ou un indice de suivi ; une densité ou un effectif (échantillonnage par distance) ; où (cartes, autocorrélation spatiale) ; explorer ou résumer un tableau ; prédire ou classer ; diversité et richesse en espèces ; avant/après avec des témoins (BACI).
- La réponse : la variable mesurée, et son type : une mesure, un comptage (avec beaucoup de zéros ou non), une présence-absence (0 ou 1), une proportion entre 0 et 1, une classe (une variable qualitative), un tableau d'espèces (une colonne par espèce), ou les distances aux animaux détectés (une ligne par détection).
- Le dispositif : les mêmes sites ou placettes mesurés plusieurs fois (le site), des années ou des dates (le temps), un dispositif BACI (l'unité), des coordonnées spatiales, des lignes ou des points (échantillonnage par distance).
- Les variables : les variables explicatives (X), ou les groupes.
Nuée propose les réponses d'après les variables du projet (comme les lit Statistiques des variables) : une réponse d'entiers à partir de 0 est un comptage, de 0 et de 1 une présence-absence, entre 0 et 1 une proportion ; « beaucoup de zéros » quand un quart au moins des valeurs sont nulles, et 15 points de plus que n'en donnerait une loi de Poisson de même moyenne (la phrase sous la réponse donne les deux) ; le site est une variable qualitative nommée comme un site (site, station, placette, transect...) dont les catégories se répètent ; le temps une variable nommée comme une année ou une date, ou des entiers entre 1900 et 2100 ; les espèces les colonnes de nombres positifs ou nuls qui ont des zéros (quatre au moins) ; les coordonnées celles du projet, ou celles que proposent les noms de ses variables ; les distances une variable nommée comme elles, et les autres colonnes de l'échantillonnage par distance par les noms d'où Nouveau modèle les propose (Sample.Label, Effort, Region.Label, Area, size du paquet Distance, ou transect, longueur, région, aire, taille) ; des points plutôt que des lignes quand la colonne du transect est nommée comme un point ou une station. Chaque réponse se change.
À droite : l'analyse conseillée, pourquoi, ses conditions principales et des notes selon les réponses (l'effet aléatoire par site, l'autocorrélation des résidus d'années qui se suivent, les moyennes ajustées après la comparaison de groupes, une proportion qui touche 0 ou 1...), ce qui sera rempli, ce qui reste à compléter, et un bouton. Il ouvre Nouveau modèle déjà rempli (type, loi, rôles, transformation, courbes, effet aléatoire, groupes de validation croisée, et les réglages propres de l'analyse, comme la transformation de Hellinger d'une RDA, le site et le temps de TRIM, ou le transect, l'effort, la strate, l'aire et la taille des groupes de l'échantillonnage par distance), ou la bonne vue (Tests statistiques dans le bon mode, Séries avec ses tendances, Carte, Autocorrélation spatiale, Raréfaction, Statistiques des variables), ou Nouvelle variable avec un indice de diversité. Un modèle par espèce ouvre Nouveau modèle pour la première espèce, puis Un modèle par réponse, les autres cochées. Les autres possibilités, en dessous, s'ouvrent de la même façon. Les réponses sont gardées jusqu'à la fermeture de Nuée : annulez Nouveau modèle et revenez en essayer une autre.
Les choix principaux :
- un comptage : la binomiale négative quand il varie plus qu'une loi de Poisson ne le permet (une variance au-delà de 1,5 fois la moyenne) ou a beaucoup de zéros (beaucoup de zéros ne veut pas toujours dire excès de zéros, Warton 2005 : comparez avec la Poisson à excès de zéros par l'AIC), sinon Poisson ; une présence-absence : la régression logistique ; une proportion : la régression bêta ; une mesure positive et asymétrique : gamma (ou son logarithme) ; une mesure avec des zéros : Tweedie ; sinon le modèle linéaire ; avec les mêmes sites mesurés plusieurs fois, un effet aléatoire par site et la validation croisée par site ;
- des groupes comparés : le test entre deux variables (celui que leurs types demandent), apparié par site quand chaque site vient une fois dans chaque groupe (pas plus d'observations que de sites × groupes), sinon le modèle mixte et ses moyennes ajustées ; pour des comptages, des présences et des proportions, leur GLM ;
- beaucoup d'espèces : la RDA après la transformation de Hellinger avec des X quantitatives, la PERMANOVA avec des groupes, le NMDS sans X ; les espèces indicatrices ; un modèle par espèce ;
- une tendance : TRIM pour des comptages par site et par année (une ligne par site et par année : pas plus d'observations que de sites × années ; sinon un GLM, et TRIM après Édition › Résumer par groupe) ; une mesure sur plusieurs sites : le modèle mixte, l'année en X ; une seule série : Séries et ses tendances ;
- prédire : la PLS ou la PLS-DA avec beaucoup de X (20 ou plus, ou moitié moins que d'observations), la forêt aléatoire sinon, les arbres boostés pour des comptages et des présences ;
- une densité ou un effectif : l'échantillonnage par distance, les distances en Y, des lignes ou des points, ses colonnes préremplies d'après leurs noms ; les unités (m, km et km² sinon) restent à vérifier, et un transect ou un effort introuvable à compléter ; sans aire des strates (ou des aires nulles), la densité seule ;
- où : la carte, puis l'I de Moran et le lissage spatial d'un GAM ; le test de Mantel pour des espèces ;
- explorer : l'ACP, le NMDS pour des espèces ; la diversité : la raréfaction.
Un conseil, pas une règle : les conditions se vérifient après l'ajustement (Résumé › Conditions du modèle).
Nouveau modèle (Modèle › Nouveau modèle)
Onglet Général : type (ACP, PLS, PLS-DA, OPLS, OPLS-DA, modèles de classe, régression linéaire, modèle linéaire mixte, modèle linéaire généralisé, modèle additif : voir Modèles linéaires, généralisés et mixtes ; RDA et CA : voir Analyse de redondance et analyse des correspondances ; arbre de décision, LDA et k-moyennes : voir Arbres de décision, analyse discriminante linéaire et k-moyennes), nom, nombre de composantes (automatique par défaut, par validation croisée), groupes de validation croisée (à tour de rôle, G groupes ; ou un groupe par valeur d'un identifiant ou d'une variable, voir Validation croisée), échelle par défaut.
Onglet Variables : rôle (X, Y, classe), échelle, bloc, modificateur et transformation de chaque variable : racine carrée, racine quatrième, log10, ou personnalisée... (log10, ln ou -log10 de C1*x + C2, exp(C1*x + C2), C1*x + C2, le logit ln((x - C1) / (C2 - x)) entre deux bornes, ou la puissance (C1*x + C2)^C3 ; une valeur hors du domaine devient manquante) ; le filtre permet de régler d'un coup toutes les variables affichées (un bloc : le taper dans « Bloc... » au-dessus de la liste, puis Entrée). Pondération par blocs : les termes d'un même bloc ont leur poids divisé par la racine carrée de leur nombre, pour qu'un bloc de 20 variables ne pèse pas 20 fois plus qu'une variable seule ; une variable qualitative compte par ses catégories. Modificateur : multiplie le poids de la variable après sa mise à l'échelle. Le bouton « Transformations proposées » applique aux variables affichées le log10 proposé (voir Statistiques des variables).
Onglet Termes croisés : produits de deux ou trois variables X (A × B, A × B × C), carrés (A × A) et cubes (A × A × A) ; une variable qualitative y entre par chacune de ses catégories, une fois au plus. Chaque terme croisé a sa propre échelle, son bloc et son modificateur, comme dans l'onglet Variables. Dans une régression, un facteur peut aussi être une variable sans rôle (sous « Pas en X : sans effet principal ») : elle n'entre alors que par le terme croisé (voir Termes croisés avec une variable qualitative).
Onglet Observations : cocher / décocher les observations du modèle, et le jeu de test (voir Jeu de test) ; « Garder seulement les observations où… » les choisit par une condition (voir Observations choisies par une condition). « Modifier le modèle » (Ctrl+M) ouvre cette fenêtre réglée comme un modèle existant (y compris les modèles importés) et crée un nouveau modèle.
Avant le calcul, l'application vérifie les données : variables ou observations avec plus de 50 % de valeurs manquantes, variables constantes. S'il y en a, elle les liste et propose « Les exclure et ajuster » ou « Ajuster quand même ».
Observations choisies par une condition
Nouveau modèle › Observations › « Garder seulement les observations où… » : une condition écrite en R comme une formule de Nouvelle variable, sur les variables et les identifiants des observations par leur nom (un nom avec des espaces entre `accents graves`), par exemple site == "S1" & annee >= 2010, !is.na(densite), habitat %in% c("marais", "prairie") ou annee != 2015. Sous le champ, combien des observations cochées la remplissent (« 312 observations sur 480 »), ou pourquoi elle ne se lit pas : un nom inconnu, une fonction qui n'est pas permise, un résultat qui n'est pas TRUE ou FALSE (ou 1 et 0) pour chaque observation. Elle est évaluée sur toutes les observations du projet, comme une formule de Nouvelle variable : densite > median(densite, na.rm = TRUE) compare à la médiane de toutes les observations, pas à celle des cochées. Le modèle prend les observations cochées où elle est vraie ; un résultat manquant (densite > 5 pour une observation sans densité) compte pour faux.
La condition est enregistrée avec le modèle et refaite sur les données du projet à chaque ajustement ou réajustement : à la réouverture du projet, à l'ajustement automatique, en ajoutant ou en retirant une composante, Exclure la sélection et réajuster, Réajuster avec les variables VIP, Ajuster ce modèle de la sélection par AIC, Ajuster avec CAR1. Après un changement des données, un réajustement peut prendre d'autres observations. Les cases cochées ne changent pas : vider la condition rend les observations qu'elle écartait. Le jeu de test garde ses propres cases : la condition ne s'y applique pas. Les observations qu'elle écarte sont hors du modèle, comme des décochées : Prédire les observations les prédit. Un modèle importé d'un fichier .usp garde les observations de son fichier ; Modifier le modèle en fait un nouveau modèle, qui peut prendre une condition. Deux modèles aux observations différentes ne sont jamais comparés par leur AIC.
Le texte des méthodes dit « les 312 observations où site == "S1" & annee >= 2010 », le résumé et le rapport du modèle donnent la condition, et Exporter vers R l'écrit en R avec les noms des variables du script : les lignes cochées, la condition évaluée sur toutes les lignes du tableau par with(), puis les lignes cochées où elle est vraie, exactement celles de Nuée (une fonction de Nouvelle variable qu'elle appelle est écrite dans le script).
Permis dans une condition : les comparaisons, &, |, !, xor(), %in%, :, les calculs (+ - * / ^ %% %/%), c(), is.na(), ifelse(), abs(), sqrt(), exp(), log(), log10(), log2(), log1p(), round(), floor(), ceiling(), trunc(), signif(), as.numeric(), as.character(), nchar(), substr(), substring(), startsWith(), endsWith(), tolower(), toupper(), trimws(), paste(), paste0(), mean(), median(), min(), max(), sum(), quantile(), pmin(), pmax(), interaction(), et les fonctions de Nouvelle variable moyenne_groupe(), ecart_groupe(), precedent(), suivant() et croissance() (et leurs noms anglais). Rien d'autre : une condition est gardée dans le fichier du projet et refaite à chaque ajustement, un projet reçu ne peut donc rien exécuter d'autre par elle (une formule de Nouvelle variable, tapée et calculée une fois, n'est pas gardée et n'a pas cette limite). Pour que cet ajustement reste rapide et borné, « : » ne va qu'entre deux nombres entiers (annee %in% 2005:2010) et sur une plage d'au plus 100000 valeurs, et interaction() laisse de côté les combinaisons vides : une condition courte ne peut pas construire un vecteur énorme qui figerait un ajustement. Pour un indice de diversité (shannon()...), en faire d'abord une Nouvelle variable, puis employer cette variable dans la condition.
Validation croisée
Les observations du modèle sont réparties à tour de rôle en G groupes (7 par défaut : la 1re, la 8e, la 15e... dans le groupe 1), ou bien un groupe par valeur d'un identifiant ou d'une variable (Nouveau modèle › Groupes de validation croisée) : avec « site », toutes les années d'un site sont dans le même groupe, et chaque site est prédit par un modèle qui ne l'a jamais vu ; les observations sans valeur forment un groupe à part. Les modèles des fichiers .usp gardent leurs groupes : par identifiant quand le fichier groupe les observations de même valeur, sinon les groupes du fichier tels quels (« groupes du fichier »).
Trois façons de valider une ACP, une PLS ou une OPLS (Nouveau modèle › Validation croisée) :
- Centres recalculés, poids du modèle complet (par défaut, pour tous les modèles, importés compris) : chaque groupe est prédit par un modèle ajusté sans lui, comme de nouvelles observations ; ses centres (et le spectre moyen du MSC, les termes croisés) sont recalculés sur les autres observations, avec le même nombre de composantes. Le modèle ne sait rien du Y du groupe qu'il prédit. Ses poids restent ceux du modèle complet : les écarts-types de X ne dépendent pas de Y (une seule variable Y : son poids ne change pas les prédictions), et rien n'est remis à l'échelle sur moins d'observations, si bien qu'aucune prédiction n'explose.
- Centres et poids recalculés sans le groupe caché (la validation de 0.9.0 à 0.9.7) : de même, mais les poids aussi sont recalculés sur les autres observations. Plus sévère : un terme qui varie peu sans le groupe caché y prend un grand poids, et les prédictions du groupe s'en écartent. Garde-fou : un terme dont l'écart-type sur les autres observations tombe sous 10 % de celui du modèle complet (une variable qui ne varie que sur un site, validée par site) garde le poids du modèle complet ; sinon son poids, 1 / écart-type, serait multiplié d'autant, et les prédictions du groupe caché exploseraient (des Q2 de -8e11 sur un projet réel). Le Résumé dit lesquels, sans quel groupe.
- Centres et poids du modèle complet : le centrage et la mise à l'échelle du modèle complet ; chaque composante est validée sur ce que laissent les précédentes du modèle complet, une composante ajustée sans chaque groupe. Q2 d'une composante : 1 - PRESS / SS des résidus avant elle ; Q2(cum) : 1 - le produit des (1 - Q2) des composantes, chacun compté pour -0,1 au plus bas. C'est la validation des fichiers .usp : elle redonne leurs Q2, leurs Q2 par variable et les intervalles de confiance de leurs coefficients. Le Y prédit en validation croisée (RMSEcv, CV-ANOVA, classement) vient de sous-modèles ajustés sans chaque groupe sur les matrices du modèle complet. Plus optimiste, surtout avec peu d'observations ou des groupes par site : le centre de Y et les composantes précédentes connaissent déjà le groupe caché (sur du bruit pur, 6 observations et 20 variables, elle donnait Q2 = 0,98 pour une OPLS-DA ; les deux autres, moins de 0). Une OPLS a ses sous-modèles ajustés sur les matrices du modèle complet.
Les deux premières : PRESS, la somme des carrés des erreurs de prédiction ; Q2(cum) = 1 - PRESS / SS (SS : la variation de Y, ou de X pour une ACP) ; le Q2 d'une composante, 1 - PRESS / PRESS de la précédente. ACP : chaque valeur est prédite par les scores de son observation calculés sans les variables de son groupe de variables (réparties elles aussi en G groupes). Le RMSEcv, la CV-ANOVA, le classement en validation croisée, les intervalles de confiance (jack-knife, sur les G sous-modèles), le test de permutation et l'ajustement automatique suivent la validation choisie.
Gain sur le modèle vide (les deux premières, PLS et OPLS) : le Résumé donne aussi le Q2 du modèle vide, où chaque groupe caché est prédit par la moyenne de Y des autres observations, et le gain du modèle sur lui, (Q2(cum) - Q2 du modèle vide) / (1 - Q2 du modèle vide) = 1 - PRESS / PRESS du modèle vide : la part de l'erreur de prédiction du modèle vide que le modèle évite. Avec des groupes qui diffèrent (sites, départements), le Q2 du modèle vide est sous 0, et celui d'un modèle qui prédit un peu mieux que lui aussi : le gain dit de combien il fait mieux. 0 : pas mieux que la moyenne des autres groupes. Avec les centres et poids du modèle complet, le modèle vide prédit la moyenne de toutes les observations, groupe caché compris (son Q2 vaut 0) : pas de gain. Aussi dans le texte des Méthodes, le rapport du modèle et l'export vers R. Modèle hiérarchique (une PLS dont des X sont les scores d'autres modèles du projet, $M1.t1...) : son Q2 prend ces scores tels quels, alors qu'ils ont été calculés avec le Y du groupe caché. Son Résumé donne aussi un Q2(cum) honnête : à chaque tour, ses modèles de base sont refaits sans le groupe caché (le site entier quand les groupes sont par site), puis leurs scores, avec la validation du modèle (centres recalculés quand elle est celle du modèle complet) ; un modèle de base qui n'a plus de variation sans ce groupe donne des scores nuls.
Le Q2 honnête a lui aussi son gain sur le modèle vide.
Jeu de test
Nouveau modèle › Observations › Jeu de test : des observations laissées hors du modèle et de la validation croisée, puis prédites par lui, pour juger ses prédictions sur des données qu'il n'a pas vues. Colonne « Test » : à la main ; « Sélection en test » : la sélection du modèle actif ; « Choisir » : une part des observations (25 % par défaut), au hasard ou par Kennard–Stone (qui garde pour le modèle les observations les plus éloignées les unes des autres, pour qu'il couvre toute l'étendue des données, et laisse les autres en test) ; par classe pour une PLS-DA, pour que chaque classe soit dans les deux. Après l'ajustement, le Résumé donne, pour chaque Y :
- RMSEP
- racine de la moyenne des carrés des erreurs de prédiction (prédit - observé) ;
- biais
- moyenne de ces erreurs ; SEP leur écart-type ;
- Q2ext
- 1 - somme (observé - prédit)² / somme (observé - moyenne du modèle)² ;
pour une PLS-DA, la part du jeu de test bien classée ; pour tous, le nombre d'observations du test hors du domaine du modèle. Observé / prédit les montre en losanges rouges. Le jeu de test est enregistré avec le modèle, repris par Exporter vers R et par le texte des méthodes.
Prédire
Prédiction › Prédire : les observations du projet hors du modèle, ou un jeu de prédiction enregistré dans le fichier .usp.
Prédiction › Prédire un fichier : un tableau (dans l'un des formats ci-dessus) dont les colonnes portent les noms des variables du modèle (sans tenir compte des majuscules ni des espaces au début et à la fin ; les catégories par leur nom). Le résultat donne les scores, DModX, T² et Y prédits ; les observations hors du domaine du modèle (DModX > DCrit ou T² > T²Crit 95 %) sont signalées ; il s'exporte dans tous les formats d'export. Les variables X absentes du fichier sont listées et traitées comme manquantes.
Le graphique au-dessus du tableau montre les scores, ou le DModXPS : la distance de chaque observation prédite au modèle, comparée à DCrit (les observations du modèle en gris).
Modèles hiérarchiques
Modèle › Scores en variables : les scores d'un modèle deviennent des variables du projet ($M1.t1(titre), $M1.t2(titre)...), qu'on peut prendre comme X d'un modèle de niveau supérieur. Après avoir modifié le modèle de base, refaire cette étape puis réajuster les modèles qui les utilisent (l'application les nomme). Pour prédire un fichier avec un modèle hiérarchique, les modèles de base sont prédits d'abord, automatiquement.
Cette page reprend le guide installé avec Nuée (LISEZ-MOI-APPLICATION.txt, aussi dans Aide › Guide d’utilisation).