Statistiques de base
Intro
Pour entamer la nouvelle année dans la joie et la bonne humeur, je vous propose d'apprendre les bases de ce fantastique logiciel qu'est R. Il sert à réaliser de nombreux tests statistiques, des graphes qui ont trop la classe, et même à faire de la programmation de base.
Pour bénéficier de tous ces avantages, il faut d'abord le télécharger. En plus d'être génial, c'est gratuit :
http://cran.univ-lyon1.fr/
Vous pourrez avoir besoin de fonctions additionnelles qui nécessitent de télécharger des packages, qui peuvent être installés par la suite.
Maintenant, double-cliquer sur ce R trop sexy sur votre bureau, et laissez l'émotion vous envahir quand la magnifique fenêtre s'ouvre. Vous en avez rien à foutre ? Bandes d'insensibles !
Vous verrez la console en haut à gauche de votre écran. Elle sert à taper directement des formules. A part sous linux où on est obligé de passer par elle, il y a un meilleur moyen d'utiliser R : avec des scripts.
Pour créer un script, il suffit d'aller dans fichier et de cliquer sur "Nouveau script". Et une feuille apparaîtra, comme par magie, à droite de l'écran. Pour plus de lisibilité, je vous conseille de l'agrandir, afin qu'elle prène toute la partie droite de l'écran. La grande force du script, c'est que vous gardez une trace de tout ce que vous avez fait, ce qui sert quand il s'agit de repérer des erreurs, mais aussi de pouvoir répéter un grand nombre d'analyses, par exemple lorsque l'on a modifié des données.
Apprendre des lignes de commande par cœur étant chiant et inutile, nous allons ouvrir un jeu de données classique : crabs. Pour ce faire, il faut télécharger le package « MASS ». Il est inclus dans la version la plus récente de R, mais il faut quand même le charger. Pour cela, il suffit d'aller dans package, puis charger package (il ne faut pas dézipper le fichier).
Voyons voir à quoi ressemble ce fameux jeu de données. Pour ce faire, il suffit de taper crabs, dans la console ou directement dans le script. Pour exécuter le script, n'oubliez pas de taper ctrl R, en ayant sélectionné les lignes désirées
Nous voyons 7 colonnes : l'espèce, le sexe, un numéro, et 4 données morphométriques.
Fonctions de base : summary()
On peut maintenant commencer à jouer et utiliser des fonctions. Summary() est une fonction très utile, qui calcule automatiquement des statistiques de base, qui dépendent des données de départ.
summary (crabs)
sp sex index FL RW CL
B:100 F:100 Min. : 1.0 Min. : 7.20 Min. : 6.50 Min. :14.70
O:100 M:100 1st Qu.:13.0 1st Qu.:12.90 1st Qu.:11.00 1st Qu.:27.27
Median :25.5 Median :15.55 Median :12.80 Median :32.10
Mean :25.5 Mean :15.58 Mean :12.74 Mean :32.11
3rd Qu.:38.0 3rd Qu.:18.05 3rd Qu.:14.30 3rd Qu.:37.23
Max. :50.0 Max. :23.10 Max. :20.20 Max. :47.60
CW BD
Min. :17.10 Min. : 6.10
1st Qu.:31.50 1st Qu.:11.40
Median :36.80 Median :13.90
Mean :36.41 Mean :14.03
3rd Qu.:42.00 3rd Qu.:16.60
Max. :54.60 Max. :21.60
Pour espèce et sexe, on voit le nombre de crabes bleus et orange, et celui de mâles et de femelles. Pour les données numériques, on voit le minimum, le premier quartile, la médiane, la moyenne, le second quartile et le maximum. C'est du chinois ? C'est normal.
Je ne vous ferais pas l'affront de vous expliquer le minimum, le maximum et la moyenne. Mais les quartiles sot généralement moins connus. Le principe est tout con. La médiane est la valeur pour laquelle 50% des valeurs sont supérieures et 50% des valeurs sont inférieures. Par exemple, si le salaire médian d'une population est de 2000 euros, la moitié des gens gagnent moins de 2000, et la moitié gagne plus de 2000. Le principe des quartiles et le même, sauf que les proportions sont 25/75. 25% des valeurs sont inférieures au premier quartile des valeurs sont inférieures au troisième quartile. Le deuxième quartile est la médiane, pas la peine de ré expliquer.
Sélection
Maintenant, voyons comment sélectionner des lignes, des valeurs et des colonnes.
C'est assez simple au final. Une valeur est exprimée comme ça :
Données[Lignes, colonnes]
Dans notre cas, si on veut choisir la première valeur de la première ligne, il suffira de taper :
crabs[1,1]
Mais comment faire en cas de sélection de plusieurs valeurs ? Il y a plusieurs solutions.
Dans le cas de données continues, il faut utiliser « : ». Pour sélectionner les lignes de a à b de la ligne 1, il faut donc taper :
crabs[a:b, 1]
Pour les données discontinues, il faut utiliser c() :
crabs [c(1,2,3,4,5) , 1]
c(a,b) est une fonction permettant la concaténation, c'est-à-dire mettre plusieurs valeurs à la suite. On peut faire des sélections assez complexes :
crabs [c(1:5, 10:11, 50:58), c(1:2, 4, 6)]
On peut sélectionner une ligne ou une colonne directement, à condition qu'elle soit nommée :
crabs$sex
On peut aussi appliquer un critère à la sélection, la syntaxe n'est pas évidente, donc mieux vaut faire un copier-coller pour l'utiliser :
crabs[which(crabs$sp=="b")
On ne sélectionne que les crabes de l'espèce bleue.
L'attribution
Faire des sélection, c'est bien, mais leur donner un nom pour éviter les lignes de commandes à rallonge, c'est encore mieux. Pour cela, il y a deux syntaxes équivalentes :
Espece = crabs$sp ou Espece<-crabs$sp
Le = n'est pas un égal au sens mathématique, ça veut dire que crabs$sp remplace la valeur Espece (que l'on vient d'inventer).
Quelques petits conseils pour choisir les noms :
Evitez les noms à rallonge, il y a un risque de fautes d’orthographe (et donc, ça ne marchera pas).
Evitez les noms trop courts style a, quand vous rouvrirez votre script dans 6 mois, vous aurez du mal à savoir ce que c'est.
Mettre des majuscules, même au milieu des mots, pour accrocher l'oeil, ex : EspBlSexM.
Statistiques de base
Nous avons déjà vu la moyenne et les quartiles, attaquons nous maintenant au reste des statistiques de base.
L'écart type calcule l'écart moyen à la moyenne et la variance l'écart moyen à la moyenne au carré :
var(données)
sd(données)
Le mode est la valeur la plus représentée, mais je ne sais plus comment le calculer avec R.
C'est à peu près tout, passons maintenant à l'import de données et la génération de données aléatoires
Les données
Vous vous doutez qu'on ne va pas travailler des heures sur crabs. Heureusement, on peut importer des tableaux de données Excel. Pour ce faire, il faut utiliser deux fonctions à la suite :
données = file.choose()
Données = read.table(données, header = TRUE, sep = « »)
La fonction file.choose() ouvrira l'explorateur Windows et vous permettra de choisir le bon fichier. La fonction read.table() permet d'uploader les données tout en choisissant des modalités. Si on met header = TRUE, la première lige sera considérée comme le titre, si on met header = FALSE, il n'y aura pas de titre. Sep indique quel est le séparateur entre les données. Si on met sep = « », le séparateur entre les différentes colonnes sera l'espace. Évitez le point en guise de séparateur, il est utilisé à la place de la virgule, ce qui implique qu'il faille remplacer toutes les virgules du fichier Excel par des points (utilisez ctrl F pour ça).
On peut également générer des données aléatoires, ce qui est utile pour faire des simulations. On a le choix entre plusieurs modèle :
rnorm (n, mean = a, sd = b) permet de générer n valeurs suivent une loi normale de moyenne a et d'écart type b.
runif(n, min = a, max = b) permet de générer n valeurs suivant une loi uniforme de minimum a et de maximum b. Toutes les valeurs ont la même probabilité.
On peut utiliser d'autres lois, mais ceux là sont vraiment les plus courantes.
Pour finir
C'était la première partie d'une longue série consacrée à R, et j'espère avoir clair et synthétique. Ça devrait être utile aux M1 qui ont leur module de stats, et à ceux qui sont contraints d'utiliser les stats pour un stage ou autre.
A venir : graphes, tests non paramétriques et paramétriques, modèles linéaires, statistiques multivariées, et peut-être la morphométrie.
Si vous avez des questions, n'hésitez pas. Vous pouvez aussi écrire des articles sur votre spécialité, c'est intéressant et peut être très utile pour les M1/M2.
Mich Mich le Gastrotriche
Intro
Pour entamer la nouvelle année dans la joie et la bonne humeur, je vous propose d'apprendre les bases de ce fantastique logiciel qu'est R. Il sert à réaliser de nombreux tests statistiques, des graphes qui ont trop la classe, et même à faire de la programmation de base.
Pour bénéficier de tous ces avantages, il faut d'abord le télécharger. En plus d'être génial, c'est gratuit :
http://cran.univ-lyon1.fr/
Vous pourrez avoir besoin de fonctions additionnelles qui nécessitent de télécharger des packages, qui peuvent être installés par la suite.
Maintenant, double-cliquer sur ce R trop sexy sur votre bureau, et laissez l'émotion vous envahir quand la magnifique fenêtre s'ouvre. Vous en avez rien à foutre ? Bandes d'insensibles !
Vous verrez la console en haut à gauche de votre écran. Elle sert à taper directement des formules. A part sous linux où on est obligé de passer par elle, il y a un meilleur moyen d'utiliser R : avec des scripts.
Pour créer un script, il suffit d'aller dans fichier et de cliquer sur "Nouveau script". Et une feuille apparaîtra, comme par magie, à droite de l'écran. Pour plus de lisibilité, je vous conseille de l'agrandir, afin qu'elle prène toute la partie droite de l'écran. La grande force du script, c'est que vous gardez une trace de tout ce que vous avez fait, ce qui sert quand il s'agit de repérer des erreurs, mais aussi de pouvoir répéter un grand nombre d'analyses, par exemple lorsque l'on a modifié des données.
Apprendre des lignes de commande par cœur étant chiant et inutile, nous allons ouvrir un jeu de données classique : crabs. Pour ce faire, il faut télécharger le package « MASS ». Il est inclus dans la version la plus récente de R, mais il faut quand même le charger. Pour cela, il suffit d'aller dans package, puis charger package (il ne faut pas dézipper le fichier).
Voyons voir à quoi ressemble ce fameux jeu de données. Pour ce faire, il suffit de taper crabs, dans la console ou directement dans le script. Pour exécuter le script, n'oubliez pas de taper ctrl R, en ayant sélectionné les lignes désirées
Nous voyons 7 colonnes : l'espèce, le sexe, un numéro, et 4 données morphométriques.
Fonctions de base : summary()
On peut maintenant commencer à jouer et utiliser des fonctions. Summary() est une fonction très utile, qui calcule automatiquement des statistiques de base, qui dépendent des données de départ.
summary (crabs)
sp sex index FL RW CL
B:100 F:100 Min. : 1.0 Min. : 7.20 Min. : 6.50 Min. :14.70
O:100 M:100 1st Qu.:13.0 1st Qu.:12.90 1st Qu.:11.00 1st Qu.:27.27
Median :25.5 Median :15.55 Median :12.80 Median :32.10
Mean :25.5 Mean :15.58 Mean :12.74 Mean :32.11
3rd Qu.:38.0 3rd Qu.:18.05 3rd Qu.:14.30 3rd Qu.:37.23
Max. :50.0 Max. :23.10 Max. :20.20 Max. :47.60
CW BD
Min. :17.10 Min. : 6.10
1st Qu.:31.50 1st Qu.:11.40
Median :36.80 Median :13.90
Mean :36.41 Mean :14.03
3rd Qu.:42.00 3rd Qu.:16.60
Max. :54.60 Max. :21.60
Pour espèce et sexe, on voit le nombre de crabes bleus et orange, et celui de mâles et de femelles. Pour les données numériques, on voit le minimum, le premier quartile, la médiane, la moyenne, le second quartile et le maximum. C'est du chinois ? C'est normal.
Je ne vous ferais pas l'affront de vous expliquer le minimum, le maximum et la moyenne. Mais les quartiles sot généralement moins connus. Le principe est tout con. La médiane est la valeur pour laquelle 50% des valeurs sont supérieures et 50% des valeurs sont inférieures. Par exemple, si le salaire médian d'une population est de 2000 euros, la moitié des gens gagnent moins de 2000, et la moitié gagne plus de 2000. Le principe des quartiles et le même, sauf que les proportions sont 25/75. 25% des valeurs sont inférieures au premier quartile des valeurs sont inférieures au troisième quartile. Le deuxième quartile est la médiane, pas la peine de ré expliquer.
Sélection
Maintenant, voyons comment sélectionner des lignes, des valeurs et des colonnes.
C'est assez simple au final. Une valeur est exprimée comme ça :
Données[Lignes, colonnes]
Dans notre cas, si on veut choisir la première valeur de la première ligne, il suffira de taper :
crabs[1,1]
Mais comment faire en cas de sélection de plusieurs valeurs ? Il y a plusieurs solutions.
Dans le cas de données continues, il faut utiliser « : ». Pour sélectionner les lignes de a à b de la ligne 1, il faut donc taper :
crabs[a:b, 1]
Pour les données discontinues, il faut utiliser c() :
crabs [c(1,2,3,4,5) , 1]
c(a,b) est une fonction permettant la concaténation, c'est-à-dire mettre plusieurs valeurs à la suite. On peut faire des sélections assez complexes :
crabs [c(1:5, 10:11, 50:58), c(1:2, 4, 6)]
On peut sélectionner une ligne ou une colonne directement, à condition qu'elle soit nommée :
crabs$sex
On peut aussi appliquer un critère à la sélection, la syntaxe n'est pas évidente, donc mieux vaut faire un copier-coller pour l'utiliser :
crabs[which(crabs$sp=="b")
On ne sélectionne que les crabes de l'espèce bleue.
L'attribution
Faire des sélection, c'est bien, mais leur donner un nom pour éviter les lignes de commandes à rallonge, c'est encore mieux. Pour cela, il y a deux syntaxes équivalentes :
Espece = crabs$sp ou Espece<-crabs$sp
Le = n'est pas un égal au sens mathématique, ça veut dire que crabs$sp remplace la valeur Espece (que l'on vient d'inventer).
Quelques petits conseils pour choisir les noms :
Evitez les noms à rallonge, il y a un risque de fautes d’orthographe (et donc, ça ne marchera pas).
Evitez les noms trop courts style a, quand vous rouvrirez votre script dans 6 mois, vous aurez du mal à savoir ce que c'est.
Mettre des majuscules, même au milieu des mots, pour accrocher l'oeil, ex : EspBlSexM.
Statistiques de base
Nous avons déjà vu la moyenne et les quartiles, attaquons nous maintenant au reste des statistiques de base.
L'écart type calcule l'écart moyen à la moyenne et la variance l'écart moyen à la moyenne au carré :
var(données)
sd(données)
Le mode est la valeur la plus représentée, mais je ne sais plus comment le calculer avec R.
C'est à peu près tout, passons maintenant à l'import de données et la génération de données aléatoires
Les données
Vous vous doutez qu'on ne va pas travailler des heures sur crabs. Heureusement, on peut importer des tableaux de données Excel. Pour ce faire, il faut utiliser deux fonctions à la suite :
données = file.choose()
Données = read.table(données, header = TRUE, sep = « »)
La fonction file.choose() ouvrira l'explorateur Windows et vous permettra de choisir le bon fichier. La fonction read.table() permet d'uploader les données tout en choisissant des modalités. Si on met header = TRUE, la première lige sera considérée comme le titre, si on met header = FALSE, il n'y aura pas de titre. Sep indique quel est le séparateur entre les données. Si on met sep = « », le séparateur entre les différentes colonnes sera l'espace. Évitez le point en guise de séparateur, il est utilisé à la place de la virgule, ce qui implique qu'il faille remplacer toutes les virgules du fichier Excel par des points (utilisez ctrl F pour ça).
On peut également générer des données aléatoires, ce qui est utile pour faire des simulations. On a le choix entre plusieurs modèle :
rnorm (n, mean = a, sd = b) permet de générer n valeurs suivent une loi normale de moyenne a et d'écart type b.
runif(n, min = a, max = b) permet de générer n valeurs suivant une loi uniforme de minimum a et de maximum b. Toutes les valeurs ont la même probabilité.
On peut utiliser d'autres lois, mais ceux là sont vraiment les plus courantes.
Pour finir
C'était la première partie d'une longue série consacrée à R, et j'espère avoir clair et synthétique. Ça devrait être utile aux M1 qui ont leur module de stats, et à ceux qui sont contraints d'utiliser les stats pour un stage ou autre.
A venir : graphes, tests non paramétriques et paramétriques, modèles linéaires, statistiques multivariées, et peut-être la morphométrie.
Si vous avez des questions, n'hésitez pas. Vous pouvez aussi écrire des articles sur votre spécialité, c'est intéressant et peut être très utile pour les M1/M2.
Mich Mich le Gastrotriche