Statystyka
Kwartyle
Kwartyle opisują położenie dolnej części, środka i górnej części uporządkowanych danych. Różnica między trzecim i pierwszym kwartylem opisuje szerokość środkowej części zbioru. Porównaj ją z rozstępem całych danych.
Pierwszy przykład
import msstat
dane = [1, 1, 3, 5, 8]
wynik = msstat.kwartyle(dane)
print(wynik)
Wynik w konsoli (liczby dziesiętne zaokrąglono w kodzie tam, gdzie użyto round):
(1.0, 3.0, 6.5)
Eksperymentuj
Do pięciu liczb dopisz 9. Porównaj kwartyle przed zmianą i po niej: (1,3,6.5) oraz (1,4,8). Zmieni się zarówno mediana całości, jak i podział na połowy.
import msstat
dane = [1, 1, 3, 5, 8, 9]
wynik = msstat.kwartyle(dane)
print(wynik)
Wynik w konsoli (liczby dziesiętne zaokrąglono w kodzie tam, gdzie użyto round):
(1.0, 4.0, 8.0)
Dla nieparzystej liczby obserwacji mediana całości jest pomijana przy tworzeniu połówek. Q1 i Q3 są medianami tych połówek. Dla jednej liczby wszystkie kwartyle są równe, a dla dwóch wynik to minimum, średnia i maksimum.
Odkrywaj w swoim tempie
AParametry i wartości domyślne
Dane podajesz samodzielnie. Pierwszy przykład używa domyślnych wartości pozostałych parametrów.
msstat.kwartyle(dane)
dane - argument wymagany- Niepusta kolekcja liczb, porządkowana przed wyznaczeniem kwartylów.
Dane muszą być skończonymi liczbami rzeczywistymi, bez wartości logicznych.
BZnaczenie wyniku i wzór
Q2 jest medianą całości; Q1 i Q3 są medianami połówek po pominięciu mediany całości przy nieparzystym n. To konkretna konwencja biblioteki, a inne programy mogą liczyć kwartyle inaczej. Dla jednej obserwacji wszystkie kwartyle są równe, a dla dwóch wynik to minimum, średnia i maksimum.
Dane są skończonymi liczbami rzeczywistymi, bez wartości logicznych. Biblioteka ma własną, jawną konwencję median połówek; wyniki innych programów mogą się różnić dla tego samego małego zbioru.
CZapis obliczenia w Pythonie
def mediana(liczby):
n = len(liczby)
p = n//2
return liczby[p] if n % 2 else (liczby[p-1]+liczby[p])/2
def oblicz(dane):
liczby = sorted(dane)
n = len(liczby)
if n == 1:
return (liczby[0],)*3
p = n//2
return (mediana(liczby[:p]), mediana(liczby), mediana(liczby[p+n%2:]))
dane = [1, 1, 3, 5, 8]
print(oblicz(dane))
Spróbuj sam
Wyznacz ręcznie kwartyle dla [1,2,3,4,5,6,7]. Której liczby nie użyjesz przy liczeniu median dolnej i górnej połowy?