Friday, April 23, 2021

Tutorial R : Uji Kruskal Wallis Menggunakan R

Salah satu uji yang dapat digunakan untuk membandingkan 3 populasi atau lebih independen adalah Uji Kruskal-Wallis H. Jika dalam proses pengujian hipotesis, kesimpulan H0 ditolak maka perlu dilakukan uji lanjut. Berikut beberapa perintah yang digunakan:

Package : stats

Perintah : kruskal.test(formula, data)

Berikut penjelasan terkait detail perintah yang digunakan:

kruskal.test
Perintah yang digunakan untuk melakukan Uji Kruskal Wallis

formula
Persamaan spesifik untuk model yang digunakan. Contoh bentuk formula sebagai berikut : “hasil ~ perlakuan”

data
Data yang digunakan dalam pengujian

Pengujian 3 populasi atau lebih memungkinkan kesimpulan "minimal terdapat 2 populasi berbeda". Untuk mengetahui 2 populasi (pasangan) yang berbeda tersebut dilakukan tahap uji lanjutan. Banyak teknik yang dapat digunakan untuk melakukan uji lanjut. Salah satunya adalah Dunn Test. Berikut beberapa perintah yang digunakan:

Package : FSA

Perintah : dunnTest(x)

Permasalahan

Diketahui data sampel nilai ujian 4 kelas berbeda.


Ujilah data tersebut mengguanakn kepercayaan 90% apakah terdapat pengaruh perbedaan kelas terhadap nilai yang diperoleh. Data tersebut dapat diunduh [klik disini] kemudian pilih data dengan nomor urut 47.

Penyelesaian

1. Susun Data

Susun data sesuai dengan gambar berikut:








2. Import Data

Import Data yang telah diunduh dan berikan nama : nilai4kelas
Tutorial import data dapat dilihat pada link berikut : [klik disini]

Tutorial Import Data : [klik disini]

3. Masukan Perintah

Masukan perintah berikut untuk menguji apakah terdapat pengaruh perbedaan kelas terhadap nilai.

kruskal.test(Nilai ~ Kelas, nilai4kelas)

Hasil

1. Luaran




2. Analisis Data dan Uji Hipotesis

H0 : seluruh k populasi adalah sama (𝜇1=𝜇2=…=𝜇k) (tidak terdapat pengaruh kelas terhadap nilai ujian)
H1 : minimal terdapat 2 populasi berbeda (terdapat pengaruh kelas terhadap nilai ujian)

Taraf signifikansi
α = 10%

P-Value
0,03648

Daerah kritis
H0 ditolak jika nilai P-Value < α

Keputusan
H0 ditolak karena nilai P-Value (0,03648) < α (0,1)

Kesimpulan

Pada taraf signifikansi α 5%, diperoleh kesimpulan bahwa minimal terdapat 2 populasi berbeda atau terdapat pengaruh kelas terhadap nilai ujian.

Uji Lanjut

Karena kesimpulan pengujian hipotesis adalah minimal terdapat 2 populasi berbeda atau terdapat pengaruh kelas terhadap nilai ujian. Maka dibutuhkan pengujian lanjutan untuk mengetahui pasangan populasi yang berbeda. Gunakan perintah sebagai berikut untuk melakukan uji lanjut:

library(FSA)

dunnTest(Nilai ~ Kelas, nilai4kelas)

Hasil Uji Lanjut






H0 : kedua populasi sama (𝜇i = 𝜇j)
H1 : kedua populasi berbeda (𝜇i ≠ 𝜇j)

Keputusan
Terdapat perbedaan antara kelas B dan C karena nilai P-Value (0,027) < α (0,1)

Kesimpulan
Pada taraf signifikansi α 10%, diperoleh kesimpulan bahwa dari 6 pasangan kelas yang terbentuk. Kelas yang memiliki perbedaan adalah kelas B dan kelas C.

Wednesday, January 20, 2021

Tutorial R : Uji Chi-Square menggunakan R

Uji Chi-Square merupakan salah satu pengujian yang dapat digunakan untuk mengamati ada tidaknya hubungan antara dua variabel kategori yang berasal dari populasi yang sama. Perintah pengujian Chi-Square telah tersedia pada R. Rincian pengujian Chi-Square dijelaskan sebagai berikut:

Package : stats

Perintah : chisq.test(x)

Berikut penjelasan terkait detail perintah yang digunakan:

chisq.test
Perintah yang digunakan untuk melakukan Uji Chi-Square

x
Data yang akan diuji, berbentuk tabel

Permasalahan

Hasil survey mahasiswa yang dilakukan di sebuah klinik kesehatan terkait jenis penyakit yang diderita untuk anak-anak balita dan batita dijabarkan sebagai berikut:

Ujilah apakah terdapat hubungan antara jenis penyakit dengan usia anak-anak. Data tersebut dapat diunduh [klik disini] kemudian pilih data dengan nomor urut 45.

