0% menganggap dokumen ini bermanfaat (0 suara)
25 tayangan64 halaman

Data Understanding Aak Ui 2021-07-23 v2

Modul ini membahas konsep dan teknik pengambilan serta telaah data dengan fokus pada metode nonvisualisasi menggunakan statistika. Peserta diharapkan dapat mengumpulkan data dari berbagai sumber dan menganalisisnya untuk mendapatkan pemahaman yang lebih baik tentang data tersebut. Selain itu, modul ini juga mencakup berbagai sumber data baik internal maupun eksternal serta teknik pengambilan data melalui API dan web scraping.

Diunggah oleh

ken311353
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
25 tayangan64 halaman

Data Understanding Aak Ui 2021-07-23 v2

Modul ini membahas konsep dan teknik pengambilan serta telaah data dengan fokus pada metode nonvisualisasi menggunakan statistika. Peserta diharapkan dapat mengumpulkan data dari berbagai sumber dan menganalisisnya untuk mendapatkan pemahaman yang lebih baik tentang data tersebut. Selain itu, modul ini juga mencakup berbagai sumber data baik internal maupun eksternal serta teknik pengambilan data melalui API dan web scraping.

Diunggah oleh

ken311353
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 64

thematic Academy

Tema Pelatihan
Pertemuan #06 : Data Understanding (non-visualisasi)
Unit Kompetensi

● Data Understanding: Mengumpulkan Data


(UK J.62DMI00.004.1 - Mengumpulkan Data)
○ Menentukan kebutuhan data
○ Mengambil data
○ Mengintegrasikan data
● Data Understanding: Menelaah Data dengan Metoda Statistik
(UK J.62DMI00.005.1 - Menelaah Data)
○ Menganalisis tipe dan relasi data
○ Menganalisis karakteristik data
■ Kriteria Unjuk Kerja (KUK) 2.1 Statistika Dasar
Bahan Bacaan

● Modul Pembelajaran Data Understanding


● Joel Grus, “Data Science from Scratch: First Principles with Python”, 2nd
Edition, O’Reilly 2019.
● Charu C. Aggarwal, “Data Mining: The Textbook”, Springer, 2015.
● Matt Taddy, “Business Data Science", McGraw-Hill, 2019.
Deskripsi modul dan tujuan pembelajaran

● Modul ini berisi penjelasan mengenai konsep dan teknik pengambilan dan
telaah data (data gathering and understanding). Teknik-teknik yang dibahas
dibatasi pada yang bersifat nonvisual menggunakan statistika. Teknik-teknik
visualisasi dijelaskan secara terpisah di modul 07.
● Setelah menyelesaikan modul ini, peserta diharapkan mampu:
○ melakukan pengambilan data untuk proses sains data dari sumber data terbuka,
baik secara manual maupun secara programatik menggunakan library Pandas;
○ melakukan telaah data dengan beberapa metode statistika
Outline

● Apa itu telaah data (data understanding)?


● Sumber, susunan, tipe, dan model data
● Pengambilan data
● Telaah data dasar
Apa itu Telaah Data (Data Understanding)?
Apa itu telaah data (data understanding)?
● Dilakukan setelah problem bisnis
terdefinisikan sebagai hasil tahapan
business understanding.
● Tujuan: mendapatkan gambaran
utuh atas data.
● Dilanjutkan ke persiapan data (data
preparation), jika pemahaman awal
data cukup atau kembali ke business
understanding jika definisi
permasalahan bisnis harus direvisi.
Mengapa perlu data understanding?

● Data = bahan mentah solusi AI


● Data dari masing-masing sumber belum tentu dapat langsung dipakai karena:
○ maksud dan tujuan data berbeda-beda
○ keadaan asal terpisah-pisah atau justru terintegrasi secara ketat.
○ tingkat kekayaan (richness) berbeda-beda
○ tingkat keandalan (reliability) berbeda-beda
● Data understanding memberikan gambaran awal tentang:
○ kekuatan data
○ kekurangan dan batasan penggunaan data
○ tingkat kesesuaian data dengan masalah bisnis yang akan dipecahkan
○ ketersediaan data (terbuka/tertutup, biaya akses, dsb.)
Bagian-bagian proses telaah data

Identifikasi "titik sentuh" data dengan proses bisnis

Penentuan sumber utama data dan cara aksesnya

Asesmen nilai tambah bisnis dari data

Identifikasi sumber data tambahan untuk perbaikan


Sumber, Susunan, Tipe dan Model Data
Sumber data

Internal Spreadsheets (Excel, CSV, JSON, etc.)


sources Databases: can be queried via SQL, etc.
Text documents
Multimedia documents (audio, video)
External Open data repositories
sources
Public domain web pages
Sumber data daring
● Portal Satu Data Indonesia (https://data.go.id)
● Portal Data Jakarta (https://data.jakarta.go.id)
● Portal Data Bandung (http://data.bandung.go.id)
● Badan Pusat Statistik (https://www.bps.go.id)
● Badan Informasi Geospasial (https://tanahair.indonesia.go.id/)
● UCI Machine Learning repository (https://archive.ics.uci.edu/ml/index.php)
● Kaggle (https://www.kaggle.com/datasets)
● World Bank Open Data (https://data.worldbank.org)
● UNICEF Data (https://data.unicef.org)
● WHO Open Data (https://www.who.int/data)
● IBM Data Asset eXchange (https://developer.ibm.com/exchanges/data/)
● DBPedia (https://www.dbpedia.org/resources/)
● Wikidata (https://www.wikidata.org/) .
Sumber data daring

● Cari via Google Dataset Search: https://datasetsearch.research.google.com


Susunan data
Butir data (datum): satuan terkecil
data; satu nilai untuk satu variable
tertentu

Data: kumpulan butir data yang


membawa satu kesatuan makna
(mendeskripsikan satu objek) tertentu.

Himpunan data (dataset): kumpulan


data.

Metadata: data yang menjelaskan data "make":


yang lain. • tipe: string,
• deskripsi: nama pabrikan merek kendaraan
Tipe data berdasarkan susunannya
Data terstruktur (structured data) Data takterstruktur (unstructured data)

Sifat • Model data terdefinisikan • Model data tidak terdefinisikan sebelumnya


sebelumnya • Format butir data (biasanya) teks, citra,
• Format butir data (biasanya) teks. suara, video, dan format lainnya.
• Antar butir data terbedakan dengan • Antar butir data tidak cukup jelas terbedakan
jelas. karena ketidakteraturan dan ambiguitas.
• Ekstraksi/kueri langsung cukup • Ekstraksi/kueri langsung cukup sulit.
mudah.
Contoh Data tabular, data berorientasi objek, Data teks dalam dokumen teks bebas, data
time series audio, data video.

Data semi-terstruktur (semi-structured data): Data terstruktur yang tidak mengikuti model struktur
tabular yang seperti pada basis data relasional, namun tetap mengandung tags atau penanda lainnya
yang dapat memisahkan elemen-elemen semantik pada data serta mengatur hierarki antara butir-butir
datanya.
Tipe butir data (1)
Nominal/kategori Ordinal Interval Rasio
kal
Sifat himpunan Diskret, tidak Diskret, terurut Kontinu/numerik, terurut, Kontinu/numerik,
asal terurut perbedaan menunjukkan terurut, nilai
selisih menunjukkan rasio
terhadap kuantitas
satuan/unit di jenis
yang sama
Contoh Warna (merah, Nilai huruf mahasiswa Suhu dalam Celcius, Panjang jalan, suhu
hijau, biru) (A, B, C, D, E) tanggal dalam kalender dalam Kelvin
tertentu
Ukuran data Membership Membership, Membership, comparison, Membership,
menyatakan … comparison difference comparison,
difference, magnitude
Operasi =, ≠ =, ≠, <, > =, ≠, <, >, +, - =, ≠, <, >, +, -, , 
matematika
Tipe butir data (2)
Nominal/kateg Ordinal Interval Rasio
orikal
Representasi nilai tipikal Modus Modus, median Modus, median, Modus, median,
rerata aritmetis rerata aritmetis, rerata
geometris, rerata
harmonis
Representasi sebaran Grouping Grouping, rentang Grouping, rentang Grouping, rentang
(range), rentang (range), rentang (range), rentang
antarkuartil antarkuartil, varians, antarkuartil, varians,
simpangan baku simpangan baku,
koefisien variasi
Memiliki nol sejati yang Tidak Tidak Tidak Ya
menyatakan nilai mutlak
terbawah.
Contoh model data: Tabular
● Terdiri dari N buah rekord (record)
● Masing-masing rekord mengandung D buah atribut
● Rekord = baris, data point, instans, example,
transaksi, tupel, entitas, objek, vector fitur.
● Atribut = kolom, field, dimensi, fitur.
● Atribut yang sama untuk setiap rekord biasanya
diasumsikan memiliki tipe butir data yang sama.
● Struktur dapat bersifat ketat/strict (contoh: basis data
relasional) atau longgar/loose (contoh: Excel
spreadsheet).
● Tergantung keketatan strukturnya, bisa ada bahasa
kueri formal untuk mengakses butir-butir data di
dalamnya (contoh: SQL).
Contoh model data: Graf/Jejaring

● Tersusun dari simpul-simpul (nodes)


dan sisi/koneksi antar simpul Property graph
(edges)
● Satu node (biasanya) mewakili satu
rekord
● Dapat mengekspresikan relasi antar
rekord secara eksplisit.
● Termasuk model data graf adalah
model data hierarkis/pohon, model
data berorientasi objek (object-
oriented data model).
● Model data graf modern:
○ Property graph
○ Resource description framework RDF graph
(RDF)
Contoh model data: Sekuens
● Tersusun dari rekord-rekord yang terhubung secara
sekuensial.
● Contoh: data dari sensor suhu selama suatu rentang
waktu.
● Struktur tersirat dari urutan kemunculan rekord
● Rekaman audio dan video dapat dipandang sebagai
data sekuens, namun setiap rekordnya sendiri bersifat
tidak terstruktur.
● Atribut kontekstual mendefinisikan basis dependensi
tersirat. (Contoh: time stamp pada sensor suhu)
● Atribut behavioral: butir-butir data yang nilainya
diperoleh dalam suatu konteks tertentu (Contoh:
besarnya suhu).
● Jika atribut kontekstualnya adalah waktu/time stamp,
maka data sekuens disebut time series.
Pengambilan Data
Pengambilan Data

● Pengambilan data secara manual.


● Pengambilan data melalui API
○ Contoh melalui API Kaggle
○ Contoh melalui API Portal Data Bandung
● Pengambilan data melalui web scraping
● Pengambilan data melalui akses langsung ke basis data
relasional yang ada.
Pengambilan data secara manual

Unduh/salin Muat (load) data


Cari data di ke pengolah data
data ke local
sumber data • Jupyter Notebook
machine
Mengambil data (secara manual) dari Kaggle
● Kita akan mengakses data
dari "Goal Dataset – Top
5 European Leagues" dari
Kaggle.
● Kunjungi Kaggle.com dan
login (buat akun jika perlu)
● Lakukan pencarian "goal
dataset top 5 European
leagues"
● Klik "Goal Dataset – Top 5
European Leagues"
● Di halaman data explorer, pilih "epl-goalScorer (20-21).csv"
● Unduh data dengan mengklik tombol unduh di bagian kanan dan simpan di folder kerja Anda.
Pengambilan data melalui API

● Data dapat diambil melalui application programming interface (API).


○ API disediakan oleh beberapa layanan data seperti Kaggle.
○ API token/key (mungkin) diperlukan untuk mengakses data via API.
○ Proses pembuatan API token/key (jika perlu) dirinci di dokumentasi masing-
masing layanan.

Buat API Muat (load)


Akses layanan Cari dataset
token/key di dataset ke
data dengan yang
situs layanan modul
API call diperlukan
data pengolah data
Mengambil data dengan API dari Kaggle (1)
● Nyalakan Jupyter Notebook di folder kerja Anda, lalu buka atau buat satu skrip baru
(Python 3).

● Instal kaggle library (mis: dengan pip)


Mengambil data dengan API dari Kaggle (2)
● Login ke Kaggle, klik foto profil Anda (di kanan atas), kemudian klik 'Your Profile' untuk
membuka halaman profil Anda.
● Pada halaman profil Anda, klik tab 'Account'. Geser ke bawah sedikit, dan Anda akan
menemukan tombol 'Create New API Token'
Mengambil data dengan API dari Kaggle (3)
● Klik 'Create New API Token'. Jika tombol tidak berfungsi, klik 'Expire API Token'
lebih dahulu.
○ Browser akan mengunduh file kaggle.json ke folder unduhan (Downloads) Anda.
● Kaggle API secara default mengasumsikan bahwa file kaggle.json tersebut
berada di dalam folder:
~/.kaggle/ (Linux/Mac) atau
C:\Users\<Windows-username>\.kaggle\ (Windows)
○ Jika folder tersebut belum ada, buat dulu dengan perintah mkdir di shell/command
line.
○ Pindahkan file kaggle.json ke folder tersebut (menggunakan File/Windows Explorer
atau melalui perintah mv atau move di shell)
Mengambil data dengan API dari Kaggle (4)

● Kaggle API memiliki empat perintah


○ kaggle competitions {list, files, download, submit,
submissions, leaderboard}
○ kaggle datasets {list, files, download, create, version,
init}
○ kaggle kernels {list, init, push, pull, output, status}
○ kaggle config {view, set, unset}
● Dokumentasi Kaggle API dapat dilihat di https://github.com/Kaggle/kaggle-api
● Untuk keperluan modul ini, kita hanya menggunakan perintah
kaggle datasets
Mengambil data dengan API dari Kaggle (5)
● Untuk melakukan pencarian dataset: kaggle datasets list -s <keyword>
○ Jika terjadi masalah gagal akses, dsb., bisa dicoba dengan membuat ulang API Token.
● Nama dataset berada di kolom ref pada tabel output pencarian. Misalnya kita ingin mengunduh
"Goal Dataset – Top 5 European Leagues, maka nama dataset adalah
shreyanshkhandelwal/goal-dataset-top-5-european-leagues.
Mengambil data dengan API dari Kaggle (6)
● Unduh dataset yang diinginkan dengan perintah kaggle datasets download

● Dataset akan terunduh di folder aktif dalam


bentuk file terkompresi zip.

● Selanjutnya, kita ekstraksi dataset


tersebut dengan perintah unzip,
dan dataset berupa berkas-berkas
csv siap digunakan.

● Berkas csv dapat langsung dimuat ke


Pandas DataFrame
Mengambil data dari Portal Satu Data Bandung dengan API (1)

● Portal Satu Data Bandung (http://data.bandung.go.id) juga merupakan sumber data


terbuka yang dapat diakses melalui API berbasis CKAN. Dokumentasi umum CKAN
dapat diakses di https://docs.ckan.org.
Mengambil data dari Portal Satu Data Bandung dengan API (2)

● Kita gunakan Python library requests, json, dan tqdm.


● Daftar 3014 dataset diperoleh via API call ke http://data.bandung.go.id/api/3/action/package_list

requests.get
mengirim HTTP Get
request ke layanan

Hasil dalam format


JSON di-load
sebagai Python
dictionary dengan
json.loads

Daftar nama-nama
dataset ada pada
key 'result'
Mengambil data dari Portal Satu Bandung dengan API (3)

Selain mem-filter langsung pada daftar nama-nama dataset di slide sebelumnya, kita dapat melakukan
search dengan memanggil API http://data.bandung.go.id/api/3/action/package_search dengan parameter
'q' untuk frasa yang dicari. Contoh untuk mencari "sekolah dasar":

Namun, keterbatasan API


membuat detil hanya
dikembalikan pada 10
hasil pencarian, walaupun
seharusnya ada 47.
Mengambil data dari Portal Satu Bandung dengan API (4)

Di sini, kita filter nama dataset secara manual, misalnya yang mengandung "sekolah" dan "dasar"
Mengambil data dari Portal Satu Bandung dengan API (5)

Misal kita menginginkan dataset "jumlah-guru-sd-negeri-di-kota-bandung-berdasarkan-sekolah". Kita


pakai API call http://data.bandung.go.id/api/3/action/package_show dengan parameter nama dataset.

Setiap dataset dapat terdiri dari


satu atau beberapa berkas
(misal: csv, xls). Info ini
disimpan pada key
'resources' yang berupa
Python list.

Kebetulan dataset ini hanya


memiliki 1 berkas saja.
Mengambil data dari Portal Satu Bandung dengan API (6)

Kita akses daftar berkas untuk dataset "jumlah-guru-sd-negeri-di-kota-bandung-berdasarkan-sekolah".

Kita unduh berkas-berkas dengan


URL di atas.

Library tqdm dipakai untuk


menampilkan kemajuan unduhan.

Setelah selesai, data tersimpan di


folder tempat notebook dijalankan.
Pengambilan data melalui API
● Kaggle dan beberapa layanan data ● Selain API, teknik pengambilan data
lainnya menyediakan akses melalui yang bersifat lanjut mencakup web
API. scraping serta akses data langsung
● Langkah-langkah mengakses API dari basis data relasional.
biasanya melalui proses pembuatan
API token/API key yang dirinci di
dokumentasi masing-masing
layanan.
Mengambil data dengan Web Scraping

● Web scraping = mengekstraksi data secara langsung dari suatu halaman


web.
● Langkah-langkah umum (contoh detil dapat dilihat di
https://realpython.com/beautiful-soup-web-scraper-python/)
○ Tentukan URL halaman web (HTML) yang akan di-scrape.
○ Gunakan fungsi requests.get untuk mengakses URL tersebut. Teks HTML
akan tersimpan pada atribut text dari object yang dikembalikan requests.get.
○ Lakukan parsing pada HTML dengan library beautifulsoup untuk memperoleh
tabel data yang diinginkan (dengan mengekstraksi elemen-elemen HTML yang
relevan).
Mengambil data dari basis data relasional (RDB)
● Data juga dapat bersumber dari basis data relasional (RDB) organisasi.
● Langkah-langkah umum:
○ Import pandas
○ Import library penghubung RDB, misal: mysql.connector untuk MySQL
○ Gunakan method connect dari penghubung RDB untuk membuka koneksi ke RDB.
○ Siapkan SQL query dalam string.
○ Gunakan pandas.read_sql dengan argument string SQL query dan koneksi RDB untuk
mengeksekusi SQL dan memuat hasilnya ke dalam DataFrame.
○ Tutup koneksi.
● Proses antara membuka hingga menutup koneksi biasanya ditaruh dalam blok try-except
● Pembukaan koneksi membutuhkan kredensial (username, password) ke RDB yang di-
hardcode secara langsung. Ini dapat disembunyikan dengan teknik pengamanan yang tidak
dibahas di sini.
● Contoh singkat dapat dilihat di: https://medium.com/analytics-vidhya/importing-data-from-a-
mysql-database-into-pandas-data-frame-a06e392d27d7
Memuat Data ke Pandas
Memuat data ke Pandas (1)
● Nyalakan Jupyter Notebook di folder
kerja Anda.
● Buka atau buat baru satu skrip ipynb
(Python 3)
● Import pandas dan numpy. (Pastikan
sudah terinstal sebelumnya).
● Load file CSV yang sudah diunduh
sebelumnya (pada contoh
"Mengambil Data secara Manual") ke
dalam sebuah DataFrame
○ Gunakan perintah read_csv(…)
Memuat data ke Pandas (2)

● Method head() dan tail() pada


DataFrame membantu kita
menampilkan beberapa baris
pertama/terakhir dari data yang kita
muat.
Telaah Data
Mengungkap tipe-tipe data dari setiap kolom
● Atribut dtypes pada DataFrame berisi tipe
data dari setiap kolom.
● Lihat Pandas User Guide untuk detil setiap tipe.
● dtype:object di akhir output dtypes mewakili
Series yang merupakan objek Python yang
dikembalikan oleh dtypes itu sendiri (bukan
bagian dari tipe kolom manapun).
● Dalam contoh ini, terlihat bahwa 2 kolom
pertama hanyalah ID numerik yang biasanya
tidak memiliki makna riil. Maka, kita ambil
bagian DataFrame mulai dari kolom
"player_name" (untuk zero-based index, kita
pakai kolom ke-2 dst).
Deskripsi statistik data
DataFrame method describe() menampilkan statistik dasar setiap kolom data yang bertipe numerik,
mencakup banyaknya data (count), rerata aritmetik (mean), simpangan baku (std), nilai terkecil (min),
kuartil pertama (25%), kuartil kedua/median (50%), kuartil ketiga (75%), dan nilai terbesar (max).
Konsep: Rerata Aritmetik
● Nilai rerata yang lazim dipahami kebanyakan orang.
● Rerata aritmetik dari sekumpulan bilangan = jumlah semua bilangan tersebut dibagi dengan
banyaknya bilangan dalam kumpulan.
● Diberikan sekumpulan 𝑁 buah bilangan 𝑆 = {𝑥1 , … , 𝑥𝑁 }, rerata aritmetik 𝜇𝑆 atau 𝑥ҧ dari 𝑆
didefinisikan sebagai:
𝑁
1 𝑥1 + … + 𝑥𝑁
𝜇𝑆 = 𝑥ҧ = ෍ 𝑥𝑖 =
𝑁 𝑁
𝑖=1

● Merupakan salah satu ukuran pusat data (tendensi sentral) yang dapat dipakai untuk data
bertipe interval dan rasio.
● Sifat: total jarak setiap bilangan 𝑥𝑖 terhadap rerata aritmetik 𝑥ҧ adalah 0.
● Dapat dipakai sebagai bilangan yang mewakili keseluruhan kumpulan, sepanjang distribusi
datanya tidak bersifat skew (asimetris).
Konsep: Simpangan Baku
● Simpangan baku (standard deviation) adalah salah satu ukuran sebaran data.
● Dipakai untuk data bertipe interval dan rasio.
● Untuk kumpulan bilangan 𝑆 = 𝑥1 , … , 𝑥𝑁 dengan rerata aritmetik 𝜇𝑆 , simpangan baku 𝜎𝑆 dari
𝑆 adalah

𝑁
1 𝑥1 − 𝜇𝑆 2 + ⋯ + 𝑥𝑁 − 𝜇𝑆 2
𝜎𝑠 = ෍ 𝑥𝑖 − 𝜇𝑆 2 =
𝑁 𝑁
𝑖=1

● Kuadrat dari 𝜎𝑆 , yakni 𝜎𝑆2 disebut sebagai varians


● Nilai simpangan baku
○ besar = data secara umum tersebar jauh dari nilai rerata aritmetik
○ kecil = data secara umum terkumpul dekat dengan nilai rerata aritmetik
● Simpangan baku dapat pula dipandang sebagai derajat ketidakpastian pengukuran data
○ Contoh: pada pengukuran berulang dengan suatu instrument yagn sama, jika simpangan baku
data hasil pengukuran bernilai besar, berarti presisi pengukuran rendah.
Konsep: Median dan Kuartil

● Kuartil pertama (𝑄1 ): nilai data sehingga 25% dari keseluruhan data bernilai
lebih kecil darinya.
● Kuartil kedua (𝑄2 ) atau median: nilai data sehingga separuh dari data yang
ada bernilai lebih kecil darinya.
○ Dapat dipakai sebagai ukuran pusat data (tendensi sentral) sebagai alternatif dari
rerata (khususnya jika distribusi data bersifat skewed).
● Kuartil ketiga (𝑄3 ): nilai data sehingga 75% dari keseluruhan data bernilai
lebih kecil darinya.
● Kuartil dapat dipakai untuk data bertipe ordinal, interval, dan rasio.
Deskripsi statistik data
Gunakan describe(include='all') jika ingin menampilkan juga statistik kolom yang
bertipe non-numerik, mencakup juga berapa banyak nilai unik dalam kolom (unique), nilai
modus (top), serta frekuensi modus (freq).
Konsep: Modus
● Modus (mode): nilai yang paling sering muncul pada sekumpulan data.
● Dipakai sebagai ukuran pusat data (tendensi sentral) untuk data bertipe nominal/kategoris.
○ Tidak dijamin unik dalam suatu distribusi data (bisa ada lebih dari satu modus dalam suatu
distribusi).
○ Merupakan nilai yang berpeluang paling tinggi didapatkan ketika data di-sample.
● Contoh:
○ Himpunan data {1,2,2,3,4,4,7,8} memiliki dua modus: 2 dan 4.
● Jika data mengikuti distribusi kontinu, misal
{0.935, …, 1.134,…, 2.643, …, 3.459, …, 3.995, ….}
maka secara statistik, tidak boleh diasumsikan akan ada dua data yang bernilai persis sama.
○ Definisi modus standar menjadi tidak bermakna.
○ Pendekatan 1: lakukan diskretisasi (dibahas di modul Data Preparation), sehingga didapat
data bertipe nominal, lalu dicari modusnya.
○ Pendekatan 2: gunakan teknik kernel density estimation (tidak dibahas di sini).
Fungsi statistik dalam Pandas
count Number of non-NA observations std Bessel-corrected sample
sum standard deviation
Sum of values
var Unbiased variance
mean Mean of values
sem Standard error of the mean
mad Mean absolute deviation
skew Sample skewness (3rd
median Arithmetic median of values
moment)
min Minimum
kurt Sample kurtosis (4th moment)
max Maximum
cumsum Cumulative sum
mode Mode
cumprod Cumulative product
abs Absolute Value
cummax Cumulative maximum
prod Product of values
cummin Cumulative minimum
quantile Sample quantile (value at %),
1st quartile = quantile(0.25)
Contoh fungsi statistik setiap kolom (yang applicable)
Contoh fungsi statistik setiap kolom (yang applicable)
Menentukan pencilan (secara kasar) berdasarkan statistik
● 3-sigma rule: Jika data kira-kira terdistribusi normal:
○ 𝑥𝑖 adalah pencilan jika 𝑥𝑖 < 𝜇𝑆 − 2𝜎𝑆 atau 𝑥𝑖 > 𝜇𝑠 + 2𝜎𝑆
→ peluang bahwa data berjarak ke rerata lebih jauh dari 2 kali simpangan baku adalah 4.55%.
○ 𝑥𝑖 adalah pencilan jika 𝑥𝑖 < 𝜇𝑆 − 3𝜎𝑆 atau 𝑥𝑖 > 𝜇𝑠 + 3𝜎𝑆
→ peluang bahwa data berjarak ke rerata lebih jauh dari 3 kali simpangan baku adalah 0.27%.
○ Kekurangan: (i) asumsi distribusi normal (belum tentu!), (ii) rerata dan simpangan baku
dipengaruhi nilai pencilan itu sendiri, dan (iii) tidak dapat mendeteksi pencilan jika jumlah data
sedikit (small sample size).
● Tukey's fences: memakai rentang antarkuartil (interquartile range) 𝐼𝑄𝑅 = 𝑄3 − 𝑄1 .
○ 𝑥𝑖 adalah pencilan jika 𝑥𝑖 < 𝑄1 − 1.5(𝐼𝑄𝑅) atau 𝑥𝑖 > 𝑄3 + 1.5 𝐼𝑄𝑅 .
○ 𝑥𝑖 adalah pencilan ekstrim jika 𝑥𝑖 < 𝑄1 − 3(𝐼𝑄𝑅) atau 𝑥𝑖 > 𝑄3 + 3 𝐼𝑄𝑅 .
● Metode-metode lain (mungkin lebih baik): Visualisasi, Grubb's test, Dixon's Q test,
Algoritma Expectation Maximization, Jarak k-Nearest Neighbor, local outlier factor
berbasis density (variasi density-based clustering), dll.
Mencari pencilan dengan Tukey's fences (1)

● Hitung IQR tiap kolom


● Variabel q1 dan q3 adalah Pandas Series
berisi nilai-nilai kuartil pertama dan kuartil
ketiga dari kolom-kolom numerik data.
● Variabel iqr adalah Pandas Series berisi
nilai rentang antarkuartil untuk kolom-kolom
numerik data.
Mencari pencilan dengan Tukey's fences (2)
● Filter nilai-nilai di df_noid yang termasuk pencilan sesuai kriteria Tukey.
● Sebelum filter dihitung, harus dilakukan join dulu antara DataFrame df_noid dan Series iqr
Mencari pencilan dengan Tukey's fences (3)

● Contoh: mencari nama


pemain dengan jumlah
assist yang termasuk
pencilan.
○ Assist = umpan yang
menghasilkan gol.
Value_counts
● value_counts() menghasilkan
frekuensi setiap nilai unik di dalam
kolom.
● Yang tertinggi count-nya adalah
merupakan modus pada kolom
tersebut.
● Ada data dengan dua/tiga nama tim
karena ada pemain yang bermain di
dua/tiga klub dalam musim yang
sama (ada transfer pemain).
Korelasi Pearson antara kolom-kolom numerik
● Method corr() menghasilkan tabel korelasi Pearson antar kolom-kolom numerik.
● Rentang nilai: antara -1 dan 1.
● -1 = korelasi negatif, 0 = tidak ada korelasi linear, +1 = korelasi positif.
Analisa dengan groupby
● Method groupby memungkinkan analisa dilakukan secara per kelompok nilai atribut
tertentu. Misal: rerata dan simpangan baku gol per tim.
Quiz / Games

● Lihat berkas Jupyter Notebook terkait.


#Jadijagoandigital
Terima Kasih

Anda mungkin juga menyukai