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
Q1=med(dolna połowa),Q2=med(całość),Q3=med(górna połowa)

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?

Dokładność, obszar obliczeń i ograniczenia środowiska