Średnia i mediana
Dwa najczęściej używane podsumowania w całej statystyce to po jednym wywołaniu funkcji:
mean() sumuje wszystko i dzieli przez liczbę elementów. median() sortuje wartości i wybiera środkową (albo uśrednia dwie środkowe, gdy liczba elementów jest parzysta). Dla 32 samochodów z mtcars średnie spalanie wynosi około 20.1 mpg, a mediana 19.2. Są blisko siebie, co mówi, że dane nie są mocno skośne. Gdy mocno się różnią, to też jest informacja; wrócimy do tego na końcu.
Jedna rzecz zaskakuje wszystkich: jeśli wektor zawiera choćby jedno NA, obie funkcje zwracają NA:
To celowe: R odmawia cichego udawania, że brakującej wartości nie ma. na.rm = TRUE mówi "licz na wartościach, które masz". Przyjmuje go prawie każda funkcja podsumowująca z tego artykułu. Pełną historię tego, jak rozprzestrzenia się NA, znajdziesz w brakujących wartościach.
Odchylenie standardowe i wariancja
sd() mierzy rozrzut: mniej więcej, jak daleko typowa wartość leży od średniej, w tych samych jednostkach co dane. var() to jego kwadrat:
Odchylenie standardowe około 6 mpg oznacza, że samochody zwykle mieszczą się w granicach około 6 mpg od średniej 20.1. Ponieważ sd() jest w jednostkach danych, to jego wartość się raportuje; var() pojawia się głównie wewnątrz innych wzorów.
Oto szczegół, który ma znaczenie na zajęciach: sd() i var() liczą statystykę z próby, czyli dzielą sumę kwadratów odchyleń przez n − 1, a nie przez n:
Dlaczego n − 1? Ponieważ średnia jest szacowana z tych samych danych, odchylenia od tej oszacowanej średniej są systematycznie odrobinę za małe; dzielenie przez n − 1 to koryguje. Dane to prawie zawsze próba z czegoś większego, więc potrzebujesz wersji z n − 1. Jeśli naprawdę masz całą populację (każdego ucznia w klasie, każdy produkt w katalogu), pomnóż: var(x) * (n - 1) / n.
Błąd standardowy średniej
Odchylenie standardowe i błąd standardowy są ciągle mylone, więc trzymaj je osobno: sd opisuje dane, SE opisuje oszacowanie średniej. R nie ma wbudowanego se(), ale wzór to jedna linijka:
Błąd standardowy maleje wraz ze wzrostem próby (cztery razy więcej danych to dwa razy mniejszy SE), bo większa próba dokładniej ustala średnią. Odchylenie standardowe nie maleje z liczebnością próby: samochody są tak zróżnicowane, jak są, niezależnie od tego, ile z nich zmierzysz. SE to podstawowy element przedziałów ufności i tam pokazuje swoją wartość.
summary(): przegląd jednym wywołaniem
summary() daje naraz podsumowanie pięcioliczbowe i średnią, a działa też na całych ramkach danych:
Wywołane na ramce danych podsumowuje każdą kolumnę: kolumny liczbowe dostają min/kwartyle/średnią/max, a czynniki liczebności dla każdego poziomu. To pierwsza rzecz do uruchomienia na każdym świeżo wczytanym zbiorze danych: niemożliwe wartości (ujemny wiek, maksimum 9999) od razu rzucają się w oczy.
Kwantyle, rozstęp i IQR
quantile() uogólnia medianę na dowolny punkt podziału:
Bez argumentów zwraca minimum, kwartyle i maksimum. Przekaż probs =, żeby dostać konkretne punkty podziału: 10. i 90. percentyl powyżej wyznaczają, gdzie leży większość danych. IQR() (odległość między 25. a 75. percentylem) to miara rozrzutu, która w przeciwieństwie do sd() nie daje się szarpać wartościom odstającym. range() zwraca minimum i maksimum jako parę.
Dominanta: mode() w R tego NIE robi
Ta pułapka łapie każdego dokładnie raz. R ma funkcję mode(), ale nie ma ona nic wspólnego ze statystyką: podaje typ przechowywania obiektu:
Idiom do zapamiętania: table(x) liczy, ile razy występuje każda wartość, which.max() znajduje największą liczebność, a names() wyciąga samą wartość. Zwróć uwagę, że wynik jest napisem (nazwy w tabeli zawsze są napisami); owiń go w as.numeric(), jeśli chcesz na nim liczyć. Jeśli dwie wartości remisują, which.max() po cichu zwraca tylko pierwszą, więc gdy remis jest możliwy, sprawdź tabelę samodzielnie.
Średnia czy mediana: którą podawać
Średnia korzysta z każdej wartości i to jest jej siła i słabość jednocześnie: jedna skrajna wartość ją przesuwa. Medianę obchodzi tylko środek, więc wartości odstające ledwo ją ruszają:
Jedna dodana wartość przesuwa średnią z około 49 300 do ponad 155 000, czyli do liczby, która nie opisuje nikogo w danych, a mediana zmienia się tylko z 48 000 na 49 500. Dlatego dochody, ceny mieszkań i długość pobytów w szpitalu podaje się jako mediany: skośne dane z długim ogonem sprawiają, że średnia wprowadza w błąd. Dla mniej więcej symetrycznych danych obie miary się zgadzają i średnia jest w porządku (a statystycznie nawet efektywniejsza). Szybki histogram powie, z którą sytuacją masz do czynienia, a porównanie średniej z medianą to samo w sobie jednolinijkowy test skośności.
Co warto zapamiętać
mean(x)imedian(x); dodajna.rm = TRUE, gdy są brakujące wartości.sd(x)ivar(x)liczą statystykę z próby (mianownikn − 1) i właśnie tego potrzebujesz.- Błąd standardowy to
sd(x) / sqrt(length(x)); mierzy, jak dobrze znasz średnią, a nie jak rozrzucone są dane. summary()na świeżej ramce danych to najszybszy test zdrowego rozsądku w R.- Dominanta to
names(which.max(table(x)));mode()w R dotyczy typów przechowywania. - Dane skośne lub z wartościami odstającymi: podawaj medianę. Dane symetryczne: średnia jest w porządku.
Dalej: mierzenie, jak dwie zmienne zmieniają się razem, czyli korelacja przez cor() i cor.test().
Najczęściej zadawane pytania
Jak obliczyć odchylenie standardowe w R?
Przez sd(x). Zwróć uwagę, że liczy ono odchylenie standardowe z próby, czyli dzieli przez n − 1, a nie przez n. Właśnie tego potrzebujesz w prawie każdej prawdziwej analizie, bo dane to prawie zawsze próba, a nie cała populacja.
Jak obliczyć średnią i medianę w R?
mean(x) i median(x). Jeśli wektor zawiera brakujące wartości, obie funkcje zwracają NA; dodaj na.rm = TRUE, żeby liczyć na obecnych wartościach: mean(x, na.rm = TRUE).
Jak znaleźć dominantę (modę) w R?
Nie przez mode(), bo ta funkcja zwraca typ przechowywania obiektu, a nie najczęstszą wartość. Zamiast tego użyj idiomu z tabelą: names(which.max(table(x))) zwraca wartość, która występuje najczęściej.
Czym jest błąd standardowy w R?
Nie ma wbudowanej funkcji. Oblicz go jako sd(x) / sqrt(length(x)). Odchylenie standardowe opisuje rozrzut danych; błąd standardowy opisuje, jak precyzyjnie oszacowana jest średnia, i maleje wraz ze wzrostem próby.