Formulaire de fonctions statistiques pour R

Transcription

Formulaire de fonctions statistiques pour R
Formulaire de fonctions statistiques pour R
Le logiciel R est un logiciel libre de statistique. De l’aide et de nombreuses informations sur R
peuvent être trouvées sur le site web : http://www.r-project.org.
Pour appeler l’aide sur les fonctions utilisées: help(nomfonction).
AFFECTATION D’UN OBJET À UNE VARIABLE
On peut utiliser indifféremment:
X <- commande
X = commande
X reçoit la valeur de commande.
mean(y),. . .
commande désigne n’importe quel type d’objet, ex: 2, 2+3,
IMPORT/EXPORT DES DONNÉES
2.1
Importer un tableau d’un fichier texte
read.table(fichier, header = FALSE, sep = "\t",dec = ".",na.strings = "NA")
Le fichier est lu sous la forme d’un data.frame (cf section suivante). Plusieurs options sont spécifiables, entre autres:
• fichier: nom du fichier à mettre entre guillemets (attention ne pas oublier l’extension),
• sep: type de séparateur (\t signifie tabulation),
• na.strings: indique comment sont spécifiés les valeurs manquantes (NA: Not Available).
2.2
Exporter un objet, X, sous forme de fichier texte
write.table(X, file = "nom_du_fichier")
1
TYPE D’OBJET
3.1
Vecteur
• La commande c() crée un vecteur avec les arguments que l’on lui transmet. Ex: z = c(1.25, 0.25, 5.34)
• Séquence de nombres entiers (avec un pas de 1). Ex: x=1:10
Pour extraire
• le i-ème élément du vecteur x: x[i]
• les éléments 1,6 et 10: x[c(1,6,10)]
• les éléments 5 à 10: x[5:10]
3.2
Tableau de données: data.frame
• Le data.frame est le format “naturel” de stockage des données sur lesquelles on désire procéder
à des traitements statistiques. Ses colonnes sont des vecteurs représentant des variables.
• On accède aux variables composant un data.frame D à partir du nom de la variable: D$femme
ou à partir du numéro de la colonne: D[,2].
• Pour extraire le sous-tableau composé des lignes i à j et des colonnes k à l d’un tableau de
données D, on procédera comme suit: D[i:j,k:l].
• Dimension de D: dim(D).
• Pour afficher les premières lignes d’un data.frame D: head(D).
• Pour obtenir la nature des différentes colonnes de D: str(D). Il peut s’agir d’entiers (int),
de numériques (num), de facteurs (factor), i.e. des variables qualitatives à modalités fixées
(levels).
RÉSUMÉ STATISTIQUE DES DONNÉES
4.1
En univarié
Quelques fonctions statistiques s’appliquant à une distribution codée sous forme de vecteur:
• length(x): nombre de valeurs stockées dans le vecteur.
• mean(x): moyenne des valeurs du vecteur.
• sd(x): écart-type des valeurs du vecteur.
• var(x): variance des valeurs du vecteur.
• quantile(x): donne les quantiles (par défaut les quartiles).
• summary(x): donne un résumé de la distribution des données.
2
4.2
En bivarié
• cor(x,y): corrélation entre x et y.
GRAPHIQUES
5.1
Distribution d’une variable continue
• Histogramme: hist(x)
• Boîte à moustaches: boxplot(x)
5.2
Distribution d’une variable discrète
• Camembert: pie(x)
• Barres: barplot(x)
Le vecteur contient les effectifs correspondant aux modalités de la variable; si x est le vecteur
contenant les valeurs de la variable pour les observations, il est nécessaire de créer le vecteur des
effectifs à l’aide de la commande: table(x). On peut donc utiliser la commande pie(table(x))).
5.3
Distribution jointe de deux variables continues
• Nuage de points:
plot(x,y)
identify(x, y, labels = noms)
– x et y: vecteurs de variables continues.
– labels: vecteurs d’identifiants.
• points(xbis, ybis,col=2)
superpose les points (xbis,ybis) en rouge sur le graphique précédent.
CALCUL
DES
USUELLES
QUANTILES
DES
DISTRIBUTIONS
• Pour obtenir le quantile d’ordre α = p d’une distribution Gaussienne N (µ, σ 2 ):
qnorm(p, mean = mu, sd = sigma)
où mu est la valeur de µ et sigma la valeur de σ.
• Pour obtenir le quantile d’ordre α = p d’une distribution χ2df :
qchisq(p, df)
• Pour obtenir le quantile d’ordre α = p d’une distribution de Fisher F(df 1, df 2):
3
qf(p, df1, df2)
• Pour obtenir le quantile d’ordre α = p d’une distribution de Student Sdf :
qt(p, df)
TESTS STATISTIQUES
7.1
Test de Student: t.test
La commande t.test permet d’effectuer un test de Student sur un ou deux échantillons.
7.1.1
Cas d’un échantillon: estimation de l’espérance (variance inconnue) et test de
comparaison de moyenne à une valeur, H0 : µ = µ0
On suppose que les données sont des réalisations de v.a. gaussiennes indépendantes et identiquement distribuées. On souhaite tester l’hypothèse selon laquelle l’espérance µ d’une variable
aléatoire gaussienne est égale à une certaine valeur µ0 . Les arguments de t.test à déterminer
sont:
• x: le vecteur de données (premier argument);
• µ = µ0 : la valeur de l’espérance sous l’hypothèse nulle, i.e. H0 : µ = µ0 . Par défaut, égal à
0.
• alternative=: le type d’hypothèse alternative, 3 possibles:
– two.sided pour H1 : µ 6= µ0
– greater pour H1 : µ > µ0
– lower pour H1 : µ < µ0
7.1.2
Cas de deux échantillons indépendants: test de comparaison des moyennes de
2 populations, H0 : µx − µy = 0
On suppose les données issues de deux populations de v.a. gaussiennes indépendantes et identiquement distribuées au sein de chaque population. Dans ce cas, les arguments à donner sont:
• x= et y= les deux vecteurs d’observations des deux échantillons;
• µ = µ0 , la valeur de la différence des espérances des deux échantillons sous H0 , i.e. H0 =
E(X − Y ) = µ0 ;
• var.equal=TRUE, si les variances des deux échantillons sont supposées égales.
7.1.3
Cas de deux échantillons appariés: test de comparaison de la différence des
moyennes de 2 populations, H0 : E(X − Y ) = µ0
On suppose que les différences observées entre chaque paire sont la réalisation de v.a. gaussiennes
indépendantes et identiquement distribuées. En plus des arguments précédents,
• paired=TRUE, précise que les deux échantillons sont appariés;
• µ = µ0 indique l’espérance de la différence des mesures sous H0 , i.e. E(Xi − Yi ) = µ0 .
4
7.2
Test de comparaison de variances
On suppose les données issues de deux populations de v.a. gaussiennes indépendantes et identiquement distribuées au sein de chaque population.
var.test(x, y, ratio = 1, alternative = c("two.sided", "less", "greater"))
• x= et y=: les deux vecteurs d’observations des deux échantillons;
• ratio: valeur de r0 telle que sous H0 : s2x /s2y = r0 , par défaut r0 = 1;
• alternative= le type d’hypothèse alternative.
7.3
Test de proportion: prop.test
La commande prop.test permet d’effectuer un test sur les proportions de données issues d’un ou
deux échantillons.
7.3.1
Cas d’un échantillon
On suppose que les données sont des réalisations de v.a. indépendantes et identiquement distribuées
selon une loi de Bernoulli.
prop.test(N, n, p=p0, alternative = alternative)
• N, le nombre de succès;
• n, l’effectif de l’échantillon;
• p, la probabilité sous H0 , par défaut p0 = 0.5;
• alternative =
– two.sided pour H1 : p 6= p0
– greater pour H1 : p > p0
– lower pour H1 : p < p0
(two.sided par défaut). . .
7.3.2
Cas de deux échantillons indépendants
On suppose que les données sont des réalisations de deux populations de v.a. indépendantes et
identiquement distribuées selon une loi de Bernoulli au sein de chaque population. Dans ce cas,
les arguments à donner sont:
• N, le vecteur des succès, c(N1,N2);
• n, le vecteur des effectifs des échantillons, c(n1,n2).
On ne définit pas p.
5
7.4
7.4.1
Test du χ2 : chisq.test
Test d’ajustement du χ2
H0 : “X suit la loi L” contre H1 : “X ne suit pas la loi L”.
Les données sont supposées indépendantes. On définit arbitrairement k classes. Pour que le test
basé sur une approximation soit valide, il faut que les effectifs de chaque classe soient supérieurs à
5.
chisq.test(x,p)
avec:
• x, le vecteur des effectifs par classes;
• p, le vecteur des probabilités théoriques des classes.
7.4.2
Test d’indépendance du χ2
X et Y , deux variables qualitatives à p et q modalités, mesurées sur une population de taille n.
chisq.test(Tab)
avec Tab la table de contingence de X et Y . Cette table peut être décrite (si calculée auparavant)
avec la fonction matrix ou calculée avec la fonction table.
ESTIMATION D’UN MODÈLE LINÉAIRE
Les commandes R pour l’analyse d’un modèle linéaire sont les mêmes, qu’il s’agisse d’une régression
linéaire, d’une ANOVA ou d’une ANCOVA.
8.1
8.1.1
Rappels sur les modèles linéaires
La régression linéaire
Y (variable à expliquer) et X (variable(s) explicative(s)) sont des variables quantitatives. On
suppose que:
Yi
µ+
=
p
X
βj xj,i + Ei
j=1
Ei
N (0, σ 2 ), indépendants et identiquement distribués
∼
Lorsque le modèle n’inclut qu’une variable explicative (p = 1), on parle de régression linéaire
simple. Si p > 1, on parle de régression linéaire multiple.
8.1.2
ANOVA (Analyse de la variance)
Y est quantitative et X est qualitatif.
ANOVA à 1 facteur
Le modèle s’écrit:
Yi,j
=
µ + αj + Ei,j
Ei,j
∼
N (0, σ 2 ), indépendants et identiquement distribués
où αj désigne l’effet spécifique associé à la modalité j du facteur (j = 1, . . . , J).
6
ANOVA à 2 facteurs
Le modèle s’écrit:
Yi,j,k
= µ + αj + βk + γj,k + Ei,j,k
Ei,j,k
∼
N (0, σ 2 ), indépendants et identiquement distribués
où
• αj désigne l’effet spécifique associé à la modalité j du premier facteur (j = 1, . . . , J),
• βk désigne l’effet spécifique associé à la modalité k du deuxième facteur (k = 1, . . . , K),
• γj,k sont les termes d’interaction.
S’il n’y a pas d’interaction entre les deux facteurs (ANOVA à deux facteurs sans interaction),
le modèle se simplifie de la façon suivante:
8.1.3
Yi,j,k
= µ + αj + βk + Ei,j,k
Ei,j,k
∼
N (0, σ 2 ), indépendants et identiquement distribués
ANCOVA (Analyse de la covariance)
Y est quantitative, X contient à la fois des variables explicatives quantitatives et qualitatives.
Lorsque le modèle contient une variable explicative qualitative et une variable explicative quantitative, le modèle s’écrit:
8.2
Yi,j
=
(µ + αj ) + (γ + βj )xi + Ei,j
Ei,j
∼
N (0, σ 2 ), indépendants et identiquement distribués
Commandes de base
Modèle linéaire y expliqué par x: NomDuModele= lm(y~x) où x et y sont les noms des vecteurs des
observations des variables X et Y .
8.3
Fonctions associées
• Vérifications graphiques des hypothèses (homoscédasticité, linéarité, normalité des résidus)
plot(NomDuModele)
• Tableau d’analyse de la variance et tests de type 1 des variables explicatives
anova(NomDuModele)
• Tableau d’analyse de la variance et tests de type 2 des variables explicatives
ANOVA(NomDuModele)
Cette commande nécessite le chargement du package car. Pour installer le package: install.packages(car),
pour charger le package pour la session courante: library(car).
• Estimations des coefficients et tests associés
summary(NomDuModele)
• Coefficients estimés
coef(NomduModele)
7
ELÉMENTS DE PROGRAMMATION R
9.1
La boucle for
La boucle for permet de répéter les mêmes instructions plusieurs fois lorsque le nombre de répétitions à réaliser est connu. Les répétitions sont gérées au moyen d’un compteur dont la valeur est
incrémentée à chaque itération de la boucle. Sous R, la boucle for se structure comme suit:
for (\ldots) {
\ldots
}
Les parenthèses (\ldots) servent à définir le compteur et les valeurs qu’il va prendre successivement à chaque tour de boucle. Les accolades {\ldots} servent à délimiter les actions à répéter
pour chacune des valeurs prises par le compteur. Par exemple, le code
for (i in 1:10) {
print(i)
}
permettra d’afficher tour à tour les valeurs de tous les entiers allant de 1 à 10 dans la console.
9.2
La fonction apply
La fonction apply() permet d’appliquer une fonction (par exemple une moyenne, une somme) à
chaque ligne ou chaque colonne d’un tableau de données. Cette fonction prend 3 arguments dans
l’ordre suivant:
• nom du tableau de données,
• un nombre pour dire si la fonction doit s’appliquer aux lignes (1), aux colonnes (2) ou aux
deux (c(1,2)),
• le nom de la fonction à appliquer.
Par exemple, apply(Tab,2,mean) permet de calculer la moyenne pour chaque variable (colonne)
du tableau de données Tab.
9.3
La fonction by
La fonction by permet d’appliquer un même traitement à tous les niveaux d’un facteur. Sa syntaxe
est la suivante:
by(variablefacteur,fonction)
où
• variable est le nom de la variable sur laquelle porte le calcul,
• facteur est le nom du facteur selon les niveaux duquel on répète le traitement,
• fonction est le nom de la fonction utilisée.
Par exemple, by(data$age,data$sexe,mean) permettrait de calculer un âge moyen par sexe à
partir des données du data.frame data.
8

Documents pareils