J'utilise le package randomForest dans R pour développer un modèle de forêt aléatoire pour essayer d'expliquer un résultat continu dans un ensemble de données "large" avec plus de prédicteurs que d'échantillons.
Plus précisément, j'adapte un modèle RF permettant à la procédure de sélectionner parmi un ensemble de ~ 75 variables prédictives qui, selon moi, sont importantes.
Je teste à quel point ce modèle prédit le résultat réel pour un ensemble de tests réservé, en utilisant l' approche publiée ici précédemment , à savoir,
... ou en R:
1 - sum((y-predicted)^2)/sum((y-mean(y))^2)
Mais maintenant, j'ai 25 variables de prédiction supplémentaires que je peux ajouter. Lorsque vous utilisez l'ensemble de ~ 100 prédicteurs, le R² est plus élevé. Je veux tester cela statistiquement, en d'autres termes, lorsque vous utilisez l'ensemble de ~ 100 prédicteurs, le modèle teste-t-il significativement mieux dans les données de test que l'ajustement du modèle en utilisant ~ 75 prédicteurs. C'est-à-dire que le R² du test du modèle RF ajusté sur l'ensemble de données complet est significativement plus élevé que le R² du test du modèle RF sur l'ensemble de données réduit.
C'est important pour moi de tester, car ce sont des données pilotes, et obtenir ces 25 prédicteurs supplémentaires était cher, et je dois savoir si je devrais payer pour mesurer ces prédicteurs dans une étude de suivi plus large.
J'essaie de penser à une sorte d'approche de rééchantillonnage / permutation, mais rien ne me vient à l'esprit.
la source
L'option latérale consiste à utiliser toutes les sélections de fonctionnalités pertinentes, ce qui vous dirait quels attributs ont une chance d'être significativement utiles pour la classification - ainsi, les attributs coûteux valent leur prix. Cela peut être fait par exemple avec un wrapper RF, Boruta .
la source
Vous voudrez peut-être penser en termes de signification pratique plutôt que de signification statistique (ou les deux). Avec suffisamment de données, vous pouvez trouver des choses statistiquement significatives qui n'auront aucun impact réel sur votre utilisation. Je me souviens d'avoir analysé un modèle une fois où les interactions à 5 voies étaient statistiquement significatives, mais lorsque les prédictions du modèle comprenant tout jusqu'aux interactions à 5 voies ont été comparées aux prédictions d'un modèle comprenant uniquement des interactions à 2 voies et les effets principaux , la plus grande différence était inférieure à 1 personne (la réponse était le nombre de personnes et toutes les valeurs intéressantes étaient loin de 0). La complexité supplémentaire n'en valait donc pas la peine. Regardez donc les différences dans vos prévisions pour voir si les différences sont suffisantes pour justifier le coût supplémentaire, sinon, pourquoi s'embêter à chercher la signification statistique? Si les différences sont suffisamment importantes pour justifier le coût si elles sont réelles, j'appuie les autres suggestions d'utilisation de la validation croisée.
la source
La méthode peut également être étendue pour fonctionner dans le cadre de la validation croisée (et pas seulement de la répartition des échantillons comme indiqué ci-dessus).
la source
Comme vous l'utilisez déjà
randomForest
après la validation croisée, vous pouvez émettre le calcul de l'ajustement choisi des valeurs d'importance du prédicteur.la source
Je vois que cette question a été posée il y a longtemps; cependant, aucune réponse n'indique encore les lacunes et les malentendus importants de la question.
Notez s'il vous plaît:
Vous déclarez que R ^ 2 = ESS / TSS = 1 - RSS / TSS. Cela n'est vrai que dans un contexte linéaire. L'égalité TSS = RSS + ESS n'est vraie que dans la régression linéaire avec interception. Ainsi, vous ne pouvez pas utiliser ces définitions pour des forêts aléatoires de manière interchangeable. C'est pourquoi RMSE et similaires sont des fonctions de perte plus typiques.
Plus important encore à des fins statistiques: R ^ 2 suit une distribution inconnue (également dans le cadre linéaire). Cela signifie que tester une hypothèse ayant une signification statistique en utilisant R ^ 2 n'est pas aussi simple. La validation croisée, comme l'a mentionné Zach , est un bon choix.
Quant à la réponse de l'utilisateur 88 : la validation croisée avec le test de Wilcoxon est une approche valide. Un article récent utilise le test des rangs signés de Wilcoxon et les tests de Friedman pour comparer différentes méthodes et algorithmes.
la source