Skip to contents

C’est toujours la première étape. Plusieurs fonctions font ces calculs pour les cas courants par exemple dans les packages epiDisplay ou Hmisc.

Nous avons écrit ici une fonction pour les sondages, enquêtes etc. sans test principal donc pas de calcul de puissance possible.

nbo <- nb.obs.ph(px = 0.5, ex = 0.1, np = 1e5)

Le nombre de cas nécessaires pour une enquète avec une estimation des réponses pour les questions principales autour de 50 % (hypothèse la plus défavorable) & une marge d’erreur considérée comme acceptable de 10 % dans une grande population serait de 96 cas (calcul très discutable).

la fonction listrandphcorrespond juste à une mise en forme de la fonction blockrand du package homonyme pour générer des listes de randomisation par centre en blocs de taille aléatoire. Elle génère plusieurs fichiers .csv : une feuille globale de randomisation (pour le promoteur) & une feuille par centre.

listrandph(nbcent = 1, # Nombre de centre
           nbtrait = 2, # nombre de traitements/classes (habituellement 2)
           nbcas = 100 # Nombre de cas total prévu
)

J’utilise habituellement le package gtsummary pour créer mes tableaux. Les deux fonctions suivantes prennent un tableau, le mettent en forme via kableExtra (pour les sorties en pdf) & font l’export en .xls (optionnel).

Tabph

Tabph permet de fignoler l’aspect des tables générées par gtsummary en particulier le titre de l’entête au dessus des catégories, mise en gras des titres des variables,ajout de diverses colonnes :

-p-value - colonne total colonne des effectifs par variable.

Choix du type de tests utilisés (paramétriques ou non).

Export en kableExtra

  • pexptabph prépare le tableau sans régler la largeur (pour des tableaux qui tiennent sans problème dans la page), possibilité de longtable.

  • gexptabph adapte le tableau pour tenir dans la page en largeur (en jouant sur la taille de police etc.) mais on perd la possibilité de longtable (limitation technique).

patients |>
  dplyr::select(sexe, age, escarre, lieudevie1) |>
  tbl_summary(by = escarre) |>
  tabph(nomv = "Escarre", # Titre des colonnes
        normx = TRUE # Tests paramétriques
        ) |>  
  pexptabph(exp = FALSE, # pas d'export .xls
            lg = FALSE) # pas de longtable
Escarre
N Total
N = 50
non
N = 35
oui
N = 15
p-value
sexe 50
f 21 (42%) 19 (54%) 2 (13%)
m 29 (58%) 16 (46%) 13 (87%)
age 50 87 (86, 90) 87 (85, 90) 87 (86, 91)
lieudevie1 46
Avec la famille 7 (15%) 6 (19%) 1 (6.7%)
Domicile, seul 16 (35%) 12 (39%) 4 (27%)
EHPAD 3 (6.5%) 2 (6.5%) 1 (6.7%)
En couple 15 (33%) 8 (26%) 7 (47%)
Maison de retraite 5 (11%) 3 (9.7%) 2 (13%)
Unknown 4 4 0
1 n (%); Median (Q1, Q3)

barsimpleph & bardecph

Graphique en barre simple.

barsimpleph(dfx = patients, # tableau de données
            varx = admission, # Variable à étudier
            titre = "Mode d'admission",
            stitre = "ICU", # sous-titre
            capt = "Admission", # légende
            lab = "admin", # label pour un lein éventuel
            angle = 60) # angle d'affichage des niveaux sur l'axe x

bardecph est le même graphique avec les données présentées en ordre décroissant.

barconfph

Graphique en barre d’une donnée numérique découpée selon une variable factorielle avec les intervalles de confiance.

barconfph(dfx = patients, # tableau de données
          varnum = igs2, # variable numérique
          vartri = admission, # variable factorielle
          titre = "IGS II vs provenance", #
          stitre = "en ICU", tx = "Mode d'admission", # sous titre
          ty = "IGS II", # titre des y
          cap = "Texte écrit petit", # légende
          angle = 30 # angle d'affichage des niveaux sur l'axe x
)

bardeuxph

Barplot pour 2 variables factorielles : une variable de tri, une variable en % par modalité de tri

