Anda hanya diwajibkan untuk mengumpulkan file ini saja ke uploader yang disediakan di http://elearning2.uai.ac.id/. Ganti nama file ini saat pengumpulan menjadi tugas1_NIM.ipynb.
Keterlambatan: Pengumpulan tugas yang melebihi tenggat yang telah ditentukan tidak akan diterima. Keterlambatan akan berakibat pada nilai nol untuk tugas ini.
Kolaborasi: Anda diperbolehkan untuk berdiskusi dengan teman Anda, tetapi dilarang keras menyalin kode maupun tulisan dari teman Anda.
Terdapat enam packages yang Anda akan gunakan dalam mengerjakan tugas ini, yaitu:
Anda diperbolehkan (jika dirasa perlu) untuk mengimpor modul tambahan untuk tugas ini, kecuali dijelaskan sebaliknya. Namun, seharusnya modul yang tersedia sudah cukup untuk memenuhi kebutuhan Anda.
Pastikan jawaban Anda singkat, padat, dan jelas. Mayoritas pertanyaan yang diberikan dapat dijawab dalam 3-4 kalimat saja.
Nilai akhir: XX/50
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
%matplotlib inline
plt.rcParams['figure.figsize'] = (12,7)
df = sns.load_dataset('mpg')
Sebelum memulai melakukan pemodelan, ada baiknya bagi Anda untuk melakukan eskplorasi data dengan bantuan visualisasi.
Gambarkan histogram dari acceleration
.
Gambarkan bar plot untuk jumlah mobil dari masing-masing origin
.
Sekarang, bandingkan histogram acceleration
untuk masing-masing origin
. Jangan lupa untuk memasukkan legendanya.
Buat visualisasi seperti pada soal 1.1.c, tetapi kali ini cocokkan distribusi Gaussian ke masing-masing acceleration
. Anda dapat menghilangkan KDE plot yang ada jika Anda menggunakan seaborn. Warnai MLE dari Gaussians tersebut sesuai dengan warna histogram dari origin
yang dicocokkan.
from scipy.stats import norm
Gambarkan bar plot dari model_year
. Urutkan bar plot tersebut berdasarkan tahunnya.
Gambarkan histogram dari mpg
. Cocokkan pula distribusi Gaussian ke data tersebut.
Gambarkan scatter plot dari mpg
dan acceleration
.
Tunjukkan matriks kovariansi dari mpg
dan acceleration
.
Gambarkan contour plot dari bivariate Gaussian dengan atribut mpg
dan acceleration
. Gunakan full covariance matrix.
from scipy.stats import multivariate_normal
Berikan kesimpulan dari eksplorasi yang telah Anda lakukan sejauh ini.
Jawaban Anda di sini
Kita akan mencoba menghitung likelihood dari salah satu atribut dalam data. Asumsikan bahwa kita punya dua hipotesis mengenai distribusi model_year
.
Berapa nilai MLE dari parameter $\mathcal{M}_1$ dan $\mathcal{M}_2$?
Jawaban Anda di sini
Untuk membandingkan kedua model, hitunglah log-likelihood-nya. Ingat bahwa log-likelihood didefinisikan sebagai
$$ \mathcal{L}(\mathcal{M}) = \sum_{i=1}^N \log p(x_i|\mathcal{M}) $$Sanity check: Nilai log-likelihood $\leq 0$
from IPython.display import display, HTML
ll1 = ...
display(HTML(
'$\mathcal{L}(\mathcal{M}_1) = %.2f$' % ll1
))
ll2 = ...
display(HTML(
'$\mathcal{L}(\mathcal{M}_2) = %.2f$' % ll2
))
Berdasarkan kedua perhitungan pada soal 2.3.a, model mana yang lebih cocok menggambarkan data? Mengapa?
Jawaban Anda di sini
Dua orang petinju, MP dan ODLH, akan bertemu satu masing-masing dalam sebuah pertandingan amal. MP telah bertanding 70 kali dan memenangkan 61 pertandingan, sedangkan ODLH menang 39 kali dari 45 pertandingannya. Asumsikan bahwa Anda tidak tahu apapun tentang kemampuan kedua petinju ini awalnya, lalu Anda ingin memodelkan peluang MP akan menang dari ODLH.
Jika Anda memodelkan kemampuan (skill) MP dan ODLH sebagai distribusi beta, berapa nilai parameter dari masing-masing model?
Gambarkan distribusi dari "skill" kedua petinju.
from scipy.stats import beta
Berapa nilai ekspektasi dan variansi dari kedua model?
Berdasarkan ekspektasi tersebut, siapa petinju yang lebih baik?
Jawaban Anda di sini
Hitunglah peluang PM akan menang melawan ODLH.
Petunjuk: Anda dapat menggunakan referensi dari Bayesian Methods for Hackers.
import pymc3 as pm