larmarange / analyse-R

Introduction à l'analyse d'enquêtes avec R et RStudio
https://larmarange.github.io/analyse-R/
53 stars 40 forks source link

analyse-R/statistique-bivariee #125

Closed utterances-bot closed 2 years ago

utterances-bot commented 3 years ago

Statistique bivariée

https://larmarange.github.io/analyse-R/statistique-bivariee.html

Lion766 commented 3 years ago

Bonjour, Je voudrais savoir comment analyser(faire des figures de chaque variable) un ensemble de variables en un bloc svp. Merci Autrement, je voudrais savoir s'il y a une methodes qui permet de comparer une variable dépendante à un ensemble de variable explicatives en un bloc, sans avoir à ecrire de code pour chaque variable. Merci

larmarange commented 3 years ago

Pour réaliser facilement et rapidement des tableaux ou des graphiques croisant plusieurs variables ensemble, le plus simple est d'avoir recours à la fonction tbl_summary() de l'extension gtsummary et à la fonction ggbivariate() de l'extension GGally.

library(gtsummary)
trial %>%
  tbl_summary(
    include = c("trt", "age", "stage", "grade"),
    by = "trt",
    percent = "row"
  ) %>%
  add_overall(last = TRUE) %>%
  add_p()
Characteristic Drug A, N = 981 Drug B, N = 1021 Overall, N = 2001 p-value2
Age 46 (37, 59) 48 (39, 56) 47 (38, 57) 0.7
Unknown 7 4 11
T Stage 0.9
T1 28 (53%) 25 (47%) 53 (100%)
T2 25 (46%) 29 (54%) 54 (100%)
T3 22 (51%) 21 (49%) 43 (100%)
T4 23 (46%) 27 (54%) 50 (100%)
Grade 0.9
I 35 (51%) 33 (49%) 68 (100%)
II 32 (47%) 36 (53%) 68 (100%)
III 31 (48%) 33 (52%) 64 (100%)

1 Statistics presented: Median (IQR); n (%)

2 Statistical tests performed: Wilcoxon rank-sum test; chi-square test of independence


library(GGally)
#> Le chargement a nécessité le package : ggplot2
#> Registered S3 method overwritten by 'GGally':
#>   method from   
#>   +.gg   ggplot2
trial %>%
  ggbivariate(
    outcome = "trt",
    explanatory = c("age", "stage", "grade")
  )
#> Warning: Removed 11 rows containing non-finite values (stat_boxplot).

#> Warning: Removed 11 rows containing non-finite values (stat_boxplot).

Created on 2020-11-27 by the reprex package (v0.3.0)

Lion766 commented 3 years ago

Bonjour, Merci de votre réponses. Je voudrais aussi savoir si ma variable expliquée est quantitative et les variables explicatives sont qualitatives à plus de deux modalités. Quel type de test serait adéquat(paramétrique ou non) ? et comment réaliser facilement et rapidement des tableaux ou des graphiques croisant plusieurs variables qualitatives(a plus de 2 modalités ) indépendantes ensemble à une variable quantitative expliquée?.
=> Existe t'il une méthode pareille pour réaliser: -le test de student (une variable quantitative expliquée par des variables qualitatives binaires)?

-le test à 0 coefiscient de correlation (quantitative expliquée par des quantitatives )?

Merci

Lion766 commented 3 years ago

Bonjour, Merci de vos réponses. Je voudrais aussi savoir si ma variable expliquée est quantitative et les variables explicatives sont qualitatives à plus de deux modalités. Quel type de test serait adéquat (paramétrique ou non)? et comment réaliser facilement et rapidement des tableaux ou des graphiques croisant plusieurs variables qualitatives (a plus de 2 modalités) indépendantes ensemble à une variable quantitative expliquée ?. => Existe t'il une méthode pareille pour réaliser: -le test de student (une variable quantitative expliquée par des variables qualitatives binaires)?

-le test à 0 coefiscient de corrélation (quantitative expliquée par des quantitatives)?

Merci

larmarange commented 3 years ago

Merci de vos réponses. Je voudrais aussi savoir si ma variable expliquée est quantitative et les variables explicatives sont qualitatives à plus de deux modalités. Quel type de test serait adéquat (paramétrique ou non)?

La question d'un test paramétrique dépend de la normalité des variables. Le test de Kruskal-Wallis de comparaison des médianes est non paramétrique et donc fonctionne dans presque tous les cas, y compris en comparant 3 groupes ou plus.

Pour un test paramétrique à 3 modalités ou plus, on peut se rabbatre sur une ANOVA à un facteur avec la fonction aov.

Ces différents tests peuvent facilement être appelés directement depuis gtsummary : http://www.danieldsjoberg.com/gtsummary/reference/add_p.tbl_summary.html

et comment réaliser facilement et rapidement des tableaux ou des graphiques croisant plusieurs variables qualitatives (a plus de 2 modalités) indépendantes ensemble à une variable quantitative expliquée ?.

Si votre variable à expliquer est quantitative, vous pouvez toujours utiliser ggbivariate()

