La récap du mois de novembre 2021

Voici ce qui a retenu mon attention dans les domaines des biostatistiques, de la recherche clinique, de l’analyse de données au sens large, et de l’utilisation de R, durant ce mois de novembre 2021.

LA récap du mois de novembre 2021

Table des matières

Data-visualisation

Visualiser facilement les principales distribution

Le package vistributions permet de représenter les principales distributions (Binomiale, Student, Normale, Fisher, Chi2), avec ou sans les quantiles, en bilatéral ou unilatéral. Je trouve que c’est un bon outil pour visualiser les distributions théoriques des tests statistiques, les valeurs critiques, les risques alpha, la notion d’hypothèse alternative uni et bilatéral, etc.

Voici quelques exemples :

#install.packages("vistributions")
library(vistributions)
vdist_normal_plot(mean = 25, sd = 10)
vdist_normal_perc(0.95, mean = 25, sd = 10, type = 'both')

vdist_normal_perc(0.95, mean = 25, sd = 10, type = 'upper')
vdist_normal_perc(0.95, mean = 25, sd = 10, type = 'lower') 
Quelques distributions théoriques

Ou encore : 

vdist_binom_plot(10, 0.3)
vdist_chisquare_perc(0.10, 8, 'lower')
vdist_f_perc(0.20, 4, 5, 'upper')
vdist_t_perc(0.11, 8, 'lower') 
D'autres exemples de distributions théoriques

Exemples de codes ggplot2 pour des graphiques très élégants

J’ai découvert le site R CHARTS

Ce site propose des exemples de codes pour réaliser des graphiques vraiment très évolués et élégants avec ggplot 2, en pas à pas. 

Par exemple ce type de graph :  

Ce site ressemble un peu au site The R Graph Gallery, mais dans une version plus évoluée, mais moins complète. Les graphiques proposés sont vraiment très beaux.

Vous trouverez aussi des infos sur les fonctions graphiques de bases, et sur la création de palettes de couleurs.

Et aussi pleins de tutos sur des thèmes très variés comme l’importation des données, leur manipulation etc…

C’est vraiment une belle découverte !

Biostatistiques

Illustration de la régression LOESS

J’ai découvert une animation de David Robison pour expliquer la régression LOESS. En quelques mots, la régression LOESS est une approche non paramétrique qui permet d’ajuster une courbe lissée à des données, en réalisant des régressions linéaires sur des intervalles de points (des fenêtres de valeurs sur l’axe des x) qui se déplacent. On dit aussi que c’est une régression de voisinage puisqu’on considère uniquement les points voisins (ceux de l’intervalle), avec une pondération plus forte pour les points les plus proches. La taille de la fenêtre correspond au paramètre nommé span.

Cliquez sur l’image pour visualiser l’animation !

Et si vous souhaitez en savoir plus sur ces régressions LOESS vous pouvez consulter l’article de Lise Vaudor ici

Des notices techniques pour les calculs statistiques

Sur Twitter, j’ai découvert le site Omni Calculator statistics qui propose des notices techniques sur une multitude de calculs statistiques.

J’ai particulièrement apprécié les sections :

  • Descriptive statistics calculators 📊
  • Inferential statisctics calculators 📉

Par exemple, ici la page sur le test de Mac Nemar :

Une publication de type Guidelines pour les expérimentations avec des animaux de laboratoire

C’est une publication assez ancienne (2002), cosignée par Douglas Altman (un des papes des biostatistiques),   qui pose parfaitement les bases pour concevoir et analyser des expérimentations avec des animaux en laboratoires. Je pense que tous les étudiants qui mènent ce type d’expérimentations devraient en prendre connaissance. Ça leur permettrait d’éviter, ou au moins de prendre conscience des problèmes qui peuvent survenir au niveau du design expérimental et / ou de l’analyse statistique des données.

Une publication de réflexion pour améliorer les pratiques statistiques

Il s’agit d’une publication qui liste des pistes de réflexion pour améliorer les pratiques statistiques. Je penses que ces pistes de réflexions dépassent largement les sciences psychologiques, elles sont assez généralistes et assez intéressantes.

Un article d’état de l’art sur la sélection des variables dans les modèles multivariés

Il s’agit d’un article plutôt technique, co signé par Franck Harrel (un autre pape des biostatistiques !).

Ce sujet de la sélection des variables qui m’intéresse beaucoup parce que j’ai appris à faire des sélections descendantes (backward) dans le domaine de la santé. Et dans le domaine environnemental, il me semble que cela se fait moins. Il y a d’ailleurs un très bon article de blog à ce sujet , publié par Florian Hartig “Yes, statistical errors are slowing down scientific progress!” (section Analysis strategies).

Dans ce post, Florian Hartig crée 100 variables explicatives de taille 200, indépendamment les une des autres, ainsi qu’une variable réponse également indépendante des 100 variables explicatives Puis il ajuste un modèle de régression linéaire multiple, expliquant la variable réponse à l’aide des 100 variables prédictives, 2 sont alors significatives (on en attend 5 en moyenne, c’est OK).

Dans un second temps, il réalise une sélection des 100 variables explicatives par une procédure basée sur le critère d’Akaiké (AIC), 28 sont conservées. Puis, il ajuste un nouveau modèle de régression linéaire multiple avec ces 28 variables sélectionnées, et cette fois 15 sont significatives….C’est un peu (beaucoup) problématique !

Voici le code si vous voulez essayer :

# This example shows how AIC selection, followed by a conventional regression analysis of the selected model, massively inflates false positives. CC BY-NC-SA 4.0 Florian Hartig 

set.seed(1)
library(MASS)

dat = data.frame(matrix(runif(20000), ncol = 100))
dat$y = rnorm(200)
fullModel = lm(y ~ . , data = dat)
summary(fullModel)
## 
## Call:
## lm(formula = y ~ ., data = dat)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.95280 -0.39983 -0.01572  0.46104  1.61967 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  2.19356    1.44518   1.518   0.1322  
## X1           0.58079    0.32689   1.777   0.0787 .
## X2          -0.52687    0.32701  -1.611   0.1103  
## X3           0.27721    0.33117   0.837   0.4046  
## X4          -0.18342    0.30443  -0.602   0.5482  
## X5          -0.18544    0.29011  -0.639   0.5242  
## X6          -0.18382    0.31406  -0.585   0.5597  
## X7          -0.46290    0.28349  -1.633   0.1057  
## X8          -0.21527    0.29856  -0.721   0.4726  
## X9           0.12216    0.30359   0.402   0.6883  
## X10         -0.02594    0.33828  -0.077   0.9390  
## X11          0.25669    0.29482   0.871   0.3860  
## X12         -0.10183    0.30164  -0.338   0.7364  
## X13          0.49507    0.33438   1.481   0.1419  
## X14          0.16642    0.33659   0.494   0.6221  
## X15          0.11402    0.32964   0.346   0.7302  
## X16         -0.17640    0.31619  -0.558   0.5782  
## X17         -0.03129    0.31830  -0.098   0.9219  
## X18         -0.28201    0.29681  -0.950   0.3444  
## X19          0.02209    0.29664   0.074   0.9408  
## X20          0.25063    0.29855   0.839   0.4032  
## X21         -0.02479    0.30556  -0.081   0.9355  
## X22         -0.01187    0.31265  -0.038   0.9698  
## X23         -0.58731    0.31491  -1.865   0.0651 .
## X24         -0.27343    0.32894  -0.831   0.4078  
## X25         -0.22745    0.29223  -0.778   0.4382  
## X26          0.18606    0.35755   0.520   0.6040  
## X27         -0.26998    0.33302  -0.811   0.4195  
## X28          0.09683    0.32235   0.300   0.7645  
## X29          0.36746    0.32915   1.116   0.2670  
## X30         -0.26027    0.31335  -0.831   0.4082  
## X31         -0.07890    0.28822  -0.274   0.7849  
## X32         -0.07879    0.32662  -0.241   0.8099  
## X33         -0.27736    0.34542  -0.803   0.4239  
## X34         -0.21118    0.34514  -0.612   0.5420  
## X35          0.17595    0.30706   0.573   0.5679  
## X36          0.17084    0.30423   0.562   0.5757  
## X37          0.28246    0.29520   0.957   0.3410  
## X38          0.01765    0.32873   0.054   0.9573  
## X39          0.07598    0.27484   0.276   0.7828  
## X40          0.09714    0.34733   0.280   0.7803  
## X41         -0.16985    0.31608  -0.537   0.5922  
## X42         -0.25184    0.33203  -0.758   0.4500  
## X43         -0.08306    0.29306  -0.283   0.7774  
## X44         -0.17389    0.31090  -0.559   0.5772  
## X45         -0.30756    0.30995  -0.992   0.3235  
## X46          0.61520    0.30961   1.987   0.0497 *
## X47         -0.61994    0.32461  -1.910   0.0591 .
## X48          0.62326    0.33822   1.843   0.0684 .
## X49          0.35504    0.30382   1.169   0.2454  
## X50          0.09683    0.31925   0.303   0.7623  
## X51          0.17292    0.30770   0.562   0.5754  
## X52         -0.06560    0.30549  -0.215   0.8304  
## X53         -0.29953    0.32318  -0.927   0.3563  
## X54          0.06888    0.32289   0.213   0.8315  
## X55          0.05695    0.32103   0.177   0.8596  
## X56          0.26284    0.32914   0.799   0.4265  
## X57          0.10457    0.29788   0.351   0.7263  
## X58         -0.19239    0.30729  -0.626   0.5327  
## X59          0.02371    0.29171   0.081   0.9354  
## X60         -0.12842    0.32321  -0.397   0.6920  
## X61          0.06931    0.30015   0.231   0.8179  
## X62         -0.27227    0.31918  -0.853   0.3957  
## X63         -0.17359    0.32287  -0.538   0.5920  
## X64         -0.41846    0.33808  -1.238   0.2187  
## X65         -0.37243    0.31872  -1.169   0.2454  
## X66          0.36263    0.33034   1.098   0.2750  
## X67         -0.10120    0.30663  -0.330   0.7421  
## X68         -0.33790    0.33633  -1.005   0.3175  
## X69         -0.05326    0.30171  -0.177   0.8602  
## X70         -0.01047    0.33111  -0.032   0.9748  
## X71         -0.46896    0.32387  -1.448   0.1508  
## X72         -0.29867    0.33543  -0.890   0.3754  
## X73         -0.32556    0.33183  -0.981   0.3289  
## X74          0.21187    0.31690   0.669   0.5053  
## X75          0.63659    0.31144   2.044   0.0436 *
## X76          0.13838    0.31642   0.437   0.6628  
## X77         -0.18846    0.29382  -0.641   0.5227  
## X78          0.06325    0.29180   0.217   0.8289  
## X79          0.07256    0.30145   0.241   0.8103  
## X80          0.33483    0.34426   0.973   0.3331  
## X81         -0.33944    0.35373  -0.960   0.3396  
## X82         -0.01291    0.32483  -0.040   0.9684  
## X83         -0.06540    0.27637  -0.237   0.8134  
## X84          0.11543    0.32813   0.352   0.7257  
## X85         -0.20415    0.31476  -0.649   0.5181  
## X86          0.04202    0.33588   0.125   0.9007  
## X87         -0.33265    0.29159  -1.141   0.2567  
## X88         -0.49522    0.31251  -1.585   0.1162  
## X89         -0.39293    0.33358  -1.178   0.2417  
## X90         -0.34512    0.31892  -1.082   0.2818  
## X91          0.10540    0.28191   0.374   0.7093  
## X92         -0.08630    0.30297  -0.285   0.7764  
## X93          0.02402    0.32907   0.073   0.9420  
## X94          0.51255    0.32139   1.595   0.1139  
## X95         -0.19971    0.30634  -0.652   0.5160  
## X96         -0.09592    0.34585  -0.277   0.7821  
## X97         -0.18862    0.29266  -0.644   0.5207  
## X98          0.14997    0.34858   0.430   0.6680  
## X99         -0.08061    0.30400  -0.265   0.7914  
## X100        -0.34988    0.31664  -1.105   0.2718  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9059 on 99 degrees of freedom
## Multiple R-squared:  0.4387, Adjusted R-squared:  -0.1282 
## F-statistic: 0.7739 on 100 and 99 DF,  p-value: 0.8987 
2 predictors out of 100 significant (on average, we expect 5 of 100 to be significant)
selection = stepAIC(fullModel)
selection
## 
## Call:
## lm(formula = y ~ X1 + X2 + X3 + X5 + X7 + X13 + X20 + X23 + X30 + 
##     X37 + X42 + X45 + X46 + X47 + X48 + X64 + X65 + X66 + X71 + 
##     X75 + X80 + X81 + X87 + X88 + X89 + X90 + X94 + X100, data = dat)
## 
## Coefficients:
## (Intercept)           X1           X2           X3           X5           X7  
##      1.0314       0.4728      -0.3809       0.3954      -0.2742      -0.4442  
##         X13          X20          X23          X30          X37          X42  
##      0.4396       0.3984      -0.4137      -0.3750       0.4006      -0.3934  
##         X45          X46          X47          X48          X64          X65  
##     -0.3197       0.3673      -0.4240       0.5130      -0.3676      -0.2887  
##         X66          X71          X75          X80          X81          X87  
##      0.2769      -0.5301       0.5020       0.3722      -0.3731      -0.2684  
##         X88          X89          X90          X94         X100  
##     -0.4524      -0.4123      -0.3528       0.3813      -0.4058


