Chapitre 6 Probabilités et Statistiques

Slides:



Advertisements
Présentations similaires
une introduction pragmatique
Advertisements

Université d’Ottawa - Bio Biostatistiques appliquées © Antoine Morin et Scott Findlay :47 1 Comparaison de deux échantillons Principes.
Outils Statistiques Damien Van Gysel CHU de Nice
Atelier 1 Le problème du surpoids sur géogébra. Etude de la prévalence du surpoids: (document Ressources pour la classe de terminale) Situation: On souhaite.
Génération de matrices matrix() Ce sont des vecteurs qui possèdent un argument supplémentaire, qui est lui-même un vecteur de longueur 2, sa dimension,
Auteur : Patrice LEPISSIER Les probabilités  Notions de base Notions de base  Variable aléatoire Variable aléatoire  La loi Normale La loi Normale.
Cours 8 Les tests statistiques. Intervalle de confiance pour une proportion ● Dans le cas de grands échantillons (np>5 et n(1-p)>5 ) ● l'intervalle de.
Des statistiques avec R. Lois de probabilité, distributions On peut évaluer les quantités suivantes: Fonctions de répartition Densité Quantiles Echantillons.
Cours 3 statistiques avec R. Lois de probabilité, distributions On peut évaluer les quantités suivantes: Fonctions de répartition Densité Quantiles Simulations.
Généralisation de la comparaison de moyennes par Analyse de la variance (ANOVA)
Cours 4 Compléments Quelques résumés statistiques.
Chapitre 6. Introduction à l’échantillonnage Les sondages Notions fondamentales Fluctuations d’échantillonnage d’une moyenne Théorème central limite C6-1.
Notions de statistiques et d’analyse de données
Epidémiologie.
Application des lois de probabilité -Variable aléatoire discrète-
Statistiques descriptives univariées
Listes,dataframes séries temporelles
Interprétation des indicateurs?
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Chapitre 4 manipulation de données
Chapitre 5 tests conditionnels, boucles et fonctions
Loi Normale (Laplace-Gauss)
4°) Intervalle de fluctuation :
Préparer par : Intissare et kaoutare
1 - Construction d'un abaque Exemple
Cours 4 Boucles, Programmation de base.
Chapitre 13 : Echantillonnage
Coefficient de corrélation linéaire
Échantillonnage non-aléatoire
Introduction Mon travail de stage est dans le cadre de l’analyse statistique pour le processus H->γγ. J’ai commencé par des calculs de la significance.
Cours 8 Stat IV: Khi2 Désign experimental. BIO 3500 – Hiver 2017
Introduction aux Statistiques Variables aléatoires
Technologies de l’intelligence d’affaires Séance 12
Scénario Quatre hipsters entrent en collision un dans l'autre dans un ascenseur plein de personnes. En conséquence ils laissent tomber leurs téléphones.
4.3 Estimation d’une proportion
Des statistiques avec R
4.4 Tests D’hypothèses sur une moyenne
3.3 loi discrète 1 cours 14.
3.6 Loi continue 3 cours 18.
4.2 Estimation d’une moyenne
Introduction aux statistiques Intervalles de confiance
Statistiques Sociales LC4
LOG770 Annexe A Éléments de probabilité
Basic Business Statistics, 10e © 2006 Prentice-Hall, Inc. Chap 1-1 Chapter 1 Introduction and Data Collection Basic Business Statistics 10 th Edition.
Calculs des incertitudes Lundi 30 Avril 2018 Master de Management de la Qualité, de la Sécurité et de l’Environnement.
 1____Probabilité  2______variables aléatoires discrètes et continues  3______loi de probabilités d’une v a  4_______les moyens et les moyens centraux.
