Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Cartes Pokémon 151 : où trouver le ...
Voir le deal
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €

Quelle analyse choisir ?

2 participants

Aller en bas

analyse - Quelle analyse choisir ? Empty Quelle analyse choisir ?

Message par Seastem Mar 16 Juin 2015 - 0:30

Bonjour à tous,
Je n'ai jamais mené d'ACM, et ma vision de la portée de cette technique s'arrête à ce que j'ai pu lire, en ligne et dans le livre "Analyses Factorielles Simples et Multiples", 4éme édition de Brigitte Escofier et Jérôme Pagès. J'ai déjà réalisé des ACP et employé quelques méthodes de classification au cours de mes études, mais je ne pourrais pas prétendre être suffisamment "fort" en analyses multivariées pour aboutir sur les étapes d'interprétation de mon ACM. Alors voilà, je viens lancer une petite bouteille a la mer, en fin de stage de M2 [en océanographie], il me reste du temps mais j'aimerais rendre quelque chose de bien, sinon juste !
Voici la position du problème :
Je possède des variables temporelles de vitesses de courant (en tout trois, à trois profondeurs => Surface / Intermédiaire / Fond), les directions y étant associées; un genre d'indice de marée, me permettant de séparer une période de marée montante d'une descendante; et une variable temporelle de vitesses du vent, ainsi que sa correspondance en direction. De nombreuses autres variables (telles que celles concernant la Houle (sa période, direction et hauteur significative), la quantité de matières en suspension (temporellement aussi), la pluviomètrie enregistrée, un indice de périodes de vives eaux / mortes eaux, etc...) sont aussi à ma disposition, mais je me cantonne aux cinq premières pour cette première ACM.
Travaillant sous R, j'ai mi en forme les données afin de pouvoir les travailler grâce au package ade4. En clair, j'ai généré deux formes pour cet ensemble de variables:

  • Un tableau disjonctif complet, en séparant chaque variable en classes


  • Une matrice pour laquelle R peut interpréter chaque variable comme un facteur, chaque modalité étant contenue dans ce dernier

Dans l'un et l'autre des cas, mes individus sont les pas de temps (toutes les quinze minutes durant un mois), ils sont donc les lignes de mes tableaux; Mes variables sont telles que citées plus haut, chacune étant rendue qualitative par une séparation en classes;
Je cherche à expliciter le mouvement des courants au regard du vent et des marées. Rolling Eyes Ce qui ,théoriquement, constitue un phénomène normal dans le mouvement des masses d'eaux.

J'avais fait un premier test avec un grand nombre de classes, mais au vu des résultats et de la lecture du livre cité, j'ai bien vite compris que mes classes n'étaient pas correctement créées, certaines comportant un très petit nombre d'individus Exclamation Donc, j'ai généré des classes pour chaque variable comprenant un nombre d'individus approximativement équivalent.
je sais déjà que la zone que j'étudie ne permet pas de décrire les courants uniquement par les deux grandes variables dont j'ai parlé plus haut, cependant elles ont un impact, et j'aimerais le discerner, car il apparaît sur les figures tirées de ce travail qu'il existe bel et bien.
J'aimerais aussi arriver à extraire une information sur la part que permettent d'expliquer les variables de vent et de marée quant à l'intensité et à la direction de mes courants; j'avais lu dans un mémoire de master (monsieur TAMTARE Tamkpanka, disponible en slides en cherchant "tamtare Tamkpanka courants grand popo" sur Google) que la régression linéaire multiple pouvait permettre ce genre de compréhension. Mais voilà, je tatonne, je cherche, j'ai -à vrai dire- pas exactement l'entourage adéquat pour valider les étapes de statistiques dans lesquelles je me lance, donc en tout ça fait de bonnes chances de se tromper, et ça serait dommage car j'y met du coeur  Razz
Donc, au final, avec les buts fixés, l'ACM ou la régression linéaire multiple sont-elles intéressantes ? Je joint une partie des données, suffisante pour les faire tournes sur R avec le package ade4 et la fonction dudi.acm

simplement avec les commandes : [je n'ai pas tout écrit de ce code ci!, légèrement modifié, et écourté]
Code:
X=read.table(fichier txt importé)
X=DF_fact1[c(7,17,18,19,20)]
library(ade4)
for (j in 1:ncol(X)) X[,j]=as.factor(X[,j])
x11()
acm=dudi.acm(X, scann = TRUE)
contrib=round(100*acm$eig/sum(acm$eig))
#Axes 1 et 2
       x11()
plot ( acm$co[,c(1,2)] ,
       xlab=paste("Axe 1   -   ",contrib[1]," %",sep=""),
       ylab=paste("Axe 2   -   ",contrib[2]," %",sep=""),
       cex=acm$cw*length(acm$cw)*3)

text ( acm$co[,c(1,2)] ,  labels=rownames(acm$co) , cex=0.75 , pos=3,xpd=NA )
text ( acm$co[1:3,c(1,2)] ,  labels=rownames(acm$co)[1:3] , cex=0.75 , pos=3,xpd=NA,col="red" )
text ( acm$co[4:9,1:2] ,  labels=rownames(acm$co)[4:9] , cex=0.75 , pos=3,xpd=NA,col="blue" )
abline(h=0,v=0)


#axes 1 et 3

#Avec DF / Vent
x11()
plot ( acm$co[,c(1,3)] ,
       xlab=paste("Axe 1   -   ",contrib[1]," %",sep=""),
       ylab=paste("Axe 3   -   ",contrib[3]," %",sep=""),
       cex=acm$cw*length(acm$cw)*3)

text ( acm$co[,c(1,3)] ,  labels=rownames(acm$co) , cex=0.75 , pos=3,xpd=NA )
text ( acm$co[1:3,c(1,3)] ,  labels=rownames(acm$co)[1:3] , cex=0.75 , pos=3,xpd=NA,col="red" )
text ( acm$co[4:9,c(1,3)] ,  labels=rownames(acm$co)[4:9] , cex=0.75 , pos=3,xpd=NA,col="blue" )
abline(h=0,v=0)

#axes 2 et 3

x11()
plot ( acm$co[,c(2,3)] ,
       xlab=paste("Axe 2   -   ",contrib[2]," %",sep=""),
       ylab=paste("Axe 3   -   ",contrib[3]," %",sep=""),
       cex=acm$cw*length(acm$cw)*3)

text ( acm$co[,c(2,3)] ,  labels=rownames(acm$co) , cex=0.75 , pos=3,xpd=NA )
text ( acm$co[1:3,c(2,3)] ,  labels=rownames(acm$co)[1:3] , cex=0.75 , pos=3,xpd=NA,col="red" )
text ( acm$co[4:9,c(2,3)] ,  labels=rownames(acm$co)[4:9] , cex=0.75 , pos=3,xpd=NA,col="blue" )
abline(h=0,v=0)

inerties = inertia.dudi(acm, col=T, row=T )
nomfic="tab_contributions_et_cosinus_carres.txt"

contribution=round(100*inerties$col.abs/apply(inerties$col.abs,2,sum),1)
v=abs(inerties$col.rel[,1:acm$nf])
cosinus_carre=round(v/apply(v,1,sum),2)

M = matrix(0 , length(acm$cw) , 2+4*acm$nf )

for (i in 1:nrow(acm$co)) {
  M[i,1] = round(100*acm$cw[i],2)
  M[i,2] = round(sum(acm$l1[i,]^2),2)
  for (j in 1:acm$nf) {
    M[i,3+(j-1)*4] = round(acm$c1[i,j],2)
    M[i,4+(j-1)*4] = contribution[i,j]
    M[i,5+(j-1)*4] = cosinus_carre[i,j]
    M[i,6+(j-1)*4] = sum(cosinus_carre[i,1:j])
  }
}

D=data.frame(M)
rownames(D)=rownames(acm$co)  ;  colnames(D)[1:2]=c("poids rel.","CTR inertie")
for (j in 1:acm$nf) {
  colnames(D)[3+(j-1)*4] = paste("axe ",j,sep="")  ;  colnames(D)[4+(j-1)*4] = "CTR"
  colnames(D)[5+(j-1)*4] = "COS2"  ;  colnames(D)[6+(j-1)*4] = "QLT"
}


entete=matrix(c(" ",colnames(D)),1,ncol(D)+1)
write.table(entete,nomfic,sep="\t",quote=F,row.names=F,col.names=F)
write.table(D,nomfic,sep="\t",quote=F,row.names=T,col.names=F,append=T)

Si l'un d'entre vous pense pouvoir m'aider un peu, ça serait une bonne chose ! Je continue néanmoins à lire, essayer d'appliquer, et rédiger Wink
Merci d'avance !  Very Happy

Seastem

Nombre de messages : 3
Date d'inscription : 15/06/2015

Revenir en haut Aller en bas

analyse - Quelle analyse choisir ? Empty Re: Quelle analyse choisir ?

Message par Nik Mar 16 Juin 2015 - 13:11

Salut,

C'est un très long message pour ne pas dire grand chose Smile.
A priori, je vois mal l'ACM répondre à ce type de question mais sans un extrait des données j'ai toujours du mal à voir de quoi on parle.
Par ailleurs, donne nos uniquement le code qui se rapport à ta question car là tu nous noies sous une tonne d'info.

Précise bien tes questions et on devrait pouvoir t'éclairer efficacement Smile

Nik

Nombre de messages : 1606
Date d'inscription : 23/05/2008

Revenir en haut Aller en bas

analyse - Quelle analyse choisir ? Empty Re: Quelle analyse choisir ?

Message par Seastem Mar 16 Juin 2015 - 21:45

Salut et désolé :/ !
Alors je vais essayer de faire concis Wink je pensais avoir mi les données a disposition, mais en effet je ne les voit pas..!

mes questions :

  • L'ACM est-elle suffisante pour faire ressortir le lien: "Courants" = "vents" + "marées" (+ potentiellement "houle") ? En théorie c'est comme ça que ça fonctionne, et je voudrais savoir si ça se vérifie sur mes données.


Sachant que toutes mes variables sont quantitatives continues à l'exception des variables de "direction du courant, du vent et de la houle"; j'ai rendu l'ensemble des variables qualitatives en les classant. Smile

  • En plus de ce lien, quelle part du courant peut être expliquée par chaque variable.



Je vais essayer d'ajouter le "fichier txt" dont il est question dans le code [Qui contient une partie de mes données, mises sous forme de facteurs, comme les aime R pour l'ACM], ensuite le code ne sert qu'à obtenir ce que j'obtiens en ACM; Je tâtonne à l'analyse, et ne sais pas dire si c'est intéressant ou non.