library(GGally)
#> Le chargement a nécessité le package : ggplot2
#> Registered S3 method overwritten by 'GGally':
#>   method from   
#>   +.gg   ggplot2
iris %>%
  ggbivariate(
    outcome = "Sepal.Width",
    explanatory = c("Sepal.Length", "Species")
  )

Created on 2020-11-30 by the reprex package (v0.3.0)

Pour un tableau c'est un peu plus complexe et vous n'avez pas de solution clés en main avec gtsummary().

C'est à vous déjà de définri le type de tableau que vous souhaitez produire.

Si vous avez un grand nombre de variables numériques, vous pouvez regarder du côté des matrices de corrélations : http://www.sthda.com/french/wiki/matrice-de-correlation-guide-simple-pour-analyser-formater-et-visualiser

=> Existe t'il une méthode pareille pour réaliser: -le test de student (une variable quantitative expliquée par des variables qualitatives binaires)?

Le test de Student est présenté ici : http://larmarange.github.io/analyse-R/comparaisons-moyennes-et-proportions.html

-le test à 0 coefiscient de corrélation (quantitative expliquée par des quantitatives)?

Pas sur de bien comprendre. Vous voulez tester si un coefficient de corrélation est différent de 0 ? Si oui, vous pouvez regarder du côté de la fonction cor.test : https://rdrr.io/r/stats/cor.test.html

Merci

Lion766 commented 3 years ago

Bonjour, je voudrais savoir comment faire avec R, une régression logistique avec une sélection descendante pas à pas basée sur le test du rapport de vraisemblance et ceci suivi de la correction de Benjamini-Hochberg svp. Merci

larmarange commented 3 years ago

Bonjour,

en premier lieu, pour la régression logistique, je vous invite à lire le chapitre correspondant : https://larmarange.github.io/analyse-R/regression-logistique.html

Concernant la sélection pas à pas d'un modèle, vous ne pouvez pas vous baser seulement sur la vraisemblance. Il vous faut la pénaliser la vraisemblance par la complexité du modèle et utiliser dès lors un critère comme l'AIC ou le BIC. Ce qui se fait avec la fonction step()

Pour un cadrage plus théorique, voir https://perso.univ-rennes2.fr/system/files/users/rouviere_l/chapitre3_glm.pdf

Pour la correction Benjamini-Hochberg des p-valeurs, voir la fonction p.adjust() : https://stat.ethz.ch/R-manual/R-devel/library/stats/html/p.adjust.html

Lion766 commented 3 years ago

Merci beaucoup. Le 11 juin 2021 à 10:11, Joseph @.***> a écrit :

 Bonjour,

en premier lieu, pour la régression logistique, je vous invite à lire le chapitre correspondant : https://larmarange.github.io/analyse-R/regression-logistique.html

Concernant la sélection pas à pas d'un modèle, vous ne pouvez pas vous baser seulement sur la vraisemblance. Il vous faut la pénaliser la vraisemblance par la complexité du modèle et utiliser dès lors un critère comme l'AIC ou le BIC. Ce qui se fait avec la fonction step()

Pour un cadrage plus théorique, voir https://perso.univ-rennes2.fr/system/files/users/rouviere_l/chapitre3_glm.pdf

Pour la correction Benjamini-Hochberg des p-valeurs, voir la fonction p.adjust() : https://stat.ethz.ch/R-manual/R-devel/library/stats/html/p.adjust.html

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

Lion766 commented 3 years ago

Bonjour, Je voulais savoir s'il y a une fonction plus simple qui permet de générer les résultats(OR, IC95%, p-value) d'analyse multivariée et univariées d'une régression logistique dans un même tableau d'un coup svp? J'essaie d'utiliser tbl_régression mais ça me génère uniquement les résultat de la régression multivariée. J'ai 25 variable indépendantes à utiliser pour l'analyse univariée et ceux pour 5 critères de jugements....Merci

larmarange commented 3 years ago

Bonjour

tbl_uvregression() permets de réaliser les multiples régressions univariées en une seule opération et un seul tableau.

tbl_merge() permets de fusionner deux tableaux en un seul.

J'ai ajouté un exemple concret dans le chapitre sur la régression logistique : https://larmarange.github.io/analyse-R/regression-logistique.html#gtsummary

Lion766 commented 2 years ago

Bonjour, Il y a t'il une fonction pour le test du rapport rapport de vraissemblance dans gtsummary sans pénéliser la vraissemblance svp? Merci

quentin-brncic commented 2 years ago

Bonjour, Est-il possible de faire un tbl_summary qui n'affiche que des pourcentages et pas les effectifs, et qui inclue les non-réponses (dont les effectifs sont donnés par la ligne "Unknown" si j'ai bien compris) dans le total des pourcentages - un peu comme le ferait la fonction freq ?

larmarange commented 2 years ago

Pour inclure les manquants dans le total des pourcentages, il suffit, en amont, de les transformer en niveau de facteur avec forcats::fct_explicit_na().

Pour n'afficher que les pourcentages, il faut indiquer ce que l'on veut afficher avec l'argument statistics, par exemple : statistics = all_categorical() ~ "{p}%"

Voir http://www.danieldsjoberg.com/gtsummary/reference/tbl_summary.html