Comment appliquer une régression sur les composants principaux pour prédire une variable de sortie?

9

Je lis sur les bases de l' analyse des composants principaux de tutorial1 , link1 et lien2 .

J'ai un ensemble de données de 100 variables (y compris la variable de sortie Y), je veux réduire les variables à 40 par PCA, puis prédire la variable Y en utilisant ces 40 variables.

Problème 1: Après avoir obtenu les composants principaux et choisi les 40 premiers composants, si j'applique une régression, j'obtiens une fonction qui correspond aux données. Mais comment prédire une variable Y à partir des données originales? Pour prédire la variable Y, j'ai (100-1) des variables en entrée, et comment savoir quelles 40 variables choisir parmi mes 100-1 variables d'origine?

Problème 2: J'inverse la PCA et récupère les données de ces 40 composants principaux. Mais les données sont modifiées car je n'ai choisi que les 40 premiers composants. L'application d'une régression à ces données est-elle logique?

J'utilise Matlab / Octave.

munjal007
la source
Pour faire PCA, quel logiciel ou programme utilisez-vous? Par exemple, dans SPSS, cette analyse peut être effectuée facilement et vous pouvez définir le nombre de composants principaux que vous souhaitez extraire et vous pouvez voir lesquels sont sélectionnés en sortie. Bien sûr, appliquer une régression dans ces données est logique car PCA est utilisé uniquement pour la réduction de dimension.
merveceng
1
Si vous êtes uniquement intéressé à faire des prédictions, vous devez savoir que Hastie, Tibshirani et Friedman recommandent la régression LASSO par rapport à la régression des composants principaux parce que LASSO est censé faire la même chose (améliorer la capacité prédictive en réduisant le nombre de variables dans le modèle), mais meilleur. LASSO est également largement disponible de nos jours dans des progiciels statistiques.
shadowtalker
@ssdecontrol: Do Hastie et al. recommander spécifiquement le lasso sur la régression du composant principal? La PCR est beaucoup plus proche de la régression des crêtes que du lasso: elle n'impose aucune parcimonie (c'est-à-dire qu'elle ne fait pas de sélection de caractéristiques, contrairement au lasso), elle pénalise plutôt tous les poids similaires à la crête. Ils recommandent peut-être un filet élastique par rapport à la PCR, mais c'est le lasso plus la crête.
amoeba
1
@amoeba Je suis juste allé vérifier le PDF en ligne. Soit le texte a changé, soit j'ai mal compris la première fois que je l'ai lu. La conclusion n'est pas que «le lasso est supérieur», mais que «la PCR, le PLS et la régression des crêtes ont tendance à se comporter de la même manière», et cette crête pourrait être meilleure parce qu'elle est continue. Merci de me garder honnête!
shadowtalker

Réponses:

7

Vous ne choisissez pas un sous-ensemble de vos 99 (100-1) variables d'origine.

Chacune des principales composantes est une combinaison linéaire de l'ensemble des 99 variables prédictives (variables x, IV, ...). Si vous utilisez les 40 premiers composants principaux, chacun d'eux est fonction des 99 variables prédictives d'origine. (Au moins avec PCA ordinaire - il existe des versions clairsemées / régularisées telles que la SPCA de Zou, Hastie et Tibshirani qui produiront des composants basés sur moins de variables.)

Considérons le cas simple de deux variables positivement corrélées qui, pour simplifier, nous supposerons qu'elles sont également variables. La première composante principale sera alors un multiple (fractionnel) de la somme des deux variables et la seconde sera un multiple (fractionnel) de la différence des deux variables; si les deux ne sont pas également variables, la première composante principale pèsera plus lourdement la plus variable, mais elle impliquera toujours les deux.

Vous commencez donc avec vos 99 variables x, à partir desquelles vous calculez vos 40 composantes principales en appliquant les poids correspondants à chacune des variables d'origine. [NB dans ma discussion, je supposey et le Xsont déjà centrés.]

Vous utilisez ensuite vos 40 nouvelles variables comme si elles étaient des prédicteurs à part entière, comme vous le feriez avec tout problème de régression multiple. (En pratique, il existe des moyens plus efficaces d'obtenir les estimations, mais laissons de côté les aspects informatiques et traitons simplement une idée de base)

En ce qui concerne votre deuxième question, ce que vous entendez par "inversion de l'APC" n'est pas clair.

Vos PC sont des combinaisons linéaires des variantes d'origine. Disons que vos variantes d'origine sont enXet vous calculez Z=XW (où X est n×99 et W est le 99×40 matrice qui contient les poids des composants principaux pour la 40 composants que vous utilisez), vous estimez y^=Zβ^PC par régression.

Ensuite, vous pouvez écrire y^=Zβ^PC=XWβ^PC=Xβ^ dire (où β^=Wβ^PC, évidemment), vous pouvez donc l'écrire en fonction des prédicteurs d'origine; Je ne sais pas si c'est ce que vous vouliez dire par «renverser», mais c'est une façon significative de regarder la relation originale entrey et X. Ce n'est pas la même chose que les coefficients que vous obtenez en estimant une régression sur les X d'origine bien sûr - c'est régularisé en faisant l'APC; même si vous obtiendrez ainsi des coefficients pour chacun de vos X d'origine, ils n'ont que le df du nombre de composants que vous avez installés.

Voir également Wikipedia sur la régression des composants principaux .

Glen_b -Reinstate Monica
la source