Penyelesaian

1. Import Data

Import Data yang telah diunduh dan berikan nama : datakesehatan
Tutorial import data dapat dilihat pada link berikut : [klik disini]

2. Susun Tabel Kontingensi

Tabel kontingensi dari kasus di atas dapat disusun dengan perintah:

tabel1 = table(datakesehatan$penyakit, datakesehatan$usia)

dengan hasil tabel kontingensi sebagai berikut:

Dari hasil di atas, diketahui bahwa, jumlah balita yang batuk ada 1 serta jumlah batita yang batuk ada 3, dan seterusnya.

3. Masukan Perintah

Setelah Tabel Kontingensi terbentuk, tahap selanjutnya adalah melakukan uji hubungan dengan Chi-Square dan perintah sebagai berikut:
chisq.test(tabel1)

Hasil

1. Luaran

Berdasarkan perintah yang telah dijalankan, diperoleh hasil luaran sebagai berikut:


2. Analisis Dan Uji Hipotesis

H0 : tidak terdapat hubungan antara jenis penyakit dengan usia anak
H1 : terdapat hubungan antara jenis penyakit dengan usia anak

Taraf signifikansi :
α = 5%

P-Value :
0,2471

Daerah kritis :
H0 ditolak jika nilai P-Value < α

Keputusan :
H0 gagal ditolak karena nilai P-Value (0,02471) > α (0,05)

Kesimpulan :
Pada taraf signifikansi α 5%, diperoleh kesimpulan bahwa tidak terdapat hubungan antara jenis penyakit dengan usia anak.


Tuesday, January 19, 2021

Tutorial R : Uji Korelasi Spearman menggunakan R

Salah satu metode Non-Parametrik yang dapat digunakan untuk melakukan analisis korelasi adalah Analisis Korelasi Spearman. Metode korelasi Spearman telah tersedia pada R dan langsung dapat dipanggil dengan perintah yang telah tersusun. Rincian analisis korelasi Spearman pada R dijelaskan sebagai berikut:

Package    : stats

Perintah    : cor.test(x, y, method)

Berikut penjelasan terakit detail perintah yang digunakan:

cor.test
Perintah yang digunakan untuk melakukan analisis korelasi.

x,y
Variabel yang akan dianalisis korelasinya.

method
Metode yang akan digunakan. Metode dalam perintah ini meliputi korelasi parametrik maupun Non-Parameterik. Beberapa metode yang dapat digunakan antara lain, “pearson”, “kendall”, dan “spearman”. Jika ingin menggunakan ketiga metode tersebut, dapat merubah perintah method menjadi : method=c("pearson", "kendall", "spearman").

Permasalahan

Diketahui data terkait biaya iklan dan nilai penjualan sebagai berikut:

Analisislah data diatas menggunakan Uji Hipotesis Korelasi Spearman dan cek apakah terdapat hubungan yang signifikan antara biaya periklanan dengan nilai penjualan. Data diatas dapat diunduh [klik disini] kemudian pilih contoh data dengan nomor urut 49.

Penyelesaian

1. Import Data

Lakukan import data kemudian definisikan dengan nama : penjualan

2. Masukan Perintah

Kemudian masukan perintah berikut :

x=penjualan$Iklan
y=penjualan$Penjualan
cor.test(x, y, method="spearman")

3. Penjelasan

Baris kedua dan ketiga digunakan untuk mendefinisikan variabel berdasarkan kolom “Iklan” dan kolom “Penjualan”.

Hasil

1. Luaran

Berdasarkan perintah yang telah dijalankan, diperoleh hasil sebagai berikut:

2. Analisis dan Uji Hipotesis

H0 : tidak terdapat hubungan yang signifikan antara biaya iklan dengan penjualan
H1 : terdapat hubungan yang signifikan antara biaya iklan dengan penjualan

Taraf signifikansi :
α = 5%

P-Value :
0,002211

Daerah kritis :
H0 ditolak jika nilai P-Value < α

Keputusan :
H0 ditolak karena nilai P-Value (0,002211) < α (0,05)

Kesimpulan :
Pada taraf signifikansi α 5%, diperoleh kesimpulan bahwa terdapat hubungan yang signifikan antara biaya iklan dengan penjualan.


Sunday, September 20, 2020

Tutorial R : Uji Tanda (Sign Test) Menggunakan R

Uji Tanda (Sign Test) merupakan uji statistika nonparameterik yang dapat digunakan untuk menguji 1 sampel maupun 2 sampel berpasangan. Uji Tanda (Sign Test) telah dibahas pada artikel lainnya disini yaitu Tutorial : Uji Tanda dan Uji Rank Tanda Wilcoxon dengan SPSS. Pada kesempatan ini akan dibahas tahapan analisis Uji Tanda (Sign Test) menggunakan R. Pembahasan mengenai instalasi R dan lain sebagainya dapat dilihat disini :