Désolé du temps de réponse :/
Fichiers joints
analyse - Quelle analyse choisir ? Attachment
Table_facteurs.txt Vous n'avez pas la permission de télécharger les fichiers joints.(190 Ko) Téléchargé 1 fois

Seastem

Nombre de messages : 3
Date d'inscription : 15/06/2015

Revenir en haut Aller en bas

analyse - Quelle analyse choisir ? Empty Re: Quelle analyse choisir ?

Message par Nik Jeu 18 Juin 2015 - 7:28

J'ai relu ton premier message.

A priori, la première question qu'on se pose c'est : pourquoi vouloir vérifier une certitude ?
Il existe des codes de modèles numériques déterministes qui modélisent plutôt bien (tout dépend de la précision qu'on attend bien sûr) les courants (champs de vitesse). Les facteurs principaux y sont déjà fixés.
Si tu cherches une relation statistique (une corrélation), tu vas tomber dans bien d'autres considérations pour valider ton résultat que les simples phénomènes physiques à l'origine des courants.

Sachant que toutes mes variables sont quantitatives continues à l'exception des variables de "direction du courant, du vent et de la houle"; j'ai rendu l'ensemble des variables qualitatives en les classant.
Pourquoi ? Tu as généré une information statistiquement très lourde à gérer et générant nécessairement une perte d'information voire un premier niveau d'interprétation de la donnée qui n'est pas le bon.
Il existe des analyses permettant de coupler variables qualitatives et quantitatives.

Passons à ta question proprement dite. L'ACM va te dresser une typologie de tes pas de temps. Cette typologie ne tiendra pas compte de l'organisation temporelle de tes données. Si l'ACM est capable de reproduire des gradients non linéaire, je doute fort de son intérêt dans les données cycliques comme les courants de marée. En plus, pour tes variables quanti passées en quali, tu perds l'info de l'ordre des modalités dans une ACM. ça peut être gênant à mon avis pour toi. Enfin, l'ACM n'est pas une méthode prédictive, elle ne fait que décrire.

La manière dont tu écris "Courants" = "vents" + "marées" (+ potentiellement "houle"), fait clairement penser à un modèle (GLM sans doute).

Voilà ce que je peux te dire pour le moment.

Nik

Nombre de messages : 1606
Date d'inscription : 23/05/2008

Revenir en haut Aller en bas

analyse - Quelle analyse choisir ? Empty Re: Quelle analyse choisir ?

Message par Seastem Jeu 18 Juin 2015 - 8:17

Merci pour cette réponse Smile
Alors alors, effectivement tout cela peut se modéliser, malheureusement les modèles dont tu parle ne marchent pas sous toutes les conditions, et c'est justement le cas du lagon de nouvelle calédonie, dans lequel la modélisation avance a pas de nain. Le principe de ce travail est d'une part de tester les certitudes (qui s'avèrent ne pas fonctionner dans ce cas précis) afin de déceler leur limite, et de déterminer lequel des forçages est prépondérant, et ce dans chaque zone d'étude, donc de dresser un genre de "typologie des forçages prépondérants", pour pouvoir, in fine, comprendre les points sur lesquels les modèles doivent être corrigés.
Le but de ma démarche de "statistique" revient "simplement" (et j'en convient, ce n'est pas simple) à tenter de déterminer :
- La part de chaque forçage dans l'apparition des courants
- de dresser une typologie des phénomènes observés
Car même si bon nombre de choses sont cycliques (les marées, les vives et mortes eaux.. etc), les épisodes de vent, les épisodes de pluies fortes ainsi que ceux de houle sont autant de facteurs rendant le phénomène global de courantologie pas uniquement cyclique, en tous cas dans une zone précise.

J'ai rendu l'ensemble qualitatif par méconnaissance des autres techniques, l'ACM étant ce qui se rapproche le plus de ce que je connais (AFC et ACP), donc tu penses qu'il seraît plus intéressant de tenter une autre méthode ?

Ce qui m'intéresse lorsque tu dis que l'ACM ne tient pas compte de l'ordre temporel de mes données, c'est justement que certains épisodes se reproduisent de manière assez anarchique, (par exemple une direction de vent particulière avec une marée montante générera des courants orientés vers la côte, ce qui arrive uniquement dans ces conditions précises), et ces épisodes m'intéressent aussi, sans aucunes chance d'être cycliques..

Finalement, penses tu que je devrais essayer une analyse différente ? Ce qui est sûr, c'est que je peux réaliser une méthode prenant des variables toutes quantitatives lorsque je traite les vitesses, ce qui est par contre plus embétant, c'est que tout ce qui se réfère aux directions ne peut pas être traité quantitativement (le 0 n'à pas plus de valeur que le 120, ni que le 360, qui vaut lui même 0.. Argh). Bien évidemment, je ne suis pas un professionnel des statistiques, le tout est de remplir les points importants d'un stage, et donc de réaliser quelquechose vis à vis de mes données.


Je me perds; Donc..

Y'a t-il un moyen d'arriver a obtenir une typologie des différents épisodes que je rencontre sur ma période ?
Y'a t-il un moyen de discerner la part de chaque forçage au courant résultant ?
Malheureusement, les courants et ce qui peut les générer n'est pas simple, c'est pourquoi les équations de navier stokes ne sont toujours pas résolues.. Neutral
C'est là dessus que j'essaie de faire mon chemin Smile Je n'ai pas une formation de statisticien, on en a fait un peu, mais c'est certain que ça ne suffit pas pour s'attaquer à ce genre de problématiques.. J'aimerais quand même essayer, même si ce n'est pas brillantissime, je me dis que ça sera un premier pas dedans, et quoi de mieux qu'un stage pour s'y attaquer ! pirat Merci encore pour ta réponse Wink

Seastem

Nombre de messages : 3
Date d'inscription : 15/06/2015

Revenir en haut Aller en bas

analyse - Quelle analyse choisir ? Empty Re: Quelle analyse choisir ?

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum