0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan

Module 3a - Machine Learning

Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan

Module 3a - Machine Learning

Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 31

DAFTAR ISI

DAFTAR ISI............................................................................................................................... 1
Tujuan & Deskripsi Pembelajaran......................................................................................2
Unsupervised Learning........................................................................................................3
A. Clustering...........................................................................................................................3
Supervised Learning............................................................................................................ 6
A. Regression......................................................................................................................... 6
B. Decision Tree...................................................................................................................10
C. Random Forest................................................................................................................12
D. Support Vector Machine.............................................................................................. 17
Time Series Forecasting.....................................................................................................19
A. Time Series.......................................................................................................................19
B. Mengukur Korelasi..........................................................................................................21
1. Autocorrelation Function (ACF)............................................................................21
2. Partial Autocorrelation Function (PACF)........................................................... 21
C. Forecasting..................................................................................................................... 22
1. Average Forecast...................................................................................................... 22
2. Seasonal Naive Forecasting..................................................................................23
D. AR (Autoregressive)......................................................................................................24
E. MA (Moving Average)....................................................................................................24
F. ARMA (Autoregressive Moving Average)................................................................ 24
G. ARIMA (Autoregressive Integrated Moving Average).........................................25
H. SARIMA (Seasonal ARIMA)......................................................................................... 29
I. ARIMAX (ARIMA with eXogenous variables)........................................................... 29
J. SARIMAX (Seasonal ARIMA with eXogenous variables)..................................... 29
EXERCISE.............................................................................................................................. 30

1
Tujuan & Deskripsi Pembelajaran

Deskripsi:

1. Memberikan pemahaman kepada siswa tentang machine learning dan


penerapannya dalam kehidupan nyata.
2. Memberikan pemahaman kepada mahasiswa tentang konsep unsupervised
machine learning melalui clustering khususnya K-Means Clustering.
3. Memberikan pemahaman kepada siswa tentang konsep supervised
machine learning melalui regresi dan klasifikasi (decision trees, random
forest, support vector machine).
4. Memberikan pemahaman kepada mahasiswa tentang deret waktu
khususnya trend, seasonality, dan lain-lain serta forecasting, meliputi
ARIMA, SARIMA, dan SARIMAX.

Adapun tujuan pembelajaran topik ini adalah sebagai berikut:

1. Peserta dapat memahami tentang machine learning dan penerapannya.


2. Peserta mampu memahami konsep machine learning (supervised dan
unsupervised) serta mampu melakukan berbagai model machine learning
dalam menyelesaikan suatu permasalahan data science dan artificial
intelligence.

2
1.1 Unsupervised Learning

Supervised learning dan unsupervised learning adalah 2 pendekatan


utama pada machine learning. Perbedaannya adalah supervised learning
menggunakan training data yang sudah diberi label, sedangkan unsupervised
learning tidak. Contoh dari supervised learning adalah classification dan
regression, sedangkan contoh dari unsupervised learning adalah clustering.

A. Clustering

Unsupervised Learning adalah cabang lainnya dari machine learning. Jika


pada supervised learning terdapat ‘guru’ yang mengajar, pada unsupervised
learning, tidak ada ‘guru’ yang mengajar. Hal ini berarti tidak ada desired output
yang diberikan terhadap model. Sehingga model dibangun untuk dapat
mengenali pola yang ada di dalam dataset tanpa adanya desired output yang
diberikan. Berbeda dengan dengan supervised learning, pada unsupervised
learning tidak terdapat training dataset dan testing dataset.

Terdapat beberapa kegunaan dari unsupervised learning, salah satunya


adalah klasifikasi tanpa desired output. Secara umum, klasifikasi memang
termasuk dalam supervised learning. Proses klasifikasi tanpa desired output yang
dilakukan oleh unsupervised learning disebut clustering (klasterisasi). Dalam
clustering, setiap fitur tidak berkorespondensi dengan kelas tertentu.

Terdapat beberapa metode dalam clustering, salah satunya adalah


K-Means Clustering. Berikut adalah garis besar tahapan - tahapan clustering
menggunakan K-Means Clustering dengan menggunakan dataset online retail
yang dapat diakses di Online Retail K-Means & Hierarchical Clustering :

1. Mengimport beberapa Library Python untuk kebutuhan dataframe dan


menginput dataset.

3
2. Menentukan nilai K. Pada langkah ini, akan dikonfigurasi dan ditentukan
nilai inisiasi K (n_clusters) sebesar 4 cluster.

3. Mencari jumlah optimal dari cluster (K) dengan menggunakan metode


Elbow Curve. Elbow Curve merupakan salah satu metode yang bisa
digunakan untuk menemukan jumlah optimal dari cluster (K), yang
langkah-langkah pengerjaan adalah sebagai berikut.

4
Pada metode elbow curve, lokasi ‘tikungan’ yang terbentuk di plot, pada
umumnya dianggap sebagai indikator jumlah cluster yang tepat. Akan
tetapi nilai K optimal yang diperoleh dari metode elbow curve, sering kali
bersifat “ambigu” atau belum pasti akan menghasilkan jumlah cluster (K)
yang optimal. Oleh karena itu, langkah selanjutnya akan digunakan
Silhouette Analysis guna mencari nilai k optimal.

4. Silhouette analysis adalah pengukuran seberapa dekat setiap titik pada


sebuah cluster dengan titik - titik data lain di cluster-nya. Semakin tinggi
nilai rata-rata dari silhouette, menunjukkan suatu peng-cluster-an yang
baik. Nilai dari Silhouette ada di antara -1 sampai dengan 1. Jika nilainya
mendekati angka 1, maka titik data akan sangat mirip dengan titik data
lainnya di cluster yang sama.

Berdasarkan output tersebut, dapat disimpulkan bahwa untuk n_clusters =


2 menghasilkan nilai silhouette yang tinggi.

5. Menetapkan label cluster untuk setiap titik data sebagai berikut.

5
1.2 Supervised Learning

A. Regression
Secara literal, supervised learning berarti pembelajaran yang terarah.
Supervised learning dapat diilustrasikan seperti gambar di bawah.

Secara umum, terdapat 2 jenis data dalam supervised learning, yaitu


training dataset dan testing dataset. Training dataset adalah himpunan data yang
digunakan untuk melatih atau membangun model machine learning. Sedangkan
testing dataset adalah himpunan data yang digunakan untuk menguji model
setelah proses training selesai. Testing dataset bersifat unseen, artinya model
maupun manusia tidak boleh melihat sampel data ini, karena dapat
mengakibatkan bias.

Di dalam sebuah data, terdapat fitur, atribut, dan kelas. Fitur adalah variabel

6
independen yang mempengaruhi output. Setiap fitur memiliki atribut nilai
dengan tipe data dan range tertentu. Sedangkan kelas atau label adalah variabel
dependen atau output.

Salah satu jenis supervised learning adalah regresi. Regresi adalah metode
yang dapat digunakan untuk melihat hubungan sebab-akibat antar variabel.
Beberapa kegunaan dari regresi adalah untuk mengetahui variabel-variabel yang
memiliki pengaruh terhadap variabel dependen. Selain itu, regresi juga bisa
digunakan untuk memprediksi output berupa bilangan kontinu. Terdapat
beberapa jenis regresi seperti regresi linear, regresi linear berganda, regresi
polinomial, dll.

Dalam machine learning, pembuatan model regresi dapat dilakukan


menggunakan bahasa pemrograman Python. Secara garis besar, berikut adalah
tahapan-tahapan pembuatan model regresi menggunakan Python menggunakan
dataset nilai dan IQ yang dapat diakses di Regresi Linear Pada Machine Learning |
by Farah Imaniar R :

1. Mengimport package dan dataset.

2. Setelah package berhasil di import, maka kita akan mengetahui berapa


banyak baris pada tabel yang terdapat di dataset.
3. general_data.shape : Melihat jumlah dataset ketikkan pada script program.

4. Mengkonfirmasi jumlah dari dataset yang digunakan pada dataset.

7
5. general_data.describe() : Melakukan analisis deskriptif secara otomatis.
Lalu, akan muncul mean, standar deviasi, min, max, dll.

6. Script ini digunakan untuk menampilkan plot. Koordinat X adalah Jumlah


IQ sedangkan koordinat Y adalah Jumlah Nilai.

7. Sebelum ke tahap analisis regresi linear, import sklearn pada program,


kemudian ketik script program. Data dibagi menjadi 2 bagian data 80%
untuk data training, dan 20% untuk data test, sehingga padatest_size=0.2.

8
8. Setelah data di-split menjadi 80% training set dan 20% test set,
selanjutnya masuk ke analisis regresi linear, ketikan script seperti dibawah.
Selanjutnya akan muncul intercept dan coef, 2 parameter ini digunakan
untuk menentukan model matematika yang baru.

9. Dengan menggunakan model matematika yang baru, model tersebut dapat


digunakan untuk memprediksi hasil nilai berdasarkan jumlah IQ.

10. Untuk menampilkan plot dari IQ dan Nilai dapat menggunakan script
seperti dibawah ini.

11. Tampilkan hasil test set dan training set serta garis regresi dalam satu plot.

9
12. Berdasarkan hasil diatas. Maka dapat didapatkan rumus sebagai berikut.

Syntax dapat diakses melalui: Supervised Learning - Regression

B. Decision Tree
Sebuah pohon memiliki banyak analogi dalam kehidupan nyata, dan
ternyata pohon tersebut telah memengaruhi area machine learning yang luas,
mencakup klasifikasi dan regresi. Dalam analisis keputusan, decision trees dapat
digunakan untuk merepresentasikan keputusan dan pengambilan keputusan
secara visual dan eksplisit. Seperti namanya, ini menggunakan model keputusan
seperti pohon.

Decision trees adalah algoritma pembelajaran terawasi non-parametrik,


yang digunakan untuk tugas klasifikasi dan regresi. Decision trees memiliki
hierarki, struktur pohon, yang terdiri dari simpul akar, cabang, simpul internal dan
simpul daun.

10
Seperti yang kita lihat dari diagram di atas, decision trees dimulai dengan
simpul akar (root node), yang tidak memiliki cabang masuk. Cabang keluar dari
simpul akar kemudian masuk ke simpul internal (internal node), juga dikenal
sebagai simpul keputusan. Berdasarkan fitur yang tersedia, kedua tipe simpul
melakukan evaluasi untuk membentuk himpunan bagian yang homogen, yang
dilambangkan dengan simpul daun (leaf node), atau simpul terminal. Node daun
(leaf node) mewakili semua kemungkinan hasil dalam kumpulan data.

Sebagai contoh, bayangkan jika kita mencoba menilai apakah kita harus
berselancar atau tidak, kita dapat menggunakan aturan keputusan berikut untuk
membuat pilihan:

Jenis struktur flowchart ini juga menciptakan representasi pengambilan


keputusan yang mudah dicerna, memungkinkan kelompok yang berbeda di
seluruh organisasi untuk lebih memahami mengapa keputusan dibuat.

Pembelajaran decision trees menggunakan strategi membagi dan untuk


mengidentifikasi titik perpecahan yang optimal dalam sebuah pohon. Proses
pemisahan ini kemudian diulangi secara top-down, rekursif hingga semua, atau
sebagian besar telah diklasifikasikan di bawah label kelas tertentu. Apakah semua
poin data diklasifikasikan sebagai kumpulan homogen atau tidak sangat
bergantung pada kompleksitas decision trees.

11
Keuntungan:

1. Mudah diinterpretasikan: Logika Boolean dan representasi visual


decision trees membuatnya lebih mudah dipahami dan dikonsumsi.
Sifat hierarki decision trees juga memudahkan untuk melihat atribut
mana yang paling penting.
2. Sedikit atau tidak diperlukan persiapan data: Decision trees
memiliki sejumlah karakteristik, yang membuatnya lebih fleksibel
daripada pengklasifikasi lainnya. Hal tersebut dapat menangani
berbagai tipe data — misalnya nilai diskrit atau kontinu, dan nilai
kontinu dapat diubah menjadi nilai kategoris melalui penggunaan
ambang batas.
3. Selain itu, Decision Tree juga dapat menangani nilai dengan nilai
yang hilang, yang dapat menjadi masalah bagi pengklasifikasi
lainnya, seperti Naïve Bayes.
4. Lebih fleksibel: Decision trees dapat dimanfaatkan untuk tugas
klasifikasi dan regresi, membuatnya lebih fleksibel daripada
beberapa algoritma lainnya.

Kekurangan:

1. Rentan terhadap overfitting: Decision trees yang kompleks


cenderung overfit dan tidak menggeneralisasi data baru dengan
baik. Skenario ini dapat dihindari melalui proses pre-pruning atau
post-pruning. Pre-pruning menghentikan pertumbuhan pohon
ketika tidak ada cukup data sementara post-pruning menghilangkan
sub-pohon dengan data yang tidak memadai setelah konstruksi
pohon.
2. Estimator varian tinggi: Variasi kecil dalam data dapat menghasilkan
pohon keputusan yang sangat berbeda. Bagging, atau rata-rata
estimasi, dapat menjadi metode untuk mengurangi varian dari
decision trees. Namun, pendekatan ini terbatas karena dapat
menyebabkan prediktor yang sangat berkorelasi.
3. Lebih mahal: Mengingat bahwa decision trees mengambil
pendekatan pencarian serakah selama konstruksi, mereka bisa lebih
mahal untuk dilatih dibandingkan dengan algoritma lainnya.
4. Tidak didukung sepenuhnya di scikit-learn: Scikit-learn adalah
pustaka pembelajaran mesin populer yang berbasis di Python.
Meskipun pustaka ini memiliki modul decision trees, implementasi
saat ini tidak mendukung variabel kategorikal.

C. Random Forest
Random forest adalah Algoritma Supervised Machine Learning yang
digunakan secara luas dalam masalah Klasifikasi dan Regresi. Hal tersebut

12
membangun decision trees pada sampel yang berbeda dan mengambil suara
mayoritas untuk klasifikasi dan rata-rata dalam kasus regresi.

Salah satu fitur terpenting dari Algoritma Random Forest adalah dapat
menangani kumpulan data yang berisi variabel kontinu seperti kasus regresi dan
variabel kategori seperti dalam kasus klasifikasi. Hal tersebut membuahkan hasil
yang lebih baik untuk masalah klasifikasi.

Berikut analogi kehidupan nyata untuk memahami konsep ini lebih jauh.
Seorang siswa bernama X ingin memilih mata pelajaran, dan dia bingung tentang
pilihan mata pelajaran berdasarkan keahliannya. Jadi dia memutuskan untuk
berkonsultasi dengan berbagai orang seperti sepupunya, guru, orang tua,
mahasiswa sarjana, dan pekerja. Dia mengajukan berbagai pertanyaan kepada
mereka seperti mengapa dia harus memilih, peluang kerja, biaya kursus, dll.
Akhirnya, setelah berkonsultasi dengan berbagai orang tentang kursus, dia
memutuskan untuk mengambil kursus yang disarankan oleh kebanyakan orang.

Salah satu fitur terpenting dari algoritma random forest adalah dapat
menangani kumpulan data yang berisi variabel kontinu seperti dalam kasus
regresi dan variabel kategori seperti dalam kasus klasifikasi. Hal tersebut
menghasilkan hasil yang lebih baik untuk masalah klasifikasi.

Langkah-langkah yang terlibat dalam algoritma random forest:

1. Pilih titik data sebanyak K secara random dari data training set.
2. Buat decision tree untuk tiap-tiap sampel dengan titik data yang dipilih.
3. Tentukan berapa banyak jawaban dari decision tree yang ingin digunakan
untuk membangun random forest.
4. Hasil akhir dipertimbangkan berdasar suara mayoritas atau rata-rata.

13
Sebagai contoh: pertimbangkan keranjang buah sebagai data seperti yang
ditunjukkan pada gambar di bawah ini. Sekarang sejumlah n sampel diambil dari
keranjang buah dan decision tree individual dibuat untuk setiap sampel.

Setiap decision tree akan menghasilkan output seperti yang ditunjukkan


pada gambar. Hasil akhir dipertimbangkan berdasarkan suara terbanyak. Pada
gambar di bawah ini kita dapat melihat bahwa decision tree mayoritas
menghasilkan apel jika dibandingkan dengan pisang, sehingga hasil akhir diambil
sebagai apel.

Fitur penting random forest:

1. Diversity - Tidak semua atribut/variabel/fitur dipertimbangkan saat


membuat satu pohon, setiap pohon berbeda.
2. Kebal terhadap dimensi - Karena setiap pohon tidak

14
mempertimbangkan semua fitur.
3. Parallelization - Setiap pohon dibuat secara independen dari data
dan atribut yang berbeda. Ini berarti kita dapat menggunakan CPU
sepenuhnya untuk membangun random forest.
4. Train Test split - Dalam random forest kita tidak perlu memisahkan
data untuk latihan dan pengujian karena akan selalu ada 30% data
yang tidak terlihat oleh pohon keputusan.
5. Stabilitas - Stabilitas muncul karena hasil didasarkan pada voting
mayoritas/rata-rata.

Keuntungan:

1. Dapat digunakan dalam masalah klasifikasi dan regresi.


2. Untuk memecahkan masalah overfitting karena output didasarkan
pada voting mayoritas atau rata-rata.
3. Performanya baik meskipun data berisi nilai null/hilang.
4. Setiap random trees yang dibuat bersifat independen satu sama lain
sehingga menunjukkan sifat paralelisasi.
5. Sangat stabil karena diambil rata-rata jawaban yang diberikan oleh
banyak pohon.
6. Mempertahankan keragaman karena semua atribut tidak
dipertimbangkan saat membuat setiap pohon keputusan meskipun
tidak benar dalam semua kasus.
7. Kebal terhadap dimensi. Karena setiap pohon tidak
mempertimbangkan semua atribut, ruang fitur berkurang.
8. Tidak perlu memisahkan data menjadi pelatihan dan pengujian
karena akan selalu ada 30% data yang tidak terlihat oleh pohon
keputusan yang dibuat dari bootstrap.

Kekurangan:

1. Random forest sangat kompleks jika dibandingkan dengan decision


trees dimana keputusan dapat dibuat dengan mengikuti jalur pohon
tersebut.
2. Waktu pelatihan lebih banyak dibandingkan dengan model lain
karena kerumitannya. Setiap kali harus membuat prediksi, setiap
decision trees harus menghasilkan keluaran untuk data masukan
yang diberikan.

Contoh: Menggunakan dataset Titanic dan akan diaplikasikan random


forest terhadap klasifikasi jenis kelamin penumpang Titanic.

# Import necessary libraries


import pandas as pd
from sklearn.model_selection import train_test_split

15
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
import warnings
warnings.filterwarnings('ignore')

# Load the Titanic dataset


url =
"https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.
csv"
titanic_data = pd.read_csv(url)

# Drop rows with missing target values


titanic_data = titanic_data.dropna(subset=['Survived'])

# Select relevant features and target variable


X = titanic_data[['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare']]
y = titanic_data['Survived']

# Convert categorical variable 'Sex' to numerical using .loc


X.loc[:, 'Sex'] = X['Sex'].map({'female': 0, 'male': 1})

# Handle missing values in the 'Age' column using .loc


X.loc[:, 'Age'].fillna(X['Age'].median(), inplace=True)

# Split the dataset into training and testing sets


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,
random_state=42)

# Create a Random Forest Classifier


rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)

# Train the classifier


rf_classifier.fit(X_train, y_train)

# Make predictions on the test set


y_pred = rf_classifier.predict(X_test)

# Evaluate the model


accuracy = accuracy_score(y_test, y_pred)
classification_rep = classification_report(y_test, y_pred)

# Print the results


print(f"Accuracy: {accuracy:.2f}")
print("\nClassification Report:\n", classification_rep)

Dengan ketentuan jenis kelamin wanita disimbolkan dengan 0 dan jenis kelamin
pria disimbolkan dengan 1 diperoleh output sebagai berikut.

16
Output:

Untuk contoh random forest regresi dapat dilihat: Random Forest


Algorithm in Machine Learning - GeeksforGeeks

D. Support Vector Machine


Sebelum menjelaskan Support Vector Machine (atau SVM), mari kita
pahami terlebih dahulu dua istilah berikut: Hyperplane dan Margin.

1. Hyperplane

Hyperplane merupakan ‘garis pemisah” dalam ruang data yang


memisahkan dua kelas data yang berbeda. “Garis pemisah” ini tidak selalu
berbentuk garis. Ketika ruang datanya adalah 3 dimensi, maka hyperplane-nya 2
dimensi (bidang datar). Jika ruang datanya adalah 2 dimensi, maka
hyperplane-nya 1 dimensi (garis). Sehingga, bentuk hyperplane adalah N-1 dari
dimensi ruang data.

2. Margin

Margin adalah jarak antara hyperplane dengan titik data terdekat dari
kedua kelas (atau lebih).

Tujuan dari SVM adalah menemukan hyperplane dengan margin terbesar

17
(maximized margin), sehingga data dari kedua kelas terpisahkan dengan jarak
yang paling jauh. Hal ini membantu meminimalkan kemungkinan kesalahan
klasifikasi. Perhatikan gambar di halaman selanjutnya.

Dalam pemodelan SVM, ada dua istilah penting lain yang juga perlu
dipahami: Support Vector dan Kernel.

1. Support Vector

Seperti yang tampak pada gambar di atas, Support Vector merujuk pada
data point yang terletak tepat pada margin (garis merah putus-putus), yang akan
menjadi acuan untuk menentukan hyperplane.

2. Kernel

Sedangkan Kernel adalah sebuah fungsi yang memetakan data dari ruang
dimensi rendah ke ruang dimensi tinggi. Hal ini dilakukan untuk membuat data
yang tidak dapat dipisahkan secara linear (dengan “garis atau bidang lurus”) di
ruang dimensi rendah menjadi dapat dipisahkan secara linear di ruang dimensi
tinggi.

Misalnya, bayangkan data yang tidak dapat dipisahkan secara linear di


ruang 2D. Kernel memetakan data ini ke ruang 3D, di mana data tersebut dapat
dipisahkan secara linear dengan hyperplane.

Contoh jenis kernel SVM yang banyak dipakai: Linear, Polynomial, Radial
Basis Function (RBF), Sigmoid, dan Laplacian.

Bagaimana tahapan pemodelan data menggunakan SVM?

Membuat hyperplane dengan persamaan garis lurus:

w1 * x1 + w2 * x2 + … + b = 0

dimana x1, x2, … adalah data; w1, w2, … adalah bobot atau koefisien, dan b

18
adalah bias / error term.

Menghitung margin (jarak) antara hyperplane dan support vector, lalu


menyelesaikan optimalisasi dengan rumus:

minimize: ½ ||w||2

subject to: yi (xi * w + b) - 1 ≥ 0, ∀i

dimana ||w||2 adalah norma Euclidean (L2) dari vektor bobot, xi adalah data
ke-i, yi adalah label kelas data ke-i, ∀i dan berarti berlaku untuk semua data ke-i.

Terakhir, data baru diklasifikasikan berdasarkan letaknya terhadap


hyperplane.

Kelebihan SVM:

1. Bekerja dengan sangat baik dengan data berdimensi tinggi.


2. Mampu menangani data bersifat non-linear dengan kernel.

Kekurangan SVM:

1. Membutuhkan waktu yang sangat lama untuk proses pelatihan


dengan dataset yang besar.
2. Masih sensitif terhadap outliers.

Contoh penerapan SVM (dengan coding Python) dapat dilihat di Support Vector
Machine Classification with Python | by Kurnia Sari Pratiwi | Medium

1.3 Time Series Forecasting

A. Time Series

Time series adalah urutan berbagai titik data yang terjadi secara berurutan
untuk jangka waktu tertentu.

Tujuan pembelajaran dan poin yang harus diperhatikan:

1. Untuk memahami cara kerja time series, faktor apa yang


mempengaruhi variabel tertentu pada titik waktu yang berbeda.
2. Analisis time series akan memberikan konsekuensi dan wawasan
fitur dari kumpulan data yang diberikan yang berubah dari waktu ke
waktu.
3. Mendukung untuk menurunkan kesalahan prediksi nilai masa depan
dari variabel time series.
4. Asumsi: Ada satu dan satu-satunya asumsi yang "stasioner", yang

19
berarti asal mula waktu, tidak mempengaruhi sifat proses di bawah
faktor statistik.

Bagaimana cara menganalisis Time Series?

1. Mengumpulkan data dan membersihkannya.


2. Mempersiapkan visualisasi sehubungan dengan waktu vs fitur
utama.
3. Mengamati stasioneritas deret.
4. Mengembangkan grafik untuk memahami sifatnya.
5. Pembuatan model forecasting, seperti AR, MA, ARMA, ARIMA,
ARIMAX, SARIMA, atau SARIMAX.
6. Mengekstrak wawasan dari prediksi.

Komponen Analisis Time Series

1. Tren: Di mana tidak ada interval tetap dan perbedaan apa pun dalam
kumpulan data yang diberikan adalah garis waktu yang
berkelanjutan. Trennya adalah Tren Negatif atau Positif atau Null.
2. Musiman/Seasonality: Di mana interval reguler atau tetap bergeser
dalam kumpulan data dalam garis waktu yang berkelanjutan. Apakah
kurva lonceng atau gigi gergaji.
3. Siklus: Di mana tidak ada interval tetap, ketidakpastian dalam
gerakan dan polanya.
4. Irregularity: Situasi/peristiwa/skenario tak terduga dan lonjakan
dalam rentang waktu singkat.

Tipe Data Time Series

1. Stasioner: Kumpulan data harus mengikuti aturan praktis di bawah


ini, tanpa memiliki komponen Deret waktu Tren, Musiman, Siklus,

20
dan Irregularitas.
2. Nilai MEAN dari mereka harus benar-benar konstan dalam data
selama analisis
3. VARIANSI harus konstan sehubungan dengan kerangka waktu
4. COVARIANCE mengukur hubungan antara dua variabel.
5. Non- Stasioner: Ini kebalikan dari Stasioner.

B. Mengukur Korelasi

Ada dua fungsi untuk mengukur korelasi antar data time series, yaitu
dengan Autocorrelation Function (ACF) dan Partial Autocorrelation
Function (PACF). Berikut penjelasan masing-masing fungsi.

1. Autocorrelation Function (ACF)


● ACF menunjukkan korelasi antara nilai data pada waktu tertentu (t)
dengan nilai data pada waktu sebelumnya (t-k).
● Bayangkan kita sedang menganalisis penjualan bulanan. ACF bisa
menunjukkan seberapa besar keterkaitan penjualan bulan ini dengan
penjualan bulan lalu, dua bulan lalu, dan seterusnya.
● Nilai ACF berkisar antara -1 dan 1. Nilai positif menunjukkan
hubungan positif (semakin tinggi penjualan bulan lalu, semakin
tinggi pula penjualan bulan ini). Sebaliknya, nilai negatif
menunjukkan hubungan negatif (semakin tinggi penjualan bulan
lalu, semakin rendah penjualan bulan ini).
● ACF plot menampilkan nilai ACF untuk setiap lag (atau selisih
waktu). Dengan melihat plot ini, kita bisa melihat apakah ada pola
keterkaitan antar data.
2. Partial Autocorrelation Function (PACF)
● PACF mirip dengan ACF, namun ia menghilangkan pengaruh lag
sebelumnya. Artinya, PACF menunjukkan hubungan murni antara
nilai data pada waktu tertentu (t) dengan nilai data pada waktu
sebelumnya (t-k), setelah pengaruh data pada waktu antara t dan t-k
dihilangkan.
● PACF dapat membantu membedakan apakah keterkaitan antar data
disebabkan oleh hubungan langsung atau hanya dipengaruhi oleh
data di antara mereka.

Jadi, secara singkat:

● ACF: Mengukur korelasi keseluruhan antar data dalam deret waktu.


● PACF: Mengukur korelasi murni antar data, menghilangkan pengaruh
data di antara mereka.

21
C. Forecasting

Forecasting adalah bagian luas dari berbagai industri. Karena itu, kisaran
model forecasting juga sangat besar dengan masing-masing model memiliki
kelebihan dan kekurangannya sendiri. Pada bagian ini, akan membahas beberapa
model forecasting dasar dan sederhana. Terlepas dari kesederhanaannya, model
ini dapat menawarkan hasil yang baik dalam praktiknya dan memberikan dasar
yang baik untuk iterasi.

1. Average Forecast

Model pertama yang akan kita pertimbangkan adalah Average Forecast.


Model ini mengasumsikan bahwa semua nilai masa depan sama dengan rata-rata
dari semua pengamatan sebelumnya:

Di mana h adalah waktu yang akan datang yang akan dilakukan forecasting ,
T adalah panjang deret waktu, 𝑦𝑡 adalah nilai yang diamati pada waktu t dan ȳ
adalah rata-rata dari nilai yang diamati.

Untuk model ini kita harus memiliki beberapa data masa lalu yang tersedia
untuk menghitung peramalan. Kami dapat mengimplementasikan ini dengan
Python menggunakan dataset penumpang pesawat.

Dari plot di atas, ramalannya jelas tidak terlalu bagus karena belum
menangkap tren atau musiman dalam data dan jelas jauh di bawah perkiraan.

Model kedua, Naive forecasting, menetapkan perkiraan masa depan sama


dengan nilai pengamatan terbaru:

Model ini dianggap sebagai tolok ukur untuk perkiraan apa pun dan sering

22
digunakan untuk memodelkan pasar saham dan data keuangan karena sifatnya
yang tidak menentu. Model naive juga bisa disebut model random-walk-
without-drift. Itu juga merupakan dasar di balik metrik kesalahan yang berarti
metric mean absolute scaled error (MASE).

2. Seasonal Naive Forecasting

Metode ketiga adalah perluasan dari metode naif, tetapi kali ini ramalannya
sama dengan nilai pengamatan terbaru di musim yang sama. Oleh karena itu, ini
dikenal sebagai Seasonal Naive Forecasting. Misalnya, ramalan untuk kuartal satu
berikutnya sama dengan nilai kuartal satu tahun sebelumnya. Model ini berguna
ketika kita memiliki variasi musiman yang jelas dan besar dalam deret waktu kita.
Secara matematis model ditulis sebagai:

Di mana m adalah musiman dari data. Jadi, untuk data bulanan dengan
musiman tahunan m=12, data triwulanan akan memiliki m=4 dan data mingguan
akan memiliki m=52.

Di bawah ini adalah implementasi Seasonal Naive Forecasting dengan


Python untuk kumpulan data penumpang maskapai AS:

# Seasonal naive forecast


train['month_number'] = pd.DatetimeIndex(train['Month']).month
test['month_number'] = pd.DatetimeIndex(test['Month']).month
snaive_fc = []
for row_idx, row in test.iterrows():
month = row['month_number']
forecast = train['#Passengers'] .loc[train['month_number'] == month].iloc[-1]
snaive_fc.append(forecast)
plot_func(snaive_fc, 'Seasonal Naive Forecast')

Karena model memiliki komponen musiman yang cukup jelas dan besar,
Seasonal Naive Forecasting berperforma cukup baik. Namun, itu belum

23
sepenuhnya menangkap tren data karena kami memperkirakan volume
penumpang akan meningkat dari waktu ke waktu.

Selanjutnya, akan dijelaskan terkait pemodelan dalam time series.

D. AR (Autoregressive)

● Model ini hanya memperhitungkan nilai masa lalu dalam deret


waktu untuk memprediksi nilai berikutnya.
● Bayangkan kita akan memprediksi penjualan bulan depan
berdasarkan penjualan 1 dan 2 bulan lalu.
● Contoh: Penjualan_bulan_ini = a1 * Penjualan_1_bulan_lalu + a2 *
Penjualan_2_bulan_lalu.
● Di contoh ini, a1 dan a2 melambangkan nilai masa lalu.

Materi lebih lanjut terkait AR dapat dipelajari di Autoregressive (AR) Model


for Time Series Forecasting - GeeksforGeeks.

E. MA (Moving Average)

● Model ini menggunakan rata-rata tertimbang (weighted average)


dari beberapa nilai masa lalu untuk memprediksi nilai berikutnya.
● Bayangkan kita memprediksi penjualan bulan depan berdasarkan
rata-rata penjualan 3 bulan terakhir.
● Contoh: Penjualan_bulan_ini = b1 * Penjualan_1_bulan_lalu + b2 *
Penjualan_2_bulan_lalu + b3 * Penjualan_3_bulan_lalu.
● Di contoh ini, b1, b2, dan b3 melambangkan rata-rata tertimbang.

Materi lebih lanjut MA dapat dipelajari di How to Calculate Moving


Averages in Python? - GeeksforGeeks.

F. ARMA (Autoregressive Moving Average)

● Model ini menggabungkan AR dan MA, memanfaatkan nilai masa


lalu dan rata-rata tertimbang untuk memprediksi nilai berikutnya.
● Model ini lebih fleksibel dan dapat menangkap pola yang lebih
kompleks dalam data.
● Contoh: Penjualan_bulan_ini = [a1 * Penjualan_1_bulan_lalu + a2 *
Penjualan_2_bulan_lalu] + [b1 * Penjualan_1_bulan_lalu + b2 *
Penjualan_2_bulan_lalu + b3 * Penjualan_3_bulan_lalu].

Materi lebih lanjut ARMA dapat dipelajari di AutoRegressive Moving


Average (ARMA) models: Using Python.

24
G. ARIMA (Autoregressive Integrated Moving Average)

● Model ini digunakan ketika data tidak stasioner, artinya memiliki


tren atau musiman yang tidak konstan.
● ARIMA menggunakan differencing untuk membuat data menjadi
stasioner, lalu menerapkan model ARMA.
● Contoh: Penjualan_bulan_ini = (Penjualan_bulan_ini -
Penjualan_1_bulan_lalu) + a1 * (Penjualan_1_bulan_lalu -
Penjualan_2_bulan_lalu) + … .

Contoh: menggunakan Airline Passengers Dataset yang dapat diakses di


airline-passengers.csv - jbrownlee/Datasets · GitHub

1. ETS Decomposition: digunakan untuk memisahkan komponen dari time


series, seperti Error, Trend, dan Seasonality.

# Importing required libraries


import numpy as np
import pandas as pd
import matplotlib.pylot as plt
from statsmodels.tsa.seasonal import seasonal_decompose

# Read the AirPassengers dataset


airline = pd.read_csv('AirPassengers.csv',
index_col ='Month',
parse_dates = True)

# Print the first five rows of the dataset


airline.head()

# ETS Decomposition
result = seasonal_decompose(airline['# Passengers'],
model ='multiplicative')