Fluctuations d’une fréquence selon les échantillons, Probabilités
Calcul de probabilités
Énumération des Microorganismes
Information available in a capture history
Lois de Probabilité Discrètes
Lois de Probabilité Discrètes
P LAMBOLEZ Partie maths V GILLOT Partie anglais
Présentation 3 : Sondage aléatoire simple
Présentation 5 : Sondage à probabilités inégales
On lance 100 fois de suite une pièce de monnaie.
Présentation 9 : Calcul de précision des estimateurs complexes
Position, dispersion, forme
Master spécialisé sciences de l ’ environnement en milieu urbain : EER  Etude statistique du Lake d ’ Everglades - ASSAKRAR M ’ HAND - BENBAASID HICHAM.
Conception cartographique
Programme d’appui à la gestion publique et aux statistiques
Conception cartographique
Utiliser le modèle log-linéaire pour mettre au jour la structure du lien entre les deux variables d’un tableau de contingence : un exemple d’application.
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
Les méthodes quantitatives en éducation
Tests d’hypothèses paramétriques 1 Cours Statistiques Chapitre 9.
Impact Evaluation 4 Peace March 2014, Lisbon, Portugal 1 Echantillonage pour une Evaluation d’Impact Latin America and the Caribbean’s Citizen Security.
Récapitulation du jour 2ème
STATISTIQUE INFERENTIELLE LES TESTS STATISTIQUES.
Évaluation des Actifs Financiers 1. 2 Valeur capitalisée: Valeur d’un investissement après une ou plusieurs périodes Intérêts simples: Intérêts calculés.
Transcription de la présentation:

Chapitre 6 Probabilités et Statistiques Programmation en Python

Probabilités

Introduction # R possède de très nombreuses fonctionnalités dans le domaine des probabilités et statistiques. # Nous allons en présenter quelques unes.

Probabilités # R possède un nom pour chaque loi de probabilité. # Par exemple, le nom pour la loi normale est norm. # # On a les lois de probabilités discrètes suivantes: # Lois discrètes Noms en R # Binomiale binom # Géometrique geom # Hypergéometrique hyper # Négative binomiale nbinom # Poisson pois

Probabilités # On a les lois de probabilités continues suivantes: # # Lois continues Noms en R # Béta beta # Cauchy cauchy # Chi-carrée chisq # Exponentielle exp # F f

Probabilités # Gamma gamma # Log-normale lnorm # Logistique logis # Normale norm # Student t # Uniforme unif # Weibull weibull # Wilcoxon wilcox

Probabilités # Pour chacune de ces lois, taper ?nom_loi pour plus d'infos sur les paramètres requis. # Pour chacune de ces lois, on a quatre fonctions qui commencent par d, p, q et r suivies du nom de la loi. # Par exemple, pour la loi normale: # dnorm, pnorm, qnorm, rnorm # # dnom_loi: fonction de densité (ou fct de masse) P(X = x) # pnom_loi: fonction de distribution P(X <= x) # qnom_loi: fonction des quantiles # rnom_loi: génération de nombres aléatoires # suivant la loi en question

Fonctions de densités # Fonction de densité (ou fct de masse ou de probabilité): # On utilise la fonction dnom_loi. # Elle représente P(X = x).

Fonctions de densités # Cas discret... # loi binomiale par exemple # prob d'obtenir 7 succès sur 10 tirages avec prob de succès 0.4 dbinom(7, size=10, prob=0.4) [1] 0.04246733 plot(0:10, dbinom(0:10, size=10, prob=0.4), type = "p", main = "Binomial Density Function")

Fonctions de densités

Fonctions de densités # Cas continu... # loi normale par exemple plot(dnorm, -4, 4, main = "Normal Density Function") # avec d'autres paramètres plot(dnorm(mean=70, sd=3), 40, 100) Error in dnorm(mean = 70, sd = 3) : argument "x" is missing, with no default # il faut redéfinir une fonction... ma_densite <- function(x){dnorm(x, mean=70, sd=3)} # puis l'imprimer plot(ma_densite, 55, 85)

Fonctions de densités

Fonctions de densités

Fonctions de distributions # Fonction de distribution: # On utilise la fonction pnom_loi. # C'est l'intégrale de la fonction de densité. # Elle représente P(X <= x).

Fonctions de distributions # Cas discret... # loi binomiale par exemple # prob d'obtenir au moins 7 succès sur 10 tirages avec prob de succès 0.4 pbinom(7, size=10, prob=0.4) [1] 0.9877054 plot(0:10, pbinom(0:10, size=10, prob=0.4), type = "p", main = "Cumulative Binomial Distribution")

Fonctions de distributions

