Est-il obligatoire de sous-définir vos données pour valider un modèle?

8

J'ai du mal à me retrouver sur la même longueur d'onde que mon supérieur quand il s'agit de valider mon modèle. J'ai analysé les résidus (observés par rapport aux valeurs ajustées) et je l'ai utilisé comme argument pour discuter des résultats obtenus par mon modèle, mais mon superviseur insiste sur le fait que la seule façon de valider un modèle est de faire un sous-ensemble aléatoire de mes données, générer le modèle avec 70% de celui-ci, puis appliquer le modèle sur les 30% restants.

Le truc, c'est que ma variable de réponse est gonflée à zéro (85%, pour être plus précis) et je préfère ne pas créer de sous-ensemble car il est déjà très difficile de converger vers un résultat.

Donc, ma question est: quelles sont les façons possibles (et scientifiquement acceptables) de valider un modèle? Le sous-ensemble de données est-il le seul moyen? Si possible, référencez vos questions avec des articles / livres afin que je puisse l'utiliser comme argument lors de la présentation de mes alternatives.

Eric Lino
la source
Si vous avez choisi le modèle sur la base de toutes les données, cela ne compte toujours pas ...
Aaron a quitté Stack Overflow
Vous voulez dire que je devrais choisir mon modèle en fonction d'un sous-ensemble de mes données? Comment analyser correctement la distribution de mes données si je ne les utilise pas toutes?
Eric Lino
Oui, c'est exactement ce que je veux dire - si vous voulez avoir des données pour vraiment valider votre modèle, ces données doivent être conservées lors du choix de l'analyse. C'est ce que Wikipedia appelle les ensembles de formation et de validation. Si vous utilisez votre ensemble de validation pour ajuster les hyper-paramètres, vous auriez même besoin d'un troisième ensemble (l'ensemble de test) pour tester votre modèle final.
Aaron a quitté Stack Overflow
Non pas que je plaide pour cela; dans votre cas, il vaut peut-être mieux utiliser des méthodes de diagnostic et de sélection de modèles plus traditionnelles, ce qui est bien sûr ce que vous demandez (et hélas, je n'ai pas le temps de répondre correctement).
Aaron a quitté Stack Overflow
2
La réponse que vous cherchez est probablement à la section 5.3 de Frank Harrell de modélisation de régression stratégies .
Aaron a quitté Stack Overflow

Réponses:

6

Pour commencer, je dirais qu'il est généralement bon de se méfier des déclarations qu'il n'y a que l' unfaçon de faire quelque chose. Le fractionnement d'un échantillon obtenu en un ensemble de données de «formation» et de «test» est une approche courante dans de nombreuses applications d'apprentissage automatique / science des données. Souvent, ces approches de modélisation sont moins intéressées par les tests d'hypothèses sur un processus de génération de données sous-jacent, c'est-à-dire qu'elles ont tendance à être quelque peu théoriques. En fait, la plupart de ces types de divisions formation / test veulent simplement voir si le modèle est trop adapté en termes de performances prédictives. Bien sûr, il est également possible d'utiliser une approche de formation / test pour voir si un modèle donné se réplique en termes de paramètres «significatifs», ou pour voir si les estimations des paramètres se situent dans les plages attendues dans les deux cas.

En théorie, valider ou invalider des modèles est ce que la science, en gros, est censée faire. Des chercheurs indépendants, examinant, générant et testant séparément des hypothèses qui soutiennent ou réfutent les arguments sur une théorie pour expliquer pourquoi ou dans quelles circonstances un phénomène observable se produit - c'est l'entreprise scientifique en un mot (ou au moins dans une phrase trop longue). Donc, pour répondre à votre question, pour moi, même les divisions formation / test ne "valident" pas un modèle. C'est quelque chose qui prend le poids d'années de preuves amassées par plusieurs chercheurs indépendants étudiant le même ensemble de phénomènes. Cependant, je vais admettre que cette prise de vue peut être quelque chose d'une différence dans la sémantique sur ce que je considère comme la validation du modèle par rapport à ce que le terme validation a fini par signifier dans les paramètres appliqués ...

Selon vos données et votre approche de modélisation, il peut ne pas toujours être approprié d'un point de vue statistique de diviser votre échantillon en ensembles de formation et de test. Par exemple, de petits échantillons peuvent être particulièrement difficiles à appliquer à cette approche. De plus, certaines distributions peuvent avoir certaines propriétés qui les rendent difficiles à modéliser même avec des échantillons relativement gros. Votre coque gonflée à zéro correspond probablement à cette dernière description. Si le but est d'obtenir une approximation de la «vérité» sur un ensemble de relations ou de processus sous-jacents censés expliquer un phénomène, vous ne serez pas bien servi en adoptant sciemment une approche sous-alimentée pour tester une hypothèse donnée. Alors peut-être que la première étape consiste à effectuer une analyse de puissance pour voir si vous seriez même susceptible de reproduire la constatation d'intérêt dans vos données sous-définies.

Une autre option consiste à spécifier plusieurs modèles pour voir s'ils "mieux" expliquent les données observées. Le but ici serait d'identifier le meilleur modèle parmi un ensemble d'alternatives raisonnables. Il s'agit d'un argument relatif, et non absolu, que vous feriez au sujet de votre modèle. Essentiellement, vous admettez qu'il peut y avoir d'autres modèles qui pourraient être proposés pour expliquer vos données, mais votre modèle est le meilleur de l'ensemble testé d'alternatives (du moins vous l'espérez). Tous les modèles de l'ensemble, y compris votre modèle hypothétique, doivent être théoriquement fondés; sinon, vous courez le risque de créer un groupe d'hommes de paille statistiques.

Il existe également des facteurs Bayes dans lesquels vous pouvez calculer le poids des preuves fournies par votre modèle, compte tenu de vos données, pour une hypothèse spécifique relative à des scénarios alternatifs.

C'est loin d'être une liste exhaustive d'options, mais j'espère que cela aide. Je vais quitter la boîte à savon maintenant. N'oubliez pas que chaque modèle de chaque étude publiée sur le comportement humain est incorrect. Il y a presque toujours des variables omises pertinentes, des interactions non modélisées, des populations imparfaitement échantillonnées et juste une vieille erreur d'échantillonnage en jeu obscurcissant la vérité sous-jacente.

Matt Barstead
la source
J'apprécie tout le temps que vous avez passé à rédiger une réponse aussi approfondie, Matt. Cependant, je pense que même si cela m'aide au niveau conceptuel, il manque une référence dont j'aurai bien besoin pour discuter de cette approche avec mon superviseur. Auriez-vous des papiers / livres sur les chances de sous-ensemble des données? Si ce n'est pas possible, recommanderiez-vous un package R sur lequel je peux effectuer cette analyse de puissance dont vous avez parlé?
Eric Lino
Pour les packages R et la puissance, cela dépend de votre modèle (pwr, simsem, etc.). Il n'y a pas une seule réponse. En ce qui concerne également les chances de sous-paramétrer vos données, je pense que ce n'est qu'une autre façon de poser des questions sur le pouvoir si je vous comprends bien. Si vous vous orientez vers le bit de puissance, je vous recommande de vous concentrer sur votre effet le plus faible et de voir quelle devrait être la taille minimale de l'échantillon pour le reproduire - une sorte de pire scénario.
Matt Barstead
Je vois. Eh bien, j'utilise le paquet glmmadmb, développé par Ben Bolker et autres. Ma variable de réponse est gonflée à zéro (nombre de personnes atteintes d'une maladie rare spécifique) et mes variables indépendantes incluent les distributions normales, non normales et gonflées à zéro. Comme je suis confronté à une série chronologique, j'ai utilisé "année" comme facteur de regroupement et cela semblait être une bonne idée d'explorer la famille de modèles ZIGLMM. Ces informations vous aident-elles à m'aider?
Eric Lino
2
Vous voudrez peut-être consulter le package simR . À ma connaissance, il s'agit de l'ensemble existant le plus flexible pour les analyses de puissance avec des modèles linéaires et linéaires généralisés. Green, P. et MacLeod, CJ (2016). SIMR: Un package R pour l'analyse de puissance de modèles linéaires généralisés par simulation. Méthodes en écologie et évolution.
Matt Barstead
10

Le fractionnement des données est en général un moyen très non compétitif de faire une validation interne. C'est à cause de la forte volatilité - modèle «final» différent et «validation» différent lors de la nouvelle répartition, et parce que l'erreur quadratique moyenne de l'estimation (des choses comme l'erreur de prédiction absolue moyenne etR2) est supérieur à une bonne procédure de rééchantillonnage comme le bootstrap. J'entre en détail dans mon livre sur les stratégies de modélisation de la régression et mes notes de cours. Le rééchantillonnage a un autre avantage majeur: exposer la volatilité dans la sélection des fonctionnalités.

Frank Harrell
la source
croient toujours que la principale motivation du PO est de savoir si son modèle ZIP est adéquat = vérification résiduelle, pas sélection de modèle / fonctionnalité ou performance prédictive, mais peut-être qu'il peut se clarifier
Florian Hartig
Oui, @FlorianHartig est correct! Cependant, le bootstrapping m'intéresse (si ce n'est pas pour cette étude, pour la collecte de connaissances) et je vais certainement consulter votre site Web pour référence future. Merci beaucoup pour la contribution.
Eric Lino
6

Je pense que les réponses divergent ici parce que la question est quelque peu floue, avant tout: que voulez-vous dire par «validation»?

Une répartition 70/30 (ou une validation croisée d'ailleurs) est généralement effectuée pour évaluer la performance prédictive d'un modèle ou d'une chaîne d'analyse entière (y compris éventuellement la sélection du modèle). Une telle validation est particulièrement importante si vous comparez différentes options de modélisation en termes de performances prédictives.

C'est un autre cas entièrement si vous ne voulez pas sélectionner de modèles, et que vous n'êtes pas non plus intéressé par les performances prédictives en tant que telles, mais que vous êtes intéressé par l'inférence (estimations de régression / valeurs p), et que vous souhaitez valider si votre modèle / les hypothèses d'erreur du GLMM sont adéquats. Dans ce cas, il serait possible de prédire le maintien et de comparer les prévisions aux données observées, mais la procédure de loin la plus courante consiste à effectuer une analyse résiduelle. Si vous devez prouver cela à votre superviseur: c'est essentiellement ce que tous les manuels de statistiques enseignent à faire juste après la régression linéaire.

Voir ici pour savoir comment exécuter une analyse résiduelle des GLMM (y compris une inflation zéro avec glmmTMB, que je préférerais par rapport à glmmadmb) avec le package DHARMa (avertissement: je suis le responsable).

Florian Hartig
la source
Merci pour cette réponse claire mais perspicace. Mon premier cas était le deuxième exemple que vous avez fourni; Je ne suis pas intéressé à évaluer la performance prédictive de mon modèle, mais seulement à quantifier les relations sous-jacentes entre ma variable de réponse et mes variables indépendantes. Je ne suis pas sûr d'avoir compris exactement ce que vous entendez par «prévoir le retard». Faites-vous référence aux valeurs prédites générées sur la sortie de l'objet modèle après l'avoir exécuté?
Eric Lino
Je veux dire que vous calculez les résidus / biais en comparant les prédictions et les observations sur les données de maintien (= validation)
Florian Hartig
2

La réponse courte est oui, vous devez évaluer les performances de votre modèle sur les données non utilisées dans la formation.

Les techniques modernes de construction de modèles sont extrêmement efficaces pour ajuster arbitrairement des données et peuvent facilement trouver un signal dans le bruit. Ainsi, la performance d'un modèle sur les données d'entraînement est presque toujours biaisée.

Il vaut la peine que vous exploriez le sujet de la validation croisée (même si vous ne réglez pas les hyperparamètres) pour mieux comprendre pourquoi nous détenons des données, quand elles fonctionnent, quelles hypothèses sont impliquées, etc. L'un de mes articles préférés est :

Aucun estimateur non biaisé de la variance de la validation croisée multipliée par k

Chris
la source
7
Ce n'est pas correct en général. Le bootstrap surpasse fortement les données crachées en termes d'erreurs quadratiques moyennes sur des quantités telles queR2. Vous avez besoin de données non utilisées dans la formation, mais il peut s'agir de données différentes pour chaque rééchantillonnage.
Frank Harrell
Suggérez-vous d'amorcer les données retenues?
Chris
Lisez le bootstrap d'optimisme Efron-Gong qui est la méthode de validation de modèle de bootstrap standard et celle implémentée dans le rmspackage validateet les calibratefonctions R. Avec ce bootstrap, il n'y a pas de décisions ponctuelles sur la conservation des données. Comme mon livre RMS et mes notes de cours le décrivent en détail, la quantité de sur-ajustement est estimée en voyant à quel point un modèle développé dans un échantillon bootstrap se désagrège lorsqu'il est appliqué à l'échantillon complet d'origine (chevauchant). Le bootstrap doit répéter toutes les étapes de modélisation à nouveau pour chaque itération.
Frank Harrell
Intéressant. J'ai parcouru vos notes et le papier d'Efron. Il semble que pour les modèles qui s'adaptent rapidement, nous pourrions réaliser certains avantages en utilisant des versions spécifiques du bootstrap.
Chris
Et la seule chose qui ferait que le bootstrap semble lent (bien qu'il soit toujours plus rapide que la validation croisée, qui nécessite 100 répétitions de validation croisée 10 fois pour assurer la stabilité) est de le comparer avec un fractionnement de données unique qui fournit seulement une illusion de stabilité.
Frank Harrell