Pytanie:
Wykreślanie słupków przedziału ufności ze statystyk podsumowujących
Josh Pinto
2013-07-20 00:10:11 UTC
view on stackexchange narkive permalink

Trochę jak wykres pudełkowy. Niekoniecznie mam na myśli standardowy górny przedział ufności, dolny przedział ufności, średnią i wykresy pudełkowe przedstawiające zakres danych, ale mam na myśli wykres pudełkowy z tylko trzema fragmentami danych: 95% przedział ufności i średnia

To jest zrzut ekranu artykułu w czasopiśmie, który zawierał dokładnie to, czego szukam: enter image description here

Chciałbym również wiedzieć, jak będę używać oprogramowania odpowiadającego wspomina o stworzeniu takiej fabuły.

To, co nazywasz „standardowym górnym przedziałem ufności, dolnym przedziałem ufności, średnią i wykresami pudełkowymi przedstawiającymi zakres danych” w ogóle nie jest standardowym wykresem pudełkowym. Standardowy wykres pudełkowy przedstawia medianę, kwartyle, minimum i maksimum oraz często inne szczegóły.
@Nick Right:, ale jak * właściwie * nazywają się takie grafiki? (Nie jestem pewny.)
OK, na pewno jestem skłonny przyznać, że nie wiem wystarczająco dużo o statystykach, aby wyrazić to z pewnością siebie, więc dziękuję za poprawienie mnie.
Ten rodzaj wykresu jest standardowy (chociaż nie jest to wykres pudełkowy) i może być utworzony przez wszystkie główne pakiety statystyczne: Stata, SAS, [R] (http://cran.r-project.org/), MATLAB. Myślę, że możesz to zrobić również z Excelem.
@COOLSerdash świetnie! Czy mógłbyś napisać odpowiedź dla MATLAB, skoro mam już MATLAB?
Nie znam MATLABA. Ale coś w rodzaju [this] (http://www.mathworks.ch/ch/help/matlab/ref/errorbar.html) lub [this] (http://www.cs.utsa.edu/~cs1173/lessons /Lesson6ErrorBarsQuestions/Lesson6ErrorBarsQuestions.html)?
Nazwałbym te wykresy przedziału ufności, ale nie każdy wykres naprawdę wymaga odrębnej nazwy. Każda fabuła zasługuje jednak na podpis tekstowy ...
Siedem odpowiedzi:
Andre Silva
2013-07-20 01:10:02 UTC
view on stackexchange narkive permalink

Zobacz, czy to ci pomoże. Rozwiązanie R:

  par (mfrow = c (2,1)) # aby ułożyć wykresy w kolumnie # Dataset 1upperlimit = 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 2upperlimit_2 = upperlimit * 1.5lowerlimit_2 = lowerlimit * 0.8mean_2 = upperlimit_2-lowerlimit_2df_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 ) # usuń obiekty przechowywane z workspacepar (mfrow = c (1,1)) # wróć do wartości domyślnych (jeden wykres na raz)  

enter image description here

a jak mam uruchomić taki kod? Jestem zupełnie nowy w R, więc będziesz musiał mnie przez to przejść, ponieważ nie mam pojęcia.
Mogę pomóc Ci zrobić zdjęcie, ale najpierw musisz wykonać dwa kroki: i) zainstalować R Studio na swoim komputerze, ii) podać powtarzalny przykład: http://stackoverflow.com/questions/5963269/how-to- zrobić-wspaniały-r-odtwarzalny-przykład
@AndreSilva, Myślę, że poszedłeś o krok dalej. Świetne wsparcie i mentoring!
Oto, co otrzymałem za uruchomienie twojego kodu http://i.stack.imgur.com/yrZaJ.png
@BrentonHome. Dziwne. Właśnie przetestowałem i zadziałało. Słupki „błędu” nie pojawiają się. Czy zainstalowałeś pakiet `plotrix`? Dodałem wiersz poleceń programu w kodzie, który instaluje pakiet plotrix. Spróbuj ponownie i daj znać.
jona
2013-07-21 22:32:25 UTC
view on stackexchange narkive permalink

