IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Pearson's X2 statistic


Sujet :

R

  1. #1
    Membre à l'essai
    Femme Profil pro
    .
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Pearson's X2 statistic
    Bonjour!

    Dans un problème que je dois résoudre, on prend l'exemple d'une étude qui se demande si le mode de régénération de certaines plantes (par graine ou végétatif) est indépendant ou pas du mode de dispersion (fourmis ou vertébrés). Le cas que je dois résoudre me donne une table et me demande de calculer le X2 selon pearson.
    Voici ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    > mat<-matrix(nrow=2,ncol=2)
    > mat
         [,1] [,2]
    [1,]   NA   NA
    [2,]   NA   NA
    > 
    > mat<-matrix(data=c(25,6,36,21), nrow=2,ncol=2,byrow=T)
    > mat
         Fourmis Vertébrés
    Graines   25    6
    Végétatif   36   21
    > #Ceci est la matrice donnée dans mon cas.
    >
    > xmat<-matrix(data=c(15.5,15.5,28.5,28.5), nrow=2,ncol=2,byrow=T)
    >#Ceci serait les données attendues selon H0
    > 
    > ymat<-mat-xmat #Ceci serait la différence entre observé-attendu
    > zmat<-ymat*ymat#Je mets les valeurs au carré
    > Rmat<-zmat/xmat# Je divise par les valeurs attendues
    > sum(Rmat)# J'additionne toutes les cellule pour avoir l'indicateur du khi-carré
    [1] 15.59253 #Réponse
    Est-ce que ceci vous semble juste? Parce que j'avais commencé par simplement utiliser la fonction chisq.test(mat), et pensais prendre tout bonnement la valeur X2 donnée. Ayant un doute, j'ai essayé de faire d'une autre manière, celle présentée ici, mais je n'obtiens pas la même valeur de X2 que celle avec chisq.test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    > chisq.test(mat)
     
    	Pearson's Chi-squared test with Yates' continuity
    	correction
     
    data:  mat
    X-squared = 2.1235, df = 1, p-value = 0.1451
    Je crois qu'il y a quelque chose que je n'ai pas compris... Si quelqu'un peut m'aider ça serait super!

    Salutations

  2. #2
    Membre actif
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Points : 296
    Points
    296
    Par défaut
    Citation Envoyé par celine333 Voir le message
    [...] Est-ce que ceci vous semble juste?
    Non, il y a des erreurs dans vos calculs. Voici une reprise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    données <- matrix(data = c(25, 6, 36, 21), nrow = 2, ncol = 2, byrow = TRUE)
    dimnames(données) <- list(regénération = c("Graines", "Végétatif"), dispersion = c("Fourmis", "Vertébrés"))
    print(données)
     
    totauxCol <- colSums(données)
    totauxLig <- rowSums(données)
    effectif <- sum(totauxLig)
    print(totauxCol)
    print(totauxLig)
    print(addmargins(données))
     
    espérances <- sapply(totauxCol, function(x) (x * totauxLig) / effectif)
    chiDeux <- sum(((données - espérances) ** 2) / espérances)
    print(chiDeux)
     
    direct <- chisq.test(données, simulate.p.value = TRUE)
    print(direct$statistic)
    > print(données)
                dispersion
    regénération Fourmis Vertébrés
       Graines        25         6
       Végétatif      36        21
    
    > print(chiDeux)
    [1] 2.887151
    
    > print(direct$statistic)
    X-squared 
     2.887151

Discussions similaires

  1. Calcul de Statistics sur les requêtes
    Par Rahustro dans le forum Oracle
    Réponses: 3
    Dernier message: 17/01/2006, 06h19
  2. Update Statistics pour Oracle
    Par e77em dans le forum Oracle
    Réponses: 8
    Dernier message: 28/12/2005, 16h02
  3. Réponses: 5
    Dernier message: 20/10/2005, 10h42
  4. [INFORMIX] : UPDATE STATISTICS
    Par dcollart dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 24/08/2005, 15h03
  5. script d'analyse oracle : compute statistic
    Par davidudy dans le forum Administration
    Réponses: 7
    Dernier message: 05/08/2004, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo