27 Desember 2008

Komputasi Saintifik

Kemampuan R untuk melakukan Komputasi Saintifik adalah sangat bagus. Berikut ini contoh peragaan grafik trigonometri.

> h <- 0.1 # beri nilai h sama dengan 0.1


> x <- seq( 0, 2*pi, by=h)# x merupakan sekuens dari 0 samapi 2 pi

> y <- sin(x)# merupakan vektor yang nilainya adalah sin dari vektor x

> x1 <- x + h

> y1 <- sin(x1)

> dy <-(y1 - y)/h # bila h mendekati 0 maka dy adalah turunan y

> plot( x, y, type="l" )

Hasilnya adalah:
Plot01


























Gambar 1: Plot x dan y = sin x


> plot( x, y, type="n", axes=FALSE ) # menyiapkan bidang plot

> lines(x, y) # menggambar plot x dan y

> axis(side=1, at=seq(0, 2*pi, by=pi/2),
+ labels= expression(0,paste(pi,"/2"),
pi, paste("3",pi,"/2"),
+ paste("2",pi)) )


> axis(side=2, at=seq(-1, 1, by=0.25), labels= seq(-1, 1,
+ by=0.25) )


> box()

> lines(x, dy, lty=2, col=2 )

> abline(h=0, lwd=2)

> legend(4, 1, legend=c("f(x) = sin(x)","f’(x) = cos(x)"),
+ lty=c(1,2), col=c(1,2))

Hasilnya adalah:

Plot02b


























Gambar 2: Plot x terhadap y = sin x dan dy/dx = cos x

Sekian dulu ya, nanti dilanjukan lagi dengan topik lain ......;-)

25 Desember 2008

MANIPULASI DATA DAN GRAFIK MENGGUNAKAN BAHASA R

ABSTRACT


R is an open-source environment for statistical computing and visualisation. It is based on the S language developed at Bell Laboratories, and is the product of an active movement among statisticians for a powerful, programmable, portable, and open computing environment, applicable to the most complex and sophisticated problems, as well as “routine” analysis, without any restriction on access or use. The aims of this paper is to illustrate the capabilty of the R language.


Key words: Statistics, Statistical Computating, R language programming, open-source software.


PENDAHULUAN


Bahasa R merupakan versi sumber terbuka (open-source) dari bahasa pemrograman S (Azola dan Harrel, 2006). Versi komersial yang berbasis bahasa S adalah S plus. Bahasa R memiliki kemampuan yang tidak kalah dangan paket-paket program pengolahan data komersial bahkan dalam beberapa hal kemampuannya lebih baik. Perbandingan R khususnya terhadap SAS dibahas secara rinci oleh Azola dan Harrel (2006). Bahasa R mendapat sambutan yang baik dari kalangan statistikawan di seluruh dunia, sayangnya di Indonesia belum banyak dikenal. Tulisan ini dibuat untuk mengenalkan bahasa R khsusunya kalangan akademisi di Indonesia, dan untuk mendukung gerakan IGOS (Indonesia Go Open Source).


Permasalahan yang ingin diungkapkan dalam tulisan ini meliputi, 1) apa saja kemampuan dasar bahasa R? dan 2) Bagaimana menggunakan bahasa R (teknik komputasinya)?


Tulisan ini bertujuan untuk memberikan gambaran mengenai bahasa R dan kemampuan komputasinya, khususnya dalam manipulasi data dan visualisasi grafik. Kemampuan tersebut yang dipilih karena merupakan hal yang paling penting dalam operasi pengolahan data/statistik. Versi yang digunakan adalah R 2.4.1 dibawah sistem operasi windows.


Tulisan ini merupakan studi kepustakaan dan pengujian atas kemampuan komputasinya dicoba secara langsung, mengunakan PC Pentium (R) 4 CPU 1.70 GHz dengan sistem Windows XP dan RAM 256 MB.


CARA KERJA BAHASA R


Verzani (2002) mengemukakan bahwa keuntungan-keuntungan yang diperoleh bila menggunakan bahasa R untuk pengolahan data dan statistik antara lain: R dapat diakses gratis dan dapat dijalankan pada berbagai sistem operasi (UNIX, Windows, Macintosh), sintaksnya mudah dipelajari dan memiliki banyak sekali fungsi-fungsi statistik terpasang. Disamping keuntungan tersebut Verzani (2002) juga mengumukakan kelemahan utama bahasa R adalah tidak adanya dukungan komersial. Azola dan Harrel (2006) memberikan perbandingan rinci atas kemampuan bahasa R terhadap program komersial SAS. S-Plus sebagai “kembaran” komersial dari bahasa R memiliki antar muka yang lebih baik, tetapi berjalan sedikit labih lambat dari pada R.


R merupakan sebuah paket dan sekaligus bahasa pemrograman untuk analisis data dan grafik. R merupakan bahasa pemrograman tingkat tinggi (hight level programming). R dapat digunakan secara interaktif sehingga hasil perhitungan segera dapat dilihat, tetapi apabila perhitungannya kompleks maka perintah-perintah R ditulis lebih dahulu dalam text editor, kemudian dipanggil dengan fungsi source. Program R dapat di akses gratis di internet di http://www.r-project.org/. dan sebagaimana halnya program open source, R dirancang secara voluntary oleh ahli-ahli statistik dan pemrograman di seluruh dunia, sehingga perkembangannya sangat pesat, Versi R terakhir ketika tulisan ini dibuat adalah 2.4.1. R juga dilengkapi dengan package (add-in) yang memberikan kemampuan tambahan, misalnya perhitungan teknik-teknik statistik yang canggih, interface dan lain-lain. Packages ini juga dapat diakses gratis. Secara periodik muncul package- package baru yang menarik yang dapat dipilih sesuai kebutuhan. Semua package ini dapat diperoleh gratis di http://cran.r-project.org/. Gambar 1 berikut ini memberikan GUI (Graphics User Interface) / antar muka grafis standard dari bahasa R. Terdapat banyak GUI lain yang juga dapat diperoleh gratis antara lain SciViews dan Rcmdr. Rcmdr dikemas dalam bentuk package R.


image001


Gambar 1. Antar muka grafis bahasa R


Bahasa R dan dengan demikian juga S merupakan bahasa yang dirancang untuk komputasi statistik, grafik dan matriks. Tulisan ini bertujuan untuk mengeksplorasi kemampuan bahasa R khususnya untuk analisis data dan pembuatan grafik.



Skema Kerja Bahasa R


Setelah R terinstal pada komputer maka dapat diakses melalui shortcut atau menu start. Prompt default “>” mengindikasikan bahwa R menunggu perintah yang diberikan, baik berupa fungsi maupun objek lain. R merupakan suatu bahasa berorientasi objek, artinya bahwa variabel, data, fungsi, hasil dan sebagainya, disimpan dalam memori aktif komputer dalam bentuk objek dan mempunyai sebuah nama. Pengguna dapat mengenakan aksi terhadap objek-objek tersebut melalui suatu operator (aritmatika, logika, dan perbandingan) dan fungsi (functions). Fungsi itu sendiri juga merupakan suatu objek. Penamaan terhadap objek bersifat case sensitive (membedakan huruf besar dan huruf kecil). Jadi X dan x merupakan objek yang berbeda.

Gambar2


Gambar 2. Sketsa fungsi R (Paradis, 2002)


Argumen suatu fungsi dalam R juga merupakan suatu objek (“data”, formula, expresi, dan sebagainya). Beberapa fungsi menyediakan nilai default dari argumennya, nilai ini dapat diubah oleh penggunanya dengan options tertentu. Beberapa fungsi tidak membutuhkan nilai argumen dalam menjalankan perintahnya, hal ini dapat terjadi karena ada dua kemungkinan 1) semua argumennya mempunyai nilai default (karenanya dapat diubah dengan options). Jadi dalam mengeksekusi fungsi tersebut tidak perlu memasukkan nilai argumen, karena fungsi akan menggunakan nilai default sebagai nilai argumen. 2) tidak ada argumen yang didefinisikan sebelumnya pada fungsi tersebut.


Objek-objek R (termasuk fungsi) dikemas dalam bentuk add-ins yang oleh R disebut dengan package. Pada saat R dipanggil pertama kali, maka ada tujuh package yang dipanggil dan disimpan dalam memori aktif. Perintah R untuk melihat package apa saja yang sedang aktif adalah:


> search()


[1] ".GlobalEnv" "package:stats" "package:graphics"


[4] "package:grDevices" "package:utils" "package:datasets"


[7] "package:methods" "Autoloads" "package:base"


Fungsi search() adalah contoh fungsi R tanpa argumen. Hasil eksekusi dari fungsi search() ini disajikan di bawahnya. Jadi setiap nama objek yang diketik pada console (GUI) R akan ditelusuri ke ".GlobalEnv", "package:stats", "package:graphics", ..., "package:base". Pesan error akan muncul apabila nama objek yang diketik pada console tidak dikenal.


Untuk memperoleh bantuan digunakan fungsi help, sedangkan untuk melihat argumen-argumen apa saja yang dibutuhkan oleh fungsi help, digunakan perintah (fungsi) args.


> args(help)


function (topic, offline = FALSE, package = NULL, lib.loc = NULL,


verbose = getOption("verbose"),


try.all.packages = getOption("help.try.all.packages"),


chmhelp = getOption("chmhelp"),


htmlhelp = getOption("htmlhelp"),


pager = getOption("pager"))



Terlihat disini bahwa, fungsi help mempunyai 9 argumen yaitu topic, offline, package, …, pager. Argumen offline, package dan lib.loc berturut-turut mempunyai nilai default FALSE, NULL dan NULL. Argumen verbose mempunyai nilai default berupa fungsi getOption yang diberi nilai “verbose”. Oleh karena args merupakan suatu fungsi, maka untuk melihat argumen apa saja yang tersedia bagi args adalah


> args(args)


function (name)


Terlihat bahwa fungsi args hanya membutuhkan satu arugmen, yaitu name tanpa nilai default. Perintah args(help) memberikan hasil yang sama dengan args(name=help). Jadi nilai argumen suatu fungsi dapat ditulis langsung tanpa didahului oleh nama argumennya, tetapi apabila ada lebih dari satu argumen pada suatu fungsi, maka urutan penulisan nilainya perlu diperhatikan. Penulisan nilai argumen dengan nama argumen didepannya, dapat dilakukan tanpa memperhatikan urutannya.


Fungsi-fungsi terpasang (built in) apa saja yang disediakan oleh package base, dapat dilihat dengan menggunakan fungsi help sebagai berikut.


> help(package=’base’)


Hasilnya adalah sebuah window, yang mendaftarkan semua objek dan fungsi terpasang yang disediakan oleh package base.


Semua aksi pada R dilakukan dengan memanipulasi objek yang tersimpan pada memori aktif komputer: tanpa menggunakan file temporary. Pengguna mengeksekusi fungsi, yang mana nilai argumen akan menentukan hasilnya (dapat juga berupa suatu grafik). Hasil eksekusi ini diperagakan secara langsung pada layar, disimpan pada sebuah objek yang dapat diberi nama tertentu, atau ditulis pada disk (khusunya grafik). Oleh karena hasil itu sendiri merupakan sebuah objek, maka objek ini dapat merupakan nilai argumen (data) bagi fungsi lain untuk selanjutnya dieksekusi. Gambar 3 berikut ini memperagakan skema kerja bahasa R.



Bekerja dengan data


R bekerja berdasarkan jenis struktur datanya. Struktur data paling sederhana adalah vector. Vektor dibuat dengan fungsi c, hasilnya disimpan dalam suatu objek. Berikut ini adalah teladan tipe vektor numerik.


> x <- c(10, 4.5, 6, 7, 2.3, 7.1)



Objek x menyimpan nilai numerik 10, 4.5, 6, 7, 2.3, dan 7.1. Perintah untuk menampilkan isi dari objek x adalah.


> x


[1] 10.0 4.5 6.0 7.0 2.3 7.1


Perintah untuk memperoleh nilai objek x pada urutan yang ketiga adalah


> x[3] # digunakan kurung siku untuk mengacu pada subcript


[1] 6

Gambar3


Gambar 3. Skema kerja bahasa R (Paradis, 2002)


