package ff dan ffbase dalam r untuk big datadanardono.staff.ugm.ac.id/matakuliah/bigdata/kel11 big...
TRANSCRIPT
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
2017
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.
6. Transformasi data : cumsum, cumprod, cumin, cummax, table, tabulate, merge, ffdfply, 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.
Contoh :
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.
sum(x, na.rm = FALSE, range = NULL)
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
2. Mengambil variabel yang ingin dijumlahkan
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 × 1012) − (1769297027)(1923665971)
1311826(2,72 × 1012) − (1769297027)2
=3,7 × 1018 − 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.
1. Membaca data
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 :
�̂� = �̅� − �̂��̅� = 4231.703
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
3. Fungsi sum.ff
4. Fungsi mean.ff
Output Perbandingan Waktu
1. Baca Data
a. Puluhan
b. Ratusan
c. Ribuan
d. Puluh Ribuan
e. Big Data
2. Perhitungan Sum
a. Puluhan
b. Ratusan
c. Ribuan
d. Puluh Ribuan
e. Big Data
3. Perhitungan Mean
a. Puluhan
b. Ratusan
c. Ribuan
d. Puluh Ribuan
e. Big Data