Académique Documents
Professionnel Documents
Culture Documents
Ce cours a t dvelopp pour une formation niveau M2 et Doctorat des tudiants du laboratoire
PopInter de luniversit Paris 5 Ren Descartes.
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.
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.
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.
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 #.
"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')
Nom
Description
as.character
as.factor
as.numeric
compare
edit
dite un objet.
example
function
getwd
help
help.search
importer.spss
int.conf
levels
library
list
load
ls
order
read.dbf
read.table
require
rm
Supprime un objet.
save.image
seq
setwd
str
svychisq
svydesign
svyglm
svyglm
svymean
svyquantile
svytable
svyvar
Calcule la variance.
write.dbf
write.table
Pour des manipulations avances des tableaux de donnes, nous vous conseillons la lecture de
l'aide de l'oprateur [ :
> help('[.data.frame')
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)
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.
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
Exemple : Dans l'exemple du revenu des tudiants de l'Uqam, on choisit galement un chantillon
alatoire de 30 programmes d'tudes diffrents
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.
11
12
13
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
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%.
15
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
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().
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
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.
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
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