Trucs pour LaTeX & R

Barplot de pourcentage avec intervalles de confiance

dimanche 26 février 2017 par Philippe MICHEL

25/02/2107 : simplification du code en utilisant sapply

On dessine un barplot en % du premier niveau de la variable de test (testv) qui doit être dichotomique.

La technique consiste à définir trois vecteurs : un avec les pourcentages gg, un avec les bornes inférieures de l’intervalle de confiance gb & un avec les bornes supérieures gh. On applique alors la fonction graphique barplot2 du package gplots à ces chiffres.
Le calcul de l’intervalle de confiance se fait par transformation angulaire [1].

Par exemple, on veut présenter le pourcentage de femme (variable testv en F/H) pour plusieurs catégories professionnelles (varp ).

  • testv la variable de test
  • varp est la variable à présenter.
  • titre est le titre du graphique.

J’ai volontairement laissé des couleurs très clinquantes, à vous de voir...

  1. # Philippe MICHEL 2017
  2. #
  3. barconf <- function(varp,testv,tit="titre"){
  4. # Création de la table
  5. tta <- as.data.frame.matrix(table(testv,varp))
  6. # Calcul des % & des bornes
  7. cbar <- sapply(tta, function(x) x[1]/sum(x))
  8. tainf <- sapply(tta, function(x) asin(sqrt(x[1]/sum(x)-1/(2*sum(x))))-1.96/(2*sqrt(sum(x))))
  9. tasup <- sapply(tta, function(x) asin(sqrt(x[1]/sum(x)+1/(2*sum(x))))+1.96/(2*sqrt(sum(x))))
  10. cinf <- sin(tainf)^2
  11. csup <- sin(tasup)^2
  12. # Un petit chi2
  13. cch <- chisq.test(tta,correct=T)$p.value
  14. # et on dessine
  15. barplot2(
  16. cbar,
  17. main=tit,
  18. ylab="%",
  19. plot.ci=T,
  20. ci.l=cinf,
  21. ci.u=csup,
  22. names=levels(varp),
  23. ylim=c(0,1),
  24. ci.lwd=2,
  25. las=2,
  26. col=rainbow(dim(tta)[2])
  27. )
  28. text(dim(tta)[2]/2,0.8,paste0("p = ",signif(cch,2)),cex=1.1)
  29. }

Télécharger


Accueil | Contact | Plan du site | | Statistiques du site | Visiteurs : 259 / 125754

Suivre la vie du site fr  Suivre la vie du site R   ?    |    titre sites syndiques OPML   ?

Site réalisé avec SPIP 3.2.0 + AHUNTSIC

Creative Commons License