Fonctions de distributions # Cas continu... # loi normale par exemple # P(N <= 66) où N v.a. de loi normale, moyenne 70, sd 3 pnorm(66, mean=70, sd=3) [1] 0.09121122 plot(pnorm, -4, 4, main = "Cumulative Normal Distribution") # avec d'autres paramètres plot(pnorm(mean=70, sd=3), 40, 100) Error in pnorm(mean = 70, sd = 3) : argument "q" is missing, with no default # il faut redéfinir une fonction... ma_distribution <- function(x){pnorm(x, mean=70, sd=3)} # puis l'imprimer plot(ma_distribution, 40, 100)

Fonctions de distributions

Fonctions de distributions

Fonctions de quantiles # Fonction de quantiles: # On utilise la fonction qnom_loi. # Cette fonction convertit une probabilité en son quantile correspondant # Par exemple, pour une variable normale de moyenne 25, le quantile correspondant à une probabilité de 0.5 sera précisément 25. qnorm(0.5, mean=25, sd=3) [1] 25

Fonctions de quantiles # Cas discret... # loi binomiale par exemple # Intervalle de confiance de de 95% (alpha = 0.05) d'une variable binomiale de 100 tirages avec prob de succès 0.4. # Les bornes de l'intervalles sont alpha/2 et 1-(alpha/2) qbinom(c(0.05/2, 1-(0.05/2)), size=100, prob=0.4) [1] 31 50

Fonctions de quantiles # Cas continu... # loi normale par exemple # Intervalle de confiance de de 95% (alpha = 0.05) d'une variable normale de moyenne 25 et sd 3. # Les bornes de l'intervalles sont alpha/2 et 1-(alpha/2) qnorm(c(0.05/2, 1-(0.05/2)), mean=25, sd=3) [1] 19.12011 30.87989

Génération de nombres aléatoires # Génération de nombres aléatoires: # On utilise la fonction rnom_loi. # Cette fonction génère des nombres aléatoires tirés selon la loi de probabilité en question

Génération de nombres aléatoires # Cas discrets... rbinom(3, size=10, prob=0.5) # 3 tirages [1] 7 5 5 rpois(3, lambda=10) # 3 tirages [1] 10 10 9

Génération de nombres aléatoires # Cas continus... runif(3, min=-3, max=3) # 3 tirages [1] -1.5792888 -1.6143343 0.2565045 rexp(3, rate=0.1) # 3 tirages [1] 9.7341714 0.1282756 1.4484267 rgamma(3, shape=2, rate=0.1) # 3 tirages [1] 9.019254 45.458567 42.775780 # loi normale: 10'0000 tirages echantillon <- rnorm(100000, mean=88, sd=13) mean(echantillon) # moyenne [1] 88.0355 sd(echantillon) # déviation standard [1] 12.96737

La fonction sample # La fonction sample génère des tirages aléatoires d'un vecteur donné. annees <- 1900:2000 # les années 1900 à 2000 sample(annees, 3) # on tire 3 années aléatoirement [1] 1943 1936 1966

La fonction sample # Pile ou face... pile_face <- c("Pile", "Face") # on génère 10'000 tirages avec remplacement tirages <- sample(pile_face, 100000, replace = TRUE) sum(tirages == "Pile") # nombre de "Pile" [1] 50170 sum(tirages == "Face") # nombre de "Face" [1] 49830 # On biaise la pièce (ajout d'un vecteur de proba) tirages2 <- sample(pile_face, 100000, replace = TRUE, prob = c(0.3, 0.7)) sum(tirages2 == "Pile") [1] 30078 sum(tirages2 == "Face") [1] 69922

Statistiques

Mesures statistiques de base # Mesures statistiques de base. # La fonction summary calcule les mesures statistiques de base: min, max, médiane, moyenne et 1er et 3ème quartiles. # Elle s'applique sur des vecteurs, facteurs, matrices et data frames.

Mesures statistiques de base # Cas des vecteurs: v <- rnorm(1000, mean=3, sd = 0.8) summary(v) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.4577 2.4370 2.9720 3.0120 3.5570 5.7820

Mesures statistiques de base # Cas des matrices: # La fonction s'applique colonne par colonne m <- matrix(v, nrow = 250, ncol = 4, byrow = TRUE, dimnames = list(c(), c("data set 1","data set 2","data set 3","data set 4"))) summary(m) data set 1 data set 2 data set 3 Min. :0.4577 Min. :1.271 Min. :0.532 1st Qu.:2.4889 1st Qu.:2.428 1st Qu.:2.552 Median :2.9495 Median :2.954 Median :2.972 Mean :3.0369 Mean :2.986 Mean :3.052 3rd Qu.:3.5754 3rd Qu.:3.548 3rd Qu.:3.559 Max. :5.7819 Max. :5.218 Max. :5.239 data set 4 ...

