Jak wizualizować niezależny test t dwóch próbek?


11

Jakie są najbardziej akceptowane sposoby wizualizacji wyników niezależnego testu t dla dwóch próbek? Czy częściej używana jest tablica numeryczna czy jakiś wykres? Celem jest, aby przypadkowy obserwator spojrzał na postać i od razu zobaczył, że prawdopodobnie pochodzą z dwóch różnych populacji.


„Zaakceptowane” przez kogo, w jakim kontekście? „Częściej używane” gdzie?
Glen_b

Odpowiedzi:


18

Warto jasno określić cel swojej działki. Zasadniczo istnieją dwa różne rodzaje celów: możesz sam stworzyć wykresy, aby ocenić przyjęte założenia i pokierować procesem analizy danych, lub możesz stworzyć wykresy, aby przekazać wyniki innym osobom. To nie to samo; na przykład wielu przeglądających / czytających twoją fabułę / analizę może być statystycznie niewyszukanych i może nie być zaznajomionych z ideą, powiedzmy, równej wariancji i jej roli w teście t. Chcesz, aby Twój dział przekazywał ważne informacje o twoich danych nawet takim konsumentom jak oni. Ufają domyślnie, że zrobiłeś wszystko poprawnie. Z twojego zestawu pytań wynika, że ​​masz na myśli ten drugi typ.

Realistycznie najczęstszym i akceptowanym wykresem do przekazywania wyników testu t 1 innym osobom (odłożonym na bok, czy jest to najbardziej odpowiednie) jest wykres słupkowy średnich ze standardowymi słupkami błędów. To bardzo dobrze pasuje do testu t, ponieważ test t porównuje dwa sposoby przy użyciu ich standardowych błędów. Gdy masz dwie niezależne grupy, uzyskasz intuicyjny obraz, nawet dla statystycznie nieskomplikowanych, a (chętni do danych) ludzie „natychmiast zobaczą, że prawdopodobnie pochodzą z dwóch różnych populacji”. Oto prosty przykład z wykorzystaniem danych @ Tima:

nonsmokers <- c(18,22,21,17,20,17,23,20,22,21)
smokers <- c(16,20,14,21,20,18,13,15,17,21)
m        = c(mean(nonsmokers), mean(smokers))
names(m) = c("nonsmokers", "smokers")
se       = c(sd(nonsmokers)/sqrt(length(nonsmokers)), 
             sd(smokers)/sqrt(length(smokers)))
windows()
  bp = barplot(m, ylim=c(16, 21), xpd=FALSE)
  box()
  arrows(x0=bp, y0=m-se, y1=m+se, code=3, angle=90)

wprowadź opis zdjęcia tutaj

To powiedziawszy, specjaliści od wizualizacji danych zwykle nie znoszą tych wykresów. Często są wyśmiewani jako „wykresy dynamitu” (por. Dlaczego wykresy dynamitu są złe ). W szczególności, jeśli masz tylko kilka danych, często zaleca się po prostu ich pokazanie . Jeśli punkty nachodzą na siebie, możesz je drżeć w poziomie (dodać niewielką ilość losowego hałasu), aby nie zachodziły już na siebie. Ponieważ test t zasadniczo dotyczy średnich i błędów standardowych, najlepiej nałożyć wykres średnich i błędów standardowych na taki wykres. Oto inna wersja:

set.seed(4643)
plot(jitter(rep(c(0,1), each=10)), c(nonsmokers, smokers), axes=FALSE, 
     xlim=c(-.5, 1.5), xlab="", ylab="")
box()
axis(side=1, at=0:1, labels=c("nonsmokers", "smokers"))
axis(side=2, at=seq(14,22,2))
points(c(0,1), m, pch=15, col="red")
arrows(x0=c(0,1), y0=m-se, y1=m+se, code=3, angle=90, length=.15)

wprowadź opis zdjęcia tutaj

Jeśli masz dużo danych, wykresy pudełkowe mogą być lepszym wyborem, aby uzyskać szybki przegląd dystrybucji, i możesz tam również nałożyć środki i SE.

