Traffine I/O

Bahasa Indonesia

2022-12-09

Distribusi kategorikal

Apa itu distribusi kategorikal

Distribusi kategorikal adalah distribusi probabilitas yang diikuti oleh variabel acak X ketika K kejadian X_1, X_2, ..., X_K diperoleh dengan probabilitas p_1, p_2, ..., p_K masing-masing dalam satu percobaan.

Distribusi kategorikal adalah distribusi probabilitas yang memperluas distribusi Bernoulli ke dimensi K. Dalam distribusi Bernoulli, ada dua peristiwa (K=2), tetapi ketika jumlah peristiwa adalah enam (K=6), seperti jumlah lemparan dadu, yaitu multi-dimensi, itu menjadi distribusi kategoris.

Probabilitas dari distribusi kategorikal dinyatakan dengan persamaan berikut:

P(X=x;p_1, p_2, ...,p_K) = \prod_{k=1}^K p^{x_k}_k
x_k \in \{0,1\}, \quad \sum_{k=1}^{K} x_k=1

Distribusi kategorikal kadang-kadang dilambangkan sebagai Categorical(p).

Nilai yang diharapkan dan varians dari distribusi kategorikal

Nilai yang diharapkan dan varians dari distribusi kategorikal masing-masing adalah:

E(X_k)=p_k \quad (k=1,2,...,K)
V(X_k)=p_k(1-p_k) \quad (k=1,2,...,K)

Periksa distribusi kategorikal dengan Python

Mari kita periksa distribusi kategorikal dengan Python.

Pertama, perhatikan contoh dadu (K=6). Kita akan melakukan 6000 percobaan dengan \frac{1}{6} sebagai probabilitas setiap lemparan dadu. Berikut ini adalah kode Python.

import numpy as np
import matplotlib.pyplot as plt

plt.style.use('ggplot')
fig, ax = plt.subplots(facecolor="w", figsize=(10, 5))

p = [1/6, 1/6, 1/6, 1/6, 1/6, 1/6]

data = np.random.choice([1,2,3,4,5,6], p=p, size=6000)
plt.hist(data, bins = [0.5 + v for v in range(len(p) + 1)], alpha=0.5)

Categorical distribution | 1

Kita dapat melihat bahwa jumlah kejadian dari setiap mata adalah sekitar 1000.

Selanjutnya, misalkan kita memiliki K=4 kejadian, masing-masing dengan probabilitas \frac{2}{10}, \frac{1}{10}, \frac{5}{10}, dan \frac{2}{10}. Amati kejadian ini sebanyak 10000 kali. Bagaimana dengan kode Python.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator

plt.style.use('ggplot')
fig, ax = plt.subplots(facecolor="w", figsize=(10, 5))
ax.xaxis.set_major_locator(MaxNLocator(integer=True))

p = [2/10, 1/10, 5/10, 2/10]

data = np.random.choice([1,2,3,4], p=p, size=10000)
plt.hist(data, bins = [0.5 + v for v in range(len(p) + 1)], alpha=0.5)

Categorical distribution | 2

Kita bisa melihat bahwa distribusinya sejalan dengan probabilitas.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!