Perintah berikut memberikan vektor logika (TRUE atau FALSE) untuk nilai-nilai objek yang lebih besar dari 6.


> x.lebih.dari.6 <- x>6


> x.lebih.dari.6


[1] TRUE FALSE FALSE TRUE FALSE TRUE



Objek x.lebih.dari.6 merupakan objek bertipe logical. Nilai-nilai objek x yang lebih besar dari 6 diakses, dengan perintah sebagai berikut.


> x[x.lebih.dari.6]


[1] 10.0 7.0 7.1



Objek x dapat dikonversikan menjadi bertipe character, yaitu dengan perintah sebagai berikut


> y <- as.character(x) # objek x dikonversikan ke tipe karakter


> y


[1] "10" "4.5" "6" "7" "2.3" "7.1"


Rata-rata, median, ragam dan simpangan baku dari data yang disimpan pada peubah (objek) x, diperoleh dengan menggunakan fungsi-fungsi berikut:


> mean(x)


[1] 6.15


> var(x)


[1] 6.803


> sd(x)


[1] 2.608256


Ringkasan statistik untuk data yang disimpan pada objek x, dieksekusi dengan fungsi summary berikut.


> ringkas<-summary(x)


> # hasil fungsi summary disimpan pada objek ringkas


> ringkas


Min. 1st Qu. Median Mean 3rd Qu. Max.


2.300 4.875 6.500 6.150 7.075 10.000


Interaksi R dengan format data berbeda


Fungsi read.table digunakan untuk membaca data dalam format ascii (txt, dat). Fungsi ini tersedia pada package base. Perintah untuk memanggil file CANCER.txt adalah sebagai berikut.


> kanker<-read.table(file=’CANCER.txt’, header=TRUE)


> kanker


Gambar03


File CANCER.txt disumsikan tersedia pada direktory default. Perubahan working direktory dapat dilakukan melalui menu Change dir… atau dengan perintah setwd. fungsi file.choose() dapat digunakan sebagai nilai dari argumen file, untuk memilih file yang dikehendaki, sehingga ditulis sebagai berikut:


> kanker<-read.table(file=file.choose(), header=TRUE)


Fungsi R untuk menyimpan suatu objek dalam format ascii adalah write.table, yaitu sebagai berikut:


> write.table(kanker, file="Kanker.txt")


Perintah ini akan menyimpan objek kanker ke file Kanker.txt pada direktori default di hard disk.


R dapat membaca file data dengan format xls (spreadsheet excel), dengan perintah read.xls. Fungsi ini tersedia pada package xlsReadWrite, yang mana dapat di download gratis pada http://cran.r-project.org.. Jadi untuk dapat menggunakan fungsi read.xls, package xlsReadWrite harus diinstal terlebih dahulu, kemudian diaktifkan dengan perintah sebagai berikut:


> library(xlsReadWrite)


Apabila file Accidents.xls (file Accidents.xls harus ada dalam direktori default, bila tidak ubah dengan menu File|Change dir …) ingin dipanggil dan disimpan pada objek kclk, maka perintah-nya adalah


> kclk<-read.xls(file=’Accidents.xls’)


> kclk


Gambar03b


[1] "data.frame"


Terlihat bahwa objek kclk (berklas “data frame”) memliki dua variabel Week dan Number of Accidents dengan 52 pengamatan. Nilai-nilai dari variabel Number of Accidents dapat diakses dengan cara sebagai berikut:


> kclk[,2]


[1] 175 111 77 106 116 57 119 109 106 128 104 107 113 99


[15] 119 99 112 99 76 88 76 98 109 100 85 134 141 98


[29] 55 85 101 67 98 96 94 82 135 95 86 73 101 113


[43] 124 110 124 108 81 93 111 123 103 169



Angka 2 dalam tanda kurung siku menunjukkan bahwa variabel Number of Accidents ada pada urutan ke 2. Oleh karena nama variabel Number of Accidents tidak sesuai dengan tata cara penamaan dalam R (spasi tidak diperkenankan), maka nama variabel data frame kclk diganti dengan perintah berikut:


> names(kclk)<-c("Week", "Number.of.Accidents")


> names(kclk)


[1] "Week" "Number.of.Accidents"


Sehingga sekarang variabel Week dan Number.of.Accidents dapat dipanggil langsung sebagai suatu objek R dengan terlebih dahulu mengenakannya dengan fungsi attach (angka-angka [1], [15], [29], dan [43] menunjukkan nomor-nomor urut data yang ada disebelah kanannya)


> attach(kclk)


> Number.of.Accidents


[1] 175 111 77 106 116 57 119 109 106 128 104 107 113 99


[15] 119 99 112 99 76 88 76 98 109 100 85 134 141 98


[29] 55 85 101 67 98 96 94 82 135 95 86 73 101 113


[43] 124 110 124 108 81 93 111 123 103 169


Demikian pula nilai-nilai variabel Week dipanggil dengan cara berikut:


> Week


[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18


[19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36


[37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52


Fungsi detach menghilangkan kemampuan penelusuran tersebut.


> detach(kclk)


> Number.of.Accidents


Error: object "Number.of.Accidents" not found


Format data lain seperti mtp (minitab), spss (SPSS), dbf (DBF file), systat, SAS dapat dibaca oleh R. Perintah untuk membaca format data tersebut ada pada package “foreign”.


Pembangkitan Data


Sekuens bilangan bulat misalnya dari 1 sampai 30 dibangkitkan dengan cara berikut:


> x<-1:30


Hasilnya adalah sebuah vektor x yang berisi 30 elemen, berupa sekuen bilangan bulat dari 1 sampai 30. Fungsi seq berikut ini dapat membangkitkan sekuens bilangan riil sebagai berikut:


> seq(1, 5, 0.5)


[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0


Bilangan pertama pada argumen fungsi seq menunjukkan nilai awal dari sekuens, sedangkan bilangan keduanya merupakan nilai akhir sekuens, dan bilangan terakhir menunjukkan angka penambahannya (increment). Bentuk lengkap dan argumen fungsi seq adalah sebagai berikut:


seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),


length.out = NULL, along.with = NULL, ...)


Fungsi rep menciptakan suatu vektor yang mana semua elemennya identik:


> rep(2, times=20)


[1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2


Argumen times memberikan berapa kali suatu bilangan diulang. Perintah berikut mengulang sekuens 1 sampai 4 sebayak 2 kali (sebagaimana halnya dengan fungsi-fungsi lain vektor sekuens dapat disimpan dalam suatu objek sebagai berikut: x <- rep(2, 20), nama argumen tidak perlu ditulis dan argumen kedua adalah times)


> rep(1:4, 2)


[1] 1 2 3 4 1 2 3 4


Argumen each di bawah ini mengulang setiap elemen dalam sekuens sebanyak 2 kali:


> rep(1:4, each = 2)


[1] 1 1 2 2 3 3 4 4


Pembangkitan Peubah Acak (Sekuens Acak)


Sekuens acak merupakan suatu sampel acak dari suatu sebaran peluang tertentu. Bangkitan sekuens acak n buah dari suatu sebaran Normal dengan rata-rata (mean) = 0 dan simpangan baku (sd) = 1, perintah fungsinya adalah rnorm(n, mean=0, sd=1). Nilai mean dan sd berturut-turut adalah 0 dan 1 merupakan nilai default untuk fungsi rnorm ini. Jadi fungsi R untuk membangkitkan 10 sekuens acak dari sebaran normal dengan rata-rata 0 dan simpangan baku 1 adalah:


> rnorm(10)


[1] 1.3998745 1.1936305 -1.1250251 -0.3604853 -0.7063239


[6] -1.3216011 -1.2617174 -1.3309867 0.3515469 0.2686869


Tabel 1 berikut dibawah ini memberikan bentuk sebaran peluang dan fungsi R pembangkit sekuen acaknya.


Tabel 1. Fungsi R untuk membangkitkan sekuens acak sebaran peluang penting





























































Sebaran Peluang


Fungsi


Gaussian (normal)


rnorm(n, mean=0, sd=1)


Exponensial


rexp(n, rate=1)


Gamma


rgamma(n, shape, scale=1)


Poisson


rpois(n, lambda)


Weibull


rweibull(n, shape, scale=1)


Cauchy


rcauchy(n, location=0, scale=1)


Beta


rbeta(n, shape1, shape2)


t-student


rt(n, df)


Fisher-Snedecor (F)


rf(n, df1, df2)


Pearson(image012)


rchisq(n, df)


Binomial


rbinom(n, prob)


Geometric


rgeom(n, prob)


Hypergeometric


rhyper(nn, m, n, k)


Logistic


rlogis(n, location=0, scale=1)


Lognormal


rlnorm(n, meanlog=0, sdlog=1)


Negative binomial


rnbinom(n, size, prob)


Uniform


runif(n, min=0, max=1)


Statistik Wilcoxon’s


Rwilcox(nn, m, n), rsignrank(nn, n)


Fungsi sample(x, size, replace = FALSE, prob = NULL) adalah perintah untuk menampilkan sekuens acak yang berasal dari suatu sebaran peluang empirik, seperti teladan berikut di bawah ini:


Tabel 2. Sebaran peluang empirik peubah acak X
















X


1


2


3


4


Peluang


0.20


0.40


0.25


0.15


> x<-1:4


> peluang<-c(0.20, 0.40, 0.25, 0.15)


> sample(x, size=20, replace=TRUE, prob=peluang)


[1] 3 4 3 3 2 3 4 2 1 3 3 4 2 2 2 2 4 2 4 2


Perintah di atas menghasilkan 20 sekuens acak dari sebaran peluang empirik peubah acak X yang diperagakan oleh Tabel 2. Argumen replace pada fungsi sample diberi nilai TRUE, yang berarti sampel diambil dengan pemulihan.


Tampilan Grafik Dengan R


R menyediakan kemampuan yang kaya untuk visualisasi grafik (Rossiter, 2006). Tersedia dua sistem grafik: sistem base (terdapat dalam package graphics, yang dipanggil secara default ketika memulai R) dan sistem trellis (tersedia dalam package lattice). Disamping kedua sistem tersebut, terdapat berbagai package tambahan yang memperkaya kemampuan grafik R, antara lain: misc3d (berbagai plot 3 dimensi), rgl (sistem device untuk visualisasi grafik 3 dimensi), scatterplot3d (scatter plot 3 dimensi) dan beberapa package lain yang tidak ditujukan khusus untuk grafik seperti tseries, menyediakan kamampuan untuk menampilkan grafik-grafik deret waktu.


Diagram pencar antar dua peubah x dan y, ditampilkan dengan fungsi plot(x, y, ...) atau plot(y~x, ...). Argumen (...) berarti dapat dilewati oleh metode-metode lain seperti paramater-paramete grafik, yang umumnya digunakan untuk mempercantik grafik, seperti pemberian warna, judul, skala dan sebagainya. Teladan berikut di bawah ini memberikan plot antara vaiabel x dan y. Hasilnya diberikan oleh Gambar 4.


> y<-rnorm(50); x<-1:50


> plot(x,y, pch=16, col="blue")


Perintah fungsi plot ini dapat digunkan untuk menggambar kurva, seperti teladan berikut di bawah ini, yaitu untuk menggambarkan fungsi normal.


> x<-seq(-4, 4, by=0.1)


> y<-dnorm(x)


> plot(y~x, type=’l’, main=’Fungsi Kepekatan Normal(0, 1)’,


+ col=’red’)


Hasilnya diberikan oleh Gambar 5 berikut ini.


image013


Gambar 4. Hasil fungsi plot(x, y, ...)



image014


Gambar 5. Hasil fungsi plot(y~x, type=’l’,main=’Fungsi Kepekatan Normal(0, 1)’,


col=’red’)


Grafik dengan sistem trellis memberikan tampilan yang lebih baik. Teladan berikut ini memperagakan histogram dari besarnya nilai transaksi (USD) dan cara pembayaran (“Cash”, “Check” dan “Credit Card”). Data tersedia dalam format SAV (SPSS) oleh karena itu digunakan package foreign untuk memanggil fungsi read.spss.


> library(foreign)


> consolid<-read.spss(file=’CONSOLID.SAV’,to.data.frame=TRUE)


> histogram( ~ AMOUNT | METHOD_O, data = consolid, nint = 17,


+ endpoints = c(1.0, 79.0), layout = c(3,1), aspect = 1,


+ xlab = “Jumlah yang dibayarakan ($)”)


Grafik yang dihasilkan seperti berikut ini.


image015


Gambar 6. Histogram dengan sistem trellis.


Grafik Tiga Dimensi


Package graphics dari sistem base memiliki kemampuan untuk menampilkan grafik tiga dimensi dengan menggunakan fungsi persp (perspective plots). Berikut ini adalah teladan yang diberikan oleh Rossiter (2006) untuk menampilkan grafik sebaran normal bivariat.


> range<-seq(-3, 3, by=0.1)


> rand.1<-dnorm(range, 0, 1)


> rand.2<-dnorm(range, 0, 0.7)


> mesh<-outer(rand.1, rand.2, function(x, y) x*y)


> persp(range, range, mesh, phi=20, theta=30, expand=0.8,


+ xlab="N(0, 1)", ylab="N(0, 0.7)", zlab="PDF",


+ main="Sebaran Normal Bivariat")


Hasilnya diperagakan oleh Gambar 7.


Package rgl digunakan untuk memvisualisasi grafik dengan data multi dimensi menggunakan OpenGL. Jadi grafik yang dihasilkan oleh package ini dapat diputar untuk melihat sudut pandang dalam perpektif yang berbeda. Perintah berikut ini menghasilkan diagram pencar dalam tiga dimensi.


> open3d()


> x <- sort(rnorm(1000))


> y <- rnorm(1000)


> z <- rnorm(1000) + atan2(x,y)


> plot3d(x, y, z, col=rainbow(1000), size=2)


image016


Gambar 7. Sebaran normal bivariate dihasilkan dengan menggunakan fungsi persp.


Kesimpulan


Tulisan ini hanya menyajikan sebagaian kecil saja dari kemampuan komputasi bahasa R, yang mana kemampuannya semakin diperkaya dengan bertambahnya berbagai package baru yang muncul. Sekarang ini tersedia kurang lebih seratus package yang dapat didownload secara gratis.


Sebagaimana halnya software yang dapat distribusi secara gratis, R (dalam hal ini r-project) tidak memberikan layanan bantuan teknis, tetapi hal ini dapat diatasi dengan mengikuti milis r user yang anggotanya tersebar diseluruh dunia. Manual-manual R banyak tersedia di internet dan dapat diakses gratis. Manual-manual R tersebut banyak yang tersedia dalam bebagai bahasa disamping bahasa Inggris, hanya saja dalam bahasa Indonesia saat ini belum tersedia, demikian pula GUI R banyak yang sudah di terjemahkan dalam berbagai bahasa selain bahasa Inggris. Ketiadaan terjemahan dalam bahasa Indonesia ini disebabkan oleh minimnya masyarakat ilmiah di Indonesia yang berkecimpung dalam masyarakat R dunia.


Saran


Perangkat lunak untuk pengolahan data statatistik yang banyak digunakan di Indonesia umumnya adalah SPSS, Minitab, dan SAS, sayangnya kebanyakan yang digunakan tersebut adalah perangkat lunak bajakan. Jadi disini R dapat digunakan sebagai solusi alternatif.


Daftar Pustaka


Alsola, C., and F. Harrell. (2006). An Introduction to S and The Hmisc and Design Libraries. http://biostat.mc.vanderbilt.edu/RS. [8 Januari 2007]


Farraway, J.J. (2006). Practical Regression and Anova using R.


http://www.stat.lsa.umich.edu/~faraway/book. [7 Desember 2004]


Kuhnert, P. and B. Venables. (2005). An Introduction to R: Software for Statistical Modelling & Computing. CSIRO Australia. http://cran.r-project.org/. [31 Januari 2007]


Maindonald, J.H. (2001). Using R for Data Analysis and Graphics An Introduction. Australian National University. http://mirror.aarnet.edu.au/pub/CRAN. [7 Desember 2004]


Owen, W.J. (2006). The R Guide. Department of Mathematics and Computer Science, University of Richmond. http://www.mathc.richmond.edu/~wowen/TheRGuide.pdf. [15 April 2006]


Paradis, E. (2002). R for Beginners. Institut des Sciences de l’Evolution, Univerisite Montpellier II. France. http://cran.r-project.org/. [7 Desember 2004]


Rossiter, D.G. (2006). Tutorial: Using the R Environtment for Statistical Computing An example with the Meercer & Hall wheat yield dataset. International Institute for Geo-Information Science & Earth Observation (ITC). http://www.itc.nl/personal/rossiter. [8 Desember 2006]


. (2006). Technical Note: An example of statistical data analysis using the R environment for statistical computing. ). http://www.itc.nl/personal/rossiter. [17 Januari 2007]


. (2006). Introduction to the R Project for Statistical Computing for use at ITC. International Institute for Geo-Information Science & Earth Observation (ITC). http://www.itc.nl/personal/rossiter. [15 April 2006]


Venables, W.N., D.M. Smith, and the R Development Core Team. (2003). An Introduction to R. http://www.r-project.org/. [7 Desember 2004]


Versani, J. (2002). simpleR - Using R for Introductory Statistics.


http://www.math.csi.cuny.edu/Statistics/R/simpleR/Simple. [7 Desember 2004]

03 Mei 2008

Mengenal Bahasa R

Apakah bahasa R itu?

Bahasa R (disingkat dengan R saja) adalah suatu fasilitas perangkat lunak terpadu untuk manipulasi data, simulasi, kalkulasi dan peragaan graphik. R memiliki kemampuan menganalisis data dengan sangat efektif dan dilengkapi dengan operator pengolahan array dan matriks. Tidak kalah menariknya R memiliki kemampuan penampilan grafik yang sangat sophisticated demikian pula peragaan untuk datanya.


Bahasa R merupakan versi sumber terbuka (open-source) dari bahasa pemrograman S (Azola dan Harrel, 2006). Versi komersial yang berbasis bahasa S adalah S plus. Bahasa R memiliki kemampuan yang tidak kalah dangan paket-paket program pengolahan data komersial bahkan dalam beberapa hal kemampuannya lebih baik. Perbandingan R khususnya terhadap SAS dibahas secara rinci oleh Azola dan Harrel (2006). Bahasa R mendapat sambutan yang baik dari kalangan statistikawan di seluruh dunia, sayangnya di Indonesia belum banyak dikenal. Tulisan ini dibuat untuk mengenalkan bahasa R khsusunya kalangan akademisi di Indonesia, dan untuk mendukung gerakan IGOS (Indonesia Go Open Source).

Paling penting disini R dapat diperoleh secara gratis. Jika anda berminat untuk memilikinya tinggal diunduh (maksudnya di download) di http://cran.r-project.org. Jika anda ingin melihat-lihat halaman utamanya web R ada di http://www.r-project.org. Jadi jika anda ingin mengolah data dan tidak tersedia dana untuk membeli software-sofware komersial asli seperti SPSS, SAS, Mintab, Lisrel dan lain-lain, kenapa mesti membajak? Sedangan yang gratis tersedia, tinggal di sownload saja.

Sejarah R

R project pertama kali dikembangkan oleh Robert Gentleman dan Ross Ihaka (nama R untuk sofware ini berasal dari huruf pertama nama kedua orang tersebut) yang bekerja di departemen statistik Universitas Auckland tahun 1995. Sejak saat itu software ini mendapat sambutan yang luar biasa dari kalangan statistikawan, industrial engineering, peneliti, programmer dan sebagainya. Saat ini R di maintain oleh R Core development team. Saat tulisan ini dibuat R telah dikembangkan sampai versi 2.7.0, itu berkat kerja keras para sukarelawan/sukarelawati diseluruh dunia yang berkontribusi dalam berbagai aspek pengembangan R. Karena R bersifat Open source, maka setiap orang yang memiliki kemampuan pemrograman, dapat memodifikasinya dan mengkomersialisasikan asalkan memnuhi persyaratan. Persyaratannya apa saja coba lihat di situs web R.

Blog ini saya persembahkan untuk komunitas pengguna bahasa R untuk saling berbagi pengalaman, dan menyediakan suatu fasilitas problem solving.

Ok sekian dulu tulisan ini nanti saya lanjutkan.......