stat de mann whitney // récupérer des valeurs supp. [resolu]

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é]

stat de mann whitney // récupérer des valeurs supp. [resolu]

Messagepar E.H. [compte supprimé] » 23 Juin 2007, 22:51

Bonsoir,

il y a un truc que je ne comprend pas dans les sorties de R sur la fonciton wilxow.test()

exemple :

Code : Tout sélectionner

> wilcox.test(ASRF3~an,  data=fcb)

        Wilcoxon rank sum test with continuity correction

data:  ASRF3 by an
W = 7775, p-value = 0.0001263
alternative hypothesis: true location shift is not equal to 0


Il se trouve qu'il me donne le W (qui correspond au U le plus grand en réalité).

Or j'aimerais pouvoir récupérer aussi la stat Z, la moyenne et la variance.

Est ce possible avec la fonction directement ? j'ai bien essayé de comprendre le code en l'éditant, mais c'est du charabia ce language...

Si non, est il possible de récupérer automatiquement la taille des échantillons comparés (qui me permettent de calculer toutes ces statisques) avec cette fonction, elle doit bien s'en servir quelque part... ?

Si non, comment récupérer le nombre de valeurs (de lignes) dans une table en fonction d'un critère ?

par exemple, j'ai un tableau importé, une colonne comprend les années (2005 et 2006), je souhaite compter le nombre de ligne avec 2005 et le nombre de lignes avec 2006.

Code : Tout sélectionner

> fcb

        ASRF9     an
1   0.0000000 2005
2   0.0000000 2005
3   0.6813147 2005
4   0.8287859 2006
5   0.9839054 2006
6   0.0000000 2005
7   0.3786695 2006


je souhaiterais avoir comme résultat :

4 (pour 2005) et 3 (pour 2006)

Merci

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Re: stat de mann whitney // récupérer des valeurs supp.

Messagepar Renaud Lancelot » 24 Juin 2007, 06:29

Emmanuel Henke a écrit :Bonsoir,

il y a un truc que je ne comprend pas dans les sorties de R sur la fonciton wilxow.test()

exemple :

Code : Tout sélectionner

> wilcox.test(ASRF3~an,  data=fcb)

        Wilcoxon rank sum test with continuity correction

data:  ASRF3 by an
W = 7775, p-value = 0.0001263
alternative hypothesis: true location shift is not equal to 0


Il se trouve qu'il me donne le W (qui correspond au U le plus grand en réalité).

Or j'aimerais pouvoir récupérer aussi la stat Z, la moyenne et la variance.

Est ce possible avec la fonction directement ? j'ai bien essayé de comprendre le code en l'éditant, mais c'est du charabia ce language...


Voir l'aide ?wilcox.test pour avoir la liste des valeurs retournées par la fonction. La fonction str permet de voir la structure de l'objet retourné, ce qui n'est pas la même chose que ce qui est imprimé à l'écran:

Code : Tout sélectionner

> wt <- wilcox.test(Ozone ~ Month, data = airquality, subset = Month %in% c(5, 8))
Warning message:
cannot compute exact p-value with ties in: wilcox.test.default(x = c(41L, 36L, 12L, 18L, 28L, 23L, 19L, 
> str(wt)
List of 7
 $ statistic  : Named num 128
  ..- attr(*, "names")= chr "W"
 $ parameter  : NULL
 $ p.value    : num 0.000121
 $ null.value : Named num 0
  ..- attr(*, "names")= chr "location shift"
 $ alternative: chr "two.sided"
 $ method     : chr "Wilcoxon rank sum test with continuity correction"
 $ data.name  : chr "Ozone by Month"
 - attr(*, "class")= chr "htest"
> wt

        Wilcoxon rank sum test with continuity correction

data:  Ozone by Month
W = 127.5, p-value = 0.0001208
alternative hypothesis: true location shift is not equal to 0


Donc pas de chance, rien d'autre n'est stocké dans l'objet: il va falloir mettre les mains dans le cambouis.

Si non, est il possible de récupérer automatiquement la taille des échantillons comparés (qui me permettent de calculer toutes ces statisques) avec cette fonction, elle doit bien s'en servir quelque part... ?

Si non, comment récupérer le nombre de valeurs (de lignes) dans une table en fonction d'un critère ?

par exemple, j'ai un tableau importé, une colonne comprend les années (2005 et 2006), je souhaite compter le nombre de ligne avec 2005 et le nombre de lignes avec 2006.

Code : Tout sélectionner

> fcb

        ASRF9     an
1   0.0000000 2005
2   0.0000000 2005
3   0.6813147 2005
4   0.8287859 2006
5   0.9839054 2006
6   0.0000000 2005
7   0.3786695 2006


je souhaiterais avoir comme résultat :

4 (pour 2005) et 3 (pour 2006)

Merci


Tout ça n'est pas stocké dans l'objet, comme le montre le résultat de str(). Les calculs sont cependant très simples, avec table par exemple (ou tapply, ou by, ou aggregate,...). Quelque chose comme:

Code : Tout sélectionner

table(fcb$an)


ou en limitant aux valeurs 2005 et 2006, et en utilisant "with" pour alléger l'écriture:

Code : Tout sélectionner

with(fcb, table(an[is.element(an, c(2005, 2006))]))


Si vous voulez récupérer plusieurs stats en même temps:

Code : Tout sélectionner

> fcb <- data.frame(
+     ASFR9 = runif(20),
+     an = sample(2000:2006, size = 20, replace = TRUE))
> fcb
        ASFR9   an
1  0.03073696 2001
2  0.13222740 2006
3  0.26725007 2006
4  0.57693541 2000
5  0.59866254 2002
6  0.41475503 2002
7  0.17015024 2006
8  0.34456114 2000
9  0.06988658 2002
10 0.23477429 2002
11 0.27939640 2005
12 0.33038044 2004
13 0.04889180 2001
14 0.58644374 2000
15 0.57295750 2002
16 0.32810299 2000
17 0.36673740 2000
18 0.97866283 2005
19 0.85875073 2002
20 0.74703417 2006
> with(fcb[is.element(fcb$an, c(2005, 2006)), ],
+      tapply(ASFR9, an, function(x){
+          c(moyenne = mean(x, na.rm = TRUE),
+            variance = var(x, na.rm = TRUE),
+            n = length(x),
+            "valeurs manquantes" = sum(is.na(x)))
+          }))
$`2005`
           moyenne           variance                  n valeurs manquantes
         0.6290296          0.2444868          2.0000000          0.0000000

$`2006`
           moyenne           variance                  n valeurs manquantes
         0.3291655          0.0808394          4.0000000          0.0000000


Renaud

E.H. [compte supprimé]

Messagepar E.H. [compte supprimé] » 24 Juin 2007, 13:55

Merci pour cette réponse.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité