Statystyka

Dominanty

Dominanty to wartości występujące najczęściej. Może być ich kilka, jeśli dzielą największą liczebność. Zmieniaj powtórzenia, aby zobaczyć zmianę wyniku.

Pierwszy przykład

import msstat

dane = [1, 1, 3, 5, 8]
wynik = msstat.dominanty(dane)
print(wynik)

Wynik w konsoli (liczby dziesiętne zaokrąglono w kodzie tam, gdzie użyto round):

[1.0]

Eksperymentuj

Dopisz drugą trójkę. Jedynka i trójka będą miały taką samą, największą liczebność, a wynik zawiera obie wartości.

import msstat

dane = [1, 1, 3, 3, 5, 8]
wynik = msstat.dominanty(dane)
print(wynik)

Wynik w konsoli (liczby dziesiętne zaokrąglono w kodzie tam, gdzie użyto round):

[1.0, 3.0]

Dla początkowego zbioru dominantą jest 1. Dla [1,1,3,3,5,8] wynik to [1,3]. Uwaga: gdy wszystkie różne wartości występują jednakowo często, np. [1,1,3,3], biblioteka zwraca pustą listę; nie jest to błąd programu.

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.dominanty(dane)

dane - argument wymagany
Niepusta kolekcja liczb; powtórzenia wpływają na wynik.

Dane muszą być skończonymi liczbami rzeczywistymi, bez wartości logicznych.

BZnaczenie wyniku i wzór
c(v)=#{i:xi=v}

Wynik jest rosnącą listą dominant, a c(v) oznacza liczbę wystąpień v. Biblioteka przyjmuje szczególną konwencję: gdy co najmniej dwie różne wartości występują wszystkie jednakowo często, zwraca pustą listę. Dla jednej różnej wartości zwraca tę wartość w liście.

Potrzebne są skończone liczby rzeczywiste, bez wartości logicznych. Wynikiem jest lista, bo wartości najczęstszych może być kilka. Obowiązuje opisana poniżej konwencja biblioteki dla jednakowych liczebności.

CZapis obliczenia w Pythonie

from collections import Counter

def oblicz(dane):
    liczebnosci = Counter(dane)
    if len(liczebnosci) > 1 and len(set(liczebnosci.values())) == 1:
        return []
    maksimum = max(liczebnosci.values())
    return sorted(x for x, ile in liczebnosci.items() if ile == maksimum)

dane = [1, 1, 3, 5, 8]
print(oblicz(dane))

Spróbuj sam

Zbuduj zbiór z trzema różnymi wartościami, w którym dokładnie dwie są dominantami. Potem zmień go tak, aby zgodnie z konwencją biblioteki nie miał dominanty.

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