Monday, April 21, 2014

Transformasi Box Cox Univariate Menggunakan R


Assalamu'alaikum , salam sejahtera , dan cepat wisuda!
Kali ini kita akan bahas tentang sesuatu yang agak serius, yaitu transformasi data. Kenapa mesti dilakukan transformasi data?, kita tahu dalam statistik itu ada dua mahzab, yaitu mahzab parametrik dan mahzab nonparametrik. Dalam statistik parametrik, data yang akan dianalisis harus berdistribusi normal, jika tidak normal maka pakailah statistik nonparametrik.

Bagaimana kalau data kita tidak normal tetapi kita tetap ingin melakukan analisis parametrik?, caranya dengan melakukan transformasi agar data tersebut menjadi lebih "terlihat normal". Pada postingan ini kita akan membahas prakteknya menggunakan R, dan teknik transformasinya adalah memakai Transformasi BoxCox. 

Kenapa kita bahas Transformasi BoxCox? bukan yang lain?, karena transformasi BoxCox lebih mudah dilakukan tanpa kita perlu repot-repot melakukan trial and error untuk mencari nilai lambda yang sesuai (lambda itu apa?). Oke daripada tambah pusing membahas teori mari kita langsung ke TKP.

Sebelumnya saya asumsikan (seorang statistisi itu penuh asumsi) :
  1. Pembaca sudah paham mengenai transformasi boxcox, jadi saya tidak akan bahas teorinya secara detail.
  2. Sudah memahami fungsi-fungsi dasar R, seperti menyimpan variabel, meload data, menginstall package R, dll. 
Package-package yang dibutuhkan adalah:
  1. Package car, 
  2. Package MASS
Kalau package diatas belum terinstall, install dengan command install.packages("nama package"), perlu koneksi internet untuk mendownload packages.

Pertama kita buka GUI R kesayangan anda, kalau saya memakai RStudio, mengenai GUI lainnya dapat dilihat di post sebelumnya mengenai R.
Tampilan GUI Rstudio
Untuk simulasi, kita akan gunakan data radiasi oven yang diambil dari buku Applied Multivariate Statistical Analysis (Richard A. Johson dan W. Wichern), datanya bisa di download di SINI !. data ini terdiri dari 42 sampel mengenai tingkat radiasi oven pada pintu tertutup dan terbuka.

Load datanya ke R menggunakan fungsi read.csv(file.choose(), header = TRUE), akan muncul jendela untuk memilih file, pilih file yang anda download tadi. filenya ini akan saya simpan ke variabel dengan nama data.






Kita tertarik untuk menguji apakah data radiasi pintu tertutup normal atau tidak, maka harus kita uji terlebih dahulu. Terdapat banyak cara untuk menguji kenormalan, baik itu : uji kolmogorov smirnov,shapiro wilk, atau dengan menggunakan Q - Q plot, kita akan bahas dengan menggunakan Q - Q plot karena paling mudah.

Untuk membuat Q - Q plot di R sangat mudah, cukup dengan memakai fungsi qqnorm. 

Syntax Q - Q plot di R.
Q - Q plot dari data radiasi pintu tertutup.
Terlihat data tidak berdistribusi normal, dan terdapat outlier. Untuk itu, kita akan melakukan transformasi boxcox pada data ini agar data menjadi lebih normal. Pertama kita plot dulu pasangan lambda dan l(lambda) untuk mencari nilai yang memaksimal fungsi l(lambda)  . Di R sangat mudah dilakukan dengan menggunakan fungsi boxcox dari package MASS. 

Syntax boxcox di R.
Plot dari l(lambda) dan lambda 
Kemudian untuk mencari nilai dari lambda juga sangat mudah, menggunakan fungsi powerTransform dari package car.

Nilai l(lambda) dari fungsi power transfrom
Nilai yang didapat sangat akurat, nilai yang tertulis di buku adalah  = 0.28, dan dengan menggunakan R didapat nilai  = 0.2759394.

            Selanjutnya setelah didapat nilai  maksimum, maka kita lakukan transformasi boxcox, menggunakan fungsi bcPower dari package car. 

Data radiasi (pintu tertutup) setelah ditranformasi.
Selanjutnya, mari kita lihat apakah data kita telah normal setelah di transformasikan, kembali kita pakai fungsi qqnorm.
Q-Q plot dari data radiasi (pintu tertutup) setelah ditransformasi
Terlihat bahwa data telah mendekati distribusi normal, berarti kita telah berhasil melakukan transformasi data mendekati normal menggunakn trasnformasi boxcox di R. 

Tapi jangan senang dan berbangga diri dulu, ini baru transformasi untuk data univariate, belum untuk data multivariate, membayangkannya saja sudah bikin anda ingin berhenti belajar statistik dan segera wisuda untuk segera menikah. Tapi jangan, statistik itu sangat menarik, menurut data dari link ini, dengan tingkat kepeceryaan yang tidak disebutkan, rata-rata gaji seorang statistisi itu lebih besar 56% dari gaji seluruh pekerjaan yang di post di  seluruh dunia. 

