PACKAGE FF DAN FFBASE DALAM R UNTUK BIG DATA
“Membahas komputasi, mencoba, dan mendemonstrasikan package FF dalam Big Data”Paper ini disusun untuk memenuhi tugas mata kuliah Big Data
Yogyakarta, 8 Mei 2017
Disusun oleh :
Nur Fadhillah R Nst (13/348000/PA/15416) Indah Rini Setyowati (14/363382/PA/15844) Annaz Trio Wardhana (14/366130/PA/16215) Fidelis Restu (14/368628/PA/16298)
Dosen Pengampu : Drs. Danardono M.P.H., Ph.D. Vemmie Nastiti Lestari, M.Sc.
PROGRAM STUDI STATISTIKA DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA
BAB I
PRINSIP FF DAN FFBASE
A. Pendahuluan
Package ff merupakan salah satu package pada R yang digunakan untuk menangani sistem data pada big data. Package ini merupakan cara yang paling tepat dan efisien saat ingin menyelesaikan masalah dengan suatu dataset yang sangat besar karena peralatannya yang lengkap.
Kelebihan package ff disbanding dengan package bidgata yang lain adalah sebagai berikut.
- Tidak membatasi untuk mengejakan tipe data numerik dan matriks saja seperti package bigmemory, tetapi juga relatif lebih mudah untuk mengakses tipe data karakter, vektor, bahkan faktor.
- Mempunyai fungsionalitas pemuatan data yang efisien dari flat/scv file.
- Tidak pelu menggunakan package sqldf untuk mendapatkan dan menambahkan sepanjang waktu data tersebut di kanan (RAM-terbatas) ukuran ke dan dari database SQLite.
- Memiliki tingkat fungsi yang lebih tinggi (seperti menerapkan set of family, mengurutkan, …) daripada package mmap yang tampaknya kurang bisa digunakan.
- Memungkinkan untuk bekerja dengan dataset yang tidak dapat diletakkan di memory yang package database nya tidak memungkinkan.
Salah satu package yang menunjang bekerjanya package ff adalah package ffbase. Package tersebut sekarang berisi beberapa ekstensi yang sangat berguna. Package ini juga berisi banyak fungsi dari paket dasar R untuk penggunaan dengan dataser besar melalui package ff.
Beberapa fungsi tersebut diantaranya sebagai berikut.
1. Operasi dasar : c, unique, duplicated, ffmatch, ffdfmatch, %in%, is.na, all, any, cut, ffwhich, ffappend, ffdf append, dll.
2. Operator standard pada vektor : +, -, *, /, ^, %%, %/%, ==, !=, <, <=, >=, >, &, |, !, dll. 3. Operator matematika : abs, sign, sqrt, ceiling, floor, truch, round, signif, log, log10, log2,
log1p, exp, expm1, acos, acosh, asin, asinh, atan, atanh, cos, cosh, sin, sinh, tan, tanh, gamma, 1gamma, digamma, trigamma, dll.
4. Selection dan manipulasi data : subset, transform, with, within, ffwhich, dll. 5. Ringkasan statistik : sum, min, max, range, quantile, hist, dll.
Fungsi-fungsi tersebut bekerja pada objek atau benda kelas ffdf dari package ff. disamping itu, ada beberapa fungsi tambahan yang memungkinakan pengelompokan lebih cepat dengan tidak terbatas pada package ff saja. Misalnya, agregasi kelompok akan lebih cepat jika digunakan fungsi : bySum, byMean, binned_sum, binned_sumsq, binned_tabulate, dll.
B. Fungsi Dasar dan Fungsi Matematika
Terdapat 2 fungsi mendasar yang digunakan dalam package ff, yaitu ff dan ffdf. Dikatakan mendasar karena kedua fungsi tersebut digunakan untuk membuat suatu data berbentuk vektor dan matrix (untuk ff) dan data frame (untuk ffdf).
1. Fungsi ff
Fungsi ff dapat digunakan untuk membentuk flat file 1 dimensi. Syntax yang digunakan adalah :
ff(vmode=”…”,length=…)
Setelah itu, dibentuk data seperti biasa, dan digunakan syntax untuk memodifikasi flat file 1 dimensi yang telah terbuat tadi. Bentuk seperti ini dinamakan vektor ff.
Contoh :
Selain itu, fungsi ff dapat digunakan untuk membentuk flat file multi dimensi. Syntax yang digunakan adalah :
ff(vmode=”…”,dim=…)
Setelah itu, dibentuk data seperti biasa, dan digunakan syntax untuk memodifikasi flat file 1 dimensi yang telah terbuat tadi. Pada 1 dimensi, digunakan data “rivers” yang merupakan data bawaan dari R. Pada multi dimensi ini akan diberikan contoh dengan membuat data sendiri. Bentuk seperti ini dinamakan matriks ff.
2. Fungsi ffdf
Fungsi ffdf ini sering digunakan dalam aplikasi penyelesaian bigdata. Ffdm singkatan dari FF Data Frame. Berikut akan ditunjukkan perbedaan data frame biasa dengan ffdf.
Di atas merupakan bentu data frame biasa yang sering digunakan. Berikut output jika data di atas dirubah menjadi ffdf.
Perbedaan data frame dengan ffdf yaitu jika digunakan pada big data. Pada data frame biasa, hanya mampu membaca beberapa data saja, tetapi pada ffdf data bisa dibaca secara menyeluruh dengan waktu yang lebih cepat.
Berikut perbedaan pembacaan big data pada Ms. Excel, R tanpa package, dan R dengan package ff.
a) Ms. Excel
Jumlah data yang terlalu besar, menyebabkan Ms. Excel tidak bisa membaca data secara keseluruhan. Hal ini dikarenakan Ms. Excel mempunyai jumlah baris maksimal.
b) R tanpa package
R tanpa package juga tidak bisa membaca data secara menyeluruh. Dia hanya dapat membaca maksimal 1308378 baris data.
c) R dengan package ff
Package ff pada R bisa membaca data secara keseluruhan. Hal paling mendasar yang bisa diambil dari sini yaitu kita bisa mengetahui jumlah data yang ada.
Dari ketiga perbandingan di atas, bisa diambil kesimpulan bahwa tidak semua aplikasi bisa digunakan untuk membaca apalagi melakukan pengolahan big data. Package ff merupakan salah satu package yang dapat digunakan untuk membaca big data dengan tepat.
3. Operasi Penjumlahan
Fungsi ini digunakan untuk menjumlahkan vektor dalam bentuk ff. Syntax yang digunakan adalah sebagai berikut.
dimana :
- x : objek ff yang akan dijumlahkan
- na.rm : apakah missing value ingin dihapus?
- range : jumlah integer vektor yang ingin dijumlahkan
Pada intinya operasi penjumlahan pada package ff dan tanpa ff sama, perbedaannya hanyalah jenis pada objek yang digunakan.
4. Operasi Mean
Fungsi ini digunakan untuk menghitung nilai rata – rata atau mean dari suatu objek data. Syntax yang digunakan adalah sebagai berikut:
mean(x, trim = 0, na.rm = FALSE, ...) dimana:
- x : objek pada R yang akan dihitung nilai mean atau rata – ratanya
- trim : nilai pecahan (0 sampai 0,5) dari pengamatan untuk dihilangkan dari setiap ujung nilai x sebelum menghitung mean. Nilai yang berada diluar interval yang telah ditentukan tersebut akan digunakan sebagai titik akhir terdekat.
- na.rm : apakah missing value ingin dihapus sebelum dilakukan proses komputasi? - . . . : argument lebih lanjut
5. Operasi Perkalian Matrix
Pada dasarnya operasi matriks untuk big data tidak tersedia pada packages ff dan ffbase, packages ff dan ffbase hanya berfokus pada pembentukan matriks. Untuk melakukan operasi matriks dapat dilakukan secara manual atau seperti operasi matriks di R, atau menggunakan bantuan beberapa packages seperti biganalytics, atau bigalgebra. Namun pada pembahasan kali ini, akan digunakan operasi matriks secara manual tanpa bantuan packages tambahan, mengingat tujuan dari penelitian ini adalah focus pada penggunaan packages ff dan ffbase.
BAB II IMPLEMENTASI
A. Penerapan Fungsi Sum, Mean, Dan Kali Matriks Pada Regresi
Selanjutnya akan dibahas mengenai 3 fungsi yang sering digunakan dalam pengolahan data, yaitu fungsi sum, mean, dan kali matrix pada ff. Diperlukan package “ffbase” untuk menjalankan fungus tersebut.
Ketiga fungsi tersebut akan diterapkan pada regresi, yaitu sebagai berikut.
d) Sum, digunakan untuk mencari estimasi parameter pada regresi linear sederhana. 𝛽̂ =𝑛 ∑ 𝑋𝑌 − ∑ 𝑋 ∑ 𝑌
𝑛 ∑ 𝑋2− (∑ 𝑌)2
e) Mean, digunakan untuk mencari estimasi parameter pada regresi linear sederhana. 𝛼̂ = 𝑌̅ − 𝛽̂𝑋̅
f) Kali matrix, digunakan untuk mencari estimasi parameter pada regresi linear ganda. 𝜷̂ = (𝑿′𝑿)−𝟏𝑿′𝒀
Studi kasus yang digunakan yaitu data airline tahun 1987, dengan variabel Y = ArrTime dan variabel X = DepTime untuk regresi sederhana. Sedangkan untuk regresi ganda, digunakan Y = ArrTime, X1 = DepTime, dan X2 = Distance.
Sum FF
Pada studi kasus ini, terdapat beberapa langkah yang dilakukan untuk menggunakan fungsi ffbase hingga didapatkan nilai estimasinya.
1. Membaca data
3. Melalukan Perhitungan Package “ffbase”
4. Setelah itu, karena terjadi warning, maka dilakukan perhitungan manual untuk mencari estimator 𝛽 dari nilai-nilai yang telah diperoleh.
𝛽̂ =𝑛 ∑ 𝑋𝑌 − ∑ 𝑋 ∑ 𝑌 𝑛 ∑ 𝑋2− (∑ 𝑌)2 = 1311826(2,87 × 10 12) − (1769297027)(1923665971) 1311826(2,72 × 1012) − (1769297027)2 = 3,7 × 10 18− 3,4 × 1018 2,98 × 1018− 3,13 × 1018 = −2 Mean FF
Pada studi kasus ini, terdapat beberapa langkah yang dilakukan untuk menggunakan fungsi ffbase hingga didapatkan nilai estimasinya.
2. Mengambil variabel yang ingin dijumlahkan
3. Melalukan Perhitungan Package “ffbase”
Sebelumnya telah diketahui bahwa nilai estimator 𝛽 sebesar -2. Jadi, diperoleh nilai estimator 𝛼 sebagai berikut :
Operasi Perkalian Matriks
Untuk operasi perkalian matriks, diambil studi kasus pencarian nilai estimasi β pada regresi ganda. Data yang digunakan adalah data yang sama pada pembahasan sebelumnya. Data yang digunakan sebagai berikut :
Berdasarkan data di atas, variable dependen (Y) yang diambil untuk estimasi regresi adalah ArrTime, dan variable independen (X1 dan X2) yang diambil untuk estimasi regresi adalah DepTime, dan Distance.
Diketahui rumus estimasi nilai β pada regresi ganda sebagai berikut : 𝜷̂ = (𝑿′𝑿)−𝟏𝑿′𝒀
Berdasarkan rumus di atas, maka langkah awal yang dilakukan adalah membentuk matriks X dengan dimensi N x 3, dan matriks Y dengan dimensi N x 1, dimana N adalah jumlah data yang digunakan.
Berikut sintaks untuk pembentukan matriks X dan Y 1. Matriks X
2. Matriks Y
Keterangan :
Data[,5], data[,7] dan data[,18] menunjukkan urutan kolom dari variabel-variabel yang diambil pada data. Variabel dependen ArrTime diambil dari data pada kolom ketujuh, sedangkan variabel independen DepTime, dan Distance berturut – turut diambil dari data pada kolom kelima dan kedelapan belas.
Setelah dibentuk matriks X dan Y, maka akan dibentuk matriks (XTX)-1 dan (XTY). Operasi perkalian matriks yang digunakan menggunakan operasi matriks manual pada R, tanpa bantuan packages khusus. Bentuk matriks (XTX)-1 dan (XTY) didapat sebagai berikut :
1. Matriks (XTX)-1
Karena matriks (XTX) terdapat NA yang kemungkinan disebabkan oleh adanya missing value pada salah satu atau kedua variabel independen, maka terdapat nilai NA pada perkalian XTX. Hal ini mengakibatkan invers dari XTX tidak dapat dihitung.
2. Matriks (XTY)
Hal yang sama terjadi pada perkalian matriks XTY, pada perkalian matriks ini terdapat nilai NA yang kemungkinan disebabkan oleh adanya missing value pada data yang digunakan. Karena pada kedua perkalian matriks ini menghasilkan nilai NA, maka penghitungan nilai estimasi β dengan contoh data ini tidak dapat dilakukan. Namun secara tidak langsung studi kasus ini menunjukkan bahwa operasi perkalian matriks untuk data besar dapat dilakukan secara manual. Selain itu dari studi kasus ini menunjukkan bahwa packages ff dapat digunakan untuk pembentukan matriks.
B. Perbandingan Waktu
Untuk membandingkan proses waktu yang digunakan oleh suatu data dengan atau tanpa menggunakan package ff, digunakan syntax berikut.
ptm <- proctime()
…(syntax yang akan dihitung prosesnya)… proctime – ptm
Digunakan data vektor berukuran 24 (puluhan), 150 (ratusan), 4.974 (ribuan), 39.644
(puluhribuan), dan 1.311.026 (bigdata). Masing-masing data vektor di atas dikenakan proses pembacaan data, operasi sum, dan operasi mean. Hasil (output) pada perbandingan waktu dapat dilihat di lampiran.
Diperoleh kesimpulan dari perbandingan waktu sebagai berikut. Banyaknya
Data
Lama Waktu (Detik)
Baca Data Sum Mean
Tanpa ff Dengan ff Tanpa ff Dengan ff Tanpa ff Dengan ff Puluhan 0,02 0,04 0,02 0,03 0,01 0,02 Ratusan 0,03 0,04 0,01 0,01 0,02 0,02 Ribuan 0,05 0,11 0,01 0,03 0,02 0,02 Puluhribuan 0,11 0,13 0,01 0,08 0,02 0,02 Big Data 13,45 12,45 0,03 0,02 0,05 0,04 Dari tabel di atas, diperoleh beberapa kesimpulan terkait perbandingan waktunya.
Lama waktu menggunakan package ff dan tanpa menggunakan ff tidak berbeda secara signifikan. Untuk big data, proses dengan package ff relatif lebih cepat daripada tanpa package ff. Untuk non big data, proses tanpa package ff lebih cepat dari pada dengan package ff.
Big data yang dimaksud adalah data yang ukurannya sangat besar hingga Ms. Excel tidak bisa membaca. Karena meskipun data besar hingga puluh ribuan, akan tetapi itu belum termasuk big data.
Dari beberapa kesimpulan atas, bisa disimpulkan bahwa package ff lebih baik digunakan hanya untuk big data saja. Jika data masih bisa terbaca oleh excel, maka tidak perlu digunakan package ff.
BAB III KESIMPULAN
1. Package ff merupakan salah satu package pada R yang digunakan untuk menangani sistem data pada big data.
2. Salah satu package yang menunjang bekerjanya package ff adalah package ffbase. Package ini berisi banyak fungsi dari paket dasar R untuk penggunaan dengan data besar melalui package ff.
3. Fungsi mendasar yang digunakan dalam package ff, yaitu ff dan ffdf. Dikatakan mendasar karena kedua fungsi tersebut digunakan untuk membuat suatu data berbentuk vektor dan matrix (untuk ff) dan data frame (untuk ffdf).
4. Tidak semua aplikasi bisa digunakan untuk membaca apalagi melakukan pengolahan big data. Package ff merupakan salah satu package yang dapat digunakan untuk membaca big data dengan tepat.
5. Pada intinya operasi penjumlahan (sum), perhitungan rata-rata (mean), dan perkalian matrix pada package ff dan tanpa ff sama, perbedaannya hanyalah jenis pada objek yang digunakan. Package ff menggunakan data jenis ff atau ffbase.
6. Package ff lebih baik digunakan hanya untuk big data saja. Jika data masih bisa terbaca oleh excel, maka tidak perlu digunakan package ff.
LAMPIRAN
Deskripsi Fungsi 1. Fungsi ff
2. Fungsi ffdf
4. Fungsi mean.ff
Output Perbandingan Waktu 1. Baca Data
a. Puluhan
c. Ribuan
e. Big Data
2. Perhitungan Sum a. Puluhan
c. Ribuan
d. Puluh Ribuan
3. Perhitungan Mean a. Puluhan
b. Ratusan
d. Puluh Ribuan