Tutorial & Video : Download dan Install "R"
Tutorial R : RStudio sebagai IDE yang Memudahkan

Permasalahan

Sebuah perusahaan otomotif memproduksi mobil jenis X dengan sistem injeksi bahan bakar terbaru. Kepala divisi teknologi yang ikut serta dalam pengembangan sistem injeksi bahan bakar tersebut menduga bahwa penggunaan bahan bakar setelah menggunakan system injeksi terbaru adalah lebih kecil dari 22 km/liter. Oleh karena itu dilakukan pengukuran pada 30 sampel kendaraan dengan data sebagai berikut :


Berdasarkan data tersebut, buktikanlah apakah dugaan kepala divisi benar dengan taraf signifikan 1% menggunakan Uji Tanda (Sign Test)!

Uji Tanda (Sign Test) Satu Sampel

Package dalam R yang dapat digunakan dalam uji tanda adalah BSDA. Berikut tahapan dalam melakukan uji tanda menggunakan R.

1. Install Package

Sebelum melakukan analisis dengan uji tanda, silahkan instal package tersebut dengan cara install package dengan nama BSDA.

2. Import Data

Import data dapat melalui Notepad atau ekstensi *.txt dan melalui berkas Microsoft Excel. Tutorial import data dengan RStudio dapat dilihat pada tutan berikut :


3. Perintah Uji Tanda (Sign Test) Satu Sampel

Gunakan perintah berikut dalam menyelesaikan permsalahan di atas menggunakan uji tanda.

library(BSDA)
SIGN.test(datasnp1, md = 22.0, alternative = "two.side",conf.level = 0.99)

Penjelasan
  • library (BSDA) digunakan untuk memanggil package BSDA
  • SIGN.test merupakan perintah yang digunakan dalam pengujian
  • datasnp1 merupakan variabel data yang digunakan
  • md=22.0 adalah nilai median yang akan diuji
  • alternative="less" merupakan jenis hipotesis khususya hipotesis alternatif atau H0. Terdapat 3 pilihan dalam hal ini yaitu "two.side", "less", "greater"Hal ini mengacu pada pengujian yang dilakukan. Dua arah satu arah.
  • conf.level = 0.99 merupakan perintah dalam mendefinisikan taraf signifikansi

4. Output

Setelah menjalankan perintah pada tahap 3, selanjutnya akan diperoleh hasil sebagai berikut :


5. Uji Hipotesis

  • H0 : Penggunaan bahan bakar lebih besar sama dengan 22km/liter
  • H1 : Penggunaan bahan bakar lebih kecil dari 22km/liter
  • Signifikansi : α = 5%
  • P-Value : 0,04937
  •   Daerah kritis : H0 ditolak jika nilai P-Value < α
  •   Keputusan : H0 ditolak karena nilai P-Value (0,04937) < α (0,05)
  • Kesimpulan : Pada taraf signifikansi α 5%, diperoleh kesimpulan bahwa penggunaan bahan bakar lebih kecil dari 22km/liter.
Berdasarkan pengujian yang telah dilakuakan, diperoleh kesimpulan bahwa ternyata dugaan kepala divisi yang menyatakan bahwa penggunaan bahan bakar setelah menggunakan system injeksi terbaru adalah lebih kecil dari 22 km/liter adalah benar.

Saturday, March 21, 2020

Tutorial R : Forecasting Data Musiman dengan Seasonal ARIMA (SARIMA) menggunakan SAS University Edition



Data deret waktu yang ditemukan di lapangan sering sekali membentuk sebuah pola musiman. Pola musiman adalah sebuah pola deret waktu yang berulang pada pola tertentu. Pola yang dimaksud dapat berupa pola berulang musiman mingguan, bulanan, tahunan, hari libur dan lain sebagainya.


Perhatikan contoh berikut :
Kepala bagian promosi sebuah kolam renang melakukan rekapitulasi jumlah pengunjung harian kolam renang tersebut. Hasil rekapitulasi akan disajikan secara visual kepada atasannya. Berdasarkan hasil yang diperoleh, diketahui bahwa pengunjung kolam renang selalu melonjak setiap hari minggu seperti pada grafik berikut :
Berdasarkan grafik visualisasi pengunjung kolam renang, terlihat bahwa jumlah pengunjung selalu melonjak disetiap waktu kelipatan 7 (hari minggu).

Berdasarkan ilustrasi diatas, jika kepala bagian promosi ingin memprediksi berapa jumlah pengunjung kolam renang pada periode yang akan datang. Maka dibutuhkan sebuah metode khusus yang dapat menangani pola musiman dari data deret waktu.

Pada artikel sebelumnya, telah dibahas beberapa metode yang dapat digunakan untuk melakukan forecasting antara lain :
  1. Tutorial : Forecasting dengan ARIMA menggunakan SAS University Edition (free)
  2. Tutorial : Metode Forecasting Exponential Smoothing menggunakan R
Selain Seasonal Autoregressive Integrated Moving Average (SARIMA), metode Exponential Smoothing yang telah dibahas juga dapat digunakan untuk memodelkan dan meramalakan data deret waktu dengan pola musiman.

Sumber buku yang digunakan pada tutorial ini adalah :
Time Series Analysis with Application in R oleh J.D. Cryer, (2008)
Time Series Analysis Univariate and Multivariate Methods dari William W.S. Wei, (2006).

Berdasarkan kasus pada ilustrasi, ingin dilakukan pemodelan serta forecasting jumlah pengunjung kolam renang untuk 7 hari ke depan. Data yang digunakan pada artikel ini dapat di download pada menu Download Contoh Data kemudian pilih dan klik data dengan nomor urut 35.

Tahapan Analisis :

1. Siapkan SAS University Edition

Tutorial mengenai SAS University Edition beserta tahapan instalasinya dapat dilihat pada artikel berikut:
Tutorial : Download dan Instal Software SAS University Edition Gratis
Setelah SAS University Edition telah siap, tahap selanjutnya adalah pendefinisian data.

2. Pendefinisian Data

Data yang digunakan pada tutoril ini dapat didownload pada menu Download Contoh Data kemudian pilih dan klik data dengan nomor urut 35. Setelah data siap, silahkan buka SAS University Edition kemudian copy-paste kode berikut ke dalam lembar code :
data pengunjung;
input y @;
datalines;
[copy-paste data disini]
;
run;
Setelah itu jalankan kode yang telah diinput sebelumnya dengan cara Run. Setelah data terdefinisi dan terbaca oleh SAS University Edition, selanjutnya adalah melakukan identifikasi model SARIMA yang mungkin terbentuk.

3. Identifikasi Model

Pada tahap identifikasi model, terdapat beberapa sub-tahapan analisis seperti uji kestasioneritasan, identifikasi orde p serta identifikasi orde q. Tahap identifikasi model merupakan salah satu tahapan yang membutuhkan ketelitian dan ketepatan.

a. Uji Stasioneritas

Identifikasi yang pertama adalah melakukan uji stasioneritas untuk menentukan data deret waktu yang digunakan telah stasioner atau belum. Untuk melakukan uji stasioneritas, copy-paste kode berikut ke dalam lembar code :
proc arima data=pengunjung;
identify var=y stationarity=(adf=7) nlag=24;
run;
Penjelasan :
- proc arima digunakan untuk memanggil prosedur pengujian ARIMA.
- identify digunakan untuk melakukan tahap identifikasi uji stasioneritas dengan lag 7.
- Catatan : digunakan lag sampai 7 karena diduga bahwa data memiliki pola musiman 7.

Setelah Run hasil yang muncul adalah sebagai berikut:


Berdasarkan tabel di atas, digunakan Type Single Mean karena data yang digunakan tidak mengandung trend ataupun zero mean. Berdasarkan Type Single Mean, diperoleh hasil bahwa nilai P-Value Tau Test Statistics untuk lag 1 sampai 5 kurang dari 0.05 (alpha=5%). Sedangkan nilai P-Value Tau Test Statistics untuk lag 6 dan 7 lebih dari 0.05. Data dikatakan stasioner jika nilai P-Value Tau Test Statistics kurang dari nilai alpha yang diputuskan.

Untuk mengatasi hal tersebut, dapat dilakukan differencing 1 dan 7 agar data stasioner sampai lag ke 7. Untuk melakukan differencing dan uji stasioneritas, copy-paste kode berikut ke dalam lembar code :
proc arima data=pengunjung;
identify var=y(1,7) stationarity=(adf=7) nlag=24;
run;
Setelah Run hasil yang muncul adalah sebagai berikut:


Berdasarkan Type Single Mean, kita akan fokus pada lag ke 7 karena data memiliki pola musiman 7 dan  diperoleh hasil bahwa nilai P-Value Tau Test Statistics untuk lag 7 kurang dari 0.05 (alpha=5%). Hal ini menunjukan bahwa data telah stasioner secara musiman sepanjang 7.

b. Identifikasi Model

Setelah data stasioner, tahap selanjutnya adalah menentukan model yang sesuai. Pada tahap ini dibutuhkan beberapa pengetahuan tentang karakteristik maupun sifat dari istilah cut-off dan tail-off. Istilah tersebut dapat dipahami pada buku yang telah dijelaskan di depan. Untuk melakukan identifikasi model, kode yang digunakan sama persis pada tahap sebelumnya yaitu :
proc arima data=pengunjung;
identify var=y(1,7) stationarity=(adf=7) nlag=24;
run;
Namun, fokus output yang dibahas adalah sebagai berikut :


Berdasarkan output di atas, fokus pembahasan mengerucut pada plot ACF dan PACF.

  • ACF : diagram batang yang melewati batas adalah diagram ke-7
  • PACF : diagram batang yang melewati batas adalah diagram ke-2

Dari hasil di atas, dan beberapa percobaan estimasi, dapat disimpulkan bahwa kemungkinan model yang terbentuk adalah :

  • SARIMA (0,1,2)(0,1,1)7

Penjelasan model di atas, dapat ditemukan pada buku :
Time Series Analysis with Application in R oleh J.D. Cryer, (2008)
Time Series Analysis Univariate and Multivariate Methods dari William W.S. Wei, (2006).
Atau ditanyakan langsung pada kolom komentar maupun kolom pertanyaan disini.

4. Estimasi Model dan Pemilihan Model

Berdasarkan tahap identifikasi, diperoleh model yang mungkin terjadi yaitu SARIMA (0,1,2)(0,1,1)7 dengan tahapan estimasi sebagai berikut:

a. SARIMA (0,1,2)(0,1,1)7

Pada model pertama, copy-paste kode berikut ke dalam lembar code kemudian Run :
proc arima data=pengunjung;
identify var=y(1,7) stationarity=(adf=7) nlag=24;
estimate q=(1,2)(7) noint method=cls;
forecast printall;
run;
Maka diperolehlah hasil sebagai berikut :



Berdasarkan tabel Conditional Least Square Estimation, nilai P-Value t untuk MA1,1; MA1,2 dan MA2,1 kurang dari 0.05 (alpha 5%) artinya ketiga parameter ini signifikan terhadap model. Dengan nilai AIC sebesar 460.3048. Serta pada tabel Autocorrelation Check of Residuals, nilai P-Value Chi-Square untuk semua lag menunjukan hasil di atas 0.05 (alpha 5%) artinya asumsi white noise residual terpenuhi.

b. Model Akhir

Berdasarkan kriteria signifikansi parameter, nilai AIC (Akaike Information Criterion) dan kesimpulan asumsi white noise residual. Maka dapat disimpulkan bahwa model terbaik yang diperoleh adalah SARIMA (0,1,2)(0,1,1)7 dengan persamaan sebagai berikut :


5. Forecasting

Untuk melakukan forecasting beberapa periode ke depan, copy-paste kode berikut ke dalam lembar code kemudian Run :
proc arima data=pengunjung;
identify var=y(1,7) stationarity=(adf=7) nlag=24;
estimate q=(1,2)(7) noint method=cls;
forecast printall;
run;
Maka diperolehlah hasil sebagai berikut :


Kotak merah merupakan hasil prediksi beberapa periode ke depan dengan plot berikut :


***

Demikian artikel tentang Tutorial : Forecasting Data Musiman menggunakan Seasonal ARIMA (SARIMA) dengan SAS. Semoga dapat bermanfaat. Jika terdapat pertanyaan, kritik maupun saran. Jangan sungkan untuk mengunjungi kolom komentar maupun bertanya melalui kolom pertanyaan disini.


Sunday, February 16, 2020

Tutorial R : Manajemen Data Sederhana pada RStudio



R merupakan salah satu software sekaligus bahasa pemrograman yang memungkinkan pengguna untuk melakukan manajemen data mulai dari sederhana sampai luar biasa. Beberapa artikel yang membahas mengenai R di website ini adalah sebagai berikut :
Tutorial : Metode Forecasting Exponential Smoothing menggunakan R
Tutorial : Rancangan Percobaan - Rancangan Acak Lengkap (RAL) dengan R
Tutorial R : Argumen Dasar dalam Pemrograman R
Tutorial R : Rcmdr pada RStudio
Tutorial R : RStudio sebagai IDE yang Memudahkan
Tutorial : Uji Stasioneritas menggunakan R
Tutorial R : Menulis, Membaca dan Menampilkan Data pada R
Tutorial & Video : Rcmdr untuk Statistika Dasar
Tutorial & Video : Download dan Install "R"
Pada artikel ini, diasumsikan pembaca telah membaca artikel di atas atau telah memahami apa itu R dan fungsi-fungsi sederhana dari R itu sendiri.

Terkadang, teknik-teknik manajemen data pada R jarang digunakan oleh user karena pada R sendiri telah terdapat beberapa package yang sangat memudahkan. Dalam kasus sederhana mungkin beberapa metode manajemen data akan sangat bermanfaat. Berikut contoh penggunaan manajemen data pada R dengan bantuan IDE RStudio.


Permasalahan :

Sebuah perusahaan asuransi ingin memantau data klaim pada suatu minggu. Berikut disajikan data mengenai Klaim Asuransi Kecelakaan Mobil yang terjadi selama satu minggu. Data tersebut meliputi hari, banyak klaim, nilai rupiah klaim, serta nama petugas penanggung jawab setiap hari.
Berdasarkan data tersebut, kepala perusahaan menginginkan beberapa laporan antara lain :
a. Berapa rata-rata  klaim terjadi pada minggu tersebut
b. Kapan nilai klaim tertinggi terjadi?
c. Hari apa saja yang nilai klaimnya lebih dari 25 juta?
d. Siapa petugas yang menangani klaim paling banyak?
e. Siapa petugas yang bertanggung jawab di hari rabu?
f. Berapa nilai klaim tertinggi dan terendah?
g. Berapa frekuensi klaim tertinggi dan terendah?

Pembahasan :

Sebelum menjawab permintaan kepala perusahaan, tahap pertama dari penyelesaian kasus ini adalah mengusahakan agar RStudio dapat membaca data tersebut. Berikut beberapa tahapan import data menggunakan RStudio.

1. Input Data Permasalahan

Input data permasalahan atau kita sebut data klaim pada notepad atau segala jenis software yang mampu menghasilkan dokumen dengan format *.txt lalu simpan dokumen tersebut pada tempat yang mudah diingat. Atau jika ingin cara instan, unduh data_klaim pada link berikut kemudian pilih data dengan nomor urut 36 dengan judul Contoh Data Klaim Perusahaan Asuransi.
Link Data : Download Contoh Data

2. Import Data


Tahap selanjutnya adalah melakukan import data dengan cara klik :
File - Import Dataset - From Text (base)


3. Pilih lokasi data yang disimpan.


Lalu pilih lokasi penyimpanan data yang telah disiapnkan pada tahap 1.


4. Import


Setelah muncul kotak dialog Import Data kemudian klik Import


5. Selesai

Tahap import data telah selesai. Untuk memastikan data telah terekam, masukan code berikut pada RStudio Console kemudian enter.
data_klaim
Setelah itu akan muncul hasil sebagai berikut:
Tampilan diatas menandakan bahwa data telah terekam. Setelah data terekam, tahap selanjutnya adalah menjawab permintaan dari kepala perusahaan. Berikut penjabaran masing-masing permintaan.

Jawaban

a. Berapa Rata-rata Klaim yang Terjadi

Pertanyaan poin a dapat dijawab dengan menggunakan fungsi rata-rata pada R. Masukan code berikut pada RStudio Console kemudian enter.
jawab_a=mean(data_klaim$klaim)
print(jawab_a)
Setelah itu akan muncul hasil sebagai berikut:
Rata-rata klaim yang terjadi pada mingg tersebut adalah sebesar 23,85714 klaim.

b. Kapan Nilai Klaim Tertinggi Terjadi?

Pertanyaan poin b dapat dijawab dengan menggunakan fungsi which.max pada R. Masukan code berikut pada RStudio Console kemudian enter.
jawab_b=data_klaim[(which.max(data_klaim$klaim)),1]
print(jawab_b)
Setelah itu akan muncul hasil sebagai berikut:
Nilai klaim tertinggi terjadi pada hari minggu. Pada dasarnya, jawaban poin b adalah menggabungkan fungsi which.max dengan modifikasi matriks dengan informasi kolom 1.

c. Hari Apa Saja yang Nilai Klaimnya Lebih dari 25 Juta?

Pertanyaan poin c dapat dijawab dengan menggunakan fungsi subset pada R. Masukan code berikut pada RStudio Console kemudian enter.
jawab_c=subset(data_klaim, nilai > 25)
print(jawab_c)
Setelah itu akan muncul hasil sebagai berikut:
Hari selasa, kamis, jumat dan minggu memiliki nilai klaim di atas 25 juta. Prinsip fungsi subset adalah mengambil sebagain informasi dalam hal ini adalah informasi variabel nilai pada data_klaim.

d. Siapa Petugas yang Menangani Klaim Paling Banyak?

Pertanyaan poin d dapat dijawab dengan menggunakan fungsi which.max pada R. Masukan code berikut pada RStudio Console kemudian enter.
jawab_d=data_klaim[(which.max(data_klaim$klaim)),4]
print(jawab_d)
Setelah itu akan muncul hasil sebagai berikut:
Petugas yang menangani klaim paling banyaka dalah Budi. Pada dasarnya, jawaban poin d adalah menggabungkan fungsi which.max dengan modifikasi matriks dengan informasi kolom 4. Jawaban poin d mirip dengan jawaban poin b.

e. Siapa Petugas yang Bertanggung Jawab di Hari Rabu?

Pertanyaan poin e dapat dijawab dengan menggunakan fungsi which pada R. Masukan code berikut pada RStudio Console kemudian enter.
jawab_e=data_klaim[(which(data_klaim$hari == "Rabu")),4]
print(jawab_e)
Setelah itu akan muncul hasil sebagai berikut:
Petugas yang bertanggung jawab di hari rabu adalah Tini. Pada dasarnya, jawaban poin e adalah menggabungkan fungsi which dengan kriteria "Rabu" dan modifikasi matriks dengan informasi kolom 4. Jawaban poin d mirip dengan jawaban poin b dan d.

f. Berapa Nilai Klaim Tertinggi dan Terendah?

Pertanyaan poin f dapat dijawab dengan menggunakan fungsi max, data.frame, dan fungsi pembentuk vektor. Masukan code berikut pada RStudio Console kemudian enter.
nnilai=c((max(data_klaim$nilai)),(min(data_klaim$nilai)))
nilaicek=c("Tertinggi","Terendah")
jawab_f=data.frame(nilaicek,nnilai)
print(jawab_f)
Setelah itu akan muncul hasil sebagai berikut:
Nilai klaim tertinggi sebesar 50,51 juta dan terendah sebesar 13,03 juta. Pada jawaban poin f terdapat beberapa tahap dalam penyelesaiannya. Tahap pertama adalah menentukan nilai maksimum dan minimum kemudian memasukannya pada vektor nnilai. Tahap kedua membentuk sebuah vektor dengan elemen "Tertinggi" dan "Terendah". Tahap ketiga adalah menggabungkan vektor tahap pertama dan kedua.

g. Berapa Frekuensi Klaim Tertinggi dan Terendah?

Pertanyaan poin g dapat dijawab dengan menggunakan fungsi max, data.frame, dan fungsi pembentuk vektor. Masukan code berikut pada RStudio Console kemudian enter.
nklaim=c((max(data_klaim$klaim)),(min(data_klaim$klaim)))
klaimcek=c("Tertinggi","Terendah")
jawab_g=data.frame(klaimcek,nklaim)
print(jawab_g)
Setelah itu akan muncul hasil sebagai berikut:
Frekuensi klaim tertinggi sebesar 35 klaim dan terendah sebesar 12 klaim. Pada jawaban poin g terdapat beberapa tahap dalam penyelesaiannya. Tahap pertama adalah menentukan nilai maksimum dan minimum kemudian memasukannya pada vektor nklaimTahap kedua membentuk sebuah vektor dengan elemen "Tertinggi" dan "Terendah"Tahap ketiga adalah menggabungkan vektor tahap pertama dan kedua.

---

Demikian penjelasan mengenai Tutorial R : Manajemen Data Sederhana pada R dan RStudio. Jika terdapat pertanyaan maupun penjelasan ulang, kritik, saran dan lainnya, dapat langsung mengisi kolom komentar. Semua pertanyaan yang masuk akan selalu diusahakan untuk dijawab.

Saturday, December 7, 2019

Tutorial R : Metode Forecasting Exponential Smoothing menggunakan R


Salah satu metode yang dapat digunakan untuk meramalkan data ke depan adalah Exponential Smoothing. Exponential Smoothing merupakan salah satu metode deret waktu yang sering digunakan untuk meramalkan data-data masa lampu pada ranah ekonomi, sosial maupun lainnya. Konsep perhitungan dari Exponential Smoothing adalah dengan memberikan pembobot pada perhitungan prediksi untuk setiap t.

Exponential Smoothing sendiri terbagi ke dalam beberapa jenis. Jenis dari metode ini yang sering digunakan adalah Single Exponential Smoothing, Double Exponential Smoothing Holt dan Triple Exponential Smoothing Holt-Winters. Jika diamati dari nama jenis metode yaitu Single, Double dan Triple, hal ini berkaitan dengan banyaknya pembobot yang digunakan pada metode tersebut. Single Exponential Smoothing hanya memberikan satu pembobot yaitu alpha (level). Double Exponential Smoothing Holt memberikan dua pembobot yaitu alpha (level) dan beta (tren). Sedangkan Triple Exponential Smoothing Holt-Winters memberikan tiga pembobot yaitu alpha (level), beta (tren), dan gamma (musiman).

Ketika data memiliki pola yang acak, kemungkinan Single Exponential Smoothing dapat digunakan. Ketika data memiliki pola yang acak serta membentuk tren naik atau turun, kemungkinan Double Exponential Smoothing Holt dapat digunakan. Ketika data memiliki pola yang acak serta membentuk tren naik atau turun dan terjadi pola musiman, kemungkinan Triple Exponential Smoothing Holt-Winters dapat digunakan. Kemungkinan-kemungkinan tersebut dapat dipastikan dengan cara membandingkan ketiga metode, kemudian melihat nilai kesalahan yang dihasilkan.

Exponential Smoothing telah dibahas pada beberapa artikel pada laman ini, berikut beberapa artikel yang membahas tentang Exponential Smoothing
Tutorial : Single Exponential Smoothing dan Peramalan
Tutorial : Double Exponential Smoothing Holt dan Peramalan
Tutorial : Triple Exponential Smoothing Winter dan Peramalan
Pada artikel ini akan dijelaskan tentang cara melakukan peramalan dengan Exponential Smoothing menggunakan alat bantu R. Beberapa artikel pendahuluan tentang R yang dapat digunakan adalah sebagai berikut:
Tutorial & Video : Download dan Install "R"
Tutorial R : RStudio sebagai IDE yang Memudahkan
Tutorial & Video : Rcmdr untuk Statistika Dasar
Tutorial R : Rcmdr pada RStudio

