Betrouwbaarheidsintervalbalken plotten uit samenvattende statistieken
Geplaatst op februari 14, 2021 door adminEen beetje zoals een boxplot. Ik bedoel niet noodzakelijkerwijs het standaard bovenste betrouwbaarheidsinterval, het onderste betrouwbaarheidsinterval, het gemiddelde en het gegevensbereik met boxplots, maar ik bedoel als een boxplot met alleen de drie gegevens: het 95% betrouwbaarheidsinterval en gemiddelde .
Dit is een screenshot van een tijdschriftartikel dat precies had wat ik wilde:
Ik zou ook graag willen weten hoe ik de software zou gebruiken die de beantwoorder noemt om zon plot te maken.
Opmerkingen
- Wat u ” noemt, het standaard bovenste betrouwbaarheidsinterval, het onderste betrouwbaarheidsinterval, het gemiddelde en gegevensbereik met boxplots ” zijn helemaal geen standaard boxplots. De standaard boxplot toont mediaan, kwartielen, minimum en maximum en vaak andere details.
- @Nick Right: maar hoe worden dergelijke afbeeldingen eigenlijk genoemd? (Ik ‘ m weet het niet zeker.)
- Dit soort plot is standaard (het ‘ is geen box plot) en kan worden geproduceerd door alle belangrijke statistische pakketten: Stata, SAS, R , MATLAB. Ik denk dat je het ook met Excel zou kunnen doen.
- @COOLSerdash geweldig! Kunt u een antwoord voor MATLAB schrijven, aangezien ik MATLAB al heb?
- Ik ‘ noem deze betrouwbaarheidsintervalplots, maar niet elke plot heeft echt een aparte naam nodig . Elke plot verdient echter een tekstbijschrift …
Answer
In MATLAB wil je misschien probeer de errorbar -functie: http://www.mathworks.de/de/help/matlab/ref/errorbar.html
U kunt ook kan het op de domme en handmatige manier doen. Gegeven een matrix van gegevenspunten “a”, kunt u bijvoorbeeld uw gemiddelden berekenen met de functie m = gemiddelde (a), uw CIs berekenen (afhankelijk van welk CI u nodig hebt) en de resultaten met de hand plotten.
Demonstratie als u het gemiddelde en de CI al kent, ervan uitgaande dat CIs in een matrix CI (eerste en tweede kolom) staan en de gemiddelden in een matrix 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
Demonstratie in het geval waarin u individuele metingen kent, voor een experiment met herhaalde metingen, 3+ voorwaarden, één voorwaarde per kolom, één onderwerp per regel in de matrix a, geen ontbrekende samples, 95% BI volgens 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
Reacties
- Lees mijn laatste bewerking, ik ‘ m sorry, maar sommige mensen die me in godsnaam irriteren, hebben het feit weggewerkt dat ik alleen de 95% betrouwbaarheidsinterval en betekent geen aanvullende gegevens.
- Heeft @BrentonHorne de link naar de foutbalkfunctie niet geholpen? Het lijkt precies te zijn wat je wilt.
- Zoals Peter zei, gebruik dan errorbar () . Of gebruik het script dat ik heb geschreven, maar negeer de eerste regel met de ttest en voer het gewoon mean en CI rechtstreeks in. Ik ‘ zal het naar mijn mening bewerken.
- @BrentonHorne Om eerlijk te zijn, je hebt het punt nooit uitgebreid besproken of zelfs maar in de body van de vraag. Het werd geïmpliceerd door de titel, maar deze titel vermeldde ook ten onrechte boxplots, het probleem dat de bewerking probeerde op te lossen. Het ‘ is jammer dat het woord “alleen” tijdens het proces verdween, maar niemand heeft het doelbewust uit een groot deel van uw vraag verwijderd. Bovendien bevatte het antwoord een oplossing en zou de rest van de tekst interessant kunnen zijn voor andere lezers.
- Ik heb de code uitgevoerd, het ging goed, het probleem is dat ik het leuk zou vinden als er een middel was die ik zou kunnen aansluiten bij de bovenste CI en lagere CI met een regel zoals in de schermafbeelding in mijn vraag.
Antwoord
Kijk of dit je helpt. R-oplossing:
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)
Opmerkingen
- en hoe voer ik zon code uit? Ik ben totaal nieuw bij R, dus je ‘ zal me er doorheen moeten leiden omdat ik geen idee heb.
- Ik kan je helpen om een kans te geven, maar eerst u moet twee stappen volgen: i) installeer R Studio op uw pc, ii) geef een reproduceerbaar voorbeeld: stackoverflow.com/questions/5963269/…
- @AndreSilva, ik denk dat je daar een stapje extra hebt gedaan. Geweldige ondersteuning en begeleiding!
- Dit is wat ik heb gekregen voor het uitvoeren van uw code i.stack.imgur.com/yrZaJ.png
- @BrentonHome. Vreemd. Ik heb net getest en het werkte. De ” fout ” balken verschijnen niet. Heeft u het
plotrix
-pakket geïnstalleerd? Ik heb een programma-opdrachtregel toegevoegd aan de code die het plotrix-pakket installeert. Probeer het opnieuw en laat het weten.
Antwoord
Dit type plot in R met ggplot2, hoewel je misschien wat gehannes met de lettergrootte van de as:
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")
Antwoord
Gebruik in Stata serrbar
of ciplot
(SSC) of eclplot
(Stata Journal, SSC).
Answer
Ervan uitgaande dat je toegang hebt tot de originele data kun je dit doen in R met de lineplot.CI-functie in het sciplot bibliotheek
Voorbeeld met mtcars-gegevensset:
lineplot.CI(x.factor=gear, response=mpg, group=vs, data=mtcars)
Merk op dat lineplot.CI standaard SE-balken plot (het kan worden gewijzigd om een nieuwe functie met het argument ci.fun om 95% BI-intervallen te plotten)
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
Dit kan worden gedaan in R met points()
(of plot(..., type="p")
) en segments()
. Er kunnen ook R-functies zijn ontworpen om de CI “s voor u te maken, maar daarvoor zijn mogelijk de originele gegevens nodig. De meerdere panelen in dezelfde afbeelding zijn gemaakt met par(mfrow=c(4,1))
. Als u dat niet doet” ken geen R, dit zou moeilijk zijn om gemakkelijk te doen (zoals in, je zou wat meer R moeten leren of iemand moeten zoeken om te helpen met je specifieke dataset).
Antwoord
GraphPad Prism kan dit soort grafieken gemakkelijk maken door foutbalken uit te zetten op basis van foutwaarden die u invoert. Maak een gegroepeerde tabel die is opgemaakt voor de invoer van gemiddelde, – fout en + fout.
Reacties
- Is het mogelijk om er een gratis exemplaar van te krijgen dat niet ‘ t slechts een 30 dagen proefversie?
- @BrentonHorne: Nee. Het is geen gratis software.
Geef een reactie