summary(selection)
## 
## Call:
## lm(formula = y ~ X1 + X2 + X3 + X5 + X7 + X13 + X20 + X23 + X30 + 
##     X37 + X42 + X45 + X46 + X47 + X48 + X64 + X65 + X66 + X71 + 
##     X75 + X80 + X81 + X87 + X88 + X89 + X90 + X94 + X100, data = dat)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.04660 -0.50885  0.05722  0.49612  1.53704 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)   1.0314     0.5045   2.044  0.04244 * 
## X1            0.4728     0.2185   2.164  0.03187 * 
## X2           -0.3809     0.2012  -1.893  0.06008 . 
## X3            0.3954     0.1973   2.004  0.04668 * 
## X5           -0.2742     0.1861  -1.473  0.14251   
## X7           -0.4442     0.1945  -2.284  0.02359 * 
## X13           0.4396     0.1980   2.220  0.02775 * 
## X20           0.3984     0.1918   2.078  0.03924 * 
## X23          -0.4137     0.2081  -1.988  0.04836 * 
## X30          -0.3750     0.1991  -1.884  0.06125 . 
## X37           0.4006     0.1989   2.015  0.04550 * 
## X42          -0.3934     0.2021  -1.946  0.05325 . 
## X45          -0.3197     0.2063  -1.550  0.12296   
## X46           0.3673     0.1992   1.844  0.06690 . 
## X47          -0.4240     0.2029  -2.090  0.03811 * 
## X48           0.5130     0.1937   2.649  0.00884 **
## X64          -0.3676     0.2094  -1.755  0.08102 . 
## X65          -0.2887     0.1975  -1.462  0.14561   
## X66           0.2769     0.2107   1.315  0.19039   
## X71          -0.5301     0.2003  -2.646  0.00891 **
## X75           0.5020     0.1969   2.550  0.01165 * 
## X80           0.3722     0.2058   1.809  0.07224 . 
## X81          -0.3731     0.2176  -1.715  0.08820 . 
## X87          -0.2684     0.1958  -1.371  0.17225   
## X88          -0.4524     0.2069  -2.187  0.03011 * 
## X89          -0.4123     0.2060  -2.002  0.04691 * 
## X90          -0.3528     0.2067  -1.707  0.08971 . 
## X94           0.3813     0.2049   1.861  0.06440 . 
## X100         -0.4058     0.2024  -2.005  0.04653 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.76 on 171 degrees of freedom
## Multiple R-squared:  0.3177, Adjusted R-squared:  0.2059 
## F-statistic: 2.843 on 28 and 171 DF,  p-value: 1.799e-05
# voila, 15 out of 28 (before 100) predictors significant – looks like we could have good fun to discuss / publish these results! 

Recherche clinique

Un excelent papier cosigné par Maarten van Smeden au sujet des problèmes méthodologiques dans la recherche biomédicale. C’est sans concession, très intéressant !

Data-sciences

Datasets

Un répertoire d’une multitudes de datasets inclus dans des package R, avec la description du nombre de lignes, de colonnes, le type de variables et la documentation. Très pratique pour essayer des approches, ou des bouts de codes. Ici !

Un livre sur le machine learning pour l’analyse de texte

J’ai déjà eu l’opportunité de travailler sur l’analyse de texte, et cela m’avait beaucoup plu. Je m’étais énormément appuyé sur un précédent ouvrage de Julia Silge (coécrit avec David Robinson, qui a fait la démo sur les régressions loess présenté plus haut) : Text Mining with R.

Ici, avec du Machine Learning, j’imagine que cela doit vraiment être super intéressant ! Ca sera peut être un projet de lecture pour les vacances de Noël 🎄🎄🎄

Conclusion

J’espère que cette récap du mois de décembre vous plaira autant que celle de novembre ! En tout, j’ai beaucoup de plaisir à vous partager ce qui retient mon attention. N’hésitez pas à partager cet article, ou à m’indiquer vos propres découvertes en commentaires !

Si cet article vous a plu, ou vous a été utile, et si vous le souhaitez, vous pouvez soutenir ce blog en faisant un don sur sa page Tipeee.

 

Poursuivez votre lecture

5 réponses

  1. contenu extrêmement intéressant et pertinent ! cela donne en effet envie de faire un don sur Tipeee… après tout, noël n’est plus si éloigné 🙂

    Continuez comme ça ! Votre blog enrichi énormément ma pratique de R et des statistiques !

  2. Bonjour,
    Je tiens à vous remercier infiniment madame,je besoin vraiment votre aide puisque je suis licencié en bioinfortique et biostatistique et pratiquement je suis nul mais grâce à vous je me retrouve un dans mon domaine.
    Merci madame !!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bonjour !

vous venez souvent ?

Identifiez-vous pour avoir accès à toutes les fontionnalités !

Aide mémoire off'R ;)

Enregistrez vous pour recevoir gratuitement mes fiches “aide mémoire” (ou cheat sheets) qui vous permettront de réaliser facilement les principales analyses biostatistiques avec le logiciel R et pour être informés des mises à jour du site.