Berikut contoh kasus yang akan dibahas :

Seorang General Manager (GM) meminta laporan hasil penjualan perbulan selama 5 tahun dengan data sebagai berikut beserta dengan analisis proyeksi 6 bulan ke depan :
Salah satu metode yang dapat digunakan untuk menyelesaikan permasalahan di atas adalah Exponential Smoothing. Berikut tahapan analisis beserta code untuk R.

1. Jalankan RStudio

Tahap pertama silahkan buka dan jalankan RStudio, cara instalasi RStudio dan pengertian lainnya telah dibahas pada artikel :
Tutorial R : RStudio sebagai IDE yang Memudahkan
Sesuaikan layout RStudio agar mudah dibaca.

2. Siapkan Data

Data pada tutorial ini dapat diunduh melalui link berikut :
Download Contoh Data
Kemudian Pilih dan Klik Data Pada Nomor Urut 34.

Data yang telah disiapkan berekstensi *.txt.
Setela data diunduh, selanjutnya adalah memasukan data ke RStudio dengan cara :
Klik File - Import Dataset - From Text (base) - Pilih data yang telah diunduh - Klik Import

3. Definisikan Data

Setelah data berhasil diimport, selanjutnya adalah mendefinisikan variabel untuk data tersebut agar dapat dilakukan analisis menggunakan RStudio. Berdasarkan kasus, data tersebut memiliki struktur data bulanan dan rentang selama 5 tahun mulai dari tahun 2015 - 2019.
Copy-paste code berikut pada RStudio Console kemudian tekan enter.
lap = Data.Laporan.Bulanan
lap = ts(lap, start=c(2015,1), end=c(2019,12), frequency=12)
lap
Hasil :

4. Plot Deret Waktu

Setelah data berhasil didefinisikan dengan nama Lap, tahap selanjutnya adalah melakukan pengamatan terhadap plot deret waktu. Hal ini dilakukan untuk menduga dan menentukan kira-kira metode Exponential Smoothing apa yang sesuai dengan data tersebut.
Copy-paste code berikut pada RStudio Console kemudian tekan enter.
ts.plot(lap)
Hasil :
Berdasarkan plot deret waktu yang dihasilkan, terlihat  bahwa data hasil penjualan mengalami tren dan kemungkinan terdapat faktor musiman.

5. Fungsi Exponential Smoothing

Tahap selanjutnya adalah pemanggilan fungsi Exponential Smoothing pada RStudio berdasarkan kriteria dan ketentuan berikut :


Copy-paste code berikut untuk Single Exponential Smoothing

lapfore1 = HoltWinters(lap, beta=FALSE, gamma=FALSE)
lapfore1
lapfore1$SSE
plot(lapfore1)

Hasil :


Copy-paste code berikut untuk Double Exponential Smoothing

lapfore2 = HoltWinters(lap, gamma=FALSE)
lapfore2
lapfore2$SSE
plot(lapfore2)

Hasil :



Copy-paste code Triple Exponential Smoothing

lapfore3 = HoltWinters(lap)
lapfore3
lapfore3$SSE
plot(lapfore3)
Hasil :


6. Model Terbaik

Berdasarkan hasil analisis yang dilakukan, perhatikan nilai Sum Square Error (SSE) yang dihasilkan. Nilai SSE terkecil menunjukan bahwa metode tersebut cocok digunakan untuk data laporan hasil penjualan bulanan pada kasus ini.
Berdasarkan tabel diatas, model terbaik adalah Triple Exponential Smoothing karena menghasilkan nilai SSE terkecil 549275,0.

7. Forecast

Setelah model terbaik ditentukan yaitu Triple Exponential Smoothing dengan nilai SSE terkecil. Tahap selanjutnya adalah melakukan prediksi ke depan. Pada kasus diketahui bahwa data deret waktu terkahir berada pada bulan Desember 2019 dan ingin diproyeksi untuk 6 bulan ke depan dengan cara sebagai berikut:
Copy-paste code berikut pada RStudio Console kemudian enter untuk Forecast ke depan.
predict(lapfore, n.ahead = 6)
Hasil :
Berdasarkana hasil prediksi untuk 6 bulan ke depan, diperoleh hasil sebagai berikut :

***

Demikian artikel tentang Tutorial : Metode Peramalan Exponential Smoothing menggunakan R. Semoga dapat bermanfaat. Jika terdapat pertanyaan, kritik maupun saran. Jangan sungkan untuk mengunjungi kolom komentar.