data(randu)
x1 = qnorm(randu[,1])
x2 = qnorm(randu[,2])
m  = c(mean(x1), mean(x2))
se = c(sd(x1)/sqrt(length(x1)), sd(x2)/sqrt(length(x2)))
boxplot(x1, x2)
points(c(1,2), m, pch=15, col="red")
arrows(x0=1:2, y0=m-(1.96*se), y1=m+(1.96*se), code=3, angle=90, length=.1)
# note that I plotted 95% CIs so that they will be easier to see

wprowadź opis zdjęcia tutaj

Proste wykresy danych i wykresy pudełkowe są wystarczająco proste, aby większość ludzi mogła je zrozumieć, nawet jeśli nie są zbyt bystre statystycznie. Pamiętaj jednak, że żaden z nich nie ułatwia oceny ważności testu t do porównania twoich grup. Celom tym najlepiej służą różne rodzaje fabuł.

1. Należy zauważyć, że ta dyskusja zakłada niezależny test t dla próbek. Te wykresy mogą być stosowane z testem t próbek zależnych, ale mogą być również mylące w tym kontekście (por. Czy stosowanie słupków błędów dla średnich w badaniu wewnątrz badanych jest nieprawidłowe? ).


Dużym problemem związanym z użyciem wykresu słupkowego + CI jest to, że czasami różnica jest istotna statystycznie, ale CI pokrywają się . Biorąc pod uwagę, że fabuła bar + CI próbuje odwołać się do ogólnej publiczności, naprawdę nie chcemy tracić czasu na wyjaśnianie tego dodatkowego zmarszczki.
Heisenberg

@Heisenberg, jestem tego świadomy. Nie ma jednej idealnej fabuły na wszystkie okazje i cele. Nie wspomniałem również o CI, tylko SE (chociaż byłoby to równoważne z niektórymi CI, w zależności od df). Znaczenie jest powszechnie wspomniane w podpisie ryciny i omówione w tekście. Jeśli chcesz, aby był wyświetlany jednoznacznie na samym wykresie, możesz dodać nawiasy i wartości p (np. Tutaj ).
gung - Przywróć Monikę

Przepraszam, jeśli ton brzmi agresywnie. Jestem trochę zirytowany, że w końcu wciąż nie ma eleganckiego sposobu wizualizacji testu t dla ogólnej publiczności bez dalszego wyjaśniania. Może sprowadzać się do kreślenia: 2 wykresy słupkowe pokazujące średnie grupy z SE i trzeci wykres pokazujący różnicę i jej CI (jak twój link ). Ale taka wizualizacja pokazuje zbędne informacje (grupy oznaczają ORAZ różnice w środkach), co może również mylić odbiorców.
Heisenberg

@Heisenberg, nie użyłbym fabuły z mojej innej odpowiedzi, chyba że spróbuję wyświetlić test t wśród pacjentów. Myślę, że prawdopodobnie dobrze jest przedstawić 2 takty w / SE dla testu t, w / prostego podpisu liczbowego. Jeśli potrzebujesz znaczenia w fabule, możesz dodać nawiasy kwadratowe lub coś podobnego (generalnie uważam, że nie jest to konieczne).
gung - Przywróć Monikę

14

Najpowszechniej stosowanym sposobem na wizualizację -test-jak porównanie jest użycie boxplots . Poniżej podaję przykład z wykorzystaniem zestawu danych opisującego „związek między paleniem marihuany a deficytem wydajności w zadaniu pomiaru pamięci krótkoterminowej” z tej strony .t

> nonsmokers <- c(18,22,21,17,20,17,23,20,22,21)
> smokers <- c(16,20,14,21,20,18,13,15,17,21)
> 
> t.test(nonsmokers, smokers)

    Welch Two Sample t-test

data:  nonsmokers and smokers
t = 2.2573, df = 16.376, p-value = 0.03798
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 0.1628205 5.0371795
sample estimates:
mean of x mean of y 
     20.1      17.5 

wprowadź opis zdjęcia tutaj

W rzeczywistości wykresy pudełkowe są powszechnie używane do „nieformalnego” testowania hipotez, na przykład jak opisał Yoav Benjamini w artykule z 1988 r. Otwieranie pudełka z wykresu pudełkowego :

