Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Tests de conformité et intervalles de confiance :Objectifs * Mettre en place un test paramétrique de conformité sur une proportion, une moyenne ou une variance. Dans cette partie, on teste l'égalité d'un paramètre (moyenne, proportion, ...) à une valeur théorique. Le tableau ci-dessous donne, pour chaque test de conformité, le nom de base à utiliser dans R ainsi que la liste des arguments associés. | Rôle | Commande R | Arguments | Exemple | Exercice | |----------|----------|--------|------|---------| | Proportion | `binom.test()` | `x`, `n`, `p` | [ ici ](#exoprop) | [ ici ](#binom_plantes) | | Proportion $^{(1)}$ | `prop.test()` | `x`, `n`, `p` | [ ici ](#exoprop2) | | | Moyenne | `t.test()` | `x`, `mu` | [ ici ](#student) | [ ici ](#exoStudent) | | Variance | `varTest()` $^{(2)}$ | `x`, `sigma.squared` $^{(3)}$ | [ ici ](#exemplevarTest) | | $^{(1)}$ Cas des grands échantillons. $^{(2)}$ Cette fonction est disponible dans le package `EnvStats`. $^{(3)}$ `sigma.squared` correspond à la variance associée à $\mathcal{H}_0$. :Exemple {#exoprop, toggle=popup} On suppose qu'un certain caractère a été observé 5 fois sur un échantillon de taille 20. Dans R, la fonction implémentée pour réaliser un test binomial se nomme : `binom.test(x, n, p, alternative, conf.level)`. Par défaut, le niveau de confiance (`conf.level`) est égal à 95% (associé à un seuil de signification $\alpha$ de 5%). Si on veut tester si la proportion observée $\left( f = \frac{5}{20} = 0.4 \right)$ est significativement supérieure à 20%, on utilisera un test unilatéral (à droite) : ```r bt <- binom.test(x = 5, n = 20, p = 0.2, alternative = "greater") bt ``` ``` ## ## Exact binomial test ## ## data: 5 and 20 ## number of successes = 5, number of trials = 20, p-value = 0.3704 ## alternative hypothesis: true probability of success is greater than 0.2 ## 95 percent confidence interval: ## 0.1040808 1.0000000 ## sample estimates: ## probability of success ## 0.25 ``` Dans le résultat, les trois premières lignes récapitulent les données et instructions fournies à la fonction ainsi que la p-value associée à ce test. Quant aux 4 dernières lignes, elles fournissent une estimation par intervalle de confiance (par défaut au niveau de confiance de 95%) ainsi qu'une estimation ponctuelle de la proportion de ce caractère dans la population. Il est à noter qu'en fixant le paramètre `alternative` à `"greater"`, on conduit R à proposer un intervalle de confiance du type $[\gamma ; +\infty [$. Pour obtenir un intervalle de confiance bilatéral à 99%, on utilise : ```r bt <- binom.test(x = 5, n = 20, p = 0.2, alternative = "two.sided", conf.level = 0.99) bt ``` ``` ## ## Exact binomial test ## ## data: 5 and 20 ## number of successes = 5, number of trials = 20, p-value = 0.5764 ## alternative hypothesis: true probability of success is not equal to 0.2 ## 99 percent confidence interval: ## 0.05833394 0.55976091 ## sample estimates: ## probability of success ## 0.25 ``` Enfin, il est possible d'obtenir uniquement l'intervalle de confiance : ```r bt$conf.int ``` ``` ## [1] 0.05833394 0.55976091 ## attr(,"conf.level") ## [1] 0.99 ``` :Exercice {#binom_plantes, toggle = popup} Sur un échantillon de 20 plantes d’une certaine espèce, on a constaté que 3 d’entre elles sont atteintes par la maladie A. Peut-on considérer que la proportion de plantes atteintes par cette maladie dans la production est supérieure à 10 % ? :Corrigé {#rep_situation_tcic, toggle=collapse, title-display=show} On teste $\mathcal{H}_0 : p = 0.1$ contre $\mathcal{H}_1 : p > 0.1$. Sous $\mathcal{H}_0 : p = 0.1$, le nombre de plantes atteintes par la maladie A est distribué selon la loi $\mathcal{B}(20, 0.1)$. ```r binom.test(x = 3, n = 20, p = 0.1, alternative = "greater") ``` ``` ## ## Exact binomial test ## ## data: 3 and 20 ## number of successes = 3, number of trials = 20, p-value = 0.3231 ## alternative hypothesis: true probability of success is greater than 0.1 ## 95 percent confidence interval: ## 0.04216941 1.00000000 ## sample estimates: ## probability of success ## 0.15 ``` La valeur-$p$ étant supérieure à $5 \%$, on peut conclure que la proportion de plantes malades sur cet échantillon n'est pas significativement supérieure à $10 \%$. :Exemple {#exoprop2, toggle=popup} On lance une pièce de monnaie 100 fois et on observe 60 Piles. Peut-on considérer que cette pièce augmente la fréquence d'apparition du Pile (par rapport à une pièce équilibrée) ? Dans le cas de grands échantillons et sous réserve que la proportion observée ne soit pas trop proche de $0$ ou $1$, on peut utiliser une approximation de loi binomiale par une loi normale. La fonction **ad hoc** implémentée dans R se nomme `prop.test(x, n, p, correct=..., alternative = ...)`. L'argument `correct` permet de réaliser ou non une correction de continuité (par défaut, une correction de continuité est utilisée). Dans l'exemple traité, on teste $\mathcal{H}_0 : p=\frac{1}{2}$ contre $\mathcal{H}_1 : p > \frac{1}{2}$. On peut utiliser un test binomial ou un test de conformité de proportion faisant intervenir une approximation normale (avec ou sans une correction de continuité). ```r binom.test(x = 60, n = 100, p = 0.5, alternative = "greater") ``` ``` ## ## Exact binomial test ## ## data: 60 and 100 ## number of successes = 60, number of trials = 100, p-value = 0.02844 ## alternative hypothesis: true probability of success is greater than 0.5 ## 95 percent confidence interval: ## 0.5129758 1.0000000 ## sample estimates: ## probability of success ## 0.6 ``` ```r prop.test(x = 60, n = 100, p = 0.5, alternative = "greater", correct = FALSE) ``` ``` ## ## 1-sample proportions test without continuity correction ## ## data: 60 out of 100, null probability 0.5 ## X-squared = 4, df = 1, p-value = 0.02275 ## alternative hypothesis: true p is greater than 0.5 ## 95 percent confidence interval: ## 0.5178095 1.0000000 ## sample estimates: ## p ## 0.6 ``` On peut remarquer que les valeurs-$p$ sont assez proches et donc que les deux tests conduisent à la même conclusion : la pièce peut être considérée comme non équilibrée (rejet de $\mathcal{H}_0$). :Exemple {#student, toggle=popup} On considère l'échantillon d'observations suivant : 5, 6, 7, 8, 10, 11. Dans R, la fonction implémentée pour réaliser un test de Student se nomme : `t.test(x, mu, alternative, conf.level)`. Pour tester si la moyenne observée est significativement inférieure à 10 (sous réserve de la [normalité de la distribution](caps_6_3_normalite_graphique_quantile_quantile.html) dans la population mère), on utilise : ```r x <- c(5, 6, 7, 8, 10, 11) t.test(x = x, mu = 10, alternative = "less") ``` ``` ## ## One Sample t-test ## ## data: x ## t = -2.2909, df = 5, p-value = 0.03528 ## alternative hypothesis: true mean is less than 10 ## 95 percent confidence interval: ## -Inf 9.739067 ## sample estimates: ## mean of x ## 7.833333 ``` La première ligne renvoie la réalisation de la statistique de test, les degrés de liberté de la loi de Student considérée ainsi que la valeur-$p$. Comme précédemment, on peut également obtenir à l'aide de `t.test( )` une estimation par intervalle de confiance ("unilatéral à gauche" dans ce qui précède avec un niveau de confiance de $0.95$ par défaut). On peut obtenir l'intervalle bilatéral (au niveau de confiance $0.95$) en utilisant : ```r t.test(x = x, mu = 10, alternative = "two.sided" )$conf.int ``` ``` ## [1] 5.402204 10.264463 ## attr(,"conf.level") ## [1] 0.95 ``` :Exercice {#exoStudent, toggle=popup} Une entreprise agro-alimentaire produit des fromages dont la quantité nominale est annoncée égale à 250 g. On souhaite vérifier la validité de ce chiffre en prélevant un échantillon aléatoire simple de 20 fromages dans la fabrication. Les poids obtenus sont donnés ci-dessous: 250, 250.2, 249, 249.3, 250, 249, 250.1, 250.5, 249, 250, 249, 248.4, 250, 250, 251, 250.5, 249.5, 250, 248.8, 249.9 On suppose que le poids des fromages est distribué selon une loi normale $\mathcal{N}\left( \mu;\sigma \right)$. Peut-on considérer que la masse moyenne des fromages est inférieure à 250 g ? :Corrigé {#rep_noname2, toggle=collapse, title-display=show} On teste $\mathcal{H}_0 : \mu = 250$ contre $\mathcal{H}_1 : \mu < 250$. ```r poids <- c(250, 250.2, 249, 249.3, 250, 249, 250.1, 250.5, 249, 250, 249, 248.4, 250, 250, 251, 250.5, 249.5, 250, 248.8, 249.9) t.test(x = poids, mu = 250, alternative = "less") ``` ``` ## ## One Sample t-test ## ## data: poids ## t = -1.9257, df = 19, p-value = 0.03462 ## alternative hypothesis: true mean is less than 250 ## 95 percent confidence interval: ## -Inf 249.9704 ## sample estimates: ## mean of x ## 249.71 ``` On peut donc considérer que le poids moyen observé des fromages est significativement inférieur à 250 g. :Exemple {#exemplevarTest, toggle=popup} On considère l'échantillon d'observations suivant : 0.17, 0.19, 0.21, 0.18, 0.22, 0.18. Dans R, la fonction implémentée pour réaliser un test de conformité sur la variance se nomme : `varTest(x, sigma.squared, alternative, conf.level)`. La fonction `varTest()` se trouve dans le package `EnvStats`. Il est donc nécessaire [d'installer au préalable ce package](caps_1_6_packages.html) et de charger ensuite ce package avec l'instruction : ```r library(EnvStats) ``` Pour tester si la variance est significativement inférieure à 0.2 (sous réserve de la [normalité de la distribution](caps_6_3_normalite_graphique_quantile_quantile.html) dans la population mère), on met en place le test d'hypothèse suivant $\mathcal{H}_0 : \sigma^2 = 0.2$ contre $\mathcal{H}_1 : \sigma^2 < 0.2$: ```r x <- c(0.17, 0.19, 0.21, 0.18, 0.22, 0.18) varTest(x = x, sigma.squared = 0.2, alternative = "less") ``` ``` ## $statistic ## Chi-Squared ## 0.009416667 ## ## $parameters ## df ## 5 ## ## $p.value ## [1] 4.56175e-07 ## ## $estimate ## variance ## 0.0003766667 ## ## $null.value ## variance ## 0.2 ## ## $alternative ## [1] "less" ## ## $method ## [1] "Chi-Squared Test on Variance" ## ## $data.name ## [1] "x" ## ## $conf.int ## LCL UCL ## 0.000000000 0.001644149 ## attr(,"conf.level") ## [1] 0.95 ## ## attr(,"class") ## [1] "htestEnvStats" ``` Les quatre dernières lignes renvoient la réalisation de la statistique de test, le degré de liberté de la loi du Khi-deux considérée, la valeur-$p$ ainsi que l'intervalle (au niveau de confiance $0.95$) sur la variance. La valeur-$p$ étant très inférieure au risque $\alpha$ de $5\%$, on peut conclure que la variance est significativement inférieure à 0.2. :Suite des Tests {#tests, toggle=collapse, title-display=hidden} [Introduction : exemple du Khi-deux](caps_7_1_objectifs&intro_chi-deux.html) [Tests de conformité et intervalles de confiance](caps_7_2_conformite_para.html) [Tests d'ajustement à une distribution théorique](caps_7_3_conformite_distrib.html) [Tests paramétriques d'homogénéité](caps_7_4_homogeneite_para.html) [Tests non-paramétriques d'homogénéité](caps_7_5_homogeneite_non_para.html) [Tests d'indépendance de deux variables qualitatives](caps_7_6_indep.html) [Tests de corrélation de deux variables quantitatives](caps_7_7_corr.html) [Résumé](caps_7_8_resume.html)