Re: donnees friday87

From: Tito de Morais Luis (tito@ird.fr)
Date: Fri Sep 01 2006 - 18:39:46 MEST

  • Next message: Loyd Mathews: "x----SPAM----x Re: zuR Xvo"

    Le mercredi 30 août 2006 à 10:09 +0200, Daniel Chessel a écrit :
    > Oui, ben j'ai encore sauté une info.
    > La précision n'est plus ce qu'elle était.

    (...)

    Bon, j'ai donc essayé de refaire les calculs de l'article (en partie).
    Mais c'est bien vrai que la précision n'est plus ce qu'elle était, à
    moins que je ne me sois trompé, ce qui est loin d'être à exclure ;-(

    Pour les analyses séparés, j'obtiens des résultats (à la rotation près)
    voisins mais pas identiques. Pour la co-inertie, cela se gâte un peu.
    J'ai dû me tromper quelque part...

    Cela dit, sauf si j'ai vraiment fait une grosse bourde, que je vous
    remercie de relever, ce n'est pas la peine de passer trop de temps la
    dessus. Même si la valeur pédagogique de la chose s'en trouve diminuée,
    cela peut convenir ainsi.

    Merci déjà pour l'aide apportée.

    L. Tito

    Voici toujours mon code commenté :

    library(ade4)
    data(friday87)
    # Dans les données friday87 fournies avec ade4 il manque la turbidité
    # et la profondeur, qu'il faut donc rajouter
    Dept <- c(7.0, 4.5, 2.5, 6.5, 3.0, 3.0, 2.0, 4.5, 3.0, 3.0, 5.0, 4.5, 4.5,11.0, 7.0,2.5)
    Turb <- c(0.8, 3.6, 0.6, 1.0, 3.0, 15.0, 10.0, 15.0, 15.0, 20.0, 5.5, 10.0, 60.0, 2.5, 5.7, 3.0)
    friday87$mil <- cbind(friday87$mil,turb,depth)
    # Pour avoir les bons labels du milieu comme dans l'article
    names(friday87$mil) <- c("Parea","Varea","pH","Cond","BOD","THar","Alkal","PO4","NO3","Turb","Dept")
    #
    # la pca ("standardized") sur le milieu
    dudi1 <- dudi.pca(friday87$mil, scale = TRUE, center=TRUE, scan = FALSE, nf = 2)
    #
    # pour avoir la figure 3 de l'article
    #(sauf 3a qui ne peut être faite faute des données géographiques)
    barplot(dudi1$eig) #3b
    s.corcircle(dudi1$co) #3c
    s.label(dudi1$li) #3d
    #
    # la pca ("centred") sur la faune
    dudi2 <- dudi.pca(friday87$fau, center=TRUE, scan = FALSE, nf = 3)
    #
    # pour avoir la figure 4 de l'article
    barplot(dudi2$eig) #4a
    par(mfrow=c(2,5))
    j=0 ; k=0 ; for(i in as.numeric(friday87$fau.blo)) {j=i+j ; k=k+1 ; s.class(dudi2$co[(j-i+1):j,1:2],fac=as.factor(rep(1,i)), cellipse =0, label = friday87$tab.names[k],grid = F )} #4b
    # comme le code précédent ne place pas les étoiles à l'origine comme dans la fig. 4B du papier
    # j'essaye le suivant mais cela ne fonctionne pas. Je dois me tromper quelque part...
    j=0 ; k=0 ; for(i in as.numeric(friday87$fau.blo)) {j=i+j ; k=k+1 ; s.class(dudi2$co[(j-i+1):j,1:2],fac=as.factor(rep(1,i)), cellipse =0, label = friday87$tab.names[k],grid = F, origin=c(mean(dudi2$co[(j-i+1):j,1]) , mean(dudi2$co[(j-i+1):j,2])) )}
    # Par ailleurs l'allure des figures obtenues ci-dessus est un peu différente de celle du papier...
    par(mfrow=c(1,1))
    s.value(dudi2$li[,1:2], dudi2$li[,3], csi = 0.75, cleg = 0.75,method='greylevel') #4c
    s.label(dudi2$li[,1:2],add.plot=T)
    # à une rotation près c'est proche...
    #
    # coinertie
    # à partir d'ici j'ai des différences assez importantes avec le papier
    #
    coin1 <- coinertia(dudi1,dudi2, scan = FALSE, nf = 2)
    #
    # pour avoir la figure 5
    par(mfrow = c(1,2))
    s.corcircle(coin1$aX) #5a
    s.corcircle(coin1$aY) # 5b
    par(mfrow = c(1,1))
    #
    # Pour obtenir les valeurs du tableau 1 (mais elles sont différentes, sauf erreur de ma part)
    summary(coin1)
    #
    # Pour ce qui est des tests...
    randtest.coinertia(coin1, nrepet =100)
    plot(randtest.coinertia(coin1, nrepet =100))
    # Je n'ai pas réussi à faire les tests de la figure 6...
    #
    # figure 7
    barplot(coin1$eig) #7a
    s.arrow(coin1$co) #7b
    par(mfrow = c(1,2))
    s.label(coin1$lX) #7c
    s.label(coin1$lY) #7d
    par(mfrow = c(1,1))
    #
    par(mfrow=c(2,5))
    j=0 ; k=0 ; for(i in as.numeric(friday87$fau.blo)) {j=i+j ; k=k+1 ; s.class(coin1$li[(j-i+1):j,1:2],fac=as.factor(rep(1,i)), cellipse =0, label = friday87$tab.names[k],grid = F )} #7e
    #
    # Figure 8a
    s.label(cbind(coin1$lX[,1],coin1$lY[,1]), label = row.names(coin1$lX))
    abline(lm(coin1$lY[,1]~coin1$lX[,1]))
    cor(coin1$lY[,1], coin1$lX[,1])
    text(4,-4,labels=paste("R = ", round(cor(coin1$lY[,1], coin1$lX[,1]),digits=2)))
    #
    # Figure 8b
    coi.mil <- coin1$lX
    coi.fau <- coin1$lY
    names(coi.mil) <- c("axe1", "axe2")
    names(coi.fau) <- c("axe1", "axe2")
    s.match(coi.mil, coi.fau,clab=0)
    s.label(coi.mil, clab = 1, add.plot = TRUE)

    -- 
    Luis Tito de Morais
         IRD - UR070 (RAP)
        Centre IRD de Belair
       Route des hydrocarbures
           BP 1386, Dakar
              Sénégal
    Téléphone : +221 849 36 58
    Fax : +221 832 16 75
    Courriel : tito@ird.sn
    Site web : http://www.ird.sn/activites/rap
               http://www.mpl.ird.fr/suds-en-ligne/ecosys/estuarien/estuarien.html
    



    This archive was generated by hypermail 2b30 : Fri Sep 01 2006 - 18:40:55 MEST