J'essaie de créer un modèle de régression prédictive pour prédire la valeur d'une variable continue. La multicolinéarité n'est pas si importante pour moi, car je recherche uniquement la prédiction. Cependant, j'ai enregistré un grand nombre de variables catégorielles (plus de 20) (ainsi que plus de 20 variables continues) et je souhaite effectuer une sélection de caractéristiques/réduction de variables afin d'éviter un surajustement des données. Je me demandais s'il existait un bon moyen de réduire les variables catégorielles dans JMP ou de trouver celles qui pourraient être corrélées. Je n'ai pas de modèle particulier en tête et j'utiliserai JMP PRO.
Salut @mjz5448 ,
Je vois deux points dans vos questions :
- Comment évaluer la multicolinéarité lors de la modélisation de variables catégorielles ?
Vous pouvez évaluer la multicolinéarité des variables continues et catégorielles de votre modèle en affichant les valeurs VIF dans les estimations des paramètres des prédicteurs d'origine (clic droit sur le tableau, puis « Colonnes » et « VIF »). Des valeurs VIF élevées indiquent un problème de colinéarité entre les termes du modèle. Vous trouverez également des informations sur les singularités dans la colonne « Détails de singularité » si certains termes sont linéairement dépendants les uns des autres, ainsi que l'indication « Biais » et/ou « Réinitialisé » avant les estimations des paramètres :

Voir plus ici : Modèles avec dépendances linéaires entre les termes du modèle
- Comment sélectionner des fonctionnalités/réduire des variables ?
Si vous souhaitez effectuer une sélection de fonctionnalités/réduction de variables, plusieurs options peuvent s'offrir à vous en fonction des types de modèles que vous utilisez :- Pour les modèles de régression linéaire généralisée multivariée, vous pouvez utiliser la sélection progressive élaguée ou, si la multicolinéarité est importante, essayer des méthodes d'estimation pénalisées comme Lasso, qui sélectionnent les variables en appliquant des estimations à 0 pour les variables corrélées. Une approche moins « agressive » consiste à utiliser l'estimation Elastic Net, qui combine les pénalisations Lasso et Ridge.
- Forêt aléatoire pourrait également être intéressant en soi ou en l'utilisant comme option de filtrage des prédicteurs , en utilisant l'importance des fonctionnalités (contribution des colonnes) pour identifier les fonctionnalités les plus importantes/actives.
- Vous pouvez également essayer d'utiliser le module complémentaire Assistant de sélection de prédicteurs qui permet de sélectionner une variable en fonction d'une version améliorée du Predictor Screening qui utilise la méthode de sélection de fonctionnalités Boruta et Rendom Forest :

