CALCUL ET TIRAGE D’ECHANTILLON AVEC R

Sawadogo Lassinin

2024-04-07

Plan de la présentation

  1. Introduction
  2. Processus de calcul de la taille de l’échantillon avec R
  3. Processus de tirage d’un échantillon avec R
  4. Cas pratique
  5. Conclusion

Introduction

A l’aide du langage de programmation R.

1. Processus de calcul de la taille de l’échantillon avec R

1.1. Methodes de représentativité

Package samplesize

Le package R samplesize est destiné au calcul de la taille d’échantillon pour des tests statistiques précis. Il est basé principalement sur le Test t de Student et le Test de Wilcoxon-Mann-Whitney .

Il propose plusieurs fonctions pour calculer la taille de l’échantillon nécessaire dans différentes situations : sample.size.prop() : calcule la taille de l’échantillon nécessaire pour estimer une proportion avec une précision donnée;

-   `sample.size.mean()`{.R} : calcule la taille de l'échantillon nécessaire pour estimer une moyenne avec une précision donnée; 

-   `sample.size.survival()`{.R} : calcule la taille de l'échantillon nécessaire pour une étude de survie en spécifiant le taux de survie attendu, le temps de suivi, le taux d'évènements par unité de temps, le niveau de confiance et la puissance de test.

-   `sample.size.prop.cluster()`{.R} : calcule la taille de l'échantillon nécessaire pour une étude avec échantillonnage en grappes (ou groupes), en spécifiant le nombre de grappes, la taille moyenne de chaque grappe, la proportion attendue, le niveau de confiance et la marge d'erreur tolérée.

1.2. Methodes de puissance

Utilisation du Package pwr

Le package pwr est utilisé pour effectuer des calculs de puissance et de taille d’échantillon dans le cadre des sondages. Il offre une gamme de fonctions permettant de déterminer la taille d’échantillon nécessaire pour différents types d’analyses, ainsi que d’évaluer la puissance statistique des tests.

Cas de la comparaison de deux moyennes

pwr.t.test(n = NULL, d = NULL, sig.level = 0.05, power = NULL, alternative = c("two.sided", "one.sided"), type = c("two.sample", "one.sample", "paired"), alternative = c("two.sided", "greater", "less"))

Une étude visant à comparer la moyenne de la consommation quotidienne de calories entre deux régimes alimentaires différents : régime A et régime B. On souhaite déterminer la taille d’échantillon nécessaire pour détecter une différence de 100 calories entre les deux groupes, avec une puissance de test de 80% et un niveau de significativité de 5%.

\[ H_0: \mu_A - \mu_B=100 \ \ \ et \ \ \ H_1: \mu_A-\mu_B \neq 100 \]

# Charger le package "pwr"
library(pwr)

# Spécifier les paramètres du test
diff_effet = 100  # Différence d'effet à détecter entre les deux groupes
ecart_type = 200 # Écart type de la population (hypothétique)
power = 0.8              # Puissance du test souhaitée
sig_level = 0.05         # Niveau de significativité

# Calculer la taille minimale de l'échantillon
taille_ech <- pwr.t.test(n = NULL, d = diff_effet/ecart_type, sig.level = 0.05, 
                power = 0.8, alternative = "two.sided")$n

# Afficher la taille minimale de l'échantillon
print(paste("Taille minimale de l'échantillon:", round(taille_ech)))
## [1] "Taille minimale de l'échantillon: 64"

La taille minimale de l’échantillon pour pouvoir détecter une différence de 100 calories entre les deux groupes A et B est : 64

Cas de la comparaison de deux proportions

pwr.p.test(h = NULL, n = NULL, sig.level = 0.05, power = NULL, alternative = c("two.sided", "less", "greater"))

\[ H_0: p_1 - p_2=0.1 \ \ \ et \ \ \ H_1: p_1 - p_2 \neq 0.1 \]

# Charger le package "pwr"
library(pwr)

# Spécifier les paramètres du test
diff_prop = 0.10     # Différence de proportion à détecter
sig_level = 0.05     # Niveau de signification du test
power = 0.80         # Puissance du test souhaitée
alternative = "two.sided"  # Hypothèse alternative 

# Calculer la taille d'échantillon nécessaire
taille_ech_p <- pwr.p.test(h = diff_prop, 
                          sig.level = 0.05, 
                          power =  0.80, 
                          alternative = "two.sided")$n

# Afficher la taille d'échantillon nécessaire
print(paste("Taille d'échantillon nécessaire:", round(taille_ech_p)))
## [1] "Taille d'échantillon nécessaire: 785"

La taille minimale de l’échantillon pour pouvoir détecter une différence une différence de proportion de 10% entre les deux produits A et B est : 785

2. Processus de tirage d’un échantillon avec R

3. Cas pratique

3.1 Présentation et traitement des données

Les données utilisées dans notre étude proviennent du Ministère de la Santé du Burkina Faso. Notre base de sondage concerne l’ensemble des formations sanitaires (FS) réparties sur l’ensemble du territoire.

library(tidyverse)
library(dplyr)
library(DescTools)
#Chargement du Répertoire de travail
setwd("C:/Users/SAWADOGO/Desktop/CSAD A2/SONDAGE/Devoir")
data_fs <- read.csv("base_fs.csv",header = T,sep = ";")

#Création de la variable d'identification des unités avec un entier
data_fs$id <- 1:nrow(data_fs)
data_fs <- data_fs[,c(20,1:19)] #Positionner la variable ID en première position

Affichage des données traités

library(kableExtra)
library(dplyr)
kable(data_fs[1:10, c(1,3,5,7,9,11,12)], booktabs = TRUE, longtable=T) %>% 
  kable_styling(font_size = 10) %>% 
  row_spec(0, bold =T, background = "lightblue")
id region province district commune village_secteur milieu
1 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO FARA FARA RURAL
2 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO FARA FARA RURAL
3 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO BAGASSI BAGASSI RURAL
4 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO BANA BANA RURAL
5 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO BAGASSI BANDIO RURAL
6 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO YAHO BONDO RURAL
7 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO BOROMO SECTEUR 2 URBAIN
8 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO OURY DAH RURAL
9 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO PA PA RURAL
10 BOUCLE DU MOUHOUN BALE DISTRICT SANITAIRE DE BOROMO FARA FARA RURAL