Zwykły wykres pudełkowy jest uzupełniony o przybliżony przedział ufności dla środkowej partii, pokazany jako para klinów wyjętych z boków pudełka. Te przedziały ufności są skonstruowane w taki sposób, że gdy dwa wycięcia różnych wykresów pudełkowych nie zachodzą na siebie, ich mediany są znacznie różne. (...) Ponieważ wzór przedziału ufności jest stałą razy przedział międzykwartylowy podzielony przez pierwiastek kwadratowy z wielkości partii, ten ostatni można odczytać z długości klinów w stosunku do długości pudełka.

Zobacz także: Test T wykorzystujący tylko dane podsumowujące na wykresie pudełkowym

Ten wykres nie pokazuje ilości bezpośrednio zaangażowanych w test , jak zauważył @NickCox . Jeśli chcesz bezpośredniego porównania średnich z przedziałami ufności, możesz użyć wykresu słupkowego z zaznaczonymi przedziałami ufności. Korzystanie ze środków i przedziałów ufności umożliwia także przeprowadzenie testu hipotez (patrz tutaj lub tutaj ).t

wprowadź opis zdjęcia tutaj

Jak widać z innych postów i komentarzy w tym wątku, zarówno wykresy pudełkowe, jak i dynamitowe są nieco kontrowersyjnym wyborem, więc dam wam jeszcze jedną alternatywę, o której jeszcze nie wspomniano. Najpierw przypomnij sobie, że test i regresja są powiązane . Można wykreślić -test podobnego porównania jako dwa punkty z errorbars (przedziały ufności), które są połączone z linią. Nachylenie linii jest proporcjonalne do nachylenia regresji, jeśli zastosowano regresję liniową zamiastttt-test w tej sytuacji. Główną zaletą takiego wykresu jest to, że pozwala łatwo ocenić wielkość różnicy środków, patrząc na nachylenie linii. Wadą może być to, że może sugerować, że istnieje pewna „ciągłość” między środkami (tj. Że masz sparowane próbki).

wprowadź opis zdjęcia tutaj

Wykresy pudełkowe wydają się być częściej stosowane, ponieważ dostarczają więcej informacji o rozkładzie wizualizowanych zmiennych (w porównaniu do średniej tylko z przedziałem ufności). Uzupełniają one raczej niż duplikują informacje z testu, a takie użycie fabuły jest popierane przez większość przewodników po stylu, np. W Podręczniku publikacji Amerykańskiego Towarzystwa Psychologicznego :t

Pierwszą kwestią jest wartość informacyjna postaci w tekście artykułu, na którym ma się pojawić. Jeśli rysunek nie ma istotnego wpływu na zrozumienie pracy lub powiela inne elementy pracy, nie należy go uwzględniać.


4
Jest to rzeczywiście powszechne, nawet w tekstach omawiających testy t i ANOVA, ale jest to jednak niezwykły wybór. Wykres pudełkowy nie pokazuje żadnej z wielkości bezpośrednio uczestniczących w teście. Minimalnie odpowiedni wykres powinien pokazywać środki i dawać więcej szczegółów na temat rozkładu niż wykres pudełkowy. Szczegółowość ogonów jest często kluczowa w interpretacji testu.
Nick Cox,

OK @NickCox, zestaw danych został wybrany tylko do wizualizacji, ale teraz zmieniłem go na bardziej odpowiedni przykład.
Tim

3
Wykres słupkowy (inaczej „wykres dynamitowy”) ma wyjątkowo wysoki stosunek atramentu do informacji.
Frank Harrell,

Cytat z Podręcznika APA (nie sprawdziłem kontekstu) jest dobrą ogólną radą, ale sam w sobie nie jest bezpośrednim argumentem za użyciem częściowo istotnej fabuły w tym kontekście. Zgadzam się oczywiście, że wykresy pudełkowe mogą być bardzo przydatne i często uzupełniające się oraz że są bardzo często używane, ale moja pierwsza uwaga pozostaje.
Nick Cox,

@NickCox Nie mogę powiedzieć, że zgadzam się z tobą, ale nadal rozważam boxplot, aby dostarczyć dodatkowych informacji i nie powielać wyników testu t, nawet jeśli nie odnosi się to bezpośrednio do testu t. To jest proste, jasne i pouczające.
Tim

8

Jest to głównie odmiana pomocnych odpowiedzi @Tim i @gung, ale wykresów nie można dopasować do komentarza.