# ETS plot
result.plot()

Output:

25
2. Menganalisis parameter untuk model ARIMA

# To install the library


pip install pmdarima

# Import the library


from pmdarima import auto_arima

# Ignore harmless warnings


import warnings
warnings.filterwarnings("ignore")

# Fit auto_arima function to AirPassengers dataset


stepwise_fit = auto_arima(airline['# Passengers'], start_p = 1, start_q = 1,
max_p = 3, max_q = 3, m = 12,
start_P = 0, seasonal = True,
d = None, D = 1, trace = True,
error_action ='ignore', # we don't want to know if
an order does not work
suppress_warnings = True, # we don't want
convergence warnings
stepwise = True) # set to stepwise

# To print the summary


stepwise_fit.summary()

Output:

26
3. Fit ARIMA Model to AirPassengers dataset

# Split data into train / test sets


train = airline.iloc[:len(airline)-12]
test = airline.iloc[len(airline)-12:] # set one year(12 months) for testing

# Fit a SARIMAX(0, 1, 1)x(2, 1, 1, 12) on the training set


from statsmodels.tsa.statespace.sarimax import SARIMAX

model = SARIMAX(train['# Passengers'],


order = (0, 1, 1),
seasonal_order =(2, 1, 1, 12))

result = model.fit()
result.summary()

Output:

4. Prediksi Model Arima vs Passenger test set

start = len(train)
end = len(train) + len(test) - 1

# Predictions for one-year against the test set


predictions = result.predict(start, end, typ = 'levels').rename("Predictions")

# plot predictions and actual values


predictions.plot(legend = True)
test['# Passengers'].plot(legend = True)

27
Output:

5. Forecast menggunakan model ARIMA

# Train the model on the full dataset


model = model = SARIMAX(airline['# Passengers'],
order = (0, 1, 1),
seasonal_order =(2, 1, 1, 12))
result = model.fit()

# Forecast for the next 3 years


forecast = result.predict(start = len(airline),
end = (len(airline)-1) + 3 * 12,
typ = 'levels').rename('Forecast')

# Plot the forecast values


airline['# Passengers'].plot(figsize = (12, 5), legend = True)
forecast.plot(legend = True)

Output:

28
H. SARIMA (Seasonal ARIMA)

● Model ini digunakan ketika data memiliki pola musiman (misalnya,


penjualan bulanan yang naik menjelang liburan).
● SARIMA menambahkan parameter musiman ke model ARIMA untuk
menangkap pola musiman tersebut.
● Contoh: Penjualan_bulan_ini = (Penjualan_bulan_ini -
Penjualan_1_bulan_lalu) + a1 * (Penjualan_1_bulan_lalu -
Penjualan_2_bulan) + ... + s1 * (Penjualan_1_tahun_lalu -
Penjualan_2_tahun_lalu) + … .

Materi lebih lanjut ARIMAX dapat dipelajari di SARIMA (Seasonal


Autoregressive Integrated Moving Average) - GeeksforGeeks dengan
menggunakan dataset Dataset: Superstore (2015-2018).

I. ARIMAX (ARIMA with eXogenous variables)

● Model ini mirip dengan ARIMA, tetapi menambahkan variabel


eksternal yang mempengaruhi deret waktu (misalnya, perubahan
ekonomi, promosi marketing).
● Contoh: Penjualan_bulan_ini = (Penjualan_bulan_ini -
Penjualan_1_bulan_lalu) + a1 * (Penjualan_1_bulan_lalu -
Penjualan_2_bulan_lalu) + ... + b1 *
(Pengeluaran_promosi_bulan_ini) + …

Materi lebih lanjut ARIMAX dapat dipelajari di ARIMAX (Auto Regressive


Integrated Moving Average with Exogenous variables) modelling in Python.

J. SARIMAX (Seasonal ARIMA with eXogenous variables)

● Model ini menggabungkan SARIMA dan ARIMAX, sehingga dapat


menangani pola musiman dan variabel eksternal secara bersamaan.
● Contoh: Penjualan_bulan_ini = (Penjualan_bulan_ini -
Penjualan_1_bulan_lalu) + a1 * (Penjualan_1_bulan_lalu -
Penjualan_2_bulan_lalu) + ... + s1 * (Penjualan_1_tahun_lalu -
Penjualan_2_tahun_lalu) + ... + b1 *
(Pengeluaran_promosi_bulan_ini) + … .

Materi lebih lanjut SARIMAX dapat dipelajari di Complete Guide To


SARIMAX in Python - GeeksforGeeks dengan menggunakan dataset
airline-passengers.csv - jbrownlee/Datasets · GitHub.

29
EXERCISE

Berikut adalah langkah - langkah untuk mengerjakan exercise:


1. Buka link Google Colab menggunakan Google Chrome
2. Klik ‘Copy to Drive’
3. Kerjakan exercise sesuai instruksi yang tertera
4. Terdapat answer key untuk Exercise Module 2

Google Colab dapat diakses pada:


Exercise Module 3 Data Science & AI

30

Anda mungkin juga menyukai