Vous êtes sur la page 1sur 20

Tests statistiques et rgressions logistiques sous R, avec

prise en compte des plans dchantillonnage complexes


par Joseph LARMARANGE version du 29 mars 2007

Ce cours a t dvelopp pour une formation niveau M2 et Doctorat des tudiants du laboratoire
PopInter de luniversit Paris 5 Ren Descartes.

Table des Matires


Tests statistiques et rgressions logistiques sous R, avec prise en compte des plans dchantillonnage complexes.............. 1
Table des Matires....................................................................................................................................................................... 1
1. Installation ...............................................................................................................................................................................2
1.1 Installation de R ...............................................................................................................................................................2
1.2 Installation du package survey ........................................................................................................................................2
1.3 Installation du package TestsFaciles...............................................................................................................................3
2. Remarques gnrales sur l'utilisation de R ............................................................................................................................3
2.1 Pourquoi utiliser R ? ........................................................................................................................................................3
2.2 Charger un package .........................................................................................................................................................4
2.3 Changer le rpertoire de travail ......................................................................................................................................4
2.4 Obtenir de laide sur une fonction ..................................................................................................................................4
2.5 Lister les objets en mmoire, sauver son travail et le rcuprer ................................................................................... 5
2.6 Quelques fonctions de base.............................................................................................................................................6
3. Prparation et importation des donnes ................................................................................................................................ 7
3.1 Remarques gnrales ....................................................................................................................................................... 7
3.2 Exportation et importation depuis SPSS........................................................................................................................8
3.3 Exportation et importation depuis Excel ou OpenOffice Calc.......................................................................................9
4. Spcifier le plan dchantillonnage ....................................................................................................................................... 10
4.1 Diffrents types dchantillons alatoires ..................................................................................................................... 10
4.1.1 chantillonnage alatoire simple ......................................................................................................................... 10
4.1.2 chantillonnage stratifi ...................................................................................................................................... 10
4.1.3 chantillonnage par grappes................................................................................................................................ 10
4.2 Impact sur les tests statistiques .....................................................................................................................................11
4.3 Spcifier le plan dchantillonnage avec svydesign() ....................................................................................................11
4.4 Extraire un sous-chantillon......................................................................................................................................... 12
5. Les intervalles de confiance .................................................................................................................................................. 13
5.1 Principes dun intervalle de confiance .......................................................................................................................... 13
5.2 Moyennes et proportions .............................................................................................................................................. 13
5.3 Quantiles ........................................................................................................................................................................ 14
6. Tests de comparaison ............................................................................................................................................................ 14
6.1 Principes des tests de comparaison............................................................................................................................... 14
6.2 Tests unilatraux et tests bilatraux ............................................................................................................................. 15
6.3 Comparer deux moyennes ou deux proportions .......................................................................................................... 16
6.4 Test du Chi ................................................................................................................................................................... 16
7. Rgressions logistiques ......................................................................................................................................................... 17
7.1 Principes dune rgression logistique............................................................................................................................ 18
7.2 Prparer les donnes ..................................................................................................................................................... 18
7.3 Calculer une rgression avec svyglm().......................................................................................................................... 19
7.4 Rsultats......................................................................................................................................................................... 19

Tests statistiques et rgressions logistiques sous R


Note :
Une connaissance minimum de R est requise. La lecture du document R pour les dbutants
dEmmanuel Paradis est donc fortement conseille. Ce dernier est tlchargeable sur
http://cran.r-project.org/other-docs.html.

