Plotarea barelor intervalului de încredere din statistici rezumative
On februarie 14, 2021 by adminUn pic ca un grafic de casetă. Nu mă refer neapărat la intervalul de încredere superior standard, la intervalul de încredere inferior, la valoarea medie și la graficele care prezintă intervalul de date, dar mă refer la un grafic de cutie cu doar cele trei date: intervalul de încredere și media de 95% .
Aceasta este o captură de ecran a unui articol din jurnal care avea exact ceea ce vreau:
Aș dori, de asemenea, să știu cum aș folosi software-ul menționat de persoana care răspunde pentru a crea un astfel de complot.
Comentarii
- Ceea ce numiți ” intervalul standard de încredere superior, intervalul de încredere inferior, media și intervalul de date care arată graficele casetei nu sunt deloc comploturi standard. Diagrama standard a casetei arată mediană, quartile, minim și maxim și adesea alte detalii.
- @Nick Right: dar cum sunt numite astfel de grafice? (Nu ‘ nu sunt sigur.)
- Acest tip de complot este standard (nu ‘ nu este o cutie grafic, totuși) și poate fi produs de toate pachetele statistice majore: Stata, SAS, R , MATLAB. Cred că ați putea face acest lucru și cu Excel.
- @COOLSerdash grozav! Ați putea scrie un răspuns pentru MATLAB, deoarece am deja MATLAB?
- Am ‘ aș numi aceste grafice cu interval de încredere, dar nu fiecare complot are nevoie într-adevăr de un nume distinct . Cu toate acestea, fiecare complot merită o legendă de text ….
Răspuns
În MATLAB, poate doriți să încercați funcția bară de erori : http://www.mathworks.de/de/help/matlab/ref/errorbar.html
Alternativ, dvs. o pot face în mod prost și manual. De exemplu, având în vedere o matrice de puncte de date „a”, vă puteți calcula mijloacele utilizând funcția m = medie (a), puteți calcula IC-urile (în funcție de ce CI aveți nevoie) și puteți trage rezultatele manual.
Demonstrație dacă știți deja media și CI, presupunând că IC sunt într-o matrice CI (prima și a doua coloană) și mijloacele sunt într-o 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
Demonstrație în cazul în care cunoașteți măsurători individuale, pentru un experiment cu măsuri repetate, 3+ condiții, o condiție pe coloană, un subiect pe linie în matrice a, nu lipsesc eșantioane, 95% CI, după 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
Comentarii
- Citiți cea mai recentă editare a mea, ‘ îmi pare rău, dar unii oameni care mă enervează la naiba, au editat faptul că știu doar că 95% CI și înseamnă că nu există date suplimentare.
- @BrentonHorne nu a ajutat linkul către funcția barei de erori? Se pare că este exact ceea ce doriți.
- După cum a spus Peter, utilizați errorbar () atunci. Sau utilizați scriptul pe care l-am scris, dar ignorați prima linie cu ttest și doar hrăniți-l în mod direct și CI direct. ‘ îl voi edita în presupun.
- @BrentonHorne Pentru a fi corect, nu ați discutat niciodată pe larg acest punct și nici nu l-ați menționat deloc în corpul întrebare. A fost implicat de titlu, dar acest titlu a menționat, de asemenea, în mod eronat, graficele de casetă, care este problema pe care editarea a încercat să o remedieze. Este ‘ regretabil faptul că cuvântul „numai” a dispărut în proces, dar nimeni nu l-a editat în mod intenționat o mare parte din întrebarea dvs. În plus, răspunsul conținea o soluție și restul textului ar putea fi interesant pentru ceilalți cititori.
- Am rulat codul, a mers bine, problema este că mi-aș dori dacă ar exista unele mijloace prin pe care le-aș putea asocia CI superioară și CI inferioară cu o linie ca în captura de ecran din întrebarea mea.
Răspuns
Uită-te dacă asta te ajută. Soluție 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)
Comentarii
- și cum pot rula un astfel de cod? Sunt complet nou în R, așa că ‘ va trebui să mă plimbiți pentru că sunt lipsit de idei.
- Vă pot ajuta să faceți o lovitură, dar mai întâi trebuie să urmați doi pași: i) instalați R Studio pe computerul dvs., ii) furnizați un exemplu reproductibil: stackoverflow.com/questions/5963269/…
- @AndreSilva, cred că ai făcut un efort suplimentar acolo. Suport excelent și mentorat!
- Iată ce am obținut pentru executarea codului dvs. i.stack.imgur.com/yrZaJ.png
- @BrentonHome. Ciudat. Tocmai am testat și a funcționat. Barele ” eroare ” nu apar și nici nu apar. Ați instalat pachetul
plotrix
? Am adăugat o linie de comandă a programului în codul care instalează pachetul plotrix. Vă rugăm, încercați din nou și anunțați.
Răspuns
Acest tip de complot în R folosind ggplot2, deși s-ar putea să trebuiască să faceți câteva jocuri cu dimensiunea fontului axei:
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ăspunde
În Stata folosește serrbar
sau ciplot
(SSC) sau eclplot
(Stata Journal, SSC).
Răspuns
Presupunând că aveți acces la datele originale, puteți face acest lucru în R cu funcția lineplot.CI din sciplot bibliotecă
Exemplu cu set de date mtcars:
lineplot.CI(x.factor=gear, response=mpg, group=vs, data=mtcars)
Rețineți că lineplot.CI în mod implicit trasează bare SE (poate fi modificat definind un nou funcționează cu argumentul ci.fun pentru a trasa intervale 95% CI)
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)))
Răspuns
Acest lucru se poate face în R cu points()
(sau plot(..., type="p")
) și segments()
. Ar putea exista, de asemenea, funcții R concepute pentru a crea CI-uri pentru dvs., dar acestea ar putea necesita datele originale. Panourile multiple din aceeași figură create cu par(mfrow=c(4,1))
. Dacă nu faceți acest lucru ” Nu știi niciun R, acest lucru ar fi greu de făcut cu ușurință (ca în, ar trebui să înveți ceva mai mult R sau să pui pe cineva să te ajute cu setul tău de date specifice).
Răspunde
GraphPad Prism poate realiza cu ușurință acest tip de grafic, trasând bare de eroare din valorile de eroare pe care le introduceți. Creați un tabel grupat formatat pentru introducerea mediei, – eroare și + eroare.
Comentarii
- Este posibil să obțineți o copie gratuită a acestuia, care să nu fie ‘ Versiune de încercare de 30 de zile?
- @BrentonHorne: Nu. Nu este software gratuit.
Lasă un răspuns