W MATLAB-u możesz wypróbować funkcję errorbar : http://www.mathworks.de/de/help/matlab/ref/errorbar.html

Alternatywnie możesz to zrobić głupio i ręcznie. Na przykład, mając macierz punktów danych „a”, możesz obliczyć swoje średnie za pomocą funkcji m = średnia (a), obliczyć swoje CI (w zależności od tego, jakiego CI potrzebujesz) i wykreślić wyniki ręcznie.

Demonstracja, jeśli znasz już średnią i CI, zakładając, że CI znajdują się w macierzy CI (pierwsza i druga kolumna), a średnie w macierzy a :

  plot (1: length (CI), a, 'o', 'markersize', 10)% plot the meanhold on; plot (1: length (CI), CI (1 ,: ), `` v '', `` markersize '', 6)% wykresu dolna granica CI utrzymuj na; plot (1: length (CI), CI (2,:), '^', 'markersize', 6)% plot górnej granicy CI on; dla I = 1: długość (CI)% połącz górną i dolną granicę linią ([II], [CI (1, I) CI (2, I)]) przytrzymaj; koniec; oś ([0 długość (CI) +1 min (CI (1,:)) * 0,75 max (CI (2,:)) * 1,25])% oś skali  

Demonstracja w przypadku, gdy wiesz pomiary indywidualne, dla eksperymentu z powtarzanymi pomiarami, 3+ warunki, jeden warunek na kolumnę, jeden temat w wierszu w macierzy a, bez brakujących próbek, 95% CI według MATLAB-a ttest():

  [H, P, CI] = ttest (a ); % oblicz 95% CI dla każdej kolumny w macierzy a% CI znajduje się teraz w macierzy CI! wykres (1: długość (CI), [średnia (a)], „o”, „wielkość markera”, 10)% wykreśl średnią on; plot (1: length (CI), CI (1, :), 'v', 'markersize', 6)% plot dolnej granicy CI utrzymywać na; plot (1: length (CI), CI (2, :) , '^', 'markersize', 6)% wykresu górna granica CI utrzymuje się na; dla I = 1: długość (CI)% łączy górną i dolną granicę linią ([II], [CI (1, I) CI ( 2, I)]) trzymaj się; koniec; oś ([0 długość (CI) +1 min (CI (1,:)) * 0,75 max (CI (2,:)) * 1,25])% oś skali  kod> 
