Accueil > R et RStudio > Les tests

Les tests

Dernier ajout : 6 octobre 2014.

Différentes situations se proposent.

- On veut savoir si deux variables quantitatives sont dépendantes.
Pour, cela, on cherche leur coefficient de corrélation.
- On cherche l’influence d’un facteur de risque sur une maladie.
Pour cela, on calcule le risque relatif ou l’odds-ratio.
- On cherche l’influence d’une variable binaire sur une autre (comparaison de pourcentages).
Pour cela, on utilise le test du Chi2 ou le test de Fisher.
- On cherche à comparer les moyennes entre deux sous-groupes.
On utilise le test de Student ou le test de Wilcoxon.

Articles de cette rubrique

    6 octobre 2014

  • Test de Student et test de Wilcoxon

    Un fichier de données

    Travaillons sur une enquête de satisfactions dans un hôpital, récupéré lors d’un cours de FUN (France Unité Numérique). Les fichiers sont disponibles ici.

    Par la suite, ces données seront stockées dans la variable satis .

    Dans ces données comme souvent, les observations sont en lignes et les variables en colonnes.

    Un exemple

    On cherche à savoir s’il y a une différence d’âge entre les patients recommandant l’hôpital et les autres.

    Préparons les données.

    Le test de Student

    Ce test sert à comparer les moyennes d’une variable quantitative pour deux groupes d’une population (déterminer par une variable binaire).

    Pour pouvoir l’utiliser, il faut respecter les conditions suivantes :
    - les effectifs doivent être raisonnables (n>30) ;
    - la variable quantitative doit suivre une loi normale ;
    - les variances des deux groupes doivent être voisines.

    On utilise l’instruction t.test.

    Vérifions les conditions

    - La loi normale de l’âge

    On voit que l’âge suit environ une loi normale.

    - Les effectifs dans les sous-groupes

     0   1
    136 269

    - Les écart-types dans les sous-groupes

          0        1
    18.38549 16.10392

    Les écart-types ne sont pas trop éloignés.

    Toutes les conditions sont respectées

    Application du test de Student

    NB : attention au ~ qui remplace la virgule habituelle !

            Two Sample t-test

    data:  satis$age by satis$recommander.b
    t = -1.2159, df = 403, p-value = 0.2247
    alternative hypothesis: true difference in means is not equal to 0
    95 percent confidence interval:
    -5.658504  1.333772
    sample estimates:
    mean in group 0 mean in group 1
          53.55882        55.72119

    La moyenne d’âge est supérieure dans le groupe qui recommande l’établissement, mais la valeur de p, est supérieure à 5~\%.

    Le test de Wilcoxon

    Si le test de Student n’est pas applicable, on peut utiliser le test de Wilcoxon.

    Celui-ci ne donne pas les moyennes. Commençons par les calculer :

          0        1
    53.55882 55.72119

    Appliquons le test.

    NB : attention au ~ qui remplace la virgule habituelle !

            Wilcoxon rank sum test with continuity correction

    data:  satis$age by satis$recommander.b
    W = 17023.5, p-value = 0.2543
    alternative hypothesis: true location shift is not equal to 0

    La valeur de p, est aussi supérieure à 5~\%.


  • Test du Chi2 et test de Fisher

    Un fichier de données

    Travaillons sur une enquête de satisfactions dans un hôpital, récupéré lors d’un cours de FUN (France Unité Numérique). Les fichiers sont disponibles ici.

    Par la suite, ces données seront stockées dans la variable satis .

    Dans ces données comme souvent, les observations sont en lignes et les variables en colonnes.

    Présentation

    B \overline{B}
    A a b
    \overline{A} c d

    Dans le tableau précédent, on cherche à savoir si le facteur B influe sur le paramètre A

    Un exemple

    Cherchons si le sexe des personnes a un rôle dans le fait de recommander l’établissement.

    Commençons par préparer les variables.

    On peut alors donner la répartition dans un tableau à double entrée :

                      satis$sexe
    satis$recommander.b   0   1
                     0  73  63
                     1 139 130

    Pour obtenir les pourcentages, utilisons l’instrucion prop.table.

    Par défaut, elle donne les pourcentages par rapport á l’effectif total :

                      satis$sexe
    satis$recommander.b         0         1
                     0 0.1802469 0.1555556
                     1 0.3432099 0.3209877

    Pour avoir les pourcentages par rapport au total de chaque ligne, on rajoutera margin=1, ou margin=2 pour le total en colonnes.

                      satis$sexe
    satis$recommander.b         0         1
                     0 0.5367647 0.4632353
                     1 0.5167286 0.4832714

    On constate un écart entre les deux répartitions : légèrement plus d’hommes (0) recommandent l’établissement. Mais est-ce significatif ?

    Test de Chi2 ou test de fisher ?

    Par défaut, on utilisera le test du Chi2. Mais il faut que les deux conditions suivantes soient respectées :

    - des effectifs pas trop petits ;
    - des pourcentages pas trop extrêmes.

    Si ces conditions ne sont pas respectées, ce que nous dira le test du Chi2, on utilisera le test de Fisher.

    Les tests avec R

    Pour le test du Chi2 :

            Pearson's Chi-squared test

    data:  satis$recommander.b and satis$sexe
    X-squared = 0.1454, df = 1, p-value = 0.703

    Pour le test de Fisher :

            Fisher's Exact Test for Count Data

    data:  satis$recommander.b and satis$sexe
    p-value = 0.7523
    alternative hypothesis: true odds ratio is not equal to 1
    95 percent confidence interval:
    0.7020996 1.6745388
    sample estimates:
    odds ratio
     1.083487

    Dans les deux cas, on constate que la p-value est trop élevée (supérieure à 5~\%.)


  • 5 octobre 2014

  • Risque relatif et odds-ratio avec R

    Un fichier de données

    Travaillons sur une enquête de satisfactions dans un hôpital, récupéré lors d’un cours de FUN (France Unité Numérique). Les fichiers sont disponibles ici.

    Par la suite, ces données seront stockées dans la variable satis .

    Dans ces données comme souvent, les observations sont en lignes et les variables en colonnes.

    Présentation

    M \overline{M}
    FR a b
    \overline{FR} c d

    Dans le tableau d’effectifs précédent, M sont les malades et FR ceux qui présentent un facteur de risque.

    On a alors les définitions suivantes :

    - Risque relatif : RR=\frac{\frac{a}{a+b}}{\frac{c}{c+d}}

    - Odds-ratio : OR=\frac{\frac{a}{b}}{\frac{c}{d}}

    Le risque relatif est à utiliser lorsqu’on a les statistiques d’une population générale.
    L’odds-ration est plus robuste sur un échantillon, et notamment en cas d’enquête cas-témoins.

    Un cas concret

    Etudions si le fait de recommander l’hôpital est lié au fait d’avoir la profession 2.

    Pour cela, préparons les données binaires utiles.

    Donnons le tableau associé :

                satis$recommander.b
    satis$prof2.b   0   1
               0 124 239
               1   9  28

    Comme la maladie et le facteur de risque sont normalement codé en 0 au lieu de 1, vaut mieux inverser le tableau :

                    1 - satis$recommander.b
    1 - satis$prof2.b   0   1
                   0  28   9
                   1 239 124

    Pour réaliser le test, on utilise la commande twoby2(FR,Maladie). On respectera cet ordre pour que le risque relatif calculé soit le bon.

    2 by 2 table analysis:
    ------------------------------------------------------
    Outcome   : 0
    Comparing : 0 vs. 1

       0   1    P(0) 95% conf. interval
    0  28   9  0.7568    0.5948   0.8683
    1 239 124  0.6584    0.6081   0.7054

                                      95% conf. interval
                Relative Risk: 1.1494    0.9437   1.3998
            Sample Odds Ratio: 1.6141    0.7387   3.5272
    Conditional MLE Odds Ratio: 1.6123    0.7120   4.0092
       Probability difference: 0.0984   -0.0664   0.2189

                Exact P-value: 0.2737
           Asymptotic P-value: 0.23
    ------------------------------------------------------

    On constate que OR est élevé mais la valeur de p supérieure à 5~\% ne permet pas de conclure.


  • Coefficient de corrélation avec R

    Un fichier de données

    Travaillons sur une enquête de satisfactions dans un hôpital, récupéré lors d’un cours de FUN (France Unité Numérique). Les fichiers sont disponibles ici.

    Par la suite, ces données seront stockées dans la variable satis .

    Dans ces données comme souvent, les observations sont en lignes et les variables en colonnes.

    Quelques repère

    - Si le coefficient de corrélation r est nul, on dit que les deux paramètres sont indépendants.
    - Si r>0, ils varient dans le même sens.
    - Si r<0,4, la corrélation est faible.
    - Dans le cas d’un est, il faut que p < 5~\%.

    Un exemple

    Cherchons s’il y a une corrélation entre le score de relation et l’âge des personnes.

    Des graphiques

    Commençons par tracer le nuage de points.

    Pour éviter les superpositions, on peut utiliser la fonctions jitter.

    Le coefficient de corrélation

    On peut obtenir ce coefficient uniquement par la commande cor :

    [1] 0.09596955

    Mais il est aussi simple de faire le test complet avec la méthode de Pearson :

            Pearson's product-moment correlation

    data:  satis$score.relation and satis$age
    t = 1.796, df = 347, p-value = 0.07336
    alternative hypothesis: true correlation is not equal to 0
    95 percent confidence interval:
    -0.009102243  0.198945290
    sample estimates:
          cor
    0.09596955

    On y voit que r \approx 0,1, ce qui est très faible.

    De plus, p \approx 7~\% , ce qui est trop élevé.

    On ne peut pas affirmé qu’une corrélation existe entre le score de relation et l’âge.


  • 4 octobre 2014

  • Intervalle de confiance avec R

    Un fichier de données

    Travaillons sur une enquête de satisfactions dans un hôpital, récupéré lors d’un cours de FUN (France Unité Numérique). Les fichiers sont disponibles ici.

    Par la suite, ces données seront stockées dans la variable satis .

    Dans ces données comme souvent, les observations sont en lignes et les variables en colonnes.

    On dispose d’un échantillon

    Il faut deux conditions :
    - le caractère étudié suit une loi normale ;
    - l’échantillon est aléatoire.

    Pour un échantillon donné, il n’y a pas de fonction R donnant l’intervalle de confiance au seuil de 95%.

    On doit donc calculer les deux bornes de l’intervalle :

    [\overline{x} -1,96 \times \frac{\sigma}{\sqrt{n}}~;~\overline{x} + 1,96 \times \frac{\sigma}{\sqrt{n}}]

    \overline{x} est la moyenne et \sigma l’écart-type de l’échantillon de taille n.

    Prenons l’exemple des âges.

    Numeric
                 mean    median       var        sd   valid.n
    x            58.21        60     317.2     17.81       528
    [1] 56.69084
    [1] 59.72916

    On utilise la loi binomiale

    La librairie binom propose une dizaine de méthode pour calculer l’intervalle de confiance au seuil de 95% grâce à la fonction binom.confint. On pourra choisir la méthode "exact".

    Prenons comme exemple les 269 personnes sur les 405 qui recommandent l’hôpital.

     method   x   n      mean     lower     upper
    1  exact 269 405 0.6641975 0.6158948 0.7100798

SPIP | | Plan du site | Suivre la vie du site RSS 2.0