Kembali ke pokok permasalahan, mungkin masih banyak sekali yang saya belum jelaskan pada post kali ini, selanjutnya saya akan posting mengenai transformasi boxcox pada data multivariate. 
Salam Statistisi dan cepat wisuda! 


Friday, April 18, 2014

R, Bahasa Pemrograman untuk Analisis Data dan Statistik

Dosen, Peneliti atau Mahasiswa umumnya mengenal SPSS, SAS, atau MINITAB sebagai program paket (software) untuk mengolah data Statistik, dan Saya berani bertaruh bahwa  yang digunakan umumnya adalah versi bajakan.

Memang program-program tersebut harganya cukup mahal untuk ukuran Dosen, Peneliti apalagi Mahasiswa Indonesia, harganya bisa disandingkan dengan harga sebuah motor bebek.  Sebenarnya tidak perlu membajak atau membeli versi bajakan untuk program-program pengolahan data Statistik, karena kini tersedia program-program sumber terbuka (open source) yang dapat diunduh gratis, dengan kemampuan dan tampilan antar muka graphis (GUI – Graphic User Interface) yang tidak kalah dengan program-program komersial tersebut.

R adalah salah satu dari program sumber terbuka yang dapat diunduh gratis di http://cran.r-project.org/, yang mana situs resminya ada di http://www.r-project.org/.  R pertama kali diciptakan oleh Ross Ihaka dan Robert Gentleman (- nama R berasal dari huruf pertama nama depan kedua orang ini-), Mereka adalah Statistikawan asal Selandia Baru, sedangkan kini R dikembangkan sebagai upaya kolaborasi pakar-pakar Statistikawan dan komputer di seluruh dunia.  R diluncurkan pertama kali tahun 1997, dan versi terakhir ketika tulisan ini dibuat adalah 3.0.1.  Di Indonesia untuk mengunduh software ini dapat melalui server milik BPPT atau LIPI, biasanya pada saat kita mengunduh R, Kita diminta untuk memilih nama-nama negara terdekat sebagai server mirror agar proses pengunduhan dapat lebih cepat, maka disarankan Anda memilih Indonesia jika berada di Indonesia atau negara sekitarnya.


Tampilan GUI Tinn R dan R Console
Selain gratis tentunya ada banyak kelebihan R yang lain yaitu : - R tersedia  untuk berbagai sistem operasi selain Windows, seperti Macintosh, Linux dan UNIX; - memiliki kemampuan membuat graphik yang canggih; - sintaksnya mudah dipelajari dengan banyak fungsi-fungsi statistik yang terpasang; - R dapat dengan mudah diperluas dengan menciptakan fungsi-fungsi buatan pengguna sendiri disamping juga tersedia banyak program-program kecil sebagai tambahan (add in), yang disebutpackage yang juga dapat diunduh gratis; - R merupakan bahasa pemrograman komputer, sehingga bagi pemrogram menjadi lebih akrab, sedangkan bagi pemakai awal akan merupakan langkah yang mudah untuk memulai sebagai pemrogram komputer. 

Bagi sebagian pengguna yang terbiasa mengguna GUI dengan sistem menu, R juga menyediakan banyak GUI yang berbasiskan sistem menu, antara lain R Studio, Tinn-R, R Commander dan bayak lagi yang lainnya, dan dapat diunduh gratis juga.  GUI standar R diperlihatkan oleh gambar di atas yang menyertai tulisan ini.  Walaupun R adalah gratis kemampuannya tidak kalah dengan program-program paket statistik yang komersial, bahkan dalam hal tertentu adalah lebih baik.  Penggunaan R tidak dibatasi, bahkan dapat digunakan untuk tujuan-tujuan komersial.  Kelebihan-kelebihan R inilah yang mungkin menyebabkan kembaran komersial R yaitu S-Plus menjadi mati suri.

Tampilan GUI R Studio

Disamping kelebihan yang disebutkan di atas, R juga memiliki kekurangan yaitu, - R tidak menyediakan dukungan komersial, walaupun mungkin ini dapat diatasi dengan mengikuti mailing list R, yang banyak membantu bila Kita menghadapi masalah tertentu; - oleh karena  sejatinya R merupakan bahasa pemrograman maka diperlukan waktu membiasakan dengan sintaks-sintaksnya, yang untuk sebagian orang mungkin merupakan hal yang menakutkan.  Walupun demikian, Anda dapat menggunakan GUI yang berbasiskan sistem menu dan itu sangat membantu.  Blog R yang dikelola dalam bahasa Indonesia beralamat di http://bahasa-r.blogspot.com/, webblog berbahasa Inggris banyak bertebaran di dunia maya, diantaranya ada di: http://www.rbloggers.com/http://digitheadslabnotebook.blogspot.com/ dan banyak lagi lainnya, coba saja di googling.  R juga hadir di wikipedia silakan Anda klik di alamat ini,http://en.wikipedia.org/wiki/R_(programming_language).

Jadi jika ada yang gratisan, mangapa Kita menggunakan program ilegal.