bardeuxph(patients,
          lieudevie1, # Variable en %
          admission, # variable de tri
          titre = "Escarre & mode d'admission", # titre
          stitre = "%", # sous titre
          xtitre = "Mode d'admission", # titre des x
          ltitre = "Escarre", # titre de lé légende
          angle = 20, # angle d'affichage des niveaux sur l'axe x
          lab = "aa" # label
)

Barouiph

Barplot pour deux données factorielles : une de tri (axe x) & une qui doit être à deux niveaux avec affichage d’un seul niveau (par exemple réponse en oui/non où on affiche que les oui) avec les intervalles de confiance.

barouiph(dfx = patients, varx =escarre, testx =sexe, valx = "oui", titre = "Sexe")

histmultiph

Graphique en plusieurs histogrammes superposés, pratique pour bien visualiser les variations d’une distribution selon une modalité.

histmultiph(dfx = patients,
            varx= admission, # bariables de tri, factorielle
            varn = age, # variable numérique
            tit = "Mode d'admission selon l'âge", # titre
            stit = 0.002, # p-value
            titx = "Âge", # titre de l'axe x
            bin = 1 # largeur des barres
)

lollipopph

Tracé d’un graphique “lollipop” de distribution d’une variable factorielle avec possibilité de mise en évidence d’un ou plusieurs facteurs.

lollipph(dfx = patients, #
         nom = lieudevie1, # variable à afficher
         tri = c("EHPAD","Maison de retraite"), # modalités de la variable à mettre en évidence
         titre = "Lieu de vie", # titre
         capt = "Lieu de vie avant l'hospitalisation" #  légende
         )

vioboxph

Graphique en violon + boxplot

vioboxph(dfx = patients, # 
         varx = admission, # Variable de tri, factorielle
         varnum = age, # variable numérique
         titre = "grands", # titre
         stit = "et grandes", # sous titre
         titx = "Mode d'admission" # titre de l'axe x
)

raincloudph

Graphique en raincloud (densité + boxplot + nuage de points) pour une variable numérique & une variable factorielle de tri.

raincloudph(df = patients, vcat = admission, vnum = igs2, titre = "IGS2 vs adm", titcat = "Adm", titnum = "IGS 2", adj = 1)

figp

Ajoute le crochet horizontal & le texte pour une comparaison entre deux groupes.

fp <- patients |>
 drop_na(typemaladie, igs2) |>
  ggplot(aes(x = typemaladie, y = igs2)) +
  geom_boxplot()
  figp(fp, x1 =1, x2 = 2, yy =95, pval = 0.01, od = FALSE, h = 2)

IL s’agit de petits utilitaires simples souvent utilisés dans les fonctions précédentes.

Moyennes & intervalles de confiance

bashaut

Fonction pour calculer les bornes inférieure et supérieure d’un intervalle de confiance à 95 % pour la moyenne d’une variable numérique.

bashaut(iris$Sepal.Length)
#> $binf
#> [1] 5.709732
#> 
#> $bsup
#> [1] 5.976934

moyciph

Fonction pour calculer par bootstrap l’intervalle de confiance à 95 % d’une moyenne.

moyciph(patients$age, ci = 95)
#>     binf     bsup 
#> 87.10051 88.60000

transangph

Calcul de l’intervalle de confiance sur une loi binomiale après transformation angulaire (utile si on est très proche de 0 ou 1).

transangph(nb = 950, total = 1000, pr = 95)

Affichage

moys

Fonction pour afficher la moyenne & l’écart-type d’une variable numérique.

  moyciph(patients$age, ci = 95)
#>     binf     bsup 
#> 87.10051 88.60000

meds

Fonction pour afficher la médianes & les quartiles d’une variable numérique.

  meds(patients$age)
#> [1] "87 (86;90)"

beaup

Affichage de la p-value

  beaup(0.0002, affp = FALSE)
#> [1] "< 0,001"
  beaup(0.05)
#> [1] "0.05"

nesp

Correction d’une erreur de saisie habituelle dans les tableaux de données : la présence d’une espace en début ou fin d’une variable textuelle ou d’espaces multiples. ’

nesp("  Bonjour à   vous ")
#> [1] "Bonjour à vous"