statistics.kde() și statistics.kde_random() în Python

Statistică Python 3.13+

Estimarea densității cu nuclee (KDE): o curbă netedă a distribuției datelor și eșantioane din ea.

Sintaxă
f = statistics.kde(date, h, kernel='normal', *, cumulative=False)
gen = statistics.kde_random(date, h, kernel='normal', *, seed=None)

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 h prea mic pentru puține date și curba are câte un vârf pentru fiecare valoare. Încearcă mai multe valori.

Comenzi înrudite