Mesures statistiques de base # Cas des data frames: # La fonction s'applique colonne par colonne également library(nutshell) # on appelle la librairie nutshell data(births2006.smpl) # on charge births2006.smpl # Ce data set concerne les naissances aux USA en 2006 summary(births2006.smpl) # remarquer que le summary de la variable SEX, qui est un facteur et non un vecteur, consiste en un simple comptage des observations... DOB_MM DOB_WK MAGER Min. : 1.000 Min. :1.000 Min. :12.00 1st Qu.: 4.000 1st Qu.:3.000 1st Qu.:23.00 Median : 7.000 Median :4.000 Median :27.00 Mean : 6.601 Mean :4.065 Mean :27.37 3rd Qu.:10.000 3rd Qu.:6.000 3rd Qu.:32.00 Max. :12.000 Max. :7.000 Max. :50.00 ...

Fréquences relatives # Fréquences relatives de certaines observations. # Appliquer une expression logique qui sélectionne les observations désirées. # Ainsi, les observations désirées prennent la valeur TRUE et les autres la valeur FALSE. # Mais TRUE et FALSE signifient également 1 et 0, respectivement. # Ainsi, en faisant la moyenne du vecteur booléen, on obtient la fréquence relative des observations désirées.

Fréquences relatives # Exemple: variable qualitative. # Dans le data set births2006.smpl: # la variable SEX représente le sexe du bébé. # Fraction des bébés qui sont des garçons (males) mean(births2006.smpl$SEX == "M") [1] 0.5117206 # Fraction des bébés qui sont des filles (females) mean(births2006.smpl$SEX == "F") [1] 0.4882794

Fréquences relatives # Exemple: variable quantitative. # Dans le data set births2006.smpl: # la variable MAGER représente l'âge de la mère. # Fraction des bébés dont la mère a plus de 40 ans mean(births2006.smpl$MAGER >= 40) [1] 0.0264905

Tables de contingences # Créer des tables de contingences. # La fonction table compte les nombre d’observations relatives à un échantillon de type "factor". table(births2006.smpl$SEX) F M 208653 218670 # Variable DPLURAL représente la pluralité des naissances. table(births2006.smpl$DPLURAL) 1 Single 2 Twin 412979 13658 3 Triplet 4 Quadruplet 642 39 5 Quintuplet or higher 5

Tables de contingences # Le grand intérêt de la fonction table est de pouvoir combiner deux facteurs pour créer une table de contingence. table(births2006.smpl$DPLURAL,births2006.smpl$SEX) F M 1 Single 201596 211383 2 Twin 6709 6949 3 Triplet 327 315 4 Quadruplet 18 21 5 Quintuplet or higher 3 2

Test chi-carré # Tester l'indépendance de deux variables quantitatives en utilisant un test chi- carré. # On utilise les fonction summary et table. # Généralement, une p-value > 0.05 signifie que les variables sont indépendantes, i.e., non corrélées. summary(table(births2006.smpl$DPLURAL,births2006.smpl$SEX)) Number of cases in table: 427323 Number of factors: 2 Test for independence of all factors: Chisq = 1.9998, df = 4, p-value = 0.7358 Chi-squared approximation may be incorrect # Variables indépendantes dans ce cas...

Les quantiles # Calculer les quantiles d'un échantillon. # On utilise la fonction quantile(vec, p). # La variable DBWT représente le poids de l'enfant. quantile(births2006.smpl$DBWT, 0.05, na.rm = TRUE) 5% 2268 quantile(births2006.smpl$DBWT, c(0.05, 0.95), na.rm = TRUE) 5% 95% 2268 4131

Normalisation # Normalisation de l'échantillon: # On utilise la fonction scale(). DBWT_scaled <- scale(births2006.smpl$DBWT) summary(DBWT_scaled) # remarquer que mean = 0 V1 Min. :-5.1033 1st Qu.:-0.4917 Median : 0.0762 Mean : 0.0000 3rd Qu.: 0.6121 Max. : 8.2325 NA's :434

