ACP & SIR

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Guillaume Bartnig
Messages : 1
Enregistré le : 25 Jan 2016, 07:22

ACP & SIR

Messagepar Guillaume Bartnig » 25 Jan 2016, 12:38

Bonjour,

Dans le cadre d'un projet portant sur la mise en place de la méthode SIR (Sliced Inverse Regression), je me heurte à un problème de sélection de variables :

J'ai un jeu de données 100lignesx1815 colonnes (chimiométrie) -> beaucoup trop de variables -> je mène mon ACP pour sélectionner les variables qui expliquent la majorité de mon problème.
J'ai donc écris le code suivant :

Code : Tout sélectionner

X=read.table("Xcal_3.txt")
X=as.matrix(X)

# on fait notre ACP
res.pca = PCA(X, scale.unit=TRUE, ncp=5, graph=T)
plot.PCA(res.pca, axes=c(1,2), choix="ind")

#La fonction dimdesc() calcule le coefficient de corrélation entre une variable et une dimension et réalise un test de significativité :
Description_dimension=dimdesc(res.pca, axes=c(1:5))

#on récupère les 5 premiers éléments de chaque direction (str aide à trouver les chemins)
Description_dimension$Dim.1$quanti[1:5,]
Description_dimension$Dim.2$quanti[1:5,]
Description_dimension$Dim.3$quanti[1:5,]
Description_dimension$Dim.4$quanti[1:5,]
Description_dimension$Dim.5$quanti[1:5,]


Je ne sais pas si mes 25 variables ainsi identifiées sont les 25 "meilleures" : l'idée étant à partir de là de créer un X2 de taille 100x25, de mettre en place ma méthode SIR, une méthode des splines pour estimer ma fonction f, et après réaliser ma prédiction sur les Y, avec un truc du genre :

Code : Tout sélectionner

#application algo SIR
s2=dr(formula = Y ~ X2, method = "sir")
summary(s1)
dr.compute(X2,Y, method = "sir")
dr.x(s2)
dr.y(s2)
dr.z(s2)
#dr.weights(s2)
plot(s2,which=1:s2$numdir,mark.by.y=FALSE,plot.method=pairs,main='s2')

#Splines
test.spline2=splinefun(X2,y = NULL, method = "fmm",ties = mean)



J'espère que j'ai été assez clair dans mes explications, merci d'avance pour vos conseils,

Guillaume

PS : pour ceux que ça intéresse, le fichier est téléchargeable ici : X = http://dl.free.fr/oNP4DzAx6 et Y = http://dl.free.fr/gzJt0ElwZ

Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron