Statystyka
Wariancja
Wariancja opisuje rozrzut danych wokół średniej, wykorzystując kwadraty odchyleń. Duże odchylenia mają przez to silny wpływ na wynik. Porównaj zbiory o tej samej średniej, ale różnym rozproszeniu.
Pierwszy przykład
import msstat
dane = [1, 1, 3, 5, 8]
wynik = msstat.wariancja(dane)
print(round(wynik, 6))
Wynik w konsoli (liczby dziesiętne zaokrąglono w kodzie tam, gdzie użyto round):
7.04
Eksperymentuj
Dla tych samych danych zmień proba=False na proba=True. Wynik wzrośnie z 7.04 do 8.8, bo dzielisz sumę kwadratów przez 4 zamiast przez 5.
import msstat
dane = [1, 1, 3, 5, 8]
wynik = msstat.wariancja(dane, proba=True)
print(round(wynik, 6))
Wynik w konsoli (liczby dziesiętne zaokrąglono w kodzie tam, gdzie użyto round):
8.8
Wariancja opiera się na kwadratach odchyleń od średniej. Wynik ma więc jednostkę danych podniesioną do kwadratu. Dodanie tej samej liczby do każdej obserwacji nie zmienia odchyleń ani wariancji.
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.wariancja(dane, proba=False)
dane - argument wymagany- Niepusta kolekcja danych.
proba=False- False oznacza dzielenie przez n; True przez n-1 i wymaga co najmniej dwóch obserwacji.
Dane muszą być skończonymi liczbami rzeczywistymi, bez wartości logicznych.
BZnaczenie wyniku i wzór
Symbol μ oznacza średnią z tych samych danych. Dla proba=False używany jest mianownik n, a dla proba=True mianownik n-1 i wymagane są co najmniej dwie obserwacje. Wynik ma jednostkę danych podniesioną do kwadratu.
Dane są skończonymi liczbami rzeczywistymi, bez wartości logicznych. Parametr proba musi być dokładnie True albo False. Wariancja próby wymaga co najmniej dwóch obserwacji.
CZapis obliczenia w Pythonie
def oblicz(dane, proba=False):
n = len(dane)
if proba and n < 2:
raise ValueError("Próba wymaga dwóch obserwacji")
srednia = sum(dane)/n
return sum((x-srednia)**2 for x in dane)/(n-1 if proba else n)
dane = [1, 1, 3, 5, 8]
print(oblicz(dane))
Spróbuj sam
Dodaj 100 do każdej obserwacji i porównaj wariancje. Następnie pomnóż dane przez 2: czy wariancja wzrośnie dwa czy cztery razy?