Tracer des barres dintervalle de confiance à partir de statistiques récapitulatives
On février 14, 2021 by adminUn peu comme une boîte à moustaches. Je veux dire pas nécessairement lintervalle de confiance supérieur standard, lintervalle de confiance inférieur, la moyenne et les boîtes à moustaches affichant la plage de données, mais je veux dire comme une boîte à moustaches avec seulement les trois éléments de données: lintervalle de confiance à 95% et la moyenne .
Voici une capture décran dun article de journal qui contenait exactement ce que je veux:
Je voudrais également savoir comment jutiliserais le logiciel mentionné par le répondeur pour créer un tel tracé.
Commentaires
- Ce que vous appelez » lintervalle de confiance supérieur standard, lintervalle de confiance inférieur, la moyenne et les boîtes à moustaches affichant la plage de données » ne sont pas du tout des boîtes à moustaches standard. La boîte à moustaches standard montre la médiane, les quartiles, le minimum et le maximum et souvent dautres détails.
- @Nick Right: mais comment sappellent ces graphiques? (Je ‘ ne suis pas sûr.)
- Ce type de graphique est standard (il ‘ nest pas une boîte plot, cependant) et peut être produit par tous les principaux progiciels statistiques: Stata, SAS, R , MATLAB. Je suppose que vous pouvez également le faire avec Excel.
- @COOLSerdash super! Pourriez-vous rédiger une réponse pour MATLAB puisque jai déjà MATLAB?
- Je ‘ d appelle ces graphiques dintervalle de confiance, mais tous les graphiques nont pas vraiment besoin dun nom distinct . Chaque tracé mérite une légende de texte, cependant ….
Réponse
Dans MATLAB, vous voudrez peut-être essayez la fonction errorbar : http://www.mathworks.de/de/help/matlab/ref/errorbar.html
Sinon, vous peut le faire de manière stupide et manuelle. Par exemple, étant donné une matrice de points de données « a », vous pouvez calculer vos moyennes en utilisant la fonction m = moyenne (a), calculer vos IC (en fonction de lIC dont vous avez besoin) et tracer les résultats à la main.
Démonstration si vous connaissez déjà la moyenne et lIC, en supposant que les IC sont dans une matrice CI (première et deuxième colonnes) et que les moyennes sont dans une matrice a :
plot(1:length(CI),a,"o","markersize", 10) % plot the mean hold on; plot(1:length(CI),CI(1,:),"v","markersize", 6) % plot lower CI boundary hold on; plot(1:length(CI),CI(2,:),"^","markersize", 6) % plot upper CI boundary hold on; for I = 1:length(CI) % connect upper and lower bound with a line line([I I],[CI(1,I) CI(2,I)]) hold on; end; axis([0 length(CI)+1 min(CI(1,:))*0.75 max(CI(2,:))*1.25]) % scale axis
Démonstration dans le cas où vous connaissez des mesures individuelles, pour une expérience à mesures répétées, 3+ conditions, une condition par colonne, un sujet par ligne dans la matrice a, aucun échantillon manquant, IC à 95% comme par MATLAB « s ttest () :
[H,P,CI] = ttest(a); % calculate 95% CIs for every column in matrix a % CIs are now in the matrix CI! plot(1:length(CI),[mean(a)],"o","markersize", 10) % plot the mean hold on; plot(1:length(CI),CI(1,:),"v","markersize", 6) % plot lower CI boundary hold on; plot(1:length(CI),CI(2,:),"^","markersize", 6) % plot upper CI boundary hold on; for I = 1:length(CI) % connect upper and lower bound with a line line([I I],[CI(1,I) CI(2,I)]) hold on; end; axis([0 length(CI)+1 min(CI(1,:))*0.75 max(CI(2,:))*1.25]) % scale axis
Commentaires
- Lisez ma dernière modification, je ‘ je suis désolé mais certaines personnes qui ménervent, ont supprimé le fait que je ne connais que le IC 95% et pas de données supplémentaires.
- @BrentonHorne le lien vers la fonction de la barre derreurs na-t-il pas aidé? i> Comme Peter la dit, utilisez alors errorbar () . Ou utilisez le script que jai écrit, mais ignorez la première ligne avec le ttest et donnez-lui simplement la signification et le CI directement. Je ‘ je le modifierai dans je suppose.
- @BrentonHorne Pour être honnête, vous n’avez jamais discuté de ce point en détail ni même mentionné du tout dans le corps du question. Cela était implicite dans le titre, mais ce titre mentionnait également à tort les boîtes à moustaches, ce qui est le problème que la modification a tenté de résoudre. Il ‘ est malheureux que le mot «seulement» ait disparu au cours du processus, mais personne n’a délibérément modifié une grande partie de votre question. De plus, la réponse contenait une solution et le reste du texte pourrait être intéressant pour dautres lecteurs.
- Jai exécuté le code ça sest bien passé, le problème est que jaimerais quil y ait un moyen par que je pourrais joindre le CI supérieur et CI inférieur avec une ligne comme dans la capture décran de ma question.
Réponse
Regardez si cela vous aide. Solution R:
par(mfrow=c(2,1)) # to stack the charts on column #Dataset 1 upperlimit = c(10,12,8,14) lowerlimit = c(5,9,4,7) mean = c(8,10,6,12) df = data.frame(cbind(upperlimit,lowerlimit,mean)) plot(df$mean, ylim = c(0,30), xlim = c(1,4)) install.packages("plotrix") require(plotrix) plotCI(df$mean,y=NULL, uiw=df$upperlimit-df$mean, liw=df$mean-df$lowerlimit, err="y", pch=20, slty=3, scol = "black", add=TRUE) #Dataset 2 upperlimit_2 = upperlimit*1.5 lowerlimit_2 = lowerlimit*0.8 mean_2 = upperlimit_2-lowerlimit_2 df_2 = data.frame(cbind(upperlimit_2,lowerlimit_2,mean_2)) plot(df$mean_2, ylim = c(0,30), xlim = c(1,4)) plotCI(df_2$mean_2,y=NULL, uiw=df_2$upperlimit_2-df_2$mean_2, liw=df_2$mean_2- df_2$lowerlimit_2, err="y", pch=20, slty=3, scol = "black", add=TRUE) rm(upperlimit,lowerlimit,mean,df,upperlimit_2,lowerlimit_2,mean_2,df_2) #remove the objects stored from workspace par(mfrow=c(1,1)) # go back to default (one graph at a time)
Commentaires
- et comment exécuter un tel code? Je suis totalement nouveau dans R, donc vous ‘ devrez me guider parce que je nai aucune idée.
- Je peux vous aider à essayer, mais dabord vous devez suivre deux étapes: i) installer R Studio sur votre ordinateur, ii) fournir un exemple reproductible: stackoverflow.com/questions/5963269/…
- @AndreSilva, je pense que vous avez fait un effort supplémentaire là-bas. Excellent soutien et mentorat!
- Voici ce que jai obtenu pour exécuter votre code i.stack.imgur.com/yrZaJ.png
- @BrentonHome. Étrange. Je viens de tester et cela a fonctionné. Les barres » erreur » napparaissent pas. Avez-vous installé le package
plotrix
? Jai ajouté une ligne de commande de programme dans le code qui installe le package plotrix. Veuillez réessayer et faites-le savoir.
Réponse
Ce type de tracé dans R en utilisant ggplot2, même si vous devrez peut-être faire quelques manipulations avec le taille de la police de laxe:
library(ggplot2) data.estimates = data.frame( var = c("1", "2", "3", "4", "5", "6", "7", "8", "9"), par = c(1.12210,0.18489,1.22011,1.027446235,0.43521,0.53464,1.93316,-0.43806,-0.12029), se = c(0.42569,0.32162,0.58351,0.771608551,0.24803,0.65372,0.92717,0.45939,0.51558)) data.estimates$idr <- exp(data.estimates$par) data.estimates$upper <- exp(data.estimates$par + (1.96*data.estimates$se)) data.estimates$lower <- exp(data.estimates$par - (1.96*data.estimates$se)) p2 <- ggplot(data.estimates, aes(var,idr, size=10)) + theme_bw(base_size=10) p2 + geom_point() +geom_errorbar(aes(x = var, ymin = lower, ymax = upper, size=2), width = 0.2) + scale_y_log10(limits=c(0.1, 50), breaks=c(0.1, 0.5, 1, 5, 10, 25, 50)) + xlab("Site") + ylab("RR")
Réponse
Dans Stata, utilisez serrbar
ou ciplot
(SSC) ou eclplot
(Stata Journal, SSC).
Réponse
En supposant que vous ayez accès aux données dorigine, vous pouvez le faire en R avec la fonction lineplot.CI dans le sciplot library
Exemple avec le jeu de données mtcars:
lineplot.CI(x.factor=gear, response=mpg, group=vs, data=mtcars)
Notez que lineplot.CI par défaut trace les barres SE (il peut être changé en définissant un nouveau fonction avec largument ci.fun pour tracer des intervalles IC à 95%)
lineplot.CI(x.factor=gear, response=mpg, group=vs, data=mtcars, ci.fun=function(x) c(mean(x)-1.96*se(x), mean(x)+1.96*se(x)))
Answer
Cela pourrait être fait en R avec points()
(ou plot(..., type="p")
) et segments()
. Il peut également y avoir des fonctions R conçues pour créer les CI « pour vous, mais celles-ci peuvent nécessiter les données dorigine. Les multiples panneaux de la même figure créés avec par(mfrow=c(4,1))
. Si vous ne le faites pas » Si vous ne connaissez aucun R, ce serait difficile à faire facilement (comme dans, vous devrez en apprendre un peu plus sur R ou demander à quelquun de vous aider avec votre ensemble de données spécifique).
Réponse
GraphPad Prism peut facilement créer ce type de graphique, en traçant des barres derreur à partir des valeurs derreur que vous entrez. Créez un tableau groupé formaté pour lentrée de la moyenne, – erreur et + erreur.
Commentaires
- Est-il possible den obtenir une copie gratuite qui ne soit ‘ que Version dessai de 30 jours?
- @BrentonHorne: Non. Ce nest pas un logiciel libre.
Laisser un commentaire