Mia Nilam Cahya
Mengapa menggunakan R untuk analisis data spasial
Karena R gratis dan sumber terbuka, reproduksibilitas : peneliti dapat mereproduksi analisis mereka sendiri atau analisis orang lain dan memverifikasi temuan mereka, packages : ada sejumlah besar paket R untuk analisis data spasial, pemodelan statistik, visualisasi, pembelajaran mesin, dll.
Paket R untuk analisis data spasial
Entitas yang dikerjakan pada pemrograman R disebut objek. Dapat berupa angka, string, vektor, matriks, array, dan fungsi. Jadi, setiap struktur data generik adalah sebuah objek.
Operator penugasan pada pemrograman R yaitu < - . Contohnya ketika memvisualisasikan output dari objek dengan menyebutnya seperti berikut :
Dalam pemrograman R, vektor merupakan sruktur data yang paling sederhana. Untuk membuat vektor, hanya membutuhkan fungsi c() seperti contoh berikut :
Fungsi diatas hanya menggabungkan entitas yang berbeda menjadi sebuah vektor. Ada banyak cara untuk membuat vektor, tergantung tujuannya. Misalnya untuk membuat daftar nomor berurutan secara otomatis , sintaksnya adalah a:b. Dimana a dan b sesuai dengan ekstrem bawah dan atas dari suksesinya. Selain itu juga dapat menggunakan fungsi seq() seperti berikut :
Fungsi seq() juga dapat digunakan untuk membuat urutan yang lebih kompleks seperti pada contoh berikut :
Untuk mengulang angka yang sama lebih banyak ke dalam vektor dapat menggunakan fungsi rep() seperti contoh berikut :
Tidak hanya vektor numerik, ada juga vektor logika dan vektor karakter seperti contoh berikut ini :
Factors pemrograman pada pemrograman R adalah vektor khusus yang digunakan untuk mengelompokkan elemen ke dalam kategori. Ada dua jenis faktor yaitu teratur dan tidak teratur. Dapat membuat faktor menggunakan faktor fungsi() seperti contoh berikut :
Untuk memeriksa level faktor, dapat menggunakan level fungsi() seperti contoh berikut :
Matriks pada pemrograman R adalah bilangan array 2 dimensi dan dapat dibangun menggunakan fungsi matrix() seperti contoh berikut ini :
Untuk menggabungkan vektor yang berbeda ke dalam row-wise atau column-wise dapat menggunakan rbind() dan cbind() seperti pada contoh berikut :
Arrays pada pemrograman R adalah objek yang dapat memiliki satu, dua, atau lebih dimensi. Ketika menggunakan satu dimensi sama seperti menggunakan fungsi vektor. Ketika menggunakan dua dimensi sama seperti menggunakan fungsi matriks. Dengan kata lain, array berguna untuk membangun struktur data dengan lebih dari 2 dimensi seperti pada contoh berikut :
List pada pemrograman R merupakan kumpulan objek yang diurutkan. List dapat berisi nilai dari tipe yang berbeda, dapat dibangun menggunakan list fungsi() seperti contoh berikut :
Dataframe di pemrograman R sangat mirip dengan matriks. Ini terdiri dari baris dan kolom, dimana kolom dianggap vektor. Perbedaan yang paling relevan adalah lebih mudah untuk memfilter dan memilih elemen. Dataframe dapat dibangun menggunakan fungsi data.frame() seperti contoh berikut :
For dan while pada pemrograman R digunakan untuk perulangan elemen diatas urutan. Berikut merupakan contoh penggunakan for dan while :
If statement pada pemrograman R mirip dengan yang ada di phyton. Perbedaannya ada pada penambahan tanda kurung dan kurung kurawal seperti contoh berikut ini :
Sebagai seorang data scientist sebelum melakukan pemodelan data, harus memahami data itu terlebih dahulu.
Tipe Data : Kualitatif atau kuantitatif. Menentukan tipe data dapat digunkaan untuk memilih tool yang mana dan teknik apa yang digunakan untuk menganalisis data.
Kualitas Data : Isu kualitas data meliputi adanya noise dan outlier, data yang hilang, data yang tidak konsisten, atau data duplikat.
Preprocessing Data : Digunakan untuk membuat data lebih sesuai untuk diolah. Selain untuk meningkatkan kualitas data, data seringkali dimodifikasi agar lebih cocok dengan teknik tertentu.
Menganalisis data dalam bentuk relasinya : Satu pendekatan untuk analisis data adalah menemukan hubungan antara objek-objek data dan kemudian melakukan analisis sisanya menggunakan hubungan-hubungan tersebut daripada menggunakan objek-objek data itu sendiri seperti clustering, klasifikasi, atau deteksi anomali berdasarkan pada kemiripan dan jarak tersebut.
Sebuah atribut adalah sebuah sifat atau karakteristik dari sebuah objek yang dapat bervariasi. Sedangkan skala pengukuran adalah fungsi yang menghubungkan nilai numerik atau simbolik dengan sebuah atribut dari sebuah objek. Proses pengukuran adalah penggunaan skala pengukuran untuk menghubungkan sebuah nilai dengan sebuah atribut tertentu dari sebuah objek.
Tipe Atribut :
Tipe atribut juga dapat dinyatakan dalam bentuk transformasi seperti berikut ini :
Diskret : sebuah atribut diskret memiliki himpunan nilai berhingga atau tidak berhingga, seperti kode pos; nomor ID karyawan; atau numerik seperti count. Atribut diskret sering direpresentasikan menggunakan variabel integer. Atribut biner adalah kasus khusus dari atribut diskret karena hanya memiliki dua nilai seperti yes/No, benar/salah, 0/1. Atribut biner direpresentasikan dengan menggunakan variabel boolean atau variabel integer yang hanya mempunyai nilai 0 atau 1. Atribut nominal dan ordinal adalah biner atau diskret.
Kontinu : atribut yang memiliki nilai berupa bilangan real, seperti temperatur; tinggi atau berat. Atribut kontinu sering direpresentasikan menggunakan variabel floating-point. Atribut interval dan rasio adalah kontinu.
Atribut asimetrik : atribut yang hanya memiliki nilai tak nol.
Atribut biner asimetrik : atribut biner yang hanya memiliki nilai tak nol. Tipe atribut ini secara khusus penting untuk analisis asosiasi.
Data Record : Dataset merupakan kumpulan record (objek data), masing-masing record mengandung sekumpulan field data ( atribut ).
Data transaksi atau data market basket : bentuk khusus dari dara record, dimana setiap record (transaksi) meliputi sekumpulan item. Data transaksi merupakan koleksi dari himpunan-himpunan item, tetapi data tersebut dapat dipandang sebagai sekumpulan record yang memiliki field-field berupa atribut asimetrik. Seringkali atribut yang ada adalah atribut biner, yang menunjukkan apakah ada atau tidak ada item yang dibeli. Tetapi secara umum, attribut dapat berupa atribut diskret atau kontinu seperti banyaknya item yang dibeli atau banyaknya uang yang dibayarkan untuk item-item tersebut.
Data berbasis Graf : Graf dapat digunakan dalam merepresentasikan data. Graf dapat menangkap hubungan antar objek data, atau objek data itu sendiri direpresentasikan dalam draf.
Data time series : bentuk khusus dari data sekuensial dimana setiap record adalah sebuah time series, yaitu sebuah rangkaian dari pengukuran yang diambil sepanjang waktu.
Data spasial : Beberapa objek memiliki atribut-atribut spasial, seperti posisi atau area, juga tipe atribut lainnya. Salah satu contoh dari data spasial adalah data cuaca (curah hujan, temperatur, dan tekanan) yang dikumpulkan dari berbagai lokasi geografis.
Untuk menjaga kualitas data, data mining memfokuskan ada deteksi & koreksi dari masalah kualitas data dan menggunakan algoritme yang dapat memberikan toleransi kualitas data yang jelek. Koreksi & deteksi masalah kualitas data sering dikenal sebagai data cleaning. Ada beberapa isu terkait kualitas data diantaranya :
Error pengukuran : Merujuk pada masalah yang dihasilkan dari proses pengukuran. Untuk atribut kontinu, beda numerik dari nilai yang diukur dan nilai sebenarnya dinamakan eror. Noise adalah komponen acak dari eror pengukuran.
Outlier : objek data yang memiliki karakteristik yang berbeda dari kebanyakan objek data lainnya dalam dataset. Perlu dibedakan antara noise dan outlier, outlier merupakan objek data atau nilai yang sah.
Missing Value : sebuah objek kehilangan satu atau lebih nilai atributnya. Terdapat beberapa strategi untuk menangani data yang hilang yaitu dengan mengeliminasi objek data atau atribut, mengeliminasi nilai yang hilang, atau mengisikan suatu nilai.
Nilai yang tidak konsisten : Beberapa bentuk ketidakkonsistenan cukup mudah dideteksi. Sebagai contoh, tinggi badan seseorang tidak mungkin negatif.
Data duplikat : Untuk mendeteksi dan menghilangkan duplikat perlu diperhatikan hal hal berikut (1) jika terdapat dua objek yang secara aktual merepresentasikan sebuah objek, maka nilai dari atribut yang terkait dapat berbeda, dan nilai yang tidak konsisten tersebut harus diatasi. (2) diperlukan langkah yang hati-hati untuk menghindari penggabungan secara tidak sengaja dari data objek yang mirip, tetapi bukan duplikat, misalnya dua orang yang berbeda dengan nama yang identik.
Preprocessing perlu dilakukan agar data dapat sesuai untuk data mining. Strategi atau pendekatan yang sering digunakan yaitu :
Agregasi : mengkombinasikan dua atau lebih objek ke dalam sebuah objek tunggal.
Sampling : pendekatan yang umum digunakan untuk menyeleksi sebuah subset dari objek data untuk dianalisis.
Reduksi dimensi : mereduksi dimensi dari dataset dengan membuat atribut-atribut baru yang merupakan kombinasi dari atribut-atribut lama dikenal sebagai feature selection.
Transformasi variabel : diaplikasikan pada sekuruh nilai pada sebuah variabel. Dengan kata lain, untuk setiap objek, transformasi dilakukan untuk nilai dari variabel untuk objek tersebut. Terdapat dua bentuk transformasi variabel yaitu transformasi fungsi-fungsi sederhana dan normalisasi atau standarisasi.
Kemiripan dan ketidakmiripan merupakan hal yang penting untuk sejumlah teknik data mining seperti clustering, nearest, neghbor classification, deteksi anamali, dll. Kemiripan adalah paling tinggi untuk pasangan objek yang paling serupa. Kemiirpan biasanya dinyatakan oleh bilangan tak negatif dan umumnya berada diantara 0 (tidak ada kemiripan) dan 1 (sangat mirip). Ketidakmiripan adalah paling rendah untuk pasangan objek yang lebih mirip. Biasanya istilah jarak (distance) digunakan sebagai sinonim untuk ketidakmiripan. Ketidakmiripan umumnya berada dalam range dari 0 sampai tak hingga.
Kemiripan dan ketidakmiripan antara atribut sederhana : proximity dari objek dengan sebuah nilai dari atribut didefinisikan dengan mengkombinasikan proximity dari atribut-atribut individual.
Ketidakmiripan dan kemiripan antara objek data : Salah satu jenis ketidakmiripan adalah jarak (distance)
Korelasi : korelasi antara dua objek data yang memiliki variabel biner atau kontinu adalah ukuran dari hubungan linier antara atribut-atribut dari objek.
Visualisasi data merupakan suatu cara untuk menampilkan atau mengkomunikasikan data agar lebih mudah dipahami. Pengambilan keputusan akan lebih mudah ditentukan ketika melihat hubungan antar variabel data atau melihat pola pada data yang divisualisasikan. Secara umum , memilih tipe visualisasi yang cocok bergantung pada tipe data yang dimiliki. Dalam melakukan visualisasi data di pemrograman R menggunakan package ggplot2.
Pada pembuatan grafik fungsi yang digunakan yaitu ggplot. Digunakan untuk mendeklarasikan dataset yang ingin diplot dan untuk memetakan variabel yang ingin diplot dengan program seperti berikut :
Dalam pembuatan plot menggunakan fungsi geom dan diikuti keterangan plot yang ingin dibuat seperti points, lines, bars, dll. Berikut merupakan contoh programnya :
Juga dapat membuat beberapa tipe plot lain dalam satu figure seperti berikut :
Sebagai tambahan jika ingin membuat plot xy, perbedaan nilai dalam suatu variabel dapat digunakan sebagai ukuran, warna, atau bentuk pada geometric objects seperti contoh berikut :
Digunakan untuk mengontrol bagaimana variabel akan divisualisasikan seperti contoh berikut :
Mereproduksi grafik untuk setiap tingkat variabel tertentu (atau kombinasi variabel). Facet dibuat menggunakan fungsi yang dimulai dengan facet. Berikut merupakan contoh program facet yang ditentukan oleh delapan tingkat variabel sektor :
Grafik harus mudah diinterpretasikan dan label yang informatif merupakan elemen kunci dalam mencapai tujuan ini. Berikut merupakan contoh programnya :
Tampilan grafik dapat disempurnakan dengan tema. Fungsi tema mengontrol warna latar belakang, font, garis kisi, penempatan legenda, dan fitur grafik lainnya yang tidak terkait dengan data. Berikut merupakan contoh programnya :
Machine learning adalah salah satu disiplin ilmu dari computer science yang mempelajari bagaimana membuat komputer/mesin itu mempunyai suatu kecerdasan. Machine learning adalah suatu bidang keilmuan yang berisi tentang pembelajaran komputer/mesin untuk menjadi cerdas. Machine learning terdiri dari dua algoritma pembelajaran yaitu supervised learning (pembelajaran terarah) dan unsupervised learning (pembelajaran tidak terarah).
Supervised learning dalam pembuatan model menggunakan data input (prediktor) dan output (respon), sedangkan unsupervised learning akan membuat model hanya berdasarkan kemiripan datanya.
Clustering merupakan proses partisi satu set objek data ke dalam himpunan bagian yang disebut dengan cluster. Clustering sangat berguna untuk bisa menemukan grup/kelompok yang tidak dikenal dalam data. Clustering banyak digunakan seperti business intelligence, pengenalan pola citra, web search, bidang ilmu biologi, dan untuk keamanan (security).
Regresi adalah salah satu metode untuk menentukan hubungan sebab-akibat antara variabel dengan variabel lainnya. Dalam pembuatan model diperlukan adanya variabel input (prediktor) dan output (respon).
Sedangkan tujuan dari proses klasifikasi yaitu mirip dengan clustering membagi dataset ke dalam beberapa kelompok. Namun yang membuatnya berbeda yaitu, dalam klasifikasi diberitahukan kepada mesin (algoritma) pembagian kelompoknya atau dengan kata lain mesin diajari cara membagi kelompoknya. Sedangkan pada clustering melakukan pengelompokan dengan sendirinya.
Dalam machine learning regresi dan klasifikasi memiliki kemiripan metode karena jika bermain regresi variabel output yang digunakan bertipe numerik, sedangkan klasifikasi variabel outputnya variabbel ordinal atau nominal (kategorikal).
Mengapa menggunakan R untuk analisis data spasial
Karena R gratis dan sumber terbuka, reproduksibilitas : peneliti dapat mereproduksi analisis mereka sendiri atau analisis orang lain dan memverifikasi temuan mereka, packages : ada sejumlah besar paket R untuk analisis data spasial, pemodelan statistik, visualisasi, pembelajaran mesin, dll.
Paket R untuk analisis data spasial
Persiapan data
Diberikan contoh analisis data spasial menggunakan pemrograman R. Data yang digunakan yaitu data kejahatan dari Departemen Kepolisian Kouston yang dikumpulkan selama periode Januari 2010 – Agustus 2010. Setelah melakukan langkah persiapan data kemudian menginstal beberapa paket yang akan digunakan.
Membaca data spasial data
Membaca data dengan program seperti berikut :
Melihat beberapa catatan data dan beberapa ringkasan statistik dengan menggunakan perintah head() dan summary() seperti berikut.
Ringkasan statistik mengungkapkan bahwa perlu mengubah format variabel “date”, “offense”, “month”, “day” menjadi Date and Factor sehingga program yang dapat digunakan sebagai berikut.
Spatial points data frame
Perlu mengubah kerangka data lokal “crime_df” menjadi “SpatialPointsDataFrame” seperti program berikut.
Kelas dasar dari paket ini yaitu spatial dari mana subkelas lain dihasilkan termasuk yang berikut ini .
Struktur tipe data baru dapat dilihat menggunakan program berikut ini.
Didapatkan bahwa kelasnya adalah SpatialPointsDataFrame dengan 5 slot/komponen antara lain :
Dapat juga menggunakan perintah koordinat() pada program seperti berikut.
Coordinate reference systems
Ada dua jenis CRS yaitu sistem koordinat geografis (bujur, lintang) misal WGS84 dan sistem koordinat cartesian/projected/planar (x,y).
Sistem referensi koordinat proyeksi terdiri dari beberapa sistem yang dikategorikan ke dalam dua kelas utama, yaitu state plane (NADS 83) yang sebagian besar digunakan di Amerika Serikat, misalnya Nevada State Plane NAD283 dan Universal Transverse Mercator (UTM) mislanya Nevada (UTM Zone 11N), Afrika Selattan (UTM Zones 34S 35S).
Pada data contoh yang digunakan untuk analisis geospatial menggunakan machine learning diatas, data tersebut berada dalam sistem koordinat geografis :
Datum merupakan kumpulan parameter dan titik kontrol tanah yang mendefinisikan koordinat lokal. Contoh : WGS84, NADS83
Setelah memiliki kerangka data titik spasial dengan sistem koordinat dan data waktu yang tepat, perlu dilakukan penyimpanan salinan tersebut sebagai file data R seperti program berikut.
Atau dapat juga menyimpan data yang diproses sebagai ESRI shapefile untuk mempertahankan integrittas spasial seperti program berikut.
Kemudian dapat melihat shapefiles dengan memplot menggunakan fungsi plot() seperti berikut.
Data exploration
Untuk mengeksplorasi objek spasial dapat menggunakan metode dasar dalam R seperti plot(), summary(), print(), dll. Misalnya summary() memberikan jumlah entittas spasial, informasi proyeksi, dan kotak pembatas. Dan print() menampilkan tampilan data dalam objek spasial.
Metode untuk menjelajahi area pembatas dari objek spasial apapun yaitu metode bbox() seperti contoh program berikut.
Metode untuk menjelajahi sistem proyeksi objek spasial apapun yaitu metode proj4string() seperti contoh program berikut.
Metode untuk menjelajahi/ mengekstrak slot individu dalam spatial points data frame yaitu dengan menggunakan simbol “@” alih-alih simbol “$” seperti contoh program berikut.
Data visualisation
R memiliki beberapa paket untuk memvisualisasikan data spasial, contohnya yaitu fungsi plot() untuk data spasial dalam paket sp. Berikut merupakan contoh program dari memplot shapefile contoh analisis diatas.
Lalu ditambahkan crime data ke dalam peta. Menggunakan argumen add = TRUE untuk menambahkan lapisan lain ke plot dengan contoh program berikut ini.