petunjuk praktikum pak adi

Upload: apriyanti-tindage

Post on 08-Mar-2016

218 views

Category:

Documents


0 download

DESCRIPTION

info sains

TRANSCRIPT

Petunjuk Praktikum

Petunjuk Praktikum

PENGGUNAAN PAKET PROGRAM R ( R-STAT )

Oleh : Dr. Adi Setiawan M. Sc

PROGRAM STUDI MATEMATIKAFAKULTAS SAINS DAN MATEMATIKAUNIVERSITAS KRISTEN SATYA WACANA2009Dalam petunjuk praktikum ini dikenalkan bagaimana menggunakan paket program R untuk menganalisis data statistika. Untuk menggunakan R dipilih menu program R sehingga akan muncul prompt > seperti pada contoh berikut ini :

R version 2.5.1 (2007-06-27)Copyright (C) 2007 The R Foundation for Statistical ComputingISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.You are welcome to redistribute it under certain conditions.Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.Type 'contributors()' for more information and'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or'help.start()' for an HTML browser interface to help.Type 'q()' to quit R.

[Previously saved workspace restored]

>

Sesudah selesai menggunakan paket program R untuk keluar digunakan perintah :

> q()

Bila diinginkan untuk membatalkan perintah terakhir maka bias digunakan perintah CONTROL-C sehingga akan muncul promt > baru.

Bila perintah yang digunakan belum selesai maka R masih akan meminta perintah tambahan dengan tanda +.

