Ce face statistics.kde() și statistics.kde_random()
kde(date, h) construiește o funcție care estimează densitatea de probabilitate a datelor, așezând câte un „clopot” mic (nucleu) peste fiecare valoare. h (lățimea de bandă) controlează netezimea: mică dă o curbă cu multe vârfuri, mare o curbă foarte netedă. Cu cumulative=True obții funcția de repartiție.
kde_random(date, h) returnează o funcție fără argumente care generează valori aleatoare după aceeași distribuție estimată. Nucleul poate fi 'normal', 'triangular', 'epanechnikov' și altele.
Parametri
| Parametru | Descriere |
|---|---|
date |
Valorile observate. |
h |
Lățimea de bandă (pozitivă). |
kernel |
Forma nucleului. |
Ce returnează
O funcție.
Exemple
Exemplul 1: Densitate estimată și valori generate
from statistics import kde, kde_random
timpi = [2.1, 2.5, 2.7, 3.0, 3.2, 5.8, 6.1]
f = kde(timpi, h=0.5)
for x in [2.5, 4.5, 6.0]:
print(x, round(f(x), 3))
F = kde(timpi, h=0.5, cumulative=True)
print(round(F(4), 3))
gen = kde_random(timpi, h=0.5, seed=1)
print([round(gen(), 2) for _ in range(4)])
Rezultat
2.5 0.414
4.5 0.01
6.0 0.217
0.702
[2.59, 6.46, 2.11, 6.04]
Greșeli frecvente
- Alegi un
hprea mic pentru puține date și curba are câte un vârf pentru fiecare valoare. Încearcă mai multe valori.
Comenzi înrudite
statistics.NormalDist: Distribuția normală ca obiect: probabilități, percentile, scoruri z și eșantioane.statistics.quantiles(): Împarte datele în n intervale cu același număr de valori: quartile, decile, percentile.random.gauss() și celelalte distribuții: Numere aleatoare după distribuții statistice: normală, triunghiulară, exponențială, binomială și altele.