Przeczytaj moją ostatnią edycję, przepraszam, ale niektórzy ludzie, którzy mnie denerwują, usunęli fakt, że znam tylko 95% CI i nie chcą dodatkowych danych.
@BrentonHorne czy link do funkcji paska błędów nie pomógł? Wygląda na to, czego chcesz.
Jak powiedział Peter, użyj wtedy * errorbar () * lub skryptu, który napisałem, ale zignoruj ​​pierwszą linię z ttest i po prostu wprowadź bezpośrednio wartość średnią i CI. Myślę, że edytuję to.
@BrentonHorne Aby być uczciwym, nigdy nie omawiałeś tego punktu szczegółowo, ani nawet nie wspomniał o nim w ogóle w treści pytania. Wynikało to z tytułu, ale ten tytuł również omyłkowo wspomniał o wykresach pudełkowych, co jest problemem, który edycja próbowała naprawić. Szkoda, że ​​słowo „tylko” zniknęło w trakcie procesu, ale nikt celowo nie zredagował go w dużej części twojego pytania. Poza tym odpowiedź zawierała rozwiązanie, a reszta tekstu może być interesująca dla innych czytelników.
Uruchomiłem kod poszło dobrze, problem w tym, że chciałbym, żeby był jakiś sposób, dzięki któremu mógłbym połączyć górne CI i dolne CI linią jak na zrzucie ekranu w moim pytaniu.
http://i.stack.imgur.com/SMjpk.png to zdjęcie przedstawiające liczbę, którą tworzy twój kod dla danych, które mam
@Brenton Home, czy uruchomiłeś tę część kodu: `for I = 1: length (CI); działka (I, [CI (1, I): CI (2, I)]); czekaj; koniec; `` To powinno nakreślić linie. Za chwilę zrobię zrzut ekranu.
Uruchomiłem tę część kodu
@BrentonHorne, tak to wygląda dla mnie: [Imgur] (http://i.imgur.com/ZoVIkwa.png) Twój CI to macierz 2x4, prawda (`whoos CI`)?` Plot (I, [ CI (1, I): CI (2, I)] `powinna po prostu narysować linię, która biegnie od jednej granicy CI do następnej.
https://docs.google.com/file/d/0B1_sXH68hMWBYVVacDFUUVdnV0k/edit?usp=sharing to mój kod.
Myślę, że rozumiem problem; Twoja skala danych jest inna niż moja, a interwał jest zbyt drobnoziarnisty. Użyj tego: `for I = 1: length (CI); line ([I I], [CI (1, I) CI (2, I)]); hold on; end;` Zmienię oryginalną propozycję odpowiednio.
pozwól nam [kontynuować tę dyskusję na czacie] (http://chat.stackexchange.com/rooms/9762/discussion-between-jona-and-brenton-horne)
Fomite
2013-07-21 23:45:31 UTC
view on stackexchange narkive permalink

Ten typ wykresu w języku R przy użyciu ggplot2, chociaż być może będziesz musiał trochę majstrować przy rozmiarze czcionki osi:

  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)) dane. Szacunki $ idr <- exp (data.estimates $ par) data.estimates $ upper <- exp (data.estimates $ par + (1,96 * data.estimates $ se)) data.estimates $ niższa <- 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”)  

enter image description here

Nick Cox
2013-07-20 02:41:45 UTC
view on stackexchange narkive permalink

W Stata użyj serrbar lub ciplot (SSC) lub eclplot (Stata Journal, SSC).

Aghila
2013-07-21 17:33:09 UTC
view on stackexchange narkive permalink

Zakładając, że masz dostęp do oryginalnych danych, możesz to zrobić w R za pomocą funkcji lineplot.CI w bibliotece sciplot

Przykład z zestawem danych mtcars:

  lineplot .CI (x.factor = gear, response = mpg, group = vs, data = mtcars)  

Zauważ, że lineplot.CI domyślnie wyświetla słupki SE (można to zmienić definiując funkcja z argumentem ci.fun do wykreślenia 95% przedziałów CI)

  lineplot.CI (x.factor = gear, response = mpg, group = vs, data = mtcars, ci.fun = funkcja (x) c (średnia (x) -1,96 * se (x), średnia (x) + 1,96 * se (x)))  
rbatt
2013-07-20 00:14:46 UTC
view on stackexchange narkive permalink

Można to zrobić w języku R z points () (lub plot (..., type = "p") ) i segmentami () . Mogą również istnieć funkcje języka R przeznaczone do tworzenia CI dla Ciebie, ale mogą one wymagać oryginalnych danych. Wiele paneli na tej samej figurze utworzonych za pomocą par (mfrow = c (4,1)) . Jeśli nie znasz żadnego R, byłoby to trudne do zrobienia (tak jak w przypadku, musiałbyś nauczyć się trochę więcej R lub poprosić kogoś o pomoc z określonym zestawem danych).

Harvey Motulsky
2013-07-20 00:40:46 UTC
view on stackexchange narkive permalink

GraphPad Prism może z łatwością tworzyć tego rodzaju wykresy, wykreślając słupki błędów na podstawie wprowadzonych wartości błędów. Utwórz zgrupowaną tabelę sformatowaną dla wprowadzania średniej, - błędu i + błędu.

Czy można otrzymać bezpłatną kopię, która nie jest tylko 30-dniową wersją próbną?
@BrentonHorne: Nie. To nie jest wolne oprogramowanie.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...