> q( # perintah yang tidak lengkap+ ) # prompt lanjutan

Dalam R huruf kecil dan huruf besar diinterpretasikan secara berbeda sebagai contoh b dan B diinterpretasikan secara berbeda. Huruf c tidak boleh digunakan karena merupakan perintah dasar dari R yang digunakan untuk membuat vektor.

Bila ingin mengetahui penggunaan suatu perintah dapat digunakan perintah help seperti

> help(hist)

yang digunakan untuk mengetahui perintah hist. Untuk memberikan keterangan dan tanpa mengeksekusi perintah itu digunakan tanda # yang dalam bahasa pascal digunakan perintah { } atau (* *).

VektorStruktur data yang paling sederhana dalam R adalah vector. Suatu vector adalah suatu obyek tunggal yang merupakan barisan bilangan, teks atau symbol logika. Suatu vector dengan nama x terdiri dari bilangan-bilangan 10, 5, 3, 6 dapat dibuat dengan fungsi c.

> x x[1] 10 5 3 6

Dalam hal ini digunakan symbol pemberian y y [1] 10.000 5.000 3.000 6.000 0.555 10.000 5.000 3.000 6.000 10.000[11] 5.000 3.000 6.000

Untuk melakukan pembulatan dapat digunakan perintah round dengan memberikan control berapa banyak decimal yang diperlukan di belakang koma seperti pada contoh berikut :

> round(y,1) [1] 10.0 5.0 3.0 6.0 0.6 10.0 5.0 3.0 6.0 10.0 5.0 3.0 6.0

Perhitungan dengan vector dapat digunakan fungsi berikut ini :

> x[1] 10 5 3 6> z z[1] 100 25 9 36

Simbol yang digunakan dalam perhitungan adalah +, -, *, / sedangkan pangkat menggunakan perintah ^. Fungsi standard yang digunakan dalam R terdapat pada Tabel 1.

Operasi dua vektor tidak harus mempunyai panjang yang sama seperti contoh berikut ini :

> x[1] 10 5 3 6> a z z

Untuk menyingkat penulisan seringkali dihilangkan tanda ( dan ) sehingga perlu diperhatikan prioritas pengertian operasi bila dua operasi digunakan secara berututan. Tabel 2 berikut ini dijelaskan tentang operasi yang digunakan.

Tabel 2. Urutan prioritas operasi R dari tingkat tinggi ke rendah.

Operasi NamaPrioritas

$[ [[^: * /+ -< > = == !=!& | && ||

Seleksi komponenSeleksi koordinatTransformasi pangkatBarisanPerkalian dan pembagianPenjumlahan dan penguranganPerbandingan logikaPengingkaran logikaDan , atau Pemberian TINGGI........RENDAH

Untuk membuat indeks secara cepat dapat digunakan perintah

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

Sebaiknya bila digunakan urutan 20:1 akan memberikan indeks menurun. Bila diinginkan membuat barisan dengan selisih 0,5 digunakan perintah

> u u [1] -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0

Cara lain untuk membuat vektor yang sama adalah

> u u [1] -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0> u u [1] -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0

Fungsi rep dapat digunakan untuk mereplikasi suatu vector. Berikut ini contoh penggunaan fungsi rep.

> rep(1:4,4) [1] 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4> rep(1:4,rep(4,4)) [1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4

Vektor logika dan karakter

Di samping koordinat numerik, vektor dapat berisi logika F (FALSE) dan T (TRUE) atau string karakter. Vektor logika juga dapat dibuat dengan perintah-perintah berikut :

> x[1] 10 5 3 6> y 9> y[1] TRUE FALSE FALSE FALSE

Perbandingan logika yang digunakan adalah = , == dan !=. Sedangkan untuk operator logika digunakan &, | dan ! yang berturut-turut berarti dan, atau serta pengingkaran.

> (3 sum(x)> sum(x>9)

Suatu vektor juga dapat berisi karakter seperti pada contoh berikut ini :

> x x[1] "row a" "row b" "row c"> letters[1:3][1] "a" "b" "c"> paste("row",letters[1:3])[1] "row a" "row b" "row c"

Perhatikan perintah-perintah berikut ini dan apa yang terjadi :

> y[1] TRUE FALSE FALSE FALSE> mode(y) y[1] 1 0 0 0> mode(y) y[1] TRUE FALSE FALSE FALSE

Bila dimiliki data yang tidak lengkap maka pada program R disediakan simbol NA (not available) seperti pada contoh berikut :

> x x[1] NA 1 4> x + 1[1] NA 2 5> is.na(x)[1] TRUE FALSE FALSE

Bila diinginkan menampilkan nilai x untuk indeks ke-i dapat digunakan x[i] dan berikut ini beberapa contoh yang lain. Perhatikan apa yang terjadi dengan perintah-perintah tersebut.

> x x[1] 10 5 3 6> y 9> x[y][1] 10> x[x>9][1] 10> x[-(1:2)][1] 3 6> x[xseq(-3, 3, length=1000)

Mempunyai argumen optional dengan nama length.

Manipulasi Data

Fungsi

> x[1] 10 5 3 6> length(x)[1] 4> sum(x)[1] 24> prod(x)[1] 900> max(x)[1] 10> min(x)[1] 3

masing-masing memberikan hasil panjang vektor x, jumlah, produk, maksimum, minimum dari koordinat-koordinatnya. Di samping itu juga digunakan perintah :

> sum(x,y)[1] 96.555> prod(x,y)[1] 364135500000> max(x,y)[1] 10> min(x,y)[1] 0.555

Perhatikan penggunaan perintah berikut ini :

> cumsum(rep(1,10)) [1] 1 2 3 4 5 6 7 8 9 10

Untuk mengurutkan data dapat digunakan perintah sort sedangkan perintah order digunakan untuk menentukan letak dimana data tersebut diurutkan. Perhatikan apa yang terjadi bila digunakan perintah berikut ini :

> x[order(x)][1] 3 5 6 10> rev(sort(x))[1] 10 6 5 3> rev(x)[1] 6 3 5 10

Fungsi rank digunakan untuk menghitung nomor rank dari vektor x.

> rank(x)[1] 4 2 1 3

Perintah unique(x) digunakan untuk menghasilkan koordinat-koordinat yang berbeda dalam vektor x sedangkan untuk melihat apakah koordinat-koordinat yang berbeda dalam vektor x sedangkan untuk melihat apakah koordinatnya terduplikasi digunakan perintah duplicate(x). Perhatikan apakah yang terjadi dengan perintah-perintah berikut ini :

> diff(x)[1] -5 -2 3> diff(x,lag=2)[1] -7 1> diff(x, lag=1, differences=2)[1] 3 5

Beberapa fungsi yang digunakan dalam peringkasan data statistika dinyatakan pada Tabel 3.

Dalam R juga disediakan perhitungan fungsi distribusi, fungsi densitas, fungsi kuantil dan perintah untuk membangkitkan sampel random. Nama-nama setiap fungsi selalu menggunakan nama sesuai dengan distribusinya dengan diawali huruf :

p (probability) : fungsi distribusi d (density) : fungsi densitas q (quantile) : fungsi kuantil r (random) : membangkitkan sample random

Tabel 3 . Fungsi-fungsi statistika dalam R

Nama FungsiOperasi

mean(x)mean(x, trim= )median(x)var(x)mad(x)range(x)iqr(x)skewness(x)kurtosis(x)quantile(x,prob)stem(x)var(x,y)cor(x,y)acf(x,plot=F)

Rata-rataRata-rata terpancung (trimmed mean)MedianVariansi, matriks kovariansiMedian deviasi absolutVektor(min(x), max(x))Jangkauan antar kuartilKemencenganKurtosisKuantilStem and leafplotCovariansiKoefisien korelasiKoefisien korelasi parsial

Sebagai contoh untuk distribusi normal digunakan perintah :

> pnorm(x,m,s)> dnorm(x, m,s)> qnorm(u,m,s)> rnorm(n, m, s)

Dalam hal ini m dan s argument optional yang harus diberikan untuk distribusi normal selain distribusi normal standard. Agumen n dalam rnorm berarti ukuran sampel yang harus diberikan dan x menyatakan domain dari fungsi tersebut. Beberapa fungsi yang biasa digunakan dalam teori probabilitas dan statistika dinyatakan pada Tabel 4.

Tabel 4. Tabel fungsi probabilitas yang digunakan dalam R.

Kode (dimulai dengan huruf kecil)distribusiparameterdefaults

betabinomcauchychisqexpfgammageomhyperlnormlogisnbinomnormpoisstabtunifweibullwilcoxonBetaBinomialCauchyChi-kuadratEksponensialFGammaGeometrikHipergeometrikLognormalLogistikBinomial negatifNormalPoissonStabilStudent tHomogenWeibullwilcoxonShape1, shape2Size, probLocation, scaleDfRateDf1, df2ShapeProbM, n, kMeanlog, sdlogLocation, scaleSize, probMean, sdLambdaIndex, skewDfShapeM, n

Fungsi sample digunakan untuk melakukan pengambilan perintah dari populasi yang diberikan dalam x dengan atau tanpa pengembalian. Di samping itu juga digunakan untuk menghasilkan permutasi. Perhatikan apa yang terjadi dari perintah-perintah berikut ini :

> sample(x,3)[1] 6 3 10> sample(x)[1] 10 6 5 3> sample(x,10,replace=T) [1] 6 3 5 5 5 3 6 10 6 6

Bilangan random dihasilkan dengan menggunakan nilai-nilai yang ada pada vektor .Random.seed. Perhatikan apa yang terjadi bila digunakan perintah-perintah berikut :

GrafikUntuk menggambarkan grafik dengan bantuan R terlebih dulu dipanggil window yang digunakan untuk menggambarkan grafik. Perintah untuk memanggil window adalah

> win.graph()

Sebagian besar perintah yang digunakan untuk menggambarkan grafik menggunakan kata plot. Perhatikan perintah-perintah berikut ini dan amati apa yang terjadi dengan perintah tersebut.

> x y plot(x,y)> title("Gambar 1")

Pilihan tipe l digunakan untuk menggambar kurva mulus.

u v plot(u,v,type="l", ylab="sin")> title("Gambar 2")

Perintah-perintah lain yang digunakan untuk menggambarkan grafik histogram, boxplot dan qq-plot adalah sebagai berikut :

> x hist(x)> text(0,5,"Histogram")> title("Gambar 3")> boxplot(x, main="Gambar 4", style.bxp="old")> qqnorm(x)> title("Gambar 4")

Perhatikan kegunaan perintah-perintah berikut ini :

> x range(x)[1] -1.716844 2.496130> hist(x, xlim=c(-4,4), xlab=" ", prob=T)> u lines(u, dnorm(u))> title("Gambar 6")

Di samping itu dalam satu gambar/window dapat dibuat beberapa macam grafik dengan memberikan perintah berikut ini :

> par(mfrow=c(2,2))

Yaitu digunakan untuk menggambarkan grafik sebanyak 2 2 dalam satu window. Tabel berikut ini memberikan daftar argumen optional yang digunakan dalam menggambarkan grafik.

Tabel 5. Tabel daftar argumen dalam menggambar grafik.

NamaArti

xlab = xlabelylab = ylabelxlim=c(l,r)ylim=c(l,h)main=titlesub=subtitlelty=n

Label pada sumbu-xLabel pada sumbu-yRange pada sumbu x dari 1 sampai dengan rRange pada sumbu-y dari1 sampai dengan hJudul pada bagian atas gambarJudul pada bagian bawah gambarTipe garis : n=1, n=2, 3, ... , putus-putus

Perhatikan fungsi-fungsi yang digunakan untuk membuat plot tingkat tinggi.

> x y plot(x,y,type="l")> boxplot(x)> qqnorm(x)> qqplot(x,y)

dan fungsi-fungsi yang digunakan untuk membuat plot tingkat rendah

> x y plot(x,y)> lines(x,y)> title("title","subtitle")> text(x,y)> points(x,y)

Perhatikan perintah berikut dan amati apa yang terjadi :> x y plot(x,y,type="p",main="Gambar 7")> u z persp(z)> title("Gambar 8")

ListList adalah suatu vektor dimana komponen-komponennya mempunyai tipe yang mungkin berbeda. Sebagai contoh suatu list dapat terdiri dari vektor numerik, vektor karakter, list bagian yang lain (sublist) dan suatu fungsi. Seringkali hasil suatu fungsi standard seperti lsfit berupa suatu list. Perhatikan contoh berikut ini :> x y z z$coefficients Intercept X -0.03043427 0.92861917

$residuals[1] 0.07241504 -0.03093669 -0.04114679 -0.11455651 0.11422495

$intercept[1] TRUE

$qr$qt[1] -6.16131367 2.93655166 -0.07282102 -0.16127321 0.05246578

$qr Intercept X[1,] -2.2360680 -6.7082039[2,] 0.4472136 3.1622777[3,] 0.4472136 -0.1954395[4,] 0.4472136 -0.5116673[5,] 0.4472136 -0.8278950

$qraux[1] 1.447214 1.120788

$rank[1] 2

$pivot[1] 1 2

$tol[1] 1e-07

attr(,"class")[1] "qr"Dalam list z ini komponen pertama terdiri dari matriks ( 1 2 ) yaitu intercept dan gradien garis yang diperoleh dengan metode kuadrat terkecil. Komponen-komponen dalam list dapat dipilih dengan cara perintah-perintah berikut ini.

> z[[1]] Intercept X -0.03043427 0.92861917 > z$residuals[1] 0.07241504 -0.03093669 -0.04114679 -0.11455651 0.11422495> z$residuals[4][1] -0.1145565

Suatu list dapat juga dibentuk dengan menggunakan perintah list seperti pada contoh berikut ini :

> x y y$bilangan[1] 1 2 3 4 5

$yatidak[1] TRUE

> y$yatidak[1] TRUE

Fungsi names dapat digunakan untuk memanggil nama-nama komponen dalam suatu list seperti pada contoh berikut ini dan perhatikan apa yang terjadi :

> names(y)[1] "bilangan" "yatidak" > names(y) y$nomor[1] 1 2 3 4 5

$dimana[1] TRUE

Matriks dan ArraySuatu matriks dapat dibentuk dengan cara berikut ini :

> x dim(x) x [,1] [,2] [,3] [,4][1,] 1 3 5 7[2,] 2 4 6 8> x x [,1] [,2] [,3] [,4][1,] 1 3 5 7[2,] 2 4 6 8

Matriks juga dapat dibentuk dengan menggabungkan sejumlah vektor seperti pada contoh berikut ini :

> cbind(c(1,2),c(3,4)) [,1] [,2][1,] 1 3[2,] 2 4

Pada matriks dapat dikenakan operasi-operasi seperti pada contoh berikut ini :

> t(x) [,1] [,2][1,] 1 2[2,] 3 4[3,] 5 6[4,] 7 8> apply(x,1,mean)[1] 4 5> apply(x,1,min)[1] 1 2> apply(x,2,min)[1] 1 3 5 7

Perhatikan perintah-perintah berikut ini dan manfaatnya :x[subcript]

> x [,1] [,2] [,3] [,4][1,] 1 3 5 7[2,] 2 4 6 8> x[1,3][1] 5> x[1,][1] 1 3 5 7> x[,-2] [,1] [,2] [,3][1,] 1 5 7[2,] 2 6 8

Perhatikan apa yang terjadi dengan perintah-perintah berikut ini :

> x[x>5][1] 6 7 8> x>5 [,1] [,2] [,3] [,4][1,] FALSE FALSE FALSE TRUE[2,] FALSE FALSE TRUE TRUE

Fungsi-fungsi dasar yang dapat digunakan dalam operasi matriks dinyatakan pada Tabel . matriks merupakan array berdimensi dua. Operasi-operasi yang dinyatakan dalam array analog dengan operasi yang digunakan dalam matriks. Di samping itu dalam array juga digunakan perintah dimnames.

Tabel 5. Tabel fungsi yang digunakan dalam operasi matriks

Nama fungsiOperasi

ncol(x)nrow(x)t(x)diag(x)

col(x)row(x)cbind(x)rbind(x)apply(x,1,function)apply(x,2,function)%*%solve(x)solve(A,b)backsolve(x)eigen(x)chol(x), choleski(x)qr(x)svd(x)cancor(x,y)var(x)

Banyak kolom matriks xBanyak baris matriks xTranspose matriks xMembuat diagonal matriks dari vektor atau membentuk vektor diagonal dari suatu matriksMatriks dari nomor kolomMatriks dari nomor barisMembentuk kolom-kolom menjadi matriksMembentuk baris-baris menjadi matriksMenggunakan function pada barisMenggunakan function pada kolomPerkalian dua matriksInvers matriks xPenyelesaian sistem persamaan Ax=bPenyelesaian sistem persamaan Ax = bEigen value matriks xDekomposisi choleskiDekomposisi Q-rSingle value decompositionKorelasi kanonikMatriks kovariansi dari kolom

Data-Frames

Elemen-elemen dalam suatu matriks mempunyai mode yang sama seperti numerik, karakter atau logika. Dalam data.frame secara esensi sama dengan matriks tapi modenya boleh berbeda. Untuk membuat data.frame dapat digunakan perintah-perintah berikut ini :

> x y z data.frame(x,y,z) x y z1 M 1.79 TRUE2 V 1.61 FALSE3 V 0.80 TRUE

Untuk menginputkan data dapat digunakan perintah scan seperti pada perintah berikut ini :

> x x[1] 1.00000 2.50000 3.14159

Input ditutup dengan memberikan perintah ENTER atau CONTROL-D pada baris terakhir.

Fungsi (function) dan Penulisannya

Paket program R dapat dipergunakan untuk menuliskan fungsi sesuai yang diperlukan. Suatu fungsi didefinisikan sebagai :

> namafunction(arg1, arg2, .)

Sebagai contoh fungsi yang sederhana adalah seperti berikut ini :

> sdev kurtosis rdistribusi(5,qpois,2)[1] 0 5 0 1 2

Statemen if dapat digunakan dengan aturan

> if (condition) expression1> if (condition) expression1 else expression2

Contoh berikut ini gambaran penggunaan if.

> y x if( any(x x for (i in 1:10) { x y [1] 0 0 0 0 0 0 0 0 0 0

Sebagai pengganti statemen for dapat digunakan statemen while yang mempunyai aturan penggunaan :

> while (condition) expression

Contoh berikut ini memberikan ilustrasi kapan perintah while digunakan :

> x x [1] 0 0 0 0 0 0 0 0 0 0> i while (i < 10) + {+ i x x [1] 1 2 3 4 5 6 7 8 9 10

Di samping itu dapat juga dipergunakan perintah repeat yang mempunyai aturan penggunaan :

> repeat {} if (condition) break }

Gunakan perintah repeat yang hampir sama penggunaannya dengan perintah for dan while. ****

2