Test de Student (T-test) # Test de Student ou T-test: tester la moyenne d'une population. # Etant donné un échantillon issu d'une population, tester si la moyenne de la population entière pourrait raisonnablement valoir une certaine valeur. # On utilise la fonction t.test(sample, mu=m). # Le résultat est une p-value... # Généralement, une p-value < 0.05 signifie que la moyenne de la population entière ne pourrait raisonnablement pas valoir m.

Test de Student (T-test) # L'idée de ce genre de test d'hypothèse est la suivante: # Une machine est censée fabriquer des pièces de diamètre 2 cm. # On prend les 100 dernières pièces qui ont été produites et on mesure leur diamètre. # Il se trouve que la moyenne de cet échantillon est de 2.08 cm. # Est-il plausible que cet échantillon provienne d'une population de moyenne 2 cm? On effectue un T-test pour le savoir: t.test(sample, mu=2cm). # Si le test est positif, on peut raisonnablement supposer que la machine est encore fonctionnelle. # Si le test est négatif, on supposera au contraire que la machine est déréglée.

Test de Student (T-test) # On génère un échantillon d'une loi normale de moyenne 100. # On demande si la moyenne de la population dont provient l'échantillon pourrait être 95. x <- rnorm(50, mean = 100, sd = 15) t.test(x, mu=95) # Cf. slide suivant

Test de Student (T-test) One Sample t-test data: x t = 3.0035, df = 49, p-value = 0.004195 alternative hypothesis: true mean is not equal to 95 95 percent confidence interval: 96.92409 104.70462 sample estimates: mean of x 100.8144 # La petite p value signifie que la moyenne de la population entière ne pourrait pas être 95.

Test de Student (T-test) # Autre t.test t.test(x, mu = 100) One Sample t-test data: x t = 0.42067, df = 49, p-value = 0.6758 alternative hypothesis: true mean is not equal to 100 95 percent confidence interval: 96.92409 104.70462 sample estimates: mean of x 100.8144 # La grande p value signifie que la moyenne de la population entière pourrait être 100 (ce qui est consistant).

Test de Student (T-test) # T-test: intervalle de confiance autour de la moyenne. # On possède un échantillon issu d'une population et on aimerait déterminer un intervalle de confiance autour de la moyenne de la population (à partir de l'échantillon). # On utilise la fonction t.test(sample, conf.level=c) sans le paramètre mu. # Le résultat est un intervalle de confiance...

Test de Student (T-test) x <- rnorm(50, mean=100, sd=15) t.test(x, conf.level=0.99) One Sample t-test data: x t = 51.92, df = 49, p-value < 2.2e-16 alternative hypothesis: true mean is not equal to 0 99 percent confidence interval: 94.78591 105.10369 sample estimates: mean of x 99.9448 # Ici, l'intervalle de confiance est 94.78591 < mu < 105.10369. Cela signifie que la moyenne de la population, qui est issue d’une loi normale de moyenne 100, a 99% de chance de se trouver entre 94.78591 et 105.10369.

Test de Student (T-test) # Si on ne précise pas le paramètre conf.level, c'est un intervalle de confiance de 95% qui est considéré par défaut. t.test(x) One Sample t-test data: x t = 51.92, df = 49, p-value < 2.2e-16 alternative hypothesis: true mean is not equal to 0 95 percent confidence interval: 96.07638 103.81322 sample estimates: mean of x 99.9448 # La moyenne de la population a 95% de chance de se trouver entre 96.07638 et 103.81322.

Test de Wilcoxon # Wilcoxon signed rank test: intervalle de confiance autour de la médiane. # On possède un échantillon issu d'une population et on aimerait déterminer un intervalle de confiance autour de la médiane de la population (à partir de l'échantillon). # On utilise la fonction wilcox.test(x, conf.int=TRUE). # Le résultat est un intervalle de confiance...

Test de Wilcoxon x <- rnorm(50, mean=100, sd=15) wilcox.test(x, conf.int=TRUE) Wilcoxon signed rank test with continuity correction data: x V = 1275, p-value = 7.79e-10 alternative hypothesis: true location is not equal to 0 95 percent confidence interval: 96.67479 105.58307 sample estimates: (pseudo)median 101.3824 # Ici, l'intervalle de confiance est 96.67479 < m < 105.58307. Cela signifie que la médiane de la population, qui est issue d‘une loi normale de moyenne 100, a 95% de chance de se trouver entre 96.67479 et 105.58307. # La médiane de l'échantillon vaut 102.9267...

Test de proportion de succès # Tester la proportion de succès d'un échantillon. # Un échantillon de taille n contient x succès. On aimerait savoir si on peut raisonnablement supposer que la vraie probabilité de succès, i.e., celle de la loi de probabilité dont provient cet échantillon, est p. # Plus l'échantillon est petit, plus la vraie probabilité de succès est difficile à estimer. # On utilise la fonction prop.test(x, n, p). # Le résultat est une p-value....

Test de proportion de succès prop.test(11, 20, 0.5, alternative="greater") 1-sample proportions test with continuity correction data: 11 out of 20, null probability 0.5 X-squared = 0.05, df = 1, p-value = 0.4115 alternative hypothesis: true p is greater than 0.5 95 percent confidence interval: 0.349615 1.000000 sample estimates: p 0.55 # La vraie proportion p est très probablement supérieure à 0.5.

Test de proportion de succès # Intervalle de confiance autour de la proportion de succès d'un échantillon. # Un échantillon de taille n contient x succès. On aimerait connaître l'intervalle de confiance de 95% autour de la vraie probabilité de succès, i.e., celle de la loi de probabilité dont provient cet échantillon. # On utilise la fonction prop.test(x, n). # Le résultat est un intervalle de confiance pour p....

Test de proportion de succès prop.test(6, 9) 1-sample proportions test with continuity correction data: 6 out of 9, null probability 0.5 X-squared = 0.44444, df = 1, p-value = 0.505 alternative hypothesis: true p is not equal to 0.5 95 percent confidence interval: 0.3091761 0.9095817 sample estimates: p 0.6666667 # La vraie probabilité de succès se trouve entre 0.3091761 et 0.9095817 (95% de chances).

Test de normalité # Test de Shapiro-Wilk: test de normalité. # Tester si un échantillon provient d'une loi normale. # On utilise la fonction shapiro.test(x). # Le résultat est une p-value... # Si p > 0.05, on peut raisonnablement supposer que la population provient d'une loi normale. Si p < 0.05, ce n'est pas le cas.

Test de normalité x <- rnorm(1000, mean=15, sd=3) # loi normale shapiro.test(x) Shapiro-Wilk normality test data: x W = 0.99804, p-value = 0.2994 # Test concluant, p-value > 0.05 y <- rexp(1000, rate=1.7) # loi exponentielle shapiro.test(y) data: y W = 0.82053, p-value < 2.2e-16 # Test non concluant, p-value < 0.05

Test de « randomness » # Test de "randomness". # On a une séquence de réalisations binaires (oui/non, 0/1,...). # On aimerait savoir si cette séquence est aléatoire ou pas. # On utilise la fonction runs.test(as.factor(sample)) de la librairie tseries. # Le résultat est une p-value... # p > 0.05 signifie aléatoire, p < 0.05 signifie non aléatoire.

Test de « randomness » library(tseries) s <- sample(c(0,1), 100, replace=T) runs.test(as.factor(s)) Runs Test data: as.factor(s) Standard Normal = 0.60732, p-value = 0.5436 alternative hypothesis: two.sided # Test réussi, p > 0.05.

Test de « randomness » s <- c(0,0,0,0,1,1,1,1,0,0,0,0) runs.test(as.factor(s)) Runs Test data: as.factor(s) Standard Normal = -2.2997, p-value = 0.02147 alternative hypothesis: two.sided # Test échoué, p < 0.05.

Comparaison de moyennes # Comparaison de la moyenne de deux populations. # On a deux échantillon provenant de deux populations différentes. On aimerait savoir si les moyennes de ces deux populations pourraient être égales. # On utilise la fonction t.test(s1, s2). # Le résultat est une p-value... # Si p > 0.05, test réussi, sinon, test échoué.

Comparaison de moyennes # échantillon d'une loi de Poisson de moyenne 2 x <- rpois(5000, lambda=2) # échantillon d'une loi normale de moyenne 2 y <- rnorm(5000, mean=2, sd=0.8) t.test(x,y) Welch Two Sample t-test data: x and y t = 0.52699, df = 7965.7, p-value = 0.5982 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -0.03295748 0.05719346 sample estimates: mean of x mean of y 2.015000 2.002882 # Test réussi, p-value > 0.05

