Equivalents non paramétriques

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

E.H. [compte supprimé]

Equivalents non paramétriques

Messagepar E.H. [compte supprimé] » 19 Fév 2007, 16:46

Bonjour tous,

j'ai un soucis. vous vous souvenez peut etre que je travaillais avec des données non normales.


Nous avions discuté de l'emploi de l'anova (emploi courant en biologie des populations animales, sans même que la normalité soit vérifiée) ou de s'orienter vers du non paramétrique, qui sera forcément juste.

Mais voilà le probleme :

avec les anova, on peut rechercher l'influence de 2 variables explicatives et plus sur une variable dépendante, et étudier les intéractions entre les explicatives. j'ai beau chercher, je ne trouve pas d'équivalent en non paramétrique.

De ce fait, je suis capable avec le test de kruskal wallis d'étudier par exemple l'influence du sexe de d'un individu sur le temps passé dans une activité, ou alors l'influence de sa position dans un groupe, ou encore l'influence du moment dans la journée.
Mais tout ceci n'apporte au final que "peu" d'information.

Comment vérifier si ces variables ont une inflence simultanée ? par exemple que sexe ET moment de la journée ET ... ET... ont une influence et connnaitre l'impact de chacune des variables et leurs intéractions ?

Ouvert à toutes propositions...

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 19 Fév 2007, 17:00

Bonjour,


L'équivalent d'une anova 2 en non paramétrique serait le test de Scheirer-Ray-Hare : http://desdevises.free.fr/4.Anova2.pdf mais je ne sais pas s'il existe dans R.

Maxime

E.H. [compte supprimé]

Messagepar E.H. [compte supprimé] » 19 Fév 2007, 18:10

Merci. je vais essayer d'avoir accès à l'article originel pour pouvoir le mettre en place. Si vous connaissez un serveur sur lequel je peux le télécharger, merci de me le faire savoir, je n'ai pas encore trouvé.

Scheirer C.J., Ray W.S. et Hare N., 1976. The analysis of ranked data derived from completely randomized factorial designs. Biometrics 32(2):429-434

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 20 Fév 2007, 05:56

Article disponible là :http://links.jstor.org/sici?sici=0006-341X(197606)32%3A2%3C429%3ATAORDD%3E2.0.CO%3B2-D
si tu as les accès sinon c'est très peu probable que tu le trouves ailleurs vu la date de publication.

E.H. [compte supprimé]

Messagepar E.H. [compte supprimé] » 20 Fév 2007, 10:25

oui, j'avais effectivement trouvé ce site de publis. je n'ai malheureusement pas accès :'(

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 20 Fév 2007, 13:18

Re,


Tu peux trouver la référence du test dans : Sokal RR, Rohlf FJ, 1995. Biometry, 3rd ed. New York: Freeman. Je me demande par contre si le nombre de répétitions dans chaque catégorie croisée ne doit pas être le même sinon tu peux le mettre en place facilement dans R.

Code : Tout sélectionner

# Avec l'exemple de Sokal :
rat <- c(709,679,699,657,594,677,592,538,476,508,505,539)

rat
 [1] 709 679 699 657 594 677 592 538 476 508 505 539

fat <- gl(2,6,labels=c("Fresh","Rancid"))

fat
 [1] Fresh  Fresh  Fresh  Fresh  Fresh  Fresh  Rancid Rancid Rancid Rancid Rancid Rancid
Levels: Fresh Rancid

sexe <- gl(2,3,12,labels=c("man","woman"))

sexe
 [1] man   man   man   woman woman woman man   man   man   woman woman woman
Levels: man woman

lm1 <- lm(rank(rat)~sexe*fat)

anolm1 <- anova(lm1)

anolm1
Analysis of Variance Table

Response: rank(rat)
          Df  Sum Sq Mean Sq F value    Pr(>F)   
sexe       1   8.333   8.333   3.125 0.1150771   
fat        1 108.000 108.000  40.500 0.0002173 ***
sexe:fat   1   5.333   5.333   2.000 0.1950155   
Residuals  8  21.333   2.667                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

MS <-  anolm1[1:3,1:3]

MS
         Df  Sum Sq Mean Sq
sexe      1   8.333   8.333
fat       1 108.000 108.000
sexe:fat  1   5.333   5.333

MS[,4] <- MS[,3]/(length(rat)+1) #le test H

MS[,5] <- (1-pchisq(MS[,4],MS[,1]))

colnames(MS)[4:5] <- c("H","pvalue")

MS
         Df  Sum Sq Mean Sq       H  pvalue
sexe      1   8.333   8.333   0.641   0.423
fat       1 108.000 108.000   8.308   0.004
sexe:fat  1   5.333   5.333   0.410   0.522

