Le forum officiel de la franc-taxonnerie

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le forum officiel de la franc-taxonnerie

Forum des Francs-Taxons

-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

+4
Exaptation
Crocoduck
Nicobola
Mich Mich
8 participants

    Les statistiques avec R

    Mich Mich
    Mich Mich
    Admin


    Messages : 93
    Date d'inscription : 18/09/2011
    Age : 36
    Localisation : Tanière du Gastrotriche

    Les statistiques avec R Empty Les statistiques avec R

    Message  Mich Mich Lun 9 Jan - 10:10

    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
    Nicobola
    Nicobola


    Messages : 105
    Date d'inscription : 18/09/2011
    Age : 35
    Localisation : Quelque part entre la France et la Scandinavie

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Nicobola Lun 9 Jan - 12:02

    o_O WTF Mich-mich ?!!
    Écris un blog sinon :p
    Crocoduck
    Crocoduck


    Messages : 74
    Date d'inscription : 04/10/2011

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Crocoduck Mar 10 Jan - 19:01

    Ben quoi j'trouve ça utile...
    Mais si j'étais toi Mich je le posterai sur le forum SEP, ça pourrait servir à plus de gens.

    http://mastersep.forumetudiant.net/
    Exaptation
    Exaptation


    Messages : 69
    Date d'inscription : 28/09/2011
    Age : 39

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Exaptation Mar 10 Jan - 22:23

    Moi je kiff
    Bonobo
    Bonobo


    Messages : 30
    Date d'inscription : 20/09/2011
    Age : 37
    Localisation : Clipperton

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Bonobo Jeu 12 Jan - 17:40

    Franchement, j'ai pas tout lu et je vais surment rien comprendre mais putain tu gère mich mich!!!
    Mich Mich
    Mich Mich
    Admin


    Messages : 93
    Date d'inscription : 18/09/2011
    Age : 36
    Localisation : Tanière du Gastrotriche

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Mich Mich Jeu 23 Fév - 18:26

    Voici la deuxième partie, c'est un bout du rapport de stage que je suis en train de faire (c'est pour Juillet, faut que je me dépêche^^). Il y aura un peu de redondance avec le premier, ça ne parle que de théorie, pas de R. Enjoy.

    1) Notions de base


    a) Les descripteurs


    La moyenne se calcule en divisant la somme des valeurs par le nombre de valeurs. Elle donne une estimation de la tendance centrale, mais est très sensible aux valeurs extrêmes.
    Les quantiles sont les valeurs qui partitionnent les données en plusieurs ensembles de même effectif. Les plus utilisés sont la médiane, les quartiles et les déciles.
    La médiane coupe un jeu de données en deux : il y a autant de valeurs supérieures à la médiane que de valeurs qui lui sont inférieures.
    Les quartiles partitionnent les données en quatre ensembles. Un quart des valeurs sont inférieures au premier quartile, la moitié des valeurs sont inférieures au deuxième quantile (il correspond à la médiane) et trois quarts des valeurs sont inférieures au troisième quartile. Le principe des déciles est identique, 10% des valeurs sont inférieures au premier décile, et ainsi de suite. Les quantiles sont peu sensibles aux valeurs extrêmes et servent à caractériser plus finement la distribution des données qu’avec une valeur de moyenne.

    L’écart type correspond à l’écart moyen à la moyenne. La variance correspond à l’écart type élevé au carré. On distingue deux types de variance et d’écart type : population ou échantillon.
    L’écart type population est utilisé pour les jeux de données qui ont plus de 50 valeurs, tandis que l’écart type échantillon est utilisé pour les jeux de données de moins de 50 valeurs. L’écart type est une mesure de la dispersion.

    Le mode est la valeur la plus fréquente d’un jeu de données. Il est peu sensible aux valeurs extrêmes, à l’inverse de la moyenne.


    b) La loi normale


    Cette loi, également appelée gaussienne ou courbe en cloche, est caractérisée par un écart type - l’écart moyen à la moyenne - et une moyenne, et est appliquée à une distribution. Elle résulte généralement d’une variation aléatoire d’une variable.

    Il arrive que le jeu de données soit un mélange de deux distributions normales. Si les deux distributions ont une moyenne et un écart type similaires, alors la distribution observée sera une loi normale. Par contre, si les moyennes et les écart type sont différents, les deux distributions vont se superposer : on parle alors de loi bimodale.

    Par exemple, la courbe de taille des femmes suit une loi normale, la courbe de taille des hommes suit aussi une loi normale, mais si on trace la courbe de taille sans prendre en compte le sexe, on aura une distribution bimodale. Calculer la moyenne et l’écart type d’une telle distribution n’a alors aucun sens.


    c) Tests paramétriques et non paramétriques


    On distingue deux grandes familles de tests statistiques : les tests paramétriques et non paramétriques. Les tests paramétriques ne sont applicables qu’aux grands jeux de données, c’est-à-dire plus de 50 valeurs environ. Ils supposent que les échantillons que l’on compare suivent tous une loi normale. Un test de Shapiro sera effectué avant chaque test pour voir s’il faut choisir un test paramétrique ou non.


    d) L’homoscédasticité


    On parle d’homoscédasticité entre deux échantillons lorsque leurs variances sont égales. Il existe plusieurs tests pour vérifier l’homoscédasticité : le test de Fisher, le test de Levène et le test de Bartlett. L’homoscédasticité peut être un critère
    de choix d’un test statistique.


    e) p-value et risque de première espèce


    Un test statistique suppose une hypothèse que l’on appelle H0 et qui change selon la nature du test. La p-value est la probabilité de se tromper en rejetant H0. Par exemple, l’hypothèse H0 d’un test de Student est : « Les moyennes sont égales ». Si la p-value du test est de 60%, je peux rejeter l’hypothèse « les moyennes sont égales » avec 60% de chances de me tromper.

    Le risque de première est le seuil pour lequel on considère que la probabilité reste acceptable. Cette probabilité, généralement notée alpha, a une valeur de 5%. Dans l’exemple précédant, la p-value est largement supérieure à un seuil de 5%, donc on ne rejette pas H0. On peut donc en conclure que les moyennes sont égales.


    2) Les analyses univariées


    a) Test de Student


    Le test de Student est un test paramétrique permettant de tester l’égalité des moyennes de deux échantillons.


    b) Test du Chi²


    Le test du Chi² est un test non paramétrique qui permet de tester si les échantillons sont issus de la même population ou non.


    c) Test de Shapiro-Wilks


    Le test de Shapiro-Wilks permet de vérifier si les données suivent ou pas une loi normale.


    d) Test de Wilcoxon


    Le test de Wilcoxon est un test non paramétrique qui permet de voir si deux échantillons sont issus d’une même population.


    3) Les analyses multivariées


    a) Modèle linéaire généralisé, ANOVA et MANOVA


    Le modèle linéaire consiste à exprimer une variable à expliquer Y en fonction d’une variable explicative X. Cette relation prend la forme d’une droite, de formule Y = aX+b, avec a le coefficient directeur de la droite, qui correspond à sa pente et b l’ordonnée à l’origine, c’est-à-dire la valeur de Y quand X=0.

    Ces coefficients sont calculés grâce à la méthode des moindres carrés. Plusieurs droites de régression sont testées. Pour chaque droite de régression, le carré de la distance entre chaque point de coordonnée (X,Y) et la droite est calculé. Cette distance peut être calculée de trois façons différentes, mais toutes les régressions réalisées dans ce rapport suivront le critère de distance orthogonale, c’est-à-dire que la droite caractérisant la distance est perpendiculaire à la droite de régression. Le carré de la distance à un point de la droite est appelé résidu. Pour chaque droite de régression testée, la somme des résidus est calculée. La droite de régression choisie est celle qui a la somme de résidus la plus faible

    A chaque droite de régression correspond un coefficient de détermination nommé R². Il correspond au pourcentage de la variance de Y expliqué par la variance de X. Un coefficient de corrélation non nul signifie que les variables X et Y sont liées. Cela ne veut par contre pas dire qu’il y a une relation de cause à effet entre les deux variables. Le lien entre les deux variables X et Y peut venir du fait que ces deux variables sont corrélées toutes deux à une autre variable.

    Un coefficient de détermination est significatif si sa valeur est supérieure à 0.8. Quelle que soit sa valeur, un test statistique, l’ANOVA, permet de vérifier si la valeur de R² est significativement différente de 0. Si le R² n’est pas significativement différent de 0, alors les variables ne sont pas liées. Le R² peut avoir une valeur élevée, mais ne pas être significativement différent de 0, les deux variables ne sont alors pas liées.

    Il existe cinq conditions d’application de la régression, deux à vérifier avant de réaliser l’analyse, et trois autres à vérifier après.

    - Les données doivent être indépendantes pour éviter le phénomène d’auto-corrélation. Les données spatiales ou temporelles ne sont pas indépendantes, mais il est possible de faire en sorte qu’elles le soient grâce à de judicieuses transformations.

    - Les données doivent suivre une loi normale.

    - La notion d’homoscédasticité des résidus d’une régression signifie que la variance des résidus est constante quelle que soit la valeur de la variable X, c’est-à-dire que les valeurs des résidus ne seront pas surestimées ou sous-estimées suivant la valeur de X.

    - Les résidus doivent suivre une loi normale.

    - Absence de valeurs aberrantes (peut être testé avec distance de Cook)

    Il est possible de prendre en compte plus d’une variable explicative grâce à une régression multiple. La droite dispose alors de plusieurs coefficients directeurs qui sont chacun associés à une variable explicative. Le grand nombre de variables explicatives permet de construire un grand nombre de droites ayant une somme de résidus similaires. Pour les départager, on calcule l’Indice d’Akaike (AIC) ou le Critère Bayésien (BIC) de plusieurs modèles. Si les AIC sont égaux, on choisit le modèle qui compte le moins de variables explicatives. En effet, si la vraisemblance du modèle est la même que l’on prenne en compte ou pas une variable, cela signifie que cette dernière n’apporte aucune information.

    Il existe deux tests statistiques basés sur le modèle linéaire : l’ANOVA (ANalysis Of Variance) et sa version multivariée, la MANOVA (Multiple ANalysis Of Variance).

    L’ANOVA permet de tester si un paramètre à un impact sur le jeu de données comprenant une variable explicative et une variable à expliquer.
    La MANOVA permet de tester l’impact d’un paramètre sur un jeu de données composé d’une variable à expliquer et de plusieurs variables explicatives.


    b) ACP et PCO


    L’Analyse en Composantes Principales (ACP) consiste à réduire le nombre de variables d’un jeu de données. De nouvelles variables, appelées Axes Principaux, sont créées en combinant les variables existantes, de manière à maximiser la variance. Ces Axes Principaux sont orthogonaux, et donc indépendants.

    Cette méthode sert notamment à pouvoir visualiser des jeux de données multidimensionnels à l’aide de graphiques en deux dimensions. Les axes de variance trop faible sont écartés des analyses, car ils représentent généralement des variables non pertinentes.

    Réaliser une ACP avant d’appliquer une MANOVA permet d’augmenter la puissance du test, car celle-ci décroît à mesure que le nombre de variables augmente. Il est également possible de réaliser une régression sur les Axes Principaux, qui ont l’avantage d’être indépendants. Cependant, l’interprétation des résultats est assez difficile.

    L’Analyse en Coordonnées Principales (PCO) est basée sur le même principe, mais est appliquée à une matrice de distance.


    c) AFC


    L’Analyse Factorielle des Correspondances est similaire à une Analyse en Composante Principale, mais elle ne s’applique qu’aux données discontinues discrètes, généralement des matrices d’absence/présence.


    d) AFD


    L’Analyse Factorielle Discriminante est utilisée lorsque l’on a montré qu’une variable a un effet sur le jeu de données grâce à une MANOVA. Elle permet de visualiser l’effet de cette variable.


    Je dirais comment faire tout ça dans la joie et la bonne humeur avec notre ami R dans un prochain post.
    Tiktaalik
    Tiktaalik


    Messages : 133
    Date d'inscription : 18/09/2011
    Age : 123
    Localisation : Au-dessus du Grand Actinistien

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Tiktaalik Jeu 23 Fév - 19:56

    Putain mais respect Mich-Mich !!! Je suis sûr que ce topic sauvera la vie (et les résultats) de plus d'un d'entre nous à l'avenir...
    Laetilicia
    Laetilicia


    Messages : 97
    Date d'inscription : 10/10/2011
    Age : 34
    Localisation : Dans le décor

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Laetilicia Jeu 23 Fév - 20:27

    Je plussoie Lucas, merci Mich-Mich !
    Bulbi
    Bulbi


    Messages : 30
    Date d'inscription : 24/10/2011
    Age : 34
    Localisation : Dans sa pokéball

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Bulbi Dim 26 Fév - 23:54

    Tu tombes à pic Mich-Mich, j'ai justement un partiel de stats (M1S2) dans exactement 12 heures !
    Merciiiiiiiiiiiiiiiiii
    Tiktaalik
    Tiktaalik


    Messages : 133
    Date d'inscription : 18/09/2011
    Age : 123
    Localisation : Au-dessus du Grand Actinistien

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Tiktaalik Lun 27 Fév - 8:06

    J'admire ton endurance, mais tu pourrais dormir un peu quand même :p
    Mich Mich
    Mich Mich
    Admin


    Messages : 93
    Date d'inscription : 18/09/2011
    Age : 36
    Localisation : Tanière du Gastrotriche

    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Mich Mich Lun 27 Fév - 19:40

    Content que ça serve ! Je vais bientôt faire un post sur les tests univariés avec R, j'essaye de rendre le tout assez lisible (le mieux c'est de faire une espèce de clé d'identification).

    Contenu sponsorisé


    Les statistiques avec R Empty Re: Les statistiques avec R

    Message  Contenu sponsorisé


      La date/heure actuelle est Ven 10 Mai - 7:40