1. Installation
1.1 Installation de R
Il vous faut d'abord tlcharger la dernire version de l'installateur pour Windows sur CRAN
(Comprehensive R Archive Network) cette adresse : http://cran.r-project.org/.
Cliquez sur Windows (95 or later), puis sur base, et tlcharger le fichier d'installation R-2.4.1win32.exe.
Lors de l'installation :
Choisissez le dossier de destination (par dfaut R sera install dans C:\Program Files\R.
Composants installer : choisissez Installation utilisateur complte.
Dans les options de dmarrage, nous vous conseillons de choisir Dmarrage personnalis.
Mode daffichage : slectionnez le mode SDI.
Style daide : si vous ne savez pas quoi choisir, slectionnez le mode CHM.
Accs internet : si vous avez un doute, slectionnez standard.
Choisissez o vous souhaitez faire apparatre des raccourcis.

Pour information, il est possible de faire fonctionner R sur une cl USB. Pour cela, copier le
rpertoire c:\Program Files\R sur votre cl USB. Pour dmarrer R, cliquez sur Cl:\R\R2.4.\bin\Rgui.exe.

1.2 Installation du package survey


Ce package tant disponible sur CRAN, il peut tre install facilement dans R :
Lancer R.
Cliquez sur Packages > Installer le(s) package(s).
Slectionnez un site miroir proche de vous.
Slectionnez le packages survey.

Tests statistiques et rgressions logistiques sous R

1.3 Installation du package TestsFaciles


Il reste installer TestsFaciles partir du fichier zip disponible sur le site de Joseph Larmarange
(http://joseph.larmarange.net/Tests-statistiques-avec-prise-en.html) :
Tlcharger le fichier zip et enregistrer le sur votre disque dur.
Dans R, cliquez sur Packages > Installer le(s) package(s) des fichiers zip...
Slectionner le fichier adquat.

2. Remarques gnrales sur l'utilisation de R


R est un langage, orient objet, de programmation statistique bas sur le langage S. R est sensible
la casse des caractres. Ainsi, l'objet AbcD sera diffrent de ABCD ou encore de abcd. Nous vous
dconseillons fortement d'utiliser des caractres accentus dans le nom des objets que vous
manipulez avec R.

De nombreuses ressources sont disponibles sur internet pour vous initier R. Outre une
recherche avec Google, nous vous recommandons de consulter cette page http://cran.rproject.org/other-docs.html et en particulier le document R pour les dbutants
d'Emmanuel Paradis.

2.1 Pourquoi utiliser R ?


R est un langage de programmation statistique. Il offre un trs grand choix de techniques
statistiques et permet une manipulation pousse des donnes.
Bien que R ne dispose pas encore dune interface utilisateur dveloppe et intuitive et que la
passage un langage de programmation puisse rebuter certain, il y a tout intrt sinitier ce
logiciel du fait de sa puissance de calcul, des possibilits quil offre et de sa capacit raliser des
graphiques entirement paramtrables.
Cest par ailleurs un projet prenne et en dveloppement car ce logiciel est utilis par un grand
nombre de personnes travers le monde (dont bon nombre duniversitaires) et plus dune centaine
de packages additionnels sont dores-et-dj disponibles sur le net.
Enfin et surtout, il sagit dun logiciel libre, gratuit et disponible sur toutes les plateformes les plus
courantes (Windows, MacOS et Linux).
Pour la problmatique qui nous intresse ici, savoir la ralisation de tests statistiques et de
rgressions logistiques avec prise en compte du plan dchantillonnage, dautres solutions
existantes. Les logiciels commerciaux SAS, Stata ou SPSS disposent de modules complmentaires
3

Tests statistiques et rgressions logistiques sous R


permettant de spcifier le plan dchantillonnage dune base de donnes. Cependant, ces modules
sont rarement inclus dans la distribution par dfaut et ncessite donc lachat dune licence
spcifique et souvent trs coteuse. R offre ici une alternative efficace, gratuite et performante.

2.2 Charger un package


Lorsquun package est install, les fichiers du package sont copis dans le rpertoire dinstallation
de R. Cependant, il nest pas directement utilisable. En effet, lorsque que vous dmarrez R, seules
les fonctionnalits de base de R sont charges en mmoire. Pour pouvoir utiliser les fonctions dun
package particulier, il faut au pralable le charger en mmoire, et ce chaque fois que vous
dmarrez R.

Pour utilisez un package, vous devez le charger en mmoire. Deux solutions possibles :
Utiliser le menu Packages > Charger le package...
Utiliser la commande library ou la commande require.
Ainsi, pour charger tests-faciles, il suffit de taper :
> library(TestsFaciles)
Le chargement a ncessit le package : TestsFaciles
Le chargement a ncessit le package : survey
[1] TRUE

Le package survey tant ncessaire pour faire fonctionner TestsFaciles, il est automatiquement
charg quand on charge TestsFaciles.

2.3 Changer le rpertoire de travail


Lorsque lon importe ou que lon exporte des donnes, moins de spcifier le chemin complet dun
fichier, R va rechercher le fichier dans le rpertoire de travail en cours. Pour modifier le rpertoire
de travail actuel, il suffit de cliquer dans le menu sur Fichier > Changer le rpertoire courant,
puis de spcifier le nouveau rpertoire de travail et de valider.

2.4 Obtenir de laide sur une fonction


Pour obtenir de l'aide sur une fonction dans R, il suffit de taper ? suivi du nom de la fonction ou du
package, ou bien la fonction help. Ainsi, pour obtenir une aide gnrale sur TestsFaciles ou sur la
fonction int.conf, il suffit de taper :
> ?TestsFaciles
> help('TestsFaciles')
> ?int.conf

Tests statistiques et rgressions logistiques sous R


Chaque fonction documente fournit des exemples d'utilisation. Il est possible d'excuter les
exemples d'une fonction l'aide de example(). La fonction mean() de R permet de calculer une
moyenne. Pour voir des exemples dutilisation de cette fonction il suffit de taper :
> example(mean)
mean> x <- c(0:10, 50)
mean> xm <- mean(x)
mean> c(xm, mean(x, trim = 0.1))
[1] 8.75 5.50
mean> mean(USArrests, trim = 0.2)
Murder Assault UrbanPop
Rape
7.42
167.60
66.20
20.16

Pour rechercher un texte dans la documentation de R et de ses packages, il suffit d'avoir recours
la fonction help.search :
> help.search('proportion') # Pour chercher les fonctions travaillant sur des

proportions

NB : On notera que des commentaires peuvent tre mis dans du code R l'aide du caractre #.

2.5 Lister les objets en mmoire, sauver son travail et le rcuprer


La liste des objets (textes, nombres, tableaux de donnes, fonctions personnelles, etc) chargs en
mmoire peut tre facilement obtenue avec la fonction ls() (disponible galement dans le menu
Misc > Lister les objets).
> data(api)
> ls()
[1] "apiclus1" "apiclus2" "apipop"

"apistrat"

Un objet peut tre supprim laide de la fonction rm() :


> rm('apipop')
> ls()
[1] "apiclus1" "apiclus2" "apistrat"

La fonction save() permet de sauver des objets dans un fichier de tye .Rdata. Pour cela, il suffit de
passer save() lensemble des objets que lon souhaite sauvegarder, et dajouter le paramtre file
qui spcifie le nom du fichier de sauvegarde. Pensez ajouter lextension !! La fonction load()
permet quant elle de charger un fichier de donnes.
> save(apiclus1,apiclus2,file='apiclus.Rdata')
> load('apiclus.Rdata')

Tests statistiques et rgressions logistiques sous R


Un fichier de donnes peut galement tre charg partir du menu laide de la commande
Fichier > Charger lenvironnement de travail.
La commande Fichier > Sauver lenvironnement de travail permet de sauvegarder lensemble des
objets en mmoire dans un mme fichier. On obtient le mme rsultat avec la fonction save.image().
la fermeture de R, le logiciel nous invite sauvegarder une image de la session. Si lon acquiesce,
lensemble des objets en mmoire seront sauvegards dans un fichier nomm .Rdata situ dans le
rpertoire de travail courant.

2.6 Quelques fonctions de base


Voici une liste, non exhaustive, de quelques fonctions de base particulirement utiles. Pour plus de
dtails, voir l'aide de chaque fonction. Les fonctions en italiques dpendent du package survey ou
du package tests-faciles.

Nom

Description

as.character

Pour passer un objet en mode texte.

as.factor

Pour passer un objet en mode facteurs.

as.numeric

Pour passer un objet en mode numrique.

Permet de crer un vecteur.

compare

Compare des moyennes ou des proportions deux deux.

edit

dite un objet.

example

Excute les exemples fournis dans la documentation d'une fonction.

function

Pour crire ses propres fonctions.

getwd

Affiche le rpertoire de travail courant.

help

Fournit de l'aide sur une fonction.

help.search

Effectue une recherche dans l'aide.

importer.spss

Importer un fichier de donnes SPSS.

int.conf

Calcule lintervalle de confiance dune moyenne ou dune proportion.

levels

Affiche les tiquettes de valeur d'un objet de type facteurs.

library

Charge un package en mmoire.

list

Pour crer des listes.

load

Charge un fichier de donnes.

ls

Liste l'ensemble des objets en mmoire.

order

Pour trier des donnes.

read.dbf

Lire un fichier dbf (package foreign).

read.table

Importer un fichier texte tabul.

require

Charge un package en mmoire.

rm

Supprime un objet.

Tests statistiques et rgressions logistiques sous R


save

Sauve un ou plusieurs objets dans un fichier de donnes.

save.image

Sauve l'ensemble des objets en mmoire.

seq

Permet de gnrer une liste de nombres.

setwd

Dfinit le rpertoire de travail.

str

Dtaille la structure d'un objet.

subset.survey.design Extraire un sous-chantillon dun tableau de donnes.


summary

Fournit un rsum dtaill du contenu d'un objet.

svychisq

Ralise un test du Chi sur un tableau crois.

svydesign

Dfini le plan dchantillonnage dun tableau de donnes.

svyglm

Calcule une rgression logistique.

svyglm

Calcule une rgression logistique.

svymean

Calcule une moyenne ou une proportion.

svyquantile

Calcule des quantiles (dont la mdiane)

svytable

Calcule un tableau de contingence, ventuellement crois.

svyvar

Calcule la variance.

Transpose un tableau de donnes.

write.dbf

Exporter au format dbf (package foreign).

write.table

Exporte des donnes sous la forme d'un fichier texte.

Pour des manipulations avances des tableaux de donnes, nous vous conseillons la lecture de
l'aide de l'oprateur [ :
> help('[.data.frame')

3. Prparation et importation des donnes


3.1 Remarques gnrales
Dans les points suivants (3.2 et 3.3), nous supposerons que la manipulation des donnes
seffectuera sur un autre logiciel, r servant simplement la ralisation des tests. Dans ce cas, on
nexportera de la base principale que les variables qui seront ncessaire lanalyse sous R.
Nous ne dtaillerons pas la manipulation de donnes dj existantes sous R en raison de la
diversit des situations existantes. Cependant, de nombreuses ressources sont disponibles en ligne
sur les diffrentes manires de manipuler des objets sous R.
Pour la suite des analyses, il importera que les donnes aient la forme suivante :
Elles seront stockes dans un tableau de donnes (data.frame) avec une ligne par individu
statistique.
Les variables pour lesquelles des moyennes seront calcules devront tre de type numrique.

Tests statistiques et rgressions logistiques sous R


Les variables pour lesquelles des proportions seront calcules devront tre de type facteur. Si
des modalits doivent tre runies en une seule, il faudra recoder la variable de manire
avoir les bons facteurs.
Les variables dterminant des sous-groupes (pour des comparaisons par exemple) devront
tre galement de type facteurs.
Pour les rgressions logistiques binaires, les variables analyses devront tre codes de la
forme : 1 si lvnement a eu lieu, 0 sinon.
Les valeurs manquantes devront tre correctement renseignes laide de la valeur NA.

3.2 Exportation et importation depuis SPSS


Il importe de correctement prparer ses donnes avant lexportation. Les variables quantitatives ne
doivent pas comporter dtiquettes de valeurs (colonne Valeurs de longlet Affichage des
variables). linverse, les tiquettes de valeurs dune variable qualitative doivent tre renseignes.
Si des recodifications sont ncessaires, il est prfrable de les raliser avant lexport.
Les valeurs manquantes doivent tre correctement renseignes dans la colonne Manquant.
On nexportera que les variables ncessaires lanalyse ainsi que, le cas chant, les variables
ncessaires pour spcifier le plan dchantillonnage (identifiant des clusters et des strates,
pondration des individus).
Si lanalyse doit porter sur un sous-chantillon, on prparera une variable de tri permettant de
spcifier quels individus appartiennent au sous-chantillon, mais on exportera lensemble de
lchantillon. Nous verrons plus loin comment extraire un sous-chantillon (partie 4.4).
Pour raliser lexportation, utilisez la commande Fichier > Enregistrer sous. Le bouton Variables
permet de spcifier les variables inclure dans lexport. Enregistrez votre fichier au format SPSS
(.sav) dans votre rpertoire de travail R.

Dans R, utilisez la fonction importer.spss() pour importer votre fichier .sav dans un tableau de
donnes. Par exemple, pour importer le fichier export.sav et le placer dans un tableau de donnes
nomm donnees :
> donnees <- importer.spss(export.sav)

Utilisez la fonction str() pour voir la structuration de lobjet donnees, summary() pour avoir un
rsum des diffrentes variables et edit() pour diter les donnes.
> str(donnees)
> summary(donnees)
> edit(donnees)

Tests statistiques et rgressions logistiques sous R

3.3 Exportation et importation depuis Excel ou OpenOffice Calc


Prparez vos donnes dans une feuille de calcul avec une variable par colonne et un individu
statistique par ligne. La premire ligne contiendra le nom de chaque variable.
Supprimez les variables inutiles (pensez au pralable effectuer une sauvegarde de votre base
complte). Pour cela, slectionnez les colonnes entires et utilisez la fonction supprimer du menu
dition 1 .
Les variables numriques seront codes sous forme de chiffres tandis que les variables modalit
seront prfrentiellement code avec du texte. En effet, lors de limport ultrieur avec R, si une
colonne dun fichier texte contient que des nombres, il considrera cette variable comme tant
numrique. Si elle contient des caractres, il la traitera comme tant de type facteur. Si les
modalits sont codes avec un nombre, nous verrons plus loin quil est possible de la convertir
facilement du type numrique au type facteur.
Les valeurs manquantes devront imprativement correspondre des cases vides.
Exporter vos donnes laide de la commande Enregistrer sous du menu Fichier. Choisissez le
format dBase (.dbf) 2 .

Sous R, pour pouvoir utiliser la fonction read.dbf() qui permet dimporter un fichier .dbf, il faut
dabord charger en mmoire le package foreign laide de la commande library().
> library(foreign)
> donnees <- read.dbf(export.dbf)

1 Ceci est prfrable dans la mesure o une suppression rapide avec la touche supression efface seulement le contenu des colonnes en
questions mais Excel ou Calc continuent de considrer quil sagit dune colonne dfinie et lincluse donc dans lexport.
2 Il est possible de faire un export au format txt ou csv. Cependant, en raison de la varit des paramtres (sparateur de champ,
sparateur des dcimales, etc.), il nous semble plus facile de passer par un export dbf.

Tests statistiques et rgressions logistiques sous R

4. Spcifier le plan dchantillonnage

4.1 Diffrents types dchantillons alatoires


Le texte ci-dessous est repris de
http://www.er.uqam.ca/nobel/r30574/PSY1300/C6P3.html.

Dfinition : un chantillon est dit alatoire lorsque la probabilit de slection de chaque lment
de la population est connue et non nulle
Avantage : permet de juger objectivement de la valeur des estimations
Types : alatoire simple, stratifi et par grappes

4.1.1 chantillonnage alatoire simple


Dfinition : l'chantillonnage alatoire simple est une mthode pour laquelle tous les chantillons
possibles (de mme taille) ont la mme probabilit d'tre choisis et tous les lments de la
population ont une chance gale de faire partie de l'chantillon.
Exemple : dans une classe de 20 personnes, on dsire choisir un chantillon alatoire simple de 5
individus. Par consquent, chaque personne doit avoir une probabilit de 5/20 = 1/4 de se
retrouver dans l'chantillon

4.1.2 chantillonnage stratifi


Dfinition : l'chantillonnage stratifi est une mthode qui consiste d'abord subdiviser la
population en groupes homognes (strates) pour ensuite extraire un chantillon alatoire de
chaque strate. Cette mthode suppose la connaissance de la structure de la population. Pour
estimer les paramtres, les rsultats doivent tre pondrs par l'importance relative de chaque
strate dans la population.
Exemple : Pour estimer le revenu annuel moyen des tudiants/es l'Uqam, on prend un
chantillon alatoire de 10 individus dans chaque programme.

4.1.3 chantillonnage par grappes


Dfinition : l'chantillonnage par grappes est une mthode qui consiste choisir un chantillon
alatoire d'units qui sont elles-mmes des sous-ensembles de la population (grappes) Cette
mthode suppose que les units de chaque grappe sont reprsentatives. Elle possde l'avantage
d'tre souvent plus conomique.
10

Tests statistiques et rgressions logistiques sous R

Exemple : Dans l'exemple du revenu des tudiants de l'Uqam, on choisit galement un chantillon
alatoire de 30 programmes d'tudes diffrents

4.2 Impact sur les tests statistiques


La majorit des techniques statistiques de base enseignes aux tudiants et implmentes dans les
logiciels de statistiques correspondent une situation dchantillonnage alatoire simple.
Dailleurs, pour les personnes intresses par lutilisation de ces techniques sous R, nous leur
recommandons la lecture du cours de Biostatistiques avec R de Nicolas jay disponible en ligne
cette adresse : http://www.spieao.uhp-nancy.fr/~jay/files/r/introduction-au-systeme-r.pdf.

partir du moment o un chantillon prsente un plan dchantillonnage complexe (prsence de


strates et ou de clusters), ces formules ne sont plus utilisables car, non seulement les observations
doivent tre pondres, mais le calcul des variances est plus complexe.
Le poids attribuer chaque observation correspond linverse de la probabilit de cette
observation dtre incluse dans lchantillon. Ce qui est avant tout primordial cest le poids relatif
accord chaque individu. Cependant, le plus souvent, on multipliera lensemble des poids dun
chantillon par une mme valeur afin que le total des poids corresponde au nombre total
dobservations.

Le package survey permet justement de pouvoir tenir compte du plan dchantillonnage afin de
calculer correctement les diffrents indicateurs. Mais il faut au pralable lui spcifier correctement
le plan dchantillonnage des donnes. La simple connaissance des poids nest pas suffisante. Il faut
galement prciser quelles sont les strates et quels sont les clusters.

4.3 Spcifier le plan dchantillonnage avec svydesign()


La fonction svydesign() permet de spcifier le plan dchantillonnage dun chantillon et renvoie un
objet R comprenant la fois les donnes et lensemble des informations ncessaires concernant le
plan dchantillonnage.
Il est possible de spcifier des plans de sondage particulirement complexes avec cette fonction.
Pour cela nous vous renvoyons la document de cette fonction (accessible en tapant
help(svydesign)).
Lagument data permet de spcifier le tableau de donnes contenant les observations.
Largument ids est obligatoire et spcifie sous la forme dune formule les identifiants des diffrents
niveaux dun tirage en grappe. Sil sagit dun chantillon alatoire simple, on entrera ids=~1. Autre

11

Tests statistiques et rgressions logistiques sous R


situation : supposons une tude portant sur la population franaise. Dans un premier temps, on a
tir au sort un certain nombre de dpartements franais. Dans un second temps, on tire au sort
dans chaque dpartement des communes. Dans chaque commune slectionne, on tire au sort des
quartiers. Enfin, on interroge de manire exhaustive toutes les personnes habitant les quartiers
enquts. Notre fichier de donnes devra donc comporter pour chaque observation les variables
id_departement, id_commune et id_quartier. On crira alors pour largument ids la valeur
suivante : ids=~id_departement+id_commune+id_quartier.
Si lchantillon est stratifi, on spcifiera les strates laide de largument strata en spcifiant la
variable contenant lidentifiant des strates. Par exemple : strata=~id_strate.
Il faut encore spcifier les probabilits de tirage de chaque cluster ou encore la pondration des
individus. Si lon dispose de la probabilit de chaque observation dtre slectionne, on utilisera
largument probs. Si par contre, on connat la pondration de chaque observation (qui doit tre
proportionnelle linverse de cette probabilit), on utilisera largument weights.
Si lchantillon est stratifi, quau sein de chaque strate les individus ont t tirs au sort de
manire alatoire et que lon connat la taille de chaque strate, il est possible de ne pas avoir
spcifier la probabilit de tirage ou la pondration de chaque observation. Il est prfrable de
fournir une variable contenant la taille de chaque strate largument fpc. De plus, dans ce cas l,
une petite correction sera applique au modle pour prendre en compte la taille finie de chaque
strate.
Quelques exemples :
# chantillonnage alatoire simple
> plan <- svydesign(ids=~1, data=donnees)
# chantillonnage stratifi un seul niveau (la taille de chaque strate est connue)
> plan <- svydesign(ids=~1, data=donnees, fpc=~taille)
# chantillonnage en grappes avec tirages quatre degrs (departement, commune,
# quartier, individus). La probabilit de tirage de chaque niveau de cluster est connue.
> plan <- svydesign (ids=~id_departement+id_commune+id_quartier, data=donnees,
Probs=~proba_departement+proba_commune+proba_quartier)
# chantillonnage stratifi avec tirage deux degrs (clusters et individus).
# Le poids statistiques de chaque observation est connue.
> plan <- svydesign(ids=~id_cluster, data=donnees, strata=~id_strate, weights=~poids)

4.4 Extraire un sous-chantillon


Si lon souhaite travailler sur un sous-chantillon tout en gardant les informations
dchantillonnage, il suffit dutiliser la fonction subset() en lui spcifiant les donnes et une
condition. Si par exemple, on souhaite rcuprer le sous-chantillon des individus gs de moins de
15 ans et allant lcole (variable age de type numrique et ecole de type facteur) :
> sous <- subset(plan, age < 15 & ecole==oui)

12

Tests statistiques et rgressions logistiques sous R

5. Les intervalles de confiance


5.1 Principes dun intervalle de confiance
On cherche connatre une grandeur X au sein dune population. Or, le plus souvent, on ne peut
enquter toute la population. On ralisera donc un chantillon de la population et lon mesurera
dans cet chantillon une valeur exprimentale de X que lon notera xe.
X nous restera dans tous les cas inconnu ( moins de faire une enqute exhaustive). Cependant, on
peut raisonnablement penser que xe constitue une bonne approximation de X. Nanmoins, du fait
de lchantillonnage, il y a de fortes chances que xe diffre lgrement de X. On va alors chercher
trouver un intervalle o, connaissant xe il y a de forte chance que X sy trouve. Lintervalle de
confiance 95% de X, connaissant xe, cest lintervalle tel que la probabilit que X appartienne cet
intervalle soit de 95 sur 100.
Cet intervalle est usuellement centr autour de xe. Plus le niveau de confiance est lev, plus
lintervalle de confiance est large.

5.2 Moyennes et proportions


La mthode propose ci-aprs est la mme quelque soit le plan dchantillonnage. Pour calculer
lintervalle de confiance dune moyenne ou dune proportion, on aura recours la fonction
int.conf(). Pour des dtails sur cette fonction, voire laide en ligne : ?int.conf.
Le premier argument spcifie les variables pour lesquelles on souhaite calculer un intervalle de
confiance, le second le fichier de donnes (aprs avoir spcifi le plan de sondage laide de
svydesign()) et le troisime, optionnel, une variable spcifiant des groupes si lon souhaite sparer
les rsultats.
Largument confiance permet de choisir le niveau de confiance dsir (95% par dfaut)
Pour afficher plus facilement les rsultats, on peut utiliser la fonction t() qui permet de transposer
un tableau (les lignes deviennent colonnes et inversement).
La fonction int.conf() renvoie la fois la valeur de xe et celles de lintervalle de confiance
Quelques exemples :
# Age moyen 95%
> int.conf(~age, plan)
# Proportion de femmes 95%
> int.conf(~sexe, plan)
# Age moyen et proportion de femmes
> int.conf(~sexe+age, plan)
# Age moyen et proportion de femmes selon la region
> int.conf(~sexe+age, plan, ~region)

13

Tests statistiques et rgressions logistiques sous R


# Age moyen et proportion de femmes selon la region avec une confiance de 90%.
> int.conf(~sexe+age, plan, ~region, confiance=0.9)
# Age moyen et proportion de femmes selon la region avec une confiance de 90%.
# avec affichage plus pratique des rsultats
> t(int.conf(~sexe+age, plan, ~region, confiance=0.9))

5.3 Quantiles
Pour la mdiane (quantile 0.5 ou 50%) et les autres quantiles, il suffit dutiliser directement la
fonction svyquantile(). Il faut lui spcifier les arguments suivants (pour plus de dtails voir laide de
cette fonction) :
x : liste des variables pour lesquelles on veut calculer les quantiles. Variables numriques
uniquement.
design : plan dchantillonnage.
quantiles : liste des quantiles dsirs (en valeur dcimales, pas de pourcentages). Untilisez la
fonction c() pour faire une liste.
ci : il faut prciser ci=TRUE pour que la fonction renvoie lintervalle de confiance.
alpha : correspond au complment 1 de la confiance. Pour un intervalle 95%, alpha vaut 10.95=0.05, pour un intervalle 90%, alpha vaut 0.1 et pour un intervalle 99%, alpha vaut
0.01.
Quelques exemples :
# Mdiane de lge avec une confiance de 95%
> svyquantile(~age, plan, 0.5, ci=TRUE)
# Mdiane et quartiles de lge avec une confiance de 95%
> svyquantile(~age, plan, c(0.25,0.5,0.75), ci=TRUE)
# Mdiane et quartiles de lge avec une confiance de 90%
> svyquantile(~age, plan, c(0.25,0.5,0.75), ci=TRUE, alpha=0.1)
# Mdiane et quartiles de lge avec une confiance de 99%
> svyquantile(~age, plan, c(0.25,0.5,0.75), ci=TRUE, alpha=0.01)
# Mdiane et quartiles de lge et du nombre denfants avec une confiance de 95%
> svyquantile(~age+descandance, plan, c(0.25,0.5,0.75), ci=TRUE)

6. Tests de comparaison
6.1 Principes des tests de comparaison
Le but dun test statistique cest de tester une hypothse statistique (note H0) versus une autre
hypothse (note H1). En fonction des donnes dont on dispose, on va regarder la probabilit que,
si H0 est vrai, ce quon a observ se ralise. Si cette probabilit est faible, on considrera que H0
nest pas vrifie, on la rejettera et on choisira H1. Si cette probabilit est importante, on conclura
que lon ne peut pas rejeter H0.

14

Tests statistiques et rgressions logistiques sous R


Dans le cas dun test de comparaison on cherche savoir si une moyenne ou une proportion,
observe dans deux groupes, sont identiques ou diffrentes. Lhypothse nulle prsuppose donc
que les deux moyennes (ou proportions) sont identiques dans la population et que les carts
observs dans lchantillon ne dpendent que deffets alatoires lis lchantillonnage.
On va donc calculer la probabilit dobserver, si les deux moyennes ou proportions taient
identiques dans la population, lcart que lon a effectivement observ dans lchantillon. Cette
probabilit est note p.
Si cette probabilit est infrieure un certain seuil, usuellement 5%, on va considrer que la
probabilit que la diffrence observe soit simplement due lchantillonnage est trop faible et
donc que la diffrence observe provient du fait que les deux moyennes (ou proportions) ne sont
pas identiques dans la population. On dira alors que la diffrence est statistiquement significative
au seuil de 5%.
linverse, si cette probabilit est suprieure 5%, on conclura que la diffrence observe peut
ntre due qu des effets dchantillons. On ne montre pas que les deux moyennes (ou proportions)
sont identiques dans la population. Simplement on ne peut exclure cette ventualit.
En rsum :
si p<seuil, on rejette H0 : la diffrence est statistiquement significative ;
si p>seuil, on garde H0 : la diffrence peut ntre due qu des alas de lchantillonnage.

Soyez vigilant vis--vis de lexpression statistiquement significatif. Cest une expression technique
indiquant simplement que lon a runi suffisamment de donnes pour permettre dtablir
lexistence dune diffrence effective. Elle ne signifie pas que la diffrence est importante ni mme
quelle est une signification humaine ou scientifique. Lexpression statistiquement significative au
seuil de 5% signifie littralement statistiquement discernable avec une marge derreur de 5%.

6.2 Tests unilatraux et tests bilatraux


Dans le cadre dun test unilatral, on teste si les deux grandeurs sont diffrentes. Lhypothse nulle
prsuppose donc leur galit et lhypothse H1 quelles sont diffrentes.
Dans le cas dun test bilatral, on suppose dans lhypothse nulle que la moyenne (ou la
proportion) du groupe A est infrieure ou gale celle du groupe B. On teste donc si la moyenne
(ou proportion) du groupe A est suprieure celle du groupe B.

15

Tests statistiques et rgressions logistiques sous R

6.3 Comparer deux moyennes ou deux proportions


Il suffit dutiliser la fonction compare() en lui prcisant trois arguments :
En premier, la liste des variables que lon souhaite tester (de type numrique pour des
moyennes et de type facteur pour des proportions).
En second, le plan dchantillonnage.
En troisime, une ou plusieurs variables de type facteur prcisant les groupes comparer.
compare() renvoie la valeur de la moyenne ou de la proportion dans chaque groupe, calcule leur
diffrence et renvoie la valeur de p la fois pour un test unilatral et pour un test bilatral.
Si le troisime argument dfini plusieurs groupes, les variables du premier argument sont testes
pour chaque combinaison de deux groupes.
Quelques exemples :
# Comparaison de lge moyen selon le milieu de rsidence
> compare(~age, plan, ~residence)
# Comparaison de lge moyen selon le milieu de rsidence et la rgion
> compare(~age, plan, ~residence+region)
# Comparaison de lge moyen et de la descendance finale selon le milieu de rsidence
> compare(~age+descendance, plan, ~residence)
# Comparaison de la proportion de femmes selon le type emploi
> compare(~sexe, plan, ~type_emploi)
# Comparaison de la proportion de femmes selon chaque type demploi et niveau de revenus
> compare(~sexe, plan, ~type_emploi+niveau_revenu)

6.4 Test du Chi


Il sagit de tester deux variables qualitatives (de type facteur dans R) pour savoir si elles sont
indpendantes ou non. Si deux variables qualitatives sont indpendantes, et si lon fait un tableau
crois de lune par lautre, alors les pourcentages en colonnes seraient identiques dune colonne
une autre et les pourcentages en ligne seraient identiques dune ligne autre.
Le test du Chi va donc calculer le tableau crois des deux variables compares et regarder si la
rpartition des observations diffre significativement dun point de vue statistique de la rpartition
que lon aurait si les deux variables taient indpendantes.
Si le test est positif, cela signifie quil y a une corrlation entre les deux variables. Au moins une
ligne ou au moins une colonne diffre sensiblement des autres. Il sagit dun test sur lensemble du
tableau. Il ne dit rien sur des comparaisons de deux colonnes deux deux.
Lobservation dune corrlation statistique entre deux variables signifie juste que les variations
observes ne peuvent tre imputes uniquement des alas de lchantillonnage. Cela ne veut
surtout pas dire quil y aurait une relation de cause effet entre elles, ni mme que cette variation
ait un sens scientifique.
16

Tests statistiques et rgressions logistiques sous R


Si le tableau crois comporte deux colonnes et deux lignes, alors le test du Chi peut tre utilis
comme un test de comparaison de deux proportions.
svytable() permet de calculer le tableau crois et svychisq() de faire le test. Leurs arguments sont les
suivants :
En premier, la liste des deux variables croiser.
En second, le plan dchantillonnage.
Optionnel pour svytable, un nombre spcifiant le total du tableau. Par dfaut, la fonction
renvoie les effectifs de chaque case. Si on lui transmet en troisime argument la valeur 100,
on aura alors des pourcentages du total.
Pour svychisq uniquement, on passera Chisq en troisime argument. Cet argument permet
de spcifier le type de test effectuer (cette fonction en propose plusieurs). Le plus courant
est celui-ci.
Quelques exemples :
# Niveau de salaire selon le sexe
> svytable(~sexe+salaire, plan)
> svychisq(~sexe+salaire, plan, Chisq)
# Niveau de scolarit selon le village
> svytable(~village+ecole, plan)
> svychisq(~village+ecole, plan, Chisq)

7. Rgressions logistiques
Un cours complet et accessible au non technicien sur les rgressions logistiques est disponible en
ligne cette adresse : http://www.tesser-pro.org/stat/Cours_regression_logistique.pdf. Ce cours
de Patrick Taff est particulirement bien crit pour des non statisticiens. Sa lecture est donc
fortement conseille. Nous ne dtaillerons donc pas ici les subtilits de linterprtation dune
rgression logistique.
Un autre cours plus technique de Paul Marie Bernard : http://www.uquebec.ca/reglog/.
Sur Wikipdia : http://fr.wikipedia.org/wiki/R%C3%A9gression_logistique.
Un cours sur les rgressions logistiques avec R : http://pbil.univ-lyon1.fr/R/archives/br5.pdf 3 . Ce
cours ne tient pas compte des plans de sondage complexe et utilise la fonction glm(). Cependant,
pour ladapter aux plans complexes, il suffit le plus souvent de remplacer glm() par svyglm().

Plus gnralement, de nombreuses ressources sur les statistiques et R sont disponibles en franais sur http://pbil.univlyon1.fr/R/enseignement.html.
3

17

Tests statistiques et rgressions logistiques sous R

7.1 Principes dune rgression logistique


La rgression logistique est une technique statistique qui a pour objectif, partir dun fichier
dobservations, de produire un modle permettant de prdire les valeurs prises par une variable
catgorielle, le plus souvent binaire, partir dune srie de variables explicatives continues et/ou
binaires.
Dans le cas prsent, nous ne regarderons que le cas dune rgression logistique pour une variable
binaire (de type oui/non) en ayant recours au modle logit (modle le plus courant). Nous noterons
X la variable tudi. Elle prend deux valeurs : 0 si lvnement ne sest pas ralis, 1 sil sest ralis.
On modlisera la probabilit que X soit gal 1 connaissant les valeurs dautres variables, dites
variables explicatives et notes Y1 Y2 Y3 Yn. 4
On cherchera les coefficients , 1, 2, 3 ... n tels que

logit(P [X = 1]) = + 1 y1 + 2 y2 + ... + n yn

p
.
1 p

o logit( p) = log

La fonction logit() existe dans le package boot. Il faut donc penser charger ce package en mmoire
pour pouvoir utiliser cette fonction (library(boot)). La fonction inverse existe galement et se
nomme inv.logit().

7.2 Prparer les donnes


La variable que lon cherche modliser, X, doit tre de type facteur avec deux modalits. La
premire modalit ou modalit de rfrence doit correspondre au cas o le phnomne tudi na
pas eu lieu 5 .
La fonction relevel() est trs pratique pour prciser quelle est le facteur de rfrence. Supposons que
lon souhaite que la modalit de rfrence de la variable malade dun tableau de donnes donnees
soit non on entrera sous R :
> donnees$malade <- relevel(donnees$malade, ref=non)

Si lon souhaite modifier la mme variable mais dans cette fois-ci dans le plan dchantillonnage,
on ne peut faire directement plan$malade. Dans un objet cr avec svydesign(), les donnes sont
accessibles via plan$variabales :

4 La notation est ici simplifie par rapport aux notations habituelles. Pour une notation plus rigoureuse, voir les cours de Patrick Taff ou
de Paul Marie Bernard.

Cette variable peut galement tre de type numrique avec les valeurs 0 et 1, et plus gnralement toute valeur comprise entre 0 et 1
correspondant une probabilit.

18

Tests statistiques et rgressions logistiques sous R


> plan$variables$malade <- relevel(plan$variables$malade, ref=non).

Concernant les variables explicatives du modle, y1 y2, elles peuvent tre soit quantitatives (type
numrique) soit qualitatives (type facteurs). Pour les variables qualitatives, on utilisera relevel() de
la mme manire afin de dfinir la modalit de rfrence.

7.3 Calculer une rgression avec svyglm()


On aura recours la fonction svyglm() laquelle on passera trois arguments :
Une formule spcifiant le modle ajuster. Elle sera de la forme x~y1+y2+y3, avec la variable
modliser gauche du ~ et les variables explicatives droite spares par + 6 .
Le plan dchantillonnage contenant les donnes.
Largument family=binomial qui prcise quil sagit dune rgression logistique binaire de type
logit.

Un exemple o lon souhaite calculer la probabilit dtre atteint par une maladie en fonction de
lge, du sexe et du milieu de rsidence :
> reg <- svyglm(malade~age+sexe+residence, plan, family=binomial)

7.4 Rsultats
Pour afficher les rsultats, utilisez la fonction summary() :
> summary(reg)

La valeur des diffrents coefficients sont affichs sous la colonne Estimates. Par ailleurs, cette
fonction fournit le rsultat dun test vrifiant si chaque coefficient diffre de 0 (absence deffet
significatif). La valeur du p est affiche dans la colonne Pr(>|t|). Des toiles et des points indiquent
par ailleurs les rsultats du test aux seuils usuels.

Le plus souvent, on nutilise pas les coefficients du modle mais les odds-ratios. Ces derniers
correspondent lexponentiel des coefficients. Ils peuvent tres obtenus facilement en faisant :
> exp(reg$coefficients)

Il est possible deffectuer des modles plus complexes. Rfrez vous la documentation de glm pour cela.

19

Tests statistiques et rgressions logistiques sous R


Pour vrifier si un modle est efficace, on peut comparer les valeurs observes avec les valeurs
prdites par le modle. predict() permet de rcuprer les probabilits prdites.
> plan$variables$prob.pred<- predict(reg, newdata=plan$variables, type='response')

On considre que si cette probabilit est suprieure 0.5, alors lvnement a eu lieu, sinon il na
pas eu lieu.
> plan$variables$malade.pred <- non
> plan$variables$malade.pred[plan$variables$prob.pred>0.5] <- oui

Il reste alors afficher le tableau crois entre variable observe et variable prdite :
> svytable(~malade.pred+malade, plan)

20