Et tu retombes sur tes pieds.

Maxime

E.H. [compte supprimé]

Messagepar E.H. [compte supprimé] » 20 Fév 2007, 15:49

S'lut maxime,

que veux tu dire par :
Je me demande par contre si le nombre de répétitions dans chaque catégorie croisée ne doit pas être le même
?

sur ton exemple, sous entend tu q'uil faille le mm nombre woman/man, ainsi que le mm nombre d'individus fresh/rancid... en clair un plan d'expérimentation bien propre ?

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 20 Fév 2007, 16:00

Re,


Je sous entends qu'il y ait autant de rats dans chaque catégories :

Code : Tout sélectionner

table(fat,sexe)
        sexe
fat      man woman
  Fresh    3     3
  Rancid   3     3

Donc il y a le même nombre de rats dans les catégories croisées : 3 rats qui sont man et fresh, 3 rats qui sont man et Rancid, 3 rats qui sont woman et Fresh et enfin 3 rats qui sont woman et Rancid. Voila je ne sais pas si tu peux utiliser ce test dans le cas ou le nombre de répétitions est différent.

Maxime

E.H. [compte supprimé]

Messagepar E.H. [compte supprimé] » 20 Fév 2007, 16:27

ok. en revanche, je crois qu'il y a une erreur dans otn exemple.

en se basant sur http://desdevises.free.fr/4.Anova2.pdf, il faut placer les valeurs en rang (ce que tu as bien fait), puis remplacer les valeurs originelles par leur rang.

d'autre part, je ne comprend pas bien cela :

Code : Tout sélectionner

MS[,4] <- MS[,3]/(length(rat)+1) #le test H


car (cf pdf), H = SCE/CM ou CM = abn(abn + 1)/12

que signifie "abn"
a quoi correspond "length(rat)" ? a 12 puisque tu as 12 individus au total ?

si abn correspond a length(rat), ne devrais ce pas etre plutot :

Code : Tout sélectionner

MS[,4] <- MS[,3]/(lenght(rat)((length(rat)+1)/12)) #le test H

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 20 Fév 2007, 16:47

Re,

Desole il n'y a pas d'erreur dans mon exemple ... Je fais bien une anova sur les rangs, la fonction rank te donne les rangs de tes valeurs. Ne pas confondre rank et order. a est le nombre de modalité du premier facteur, b le nombre de modalités du deuxième facteur et enfin n le nombre de répétitons au sein de chaque sous groupe, donc ici a = 2 (man ou woman), b= 2 (Fresh ou Rancid) et n = 3, 3 rats dans chaque sous groupe (voir post avant) donc a*b*n = 2*2*3 = 12 et length(rat)=12 donc je ne me suis pas casse la tête c'est tout. Mais le calcul est bon. Donc j'ai divisé les sum of square (SCE) par CM qui est ici de 13 (12*13/12 = 13). J'aurai plutôt du diviser les MS[,2] par 13 que les MS[,3] dans le calcul désolé pour ça. Pour une formule globale j'aurai du utiliser (lenght(rat)*(length(rat)+1)/12 pour MStotal mais ici comme ça revenait au même que length(rat)+1 je ne me suis pas cassé la tête.

Alors je corrige (même si l'exemple précédent était correct)

Code : Tout sélectionner

rat <- c(709,679,699,657,594,677,592,538,476,508,505,539)
fat <- gl(2,6,labels=c("Fresh","Rancid"))
sexe <- gl(2,3,12,labels=c("man","woman"))
lm1 <- lm(rank(rat)~sexe*fat)
anolm1 <- anova(lm1)
MS <-  anolm1[1:3,1:3]
MS[,4] <- MS[,2]/(length(rat)*(length(rat)+1)/12) #le test H
MS[,5] <- (1-pchisq(MS[,4],MS[,1]))
colnames(MS)[4:5] <- c("H","pvalue")
MS
         Df  Sum Sq Mean Sq       H  pvalue
sexe      1   8.333   8.333   0.641   0.423
fat       1 108.000 108.000   8.308   0.004
sexe:fat  1   5.333   5.333   0.410   0.522


Voila les corrections. Les valeurs obtenues dans H et pvalue sont bonnes pas de soucis. C'est vrai que dans le post précédent j'avis fait au plus vite mais du coup pour mon cas particulier et pas pour un cas général.

Mea culpa.

Maxime

E.H. [compte supprimé]

Messagepar E.H. [compte supprimé] » 20 Fév 2007, 18:13

super. merci bcp pour toutes ces explications


Retourner vers « Questions en cours »

Qui est en ligne

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