- Vous pouvez également combiner les différentes approches de modélisation ci-dessus (et plus encore) et comparer les modèles obtenus pour voir quels termes sont inclus et à quel point les modèles sont similaires/différents.
J'espère que cette réponse pourra vous aider,
Merci Victor ! C'est exactement ce que je cherchais.
Y a-t-il des réflexions sur les étapes à suivre pour réduire un modèle :
- Devez-vous d'abord supprimer les variables corrélées/effectuer une réduction dimensionnelle avant de passer à LASSO/Ridge ?
- Ou devrions-nous faire les deux : réduire les variables puis aller dans LASSO/Ridge, ainsi qu'utiliser toutes les fonctionnalités et faire LASSO/Ridge et comparer lequel a le meilleur RASE sur les données de validation ?
Salut @mjz5448 ,
Juste pour donner quelques explications sur les différences entre LASSO et Ridge (Elastic Net étant un mélange de pénalisations LASSO et Ridge) :
- LASSO permet de définir à zéro les coefficients des caractéristiques qu'il ne considère pas comme « intéressantes ». Cela signifie que le modèle effectue une sélection automatique des caractéristiques pour déterminer celles qui doivent être incluses ou non. Cette propriété présente l'avantage de réduire la complexité du modèle (et donc d'éviter le surapprentissage). Cependant, les coefficients sont biaisés par cette pénalisation (réduction des coefficients) et la régression LASSO peut être instable lorsqu'elle est entraînée sur des données contenant des caractéristiques corrélées : l'une des caractéristiques est sélectionnée de manière quelque peu arbitraire et toutes les autres caractéristiques fortement corrélées avec elle sont supprimées du modèle. Cela peut conduire à conclure à tort que seule la caractéristique sélectionnée pour rester dans le modèle est importante, alors qu'en réalité, d'autres caractéristiques peuvent être tout aussi importantes, voire plus.
LASSO est robuste aux valeurs aberrantes et tend à être plus efficace lorsqu'il existe un petit sous-ensemble de variables ayant un effet important sur la réponse parmi de nombreuses autres variables ayant des effets faibles ou nuls.
- Ridge permet de minimiser les coefficients des caractéristiques corrélées (proches de 0, mais pas 0). Cette propriété permet d'utiliser la régression Ridge sur des jeux de données comportant de nombreuses caractéristiques corrélées, car l'impact négatif de ces caractéristiques est minimisé et le surapprentissage est réduit. L'introduction d'une pénalisation entraîne également des estimations de coefficients biaisées.
Ridge permet de prendre en compte toutes les caractéristiques et tend à être plus efficace lorsqu'il existe un grand nombre de variables ayant des effets importants et comparables.
- Elastic Net combine les deux méthodes de pénalisation, il réduit donc certains coefficients à 0 et en minimise d'autres, ce qui peut être un bon compromis pour effectuer la sélection des fonctionnalités ainsi que la gestion des fonctionnalités corrélées ayant une importance similaire sur la réponse.
Vous pouvez en apprendre davantage sur les modèles de régression généralisés (et pénalisés) dans ce Mastering : Utilisation de la régression généralisée dans JMP® Pro pour créer des modèles linéaires robustes
Pour la sélection des fonctionnalités, je recommande fortement d'examiner l'importance des fonctionnalités à partir d'une forêt aléatoire, car ce modèle ne nécessite pas de réglage fin approfondi, est capable de gérer les fonctionnalités corrélées et n'est pas sensible au surajustement, il peut donc fournir une bonne comparaison de référence.
Je ne suis pas tout à fait sûr de quel est votre objectif avec ce modèle puisque vous mentionnez des données de validation : compréhension du système (objectif explicatif) ou objectif prédictif ?
S'agit-il de données de validation (utilisées pour l'optimisation du modèle (réglage fin des hyperparamètres, sélection des caractéristiques/seuils, ...) et la sélection du modèle), ou de données de test (utilisées pour la généralisation et l'évaluation des performances prédictives du modèle sélectionné sur des données nouvelles/inédites) ?
- Dans le premier cas (données de validation), vous pourriez essayer d'utiliser ces données de validation comme méthode de validation dans le panneau de lancement de la régression généralisée, pour vous assurer que la pénalisation est correctement définie et fixée sur votre jeu de données, et comparer les différents modèles sur ces données de validation : méthodes de régression pénalisées, Random Forest, ...
- Dans le second cas (données de test), je recommande de ne pas utiliser cet ensemble de données avant d'avoir comparé les modèles et sélectionné le plus prometteur. En fonction de votre objectif principal (compréhension du système ou prédiction) et de la méthode de validation de votre modèle (critère d'information comme AICc ou BIC, ou validation K-folds/Holdback/Leave-One-Out si vous vous intéressez aux performances prédictives), vous pouvez choisir une méthode de validation appropriée et comparer les résultats des modèles sur vos données d'entraînement/validation afin de sélectionner le modèle le plus intéressant. Une fois choisi, vous pouvez confirmer sa généralisation et ses performances prédictives sur l'ensemble de test (données non vues).
J'espère que cette réponse vous aidera,