Małe, ale potencjalnie przydatne punkty:

  1. Wykres paskowy lub punktowy, jak pokazano na @gung, wymaga modyfikacji, jeśli istnieją powiązania, jak w przykładowych danych. Punkty można układać w stosy lub drżeć, lub jak w poniższym przykładzie, można użyć hybrydowego wykresu kwantylu-pudełka, jak sugeruje Emanuel Parzen (najbardziej dostępne odniesienie to prawdopodobnie 1979 r. Modelowanie danych nieparametrycznych. Journal, American Statistics Association74: 105-121). Ma to również inne zalety, podkreślając, że jeśli połowa danych znajduje się w pudełku, to połowa też jest na zewnątrz, i pokazuje zasadniczo wszystkie szczegóły dystrybucji. Tam, gdzie są tylko dwie grupy, jak ma to miejsce w tym kontekście, każdy bardziej konwencjonalny rodzaj wykresu pudełkowego może być minimalnym, rzeczywiście szkieletowym obrazem. Niektórzy uznają to za zaletę, ale istnieje możliwość pokazania większej ilości szczegółów. Odwrotny argument jest taki, że wykres pola zaznaczający poszczególne punkty, zwłaszcza te o wartości większej niż 1,5 IQR z bliższego kwartylu, jest wyraźnym ostrzeżeniem dla użytkownika: uważaj za pomocą testu t, ponieważ w ogonach mogą znajdować się punkty, które powinieneś martwić się o.

  2. Możesz oczywiście dodać oznaczenie środków do wykresu pudełkowego, co jest dość często wykonywane. Często dodaje się inny znacznik lub symbol punktu. Tutaj wybieramy linie odniesienia.

wprowadź opis zdjęcia tutaj

Wykresy kwantowe dla palaczy i niepalących. Pola pokazują mediany i kwartyle. Poziome niebieskie linie oznaczają.

Uwaga. Wykres został utworzony w Stata. Oto kod dla zainteresowanych. stripplotmusi być wcześniej zainstalowany za pomocą ssc inst stripplot.

clear 
mat nonsmokers = (18,22,21,17,20,17,23,20,22,21)
mat smokers = (16,20,14,21,20,18,13,15,17,21)
local n = max(colsof(nonsmokers), colsof(smokers)) 
set obs `n' 
gen smokers = smokers[1, _n] 
gen nonsmokers = nonsmokers[1, _n] 
stripplot smokers nonsmokers, vertical cumul centre xla(, noticks) ///
xsc(ra(0.6 2.4)) refline(lcolor(blue)) height(0.5) box ///
ytitle(digit span score) yla(, ang(h)) mcolor(red) msize(medlarge) 

EDYTOWAĆ. Ten dalszy pomysł w odpowiedzi na odpowiedź @Frank Harrell nakłada dwa normalne wykresy prawdopodobieństwa (naprawdę wykresy kwantylowo-kwantylowe). Poziome linie pokazują środki. Niektórzy chcieliby dodać linie dla każdej grupy wskazujące na idealne dopasowanie, np. Przez ( , jego średnia) i ( , jego średnia jej SD) lub solidnie odporne alternatywy.01+

wprowadź opis zdjęcia tutaj


1
+1, chciałem wstrząsnąć danymi, ale nie byłem jeszcze w stanie się do nich dostać. Zastanawiałem się także nad dodaniem bardziej zaawansowanych wykresów, w tym wykresów skrzynek kwantowych, wykresów skrzypcowych i wykresów qq, ale ostatecznie porzuciłem pomysł, by wymieniać coraz więcej wykresów.
gung - Przywróć Monikę

@gung Wystarczająco; niestety lub na szczęście wątek może łatwo przekształcić się w sposób, w jaki ogólnie można porównać dwa rozkłady. Dla innego przykładu danych histogramy mogą być poważnym konkurentem itp.
Nick Cox

5

Oprócz ładnego celu, jakim jest przedstawienie wyników, należy zastanowić się nad tym, która grafika sprawdza założenia testu równej wariancji dla dwóch próbek , aby uzyskać doskonałą wydajność. To byłyby normalne funkcje odwrotne dwóch empirycznych funkcji rozkładu skumulowanego. Aby spełnić założenia testu, te dwie krzywe muszą być równoległymi liniami prostymi.t


Dodałem jedną z różnych możliwości do własnej odpowiedzi.
Nick Cox
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.