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.
la source
Réponses:
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 X sont 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 enX et 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 écrirey^= 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 .
la source