Comparaison de moyennes x <- rnorm(5000, mean=2, sd=0.8) y <- rnorm(5000, mean=3, sd=0.8) t.test(x,y) Welch Two Sample t-test data: x and y t = -61.549, df = 9997.8, p-value < 2.2e-16 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -1.0127224 -0.9502075 sample estimates: mean of x mean of y 2.023075 3.004540 # Test échoué, p-value < 0.05

Test de corrélation # Test de significativité de corrélation. # On aimerait savoir si la corrélation entre deux variables est statistiquement significative. # Si les échantillons proviennent de lois normales, on utilise la fonction cor.test(x, y). # Sinon, on utilise la fonction cor.test(x, y, method="spearman"). # Le résultat est une p-value... # Si p < 0.05, la corrélation est statistiquement significative. Sinon, elle ne l'est pas.

Test de corrélation x <- rpois(1000, lambda = 6) y <- rnorm(1000, mean=2, sd=0.7) + x # x et y sont donc corrélés par construction cor(x,y) [1] 0.9615372 # Les échatillons semblent fortement corrélés. cor.test(x, y, method="spearman") Spearman's rank correlation rho data: x and y S = 7029800, p-value < 2.2e-16 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.957821 # La p-value < 0.05 confirme la significativité de cette corrélation.

Test de proportions # Test d'égalité de proportion. # On a plusieurs échantillons binaires (succès/échec, 0/1, TRUE/FALSE, etc.). # On aimerait savoir si leurs vraies proportions de succès pourrait être égales. # On utilise la fonction prop.test(c(nb_succes1, nb_succes2,...), c(taille1, taille2,...)). # Le résultat est une p-value... # Si p < 0.05, le test est réussi. Sinon, il est échoué.

Test de proportions x <- sample(c(0,1), 1000, replace=TRUE, prob=c(0.49, 0.51)) n_x = sum(x == 1) # compte les succès de x y <- sample(c(0,1), 1000, replace=TRUE, prob=c(0.51, 0.49)) n_y = sum(y == 1) # compte les succès de y prop.test(c(n_x,n_y), c(1000,1000)) # Cf. slide suivant…

Test de proportions 2-sample test for equality of proportions with continuity correction data: c(n_x, n_y) out of c(1000, 1000) X-squared = 0.050016, df = 1, p-value = 0.823 alternative hypothesis: two.sided 95 percent confidence interval: -0.05081824 0.03881824 sample estimates: prop 1 prop 2 0.506 0.512 # La p-value > 0.05, le test est échoué.

Test de comparaison de moyennes # Test de comparaisons des moyennes. # On compare deux à deux les moyennes de plusieurs échantillons, ceux-ci étant groupé par facteurs. # On utilise la fonction pairwise.t.test(echantillon, groups). # On obtient une matrice de p-values... # Si p < 0.05, les moyennes sont différentes. Sinon, elles peuvent raisonnablement être supposées égales.

Test de comparaison de moyennes # On importe la base de données airquality attach(airquality) # On convertit les mois en facteurs Month <- factor(Month, labels = month.abb[5:9]) pairwise.t.test(Ozone, Month) Pairwise comparisons using t tests with pooled SD data: Ozone and Month May Jun Jul Aug Jun 1.00000 - - - Jul 0.00026 0.05113 - - Aug 0.00019 0.04987 1.00000 - Sep 1.00000 1.00000 0.00488 0.00388 P value adjustment method: holm

Test de distributions # Test de distributions. # On a deux échantillons et on aimerait tester le fait que ces deux échantillons puissent provenir d'une même distribution. # On utilise la fonction ks.test(x,y). # On obtient une p-value... # Si p < 0.05, les distributions sont très probablement différentes. Sinon, elle sont très probablement égales.

Test de distributions x <- rpois(1000, lambda = 3) y <- rpois(1000, lambda = 2) ks.test(x, y) Two-sample Kolmogorov-Smirnov test data: x and y D = 0.279, p-value < 2.2e-16 alternative hypothesis: two-sided # p < 0.05 indique que les distributions sont différentes.