Professional Documents
Culture Documents
n
mean = 1 / n * xi
i
Dalam R terdapat fungsi untuk menghitung nilai rerata sampel. Fungsi yang
digunakan adalah mean(x) ataupun dengan menggunakan fungsi summary(x).
Sebagai contoh, digunakan data dari datapackage yang sudah tersedia di R, pilih
salah satu data (misalkan Nile). Kemudian hitung nilai rerata sampel, dengan
menuliskan
> data()
> data(Nile)
> Nile
Time Series:
Start = 1871
End = 1970
Frequency = 1
[1] 1120 1160 963 1210 1160 1160 813 1230 1370 1140 995 935 1110
[14] 994 1020 960 1180 799 958 1140 1100 1210 1150 1250 1260 1220
[28] 1030 1100 774 840 874 694 940 833 701 916 692 1020 1050
[41] 969 831 726 456 824 702 1120 1100 832 764 821 768 845
[54] 864 862 698 845 744 796 1040 759 781 865 845 944 984
[67] 897 822 1010 771 676 649 846 812 742 801 1040 860 874
[80] 848 890 744 749 838 1050 918 986 797 923 975 815 1020
[94] 906 901 1170 912 746 919 718 714 740
47
> mean(Nile)
[1] 919.35
> summary(Nile)
Min. 1st Qu. Median Mean 3rd Qu. Max.
456.0 798.5 893.5 919.4 1033.0 1370.0
Hasil tersebut di atas adalah menunjukkan tentang data Nile yang terdiri dari 100 data
dengan nilai rerata 919.35. Selain rerata ada pula nilai statistik lainnya, yaitu
minimum, kuartil pertama, nilai tengah (median), kuartil ke tiga dan maksimum.
Nilai-nilai tersebut ditampilkan dengan menjalankan fungsi summary().
Seperti halnya dengan rerata, R juga menyediakan fungsi untuk mencari nilai tengah
(median) sampel dengan menuliskan fungsi median().
Sebagai contoh, dapat digunakan data seperti mencari nilai rerata sebelumnya untuk
menghitung nilai tengah (median):
> median(Nile)
[1] 893.5
R menyediakan fasilitas untuk mencari nilai minimum dan maksimum suatu data,
yaitu dengan digunakan perintah min() dan max()
V. 2. Grafik
R dilengkapi dengan fasilitas untuk visualisasi statistik dalam bentuk grafik, baik
statistik, kontur, map, dll. Sistem grafik di R terdiri dari dua sistem: sistem
(dasar/default) yang terdapat dalam paket graphics dan sistem trellis yang terdapat
dalam paket lattice. Grafik di R dapat diatur sesuai keperluan. Untuk melihat
lebih detil mengenai fitur grafik dalam R, pilih menu Help di menu R kemudian pilih
Manual (dalam format pdf) atau HTML help. Untuk mendapatkan gambaran langsung
tentang grafik dalam R, dapat dilihat dalam fungsi demo(), dengan menuliskan
> demo() #
untuk melihat jenis-jenis demo
> demo(graphics) #
atau
> demo(image) #
atau
> demo(persp) #
atau
> demo(lattice) #
sebelumnya diperlukan load package dan pilih
lattice pada menu di windows R anda; atau
> demo(package = .packages(all.available = TRUE)) # untuk melihat
semua jenis demo yang tersedia
Ket: untuk R versi 2.1.1, penulisan Return dituliskan setelah penulisan fungsi
demo()
48
Grafik Dasar (Base)
Berikut akan disajikan contoh pembuatan plot secara bertahap diawali dengan model
standar hingga pengaturan sesuai dengan yang diinginkan (customize). Contoh
berikut adalah pembuatan scatterplot untuk petal.length yang dibandingkan
dengan petal.width dari dataset iris. Default scatterplot dari dua variabel
dihasilkan oleh metod plot.default, yang secara otomatis digunakan oleh
perintah plot generik dimana argumennya merupakan dua vektor dengan panjang
yang sama seperti berikut ini:
> data(iris)
> str(iris)
Data tersebut di atas menyatakan bahwa data iris terdiri dari 5 variabel dimana setiap
variable terdiri dari 150 data observasi. Lima variable tersebut adalah: Sepal.Length,
Sepal.Width, Petal.Length, Petal.Width dan Species.
> attach(iris)
> plot(Petal.Length, Petal.Width)
Hasil dari perintah tersebut terlihat pada Grafik 5.1 (merupakan bentuk grafik secara
default). Dalam grafik tersebut, sumbu x dan sumbu y berasal dari argumen pertama
(Petal.Length) dan argumen kedua (Petal.Width), dari pernyataan
plot(argument_1, argument_2).
49
Gambar 5.1: Scatter plot data variabel Petal
Grafik 5.1 di atas dapat dilengkapi untuk menunjukan dependensi argumen dimana
sumbu y sebagai variabel dependen. Hal tersebut dilakukan dengan menuliskan
perintah seperti berikut, dimana variable terikat terletak sebelah kiri:
> plot(Petal.Width ~ Petal.Length,)
Pada Gambar 5.1 bentuk grafik sangat standart, sehingga perlu dilengkapi dengan
beberapa keterangan tambahan untuk memperjelas dan mempermudah dalam
melakukan interpretasi grafik. Hal ini dapat dilakukan dengan menambahkan fitur
warna atau simbol dalam tampilan grafik. Untuk hal tersebut, R mempunyai fasilitas
pewarnaan (yaitu dengan argumen col), simbol (dengan argumen pch), ukuran
(dengan argumen cex), label/nama sumbu kordinat (dengan argumen xlab dan
ylab), judul grafik (dengan argumen main). Beberapa jenis warna yang disediakan
dalam R dapat diketahui dengan menggunakan perintah colours(), dimana akan
ditampilan daftar warna-warna tersebut.
> colours()
> palette()
50
Selain warna, simbol juga dapat digunakan untuk menampilkan tanda plot.
Spesifikasi simbol dapat dilakukan dengan menentukan karakter yang akan
digunakan (misalkan asterik *) atau kode integer dari simbol tersebut. Gambar 5.2
menunjukkan simbol dan kodenya. Simbol dengan kode 21-26 memiliki fill (warna
latar) yang dispesifikasikan pada argumen bg, spesifikasi warna utama dengan
argumen col menspesifikasikan garis border.
Berikut ini merupakan contoh yang menampilkan grafik plot yang dilengkapi dengan
pewarnaan, modifikasi ukuran dan pemilihan simbol plotting. Penulisannya adalah
sebagai berikut:
51
Gambar 5.3: Simbol, Kode dan Warna dalam R
Setelah kita mengetahui bentuk dan kode simbol, maka berikut ini akan dilakukan
penggunaan simbol, warna dan modifkasi lain untuk menggambarkan plot/grafik dari
contoh sebelumnya dengan menuliskan perintah seperti berikut:
Data menunjukkan dengan jelas bahwa ukuran spesies berbeda (Sentosa paling kecil,
Versicolor menengah, Virginica terbesar) tetapi rasio petal length dan weight sama
untuk ketiga ukuran tersebut.
52
V.2.1. Histogram
Selain plot, bentuk representasi grafis lainnya yang paling mudah digunakan untuk
menggambarkan sebaran data adalah histogram. R menyediakan fasilitas fungsi
histogram yang digunakan untuk mengetahui sebaran sampel suatu data. Sebagai
catatan: histogram ataupun boxplot, digunakan untuk satu variable.
Sebelum kita mencoba untuk menggunakan fasilitas histogram, maka perlu sedikit
penjelasan yang berkaitan dengan histogram, yaitu:
histogram digunakan untuk mengestimasi fungsi distribusi probabilitas
densitas (probability density function);
> stem(variabel)
Sebagai contoh, gunakan variabel eruptions dari tabel data faithful, dengan
menuliskan:
> attach(faithful)
> summary(eruptions)
> fivenum(eruptions)
> stem(eruptions)
53
40 | 0000003357788888002233555577778
42 | 03335555778800233333555577778
44 | 02222335557780000000023333357778888
46 | 0000233357700000023578
48 | 00000022335800333
50 | 0370
Kita juga dapat melihat sebaran data dalam plot histogram yaitu dengan
menggunakan fungsi hist()
> hist(eruptions)
Pada Gambar 5.5 di atas, fungsi hist() menggunakan jarak antar batang (disebut
bin) cukup besar. Untuk membuat bin lebih kecil, diperlukan tambahan atribut
dengan menuliskan:
54
Gambar 5.6: Grafik histogram data eruption berdasarkan lebar bin 0.2
Gambar 5.6 di atas menunjukkan lebar batang histogram yang lebih kecil dibanding
Gambar 5.5. Apabila ingin ditambahkan garis pada data densitas, maka dapat
menggunakan fungsi lines()seperti berikut:
> lines(density(eruptions, bw = 0.1))
Keterangan: bw adalah bandwidth (lebar pita), dengan nilainya berdasarkan trial and
error.
> rug(eruptions)
55
Gambar 5.8: Grafik histogram data eruption dengan data aktual
Distribusi ecdf di atas masih jauh dari standar distribusi yang ada. Untuk itu dapat
dicobakan dengan mencocokkan distribusi normal dan menutupi fungsi distribusi
kumulatif (ecdf) sebelumnya. Penulisannya adalah sebagai berikut:
56
Gambar 5.10: Plot 2 ecdf data eruption
Selain histogram sebagai alat untuk memplot sebaran data suatu variabel adalah
Quantile Quantile (Q-Q) plot. Q-Q plot dapat digunakan untuk memplot variable
secara lebih teliti berdasarkan nilai quantile data.
Q-Q plot adalah suatu scatter plot yang membandingkan distribusi empiris dengan
fitted distribution dalam kaitannya dengan nilai dimensi suatu variabel (misalkan:
nilai quantile empiris). Q-Q plot dapat memplot dengan baik jika dataset diperoleh
dari populasi yang sudah diketahui.
57
Q-Q plot dalam R dibagi menjadi dua, yaitu:
qqnorm(variabel); untuk menguji goodness of fit dari distribusi
Gaussian. qqnnorm() disebut juga sebagai plot probabilitas normal.
> qqline(long)
58
V.2.3. Boxplot
Selain dua alat untuk menggambarkan grafik untuk satu variable yang sudah
dijelaskan sebelumnya, terdapat fasilitas boxplot yang digunakan untuk melihat
sebaran data. Berikut adalah penjelasan tentang fitur dasar boxplot:
Berguna untuk membanding banyak kelompok/grup.
Dasarnya menggunakan 3 jenis summary: 3 quartil.
Mudah dalam menampilkan nilai rerata (mean).
Dapat diperluas untuk menampilkan persentil lainnya, terutama pada
ujung(tails) suatu distribusi.
R menyediakan fitur untuk menampilkan boxplot, dengan menuliskan fungsi
boxplot(variabel).
Untuk menjelaskan penggunaan fungsi boxplot(), berikut adalah contoh
menggambar grafik dengan menggunakan data faithful seperti pada contoh
sebelumnya.
> boxplot(eruptions)
Perintah di atas akan mendapatkan gambar boxplot dari variabel eruption seperti
berikut:
59
Gambar 5.15: Boxplot data eruption dengan nama titel
R menyediakan beragam bentuk penyajian grafik plot. Berikut adalah daftar plot
grafik dasar yang ada dalam R (beberapa ada yang termasuk dalam instalasi awal dan
adapula yang masuk dalam paket lain yang harus didownload dari CRAN):
60
Gambar 5.16 terdiri dari beberapa contoh tampilan grafik plot, yaitu boxplot, a
conditioning plot, pairwise scatterplot, dan star plot, yang kesemuanya mengaplikasikan dataset
Anderson iris. Perintah di R untuk menggambarkan grafik-grafik tersebut adalah :
Conditioning plot
boxplot
61
V.2.4 Grafik Trellis
Sistem grafik trellis dalam R tersedia dalam paket lattice. Model grafik ini khususnya
digunakan untuk visualisasi multivariate apabila relasi antara variable berubah
bersama beberapa group factor yang disebut sebagai kondisi (conditioning) suatu
grafik terhadap factor. Metoda ini menggunakan formula yang similar dengan
formula statistic untuk menspesifikasikan variable yang akan diplot serta
hubungannya dalam plot.
Satu varibel/Univariate
Sebagai salah contoh univariate adalah membuat grafik plot densitas pada
keseluruhan data. Pada contoh ini digunakan dataset iris seperti contoh sebelumnya.
Berikut adalah metode yang digunakan untuk menampilkan plot densitas:
> densityplot(~ Petal.Length, data=iris,main=Seluruh Spesies)
Operator ~ tidak memiliki operan di sebelah kiri, karena tidak ada variable terikat
(dependent) dalam plot; ini menunjukkan sifat univariate. Petal.Length adalah
variable bebas (independent), dan diperoleh plotnya. Gambar 5.17(a) sebelah kiri
menunjukkan plot densitas univariate.
Pengkondisian dilakukan dengan menambahkan operator |, yang dapat dibaca
sebagai pengkondisian pada (conditioned on) satu (beberapa) variable pada sisi
kanan operator, seperti pada berikut ini:
> densityplot(~ Petal.Length | Species, data=iris)
Perintah tersebut akan menampilkan satu panel per spesies; seperti yang ditunjukkan
pada Gambar 5.17(b). Pada gambar tersebut tampak jelas bahwa distribusi multi-
modal keseluruhan data set berdasarkan perbedaan distribusi untuk setiap spesies.
(a) (b)
Gambar 5.17 Plot densitas triller (a) tanpa dan (b) dengan pengkondisian faktor
62
Jenis plot untuk satu variable (univariate) adalah seperti pada table 5.2 berikut:
Salah satu metode membuat plot dua variable (bivariate) adalah xyplot, dimana
sumbu y adalah variable terikat dan sumbu x adalah variable bebas; variable tersebut
juga dapat dikondisikan terhadap satu atau lebih kelompok faktor seperti pada
perintah berikut.
Gambar 5.18: Scatter plot triller (a) tanpa dan (b) dengan pengkondisian faktor
63
Tabel 5.3: Jenis plot untuk dua variable
Jenis Keterangan
qq Plot untuk membandingkan dua
distribusi
xyplot Plot scatter
Tiga variable(Trivariate)
Plot yang paling banyak digunakan untuk trivariate adalah levelplot dan
contourplot untuk melakukan plot 2D dari satu variable respon pada dua variable
terikat kontinu (misalkan, elevation vs. dua koordinat), metode wireframe untuk suatu
versi grafik 3D, dan metode cloud (awan) untuk scatter plot 3D dari tiga variable.
Semua dapat dikondisikan pada suatu factor tertentu. Gambar 5.19 menunjukkan
contoh yang dihasilkan dari kode berikut:
Gambar 5.19 menunjukkan hasil dari perintah di atas. Sebagai catatan, data set
volcano merupakan matriks elavasi:
> str(volcano)
num [1:87, 1:61] 100 101 102 103 104 105 105 106 107 108 ...
Metode levelplot menkonversi ke variable respon (nilai z) dan dua predictor, yaitu
baris dan kolom matriks (nilai x dan y). Contoh tersebut menunjukkan metode lattice
tingkat tinggi yang melakukan pembentukan grafik sendiri. Hasil dari metode
levelplot digambar dengan metode print. Metode plot tiga variable adalah seperti
Table 5.4:
64
Gambar 5.19: Grafik plot Trellis trivariate
Selain motode plot untuk satu, dua, tiga variable, R juga menyediakan plot grafik
untuk lebih dari tiga variable (hypervariate) seperti pada Table 5.5 berikut:
Fungsi distribusi merupakan salah satu bahasan penting dalam statistika, terutama
dalam analisis data. Fungsi distribusi merupakan salah satu alat pendekatan distribusi
suatu data. Fungsi distribusi juga berperan dalam menentukan densitas suatu fungsi
65
data. Dalam bab ini akan dibahas fungsi distribusi dan fungsi yang berkaitan
dengannya.
Software R mempunyai koleksi fungsi distribusi standar yang lengkap, yang tersedia
dalam paket program R dan dapat ditambah dengan mendownload dalam bentuk
paket dari situs R.
Fungsi probabilitas densitas merupakan salah satu parameter statistic yang digunakan
untuk mengetahui probabilitas terhadap suatu factor yang ada dalam sample. Buku ini
akan mengawali pembahasan dengan contoh kasus untuk mempermudah pemahaman
tentang fungsi densitas seperti berikut ini:
Terdapat 16 mahasiswa dipilih secara acak dari populasi dimana 30% adalah wanita.
Berapa probabilitas sebanyak nol, satu, dua, , enam belas dari mahasiswa tersebut
yang dipilih adalah wanita?. Untuk menghitung probabilitas tersebut akan digunakan
beberapa langkah dalam R seperti dibawah ini.
66
> round(dbinom(0:16, 16, 0.3), 3) # dbinom artinya d:densitas dan
binom:binomial
[1] 0.003 0.023 0.073 0.146 0.204 0.210 0.165 0.101 0.049 0.019 0.006 0.001
[13] 0.000 0.000 0.000 0.000 0.000
Pertama adalah menghitung nilai probabilitas jumlah wanita yang terpilih dari
populasi yang dicari tersebut berdasarkan distribusi binomial dengan menggunakan
fungsi dbinom(). Nilai probabilitas dari masing-masing kejadian tersebut adalah:
Total kumulatif dari masing-masing nilai probabilitas tersebut adalah 1 (hal ini
menunjukkan bahwa nilai probabilitas tersebut merupakan pdf). Kemudian untuk
menggambarkan scatter plot nilai probabilitas tersebut digunakan perintah plot seperti
berikut:
Misalkan terdapat kondisi bahwa hanya 2 dari 16 yang terpilih adalah wanita. Berapa
probabilitas dua atau kurang dari jumlah wanita dapat terpilih kembali? Penyelesaian
masalah tersebut dapat diselesaikan dengan menggunakan fungsi pbiom() seperti
perintah program dibawah, dimana argument pertama = 2 yang menyatakan jumlah
wanita terpilih, argument kedua adalah 16 yang menyatakan jumlah keseluruhan,
argument ketiga menyatakan probabilitas jumlah wanita. Perintah dalam R adalah
sebagai berikut:
67
Gambar 5.20: Plot binomial data mahasiswa
(Interpretasi: dalam sample random dari 16 orang populasi dengan 30% adalah
wanita, terdapat sekitar 10% bahwa dari sample akan terpilih sebanyak nol, satu atau
dua adalah wanita. Maka jika kita lihat, 16 orang sample dengan dua atau kurang
wanita, maka kita menduga bahwa terjadi diskriminasi terhadap hal tersebut, maka
10% kesempatan yang kita duga tersebut adalah tanpa dasar yang kuat).
Contoh berikut menyatakan bahwa dua random sample yang saling bebas yang
berdistribusi normal seharusnya tidak berkorelasi. Kita dapat mensimulasikan hal ini
berulangkali untuk menaksi koefisien korelasi dimana probabilitas error Type I (yaitu
menolak hipotesis yang menyatakan tidak terdapat suatu korelasi) adalah 10%.
Pertama, kita akan menuliskan:
68
Gambar 5.21: Plot variabel sample1 dan sample 2
Gambar 5.21 menunjukkan bahwa 2 variabel random sample.1 dan sample.2 adalah
saling bebas.
Sebagai catatan, karena sifat kerandomannya, hasil yang akan anda peroleh dari hasil
percobaan yang dilakukan tentu akan berbeda dengan apa yang disajikan dalam buku
ini.
Kemudian, untuk perhitungan yang lebih besar lagi, yakni mencari nilai-nilai
statistiknya, perlu mendefinisikan fungsi secara tersendiri seperti berikut ini:
69
Gambar 5.22: Histogram koefisien korelasi
Sepertinya, terlihat suatu interval antara -0, 36 . +0,37 yang melingkupi 90% dari
koefisien korelasi r sample untuk ukuran sample 20. Sekali lagi hasilnya mungkin
sedikit berbeda antara yang anda lakukan dengan yang dikerjakan dalam buku ini.
70
Baris perintah di atas adalah salah satu contoh pembahasan mengenai fungsi
probabilitas densitas (probability density function (PDF)) dengan kasus distribusi
normal bivariat.
F ( x) = Pr ob( X x)
Dalam sub bab ini akan dijelaskan tentang regresi dan ANOVA, yang merupakan
salah satu metode dasar statitistik dalam melakukan pengolahan dan analisis data.
Disini akan disajikan teori dan praktek regresi dan anova serta penggunaan R untuk
analisis tersebut. Pada tahap awal mungkin akan terasa sedikit rumit, namun
diharapkan setelah mencoba beberapa contoh akan menjadi lebih mudah.
71
CD. Selain dalam CD, library(faraway) dapat didownload di situs
www.stat.lsa.umich.edu/faraway.
Pertama digunakan library faraway dan memanggil data pima tersebut dengan
mengetikkan:
> library(faraway)
> data(pima)
> pima
pregnant glucose diastolic triceps insulin bmi diabetes age test
1 6 148 72 35 0 33.6 0.627 50 1
2 1 85 66 29 0 26.6 0.351 31 0
3 8 183 64 0 0 23.3 0.672 32 1
4 1 89 66 23 94 28.1 0.167 21 0
5 0 137 40 35 168 43.1 2.288 33 1
.
Simpulan dari dataset tersebut dapat kita lihat sebagai berikut:
> summary(pima)
pregnant glucose diastolic triceps
Min. : 0.000 Min. : 0.0 Min. : 0.0 Min. : 0.00
1st Qu.: 1.000 1st Qu.: 99.0 1st Qu.: 62.0 1st Qu.: 0.00
Median : 3.000 Median :117.0 Median : 72.0 Median :23.00
Mean : 3.845 Mean :120.9 Mean : 69.1 Mean :20.54
3rd Qu.: 6.000 3rd Qu.:140.2 3rd Qu.: 80.0 3rd Qu.:32.00
Max. :17.000 Max. :199.0 Max. :122.0 Max. :99.00
insulin bmi diabetes age
Min. : 0.0 Min. : 0.00 Min. :0.0780 Min. :21.00
1st Qu.: 0.0 1st Qu.:27.30 1st Qu.:0.2437 1st Qu.:24.00
Median : 30.5 Median :32.00 Median :0.3725 Median :29.00
Mean : 79.8 Mean :31.99 Mean :0.4719 Mean :33.24
3rd Qu.:127.2 3rd Qu.:36.60 3rd Qu.:0.6262 3rd Qu.:41.00
Max. :846.0 Max. :67.10 Max. :2.4200 Max. :81.00
test
Min. :0.0000
1st Qu.:0.0000
Median :0.0000
Mean :0.3490
3rd Qu.:1.0000
Max. :1.0000
Simpulan data di atas menunjukkan beberapa hal yang tidak wajar yang mungkin
disebabkan ketika memasukkan data, misalkan nilai maksimum pregnant = 17 (ini
sangat besar, tetapi juga memungkinkan), tekanan darah (diastolic) = 0. Dengan
demikian kita perlu sedikit melakukan pembersihan data tersebut, khususnya yang
diasumsikan ketika memasukkannya tidak benar. Melihat ketidak wajaran tersebut
kita perlu menset nilai dari dataset yang bernilai 0 dengan NA, hal ini untuk
menghindari terjadinya pada kesalahan perhitungan. Nilai NA data tidak tersedia
untuk nilai yang diasumsikan salah ketika memasukkan, sehingga tidak termasuk
dalam perhitungan. Apabila nilai tersebut tetap 0, maka nilai statistik menjadi tidak
wajar, karena tidak sesuai dengan kenyataan. Perintah yang digunakan untuk menset
nilai tersebut adalah:
> pima$diastolic[pima$diastolic == 0] <- NA
> pima$glucose[pima$glucose == 0] <- NA
> pima$triceps[pima$triceps == 0] <- NA
> pima$insulin[pima$insulin == 0] <- NA
> pima$bmi[pima$bmi == 0] <- NA
72
Variabel test adalah bukan kuantitatif melainkan kategori. Variabel tersebut adalah faktor.
Tetapi karena merupakan kode numerik, variabel tersebut diperlakukan seperti halnya
kuantitatif. Akan lebih baik apabila variabel tersebut adalah faktor sehingga dapat
diperlakukan sesuai fungsinya. Hal seperti itu kadang terlupakan dan akibatnya akan terjadi
kesalahan proses perhitungan statistik (misalkan proses perhitungan rata-rata code pos
(dimana kodenya numerik tetapi bukan data kuantitatif)). Sehingga untuk mendefinisikan
variabel test sebagai faktor maka perintah yang digunakan adalah:
Sekarang jelas bahwa 500 kasus adalah negative (0) dan 268 positif (1). Sehingga untuk
menggunakan deskripsi label yang benar untuk variabel test sebagai kategori maka dimana
(0) adalah negatif dan (1) adalah positif, maka dituliskan perintah berikur:
73
V.4.1. ANOVA Satu Arah
V.4.1.1. Model
Model untuk ANOVA jenis ini yaitu, diberikan faktor terjadi pada tingkat i = 0, 1,
, I , dengan sejumlah j observasi per tingkat dimana j = 1, , Ji. Model yang
digunakan:
yij = + i + ij , i = 1,..., I ; j = 1,..., J i
dengan batasan-batasan parameter sebagai berikut:
1. Set = 0 dan variabel dummy I yang berbeda
2. 1 = 0 berhubungan dengan perlakuan yang kontras
3. J i i = 0 , yang mengarah pada penaksir kuadrat terkecil (least square
i
estimate).
= y , i = yi y ,
Dimana tanda (misal pada y ) menyatakan indeks dari rerata yang digunakan.
Metode terakhir ini paling banyak direkomendasikan untuk penghitungan
manualwalaupun akan lebih sulit disajikan dalam bentuk y = X + . Faktor kedua
pertama di atas lebih mudah diimplementasikan secara komputas. Seperti biasa,
beberapa analisis grafis awal diperlukan sebelum melakukan pencocokkan (fitting).
Boxplot sisi per sisi merupakan plot yang paling banyak digunakan. Lihat pada
persamaan variansi, transformasi, outliers (disini tidak berpengaruh secar relevan
karena levarage tidak akan berbeda kecuali disain yang sangat tidak seimbang)
Contoh kasus,
Suatu penelitian ingin mengetahui apakah factor sosioekonomi mempengaruhi IPK
mahasiswa. Sosioekonomi dibagi dalam tiga kelompok, yaitu rendah (r), sedang (s)
dan tinggi (t). Dalam penelitian tersebut, masing-masing kelompok terdiri dari 7
mahasiswa yang diambil data IPK secara acak.
ipk sosek
1 2.87 r
2 2.16 r
3 3.14 r
4 2.51 r
5 1.80 r
6 3.01 r
74
7 2.16 r
8 3.23 s
9 3.45 s
10 2.78 s
11 3.77 s
12 2.97 s
13 3.53 s
14 3.01 s
15 2.25 t
16 3.13 t
17 2.44 t
18 2.54 t
19 3.27 t
20 2.81 t
21 1.36 t
Langkah pertama adalah melihat sebaran data dengan melakukan plot, dan digunakan
boxplot dan hasilnya seperti Gambar 5.24:
Disini diharapkan tidak terlihat adanya outlier, kemiringan (skewness) dan variansi
yang berbeda.
Selanjutnya, dilakukan pencocokan model dengan cara sebagai berikut:
Eksperimen tersebut melibatkan suatu factor tunggal yaitu kelas sosioekonomi
(sosek) pada tiga level (r,s,t). Misalkan r , s , t masing-masing menyatakan rata-
rata IPK untuk mahasiswa tingkat social ekonomi rendah, sedang dan tinggi.
Sehingga akan diujikan hal berikut:
H 0 : r = s = t
melawan alternatif:
Ha : paling sedikit dua dari tiga perlakuan berbeda.
Maka untuk mendapatkan hal tersebut, maka perlu dibuat suatu model linear yang
menggambarkan hubungan ipk dengan sosek sebagai berikut:
75
> summary(g)
Residuals:
Min 1Q Median 3Q Max
-1.18286 -0.29286 -0.01143 0.34857 0.72714
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.52143 0.19336 13.040 1.31e-10 ***
soseks 0.72714 0.27346 2.659 0.0160 *
sosekt 0.02143 0.27346 0.078 0.9384
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Karena nilai statistik F = 4.579 melebihi nilai kepercayaan F0.05 = 3.55, maka H0
ditolak dan disimpulkan (pada tingkat kepercayaan = 0.05) bahwa rata-rata IPK
mahasiswa berbeda paling sedikit dua dari tiga tingkat sosio ekonomi. Hal ini juga
ditunjukkan oleh = 0.05 lebih besar dari p-value = 0.02468.
Grup r adalah level rujukan dan mempunyai nilai rerata 2.52143, sedangkan grup s
dan t berturut-turut memiliki nilai rerata 0.72714 dan 0.02143 lebih besar dari rata-
rata r. Kemudian berdasarkan factor sosioekonomi tersebut, maka dilakukan
pemeriksaan matriks rancangan untuk memahami pengkodean:
> model.matrix(g)
Residuals:
Min 1Q Median 3Q Max
-1.18286 -0.29286 -0.01143 0.34857 0.72714
Coefficients:
Estimate Std. Error t value Pr(>|t|)
sosekr 2.5214 0.1934 13.04 1.31e-10 ***
soseks 3.2486 0.1934 16.80 1.91e-12 ***
sosekt 2.5429 0.1934 13.15 1.14e-10 ***
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Kita lihat, dengan nilai p (p-value) = 3.662*10-14 (mendekati 0) maka kita tidak dapat
melakukan perbandingan hipotesis sebelumnya.
76
V.4.2. ANOVA Dua Arah
Anggap terdapat dua faktor, pada level I dan pada level J. Misalkan jumlah observasi
pada level i dari dan level j dari dan misalkan observasi tersebut sebagai yi j1, yi j2, . Suatu
layout lengkap A memiliki nij 1 untuk semua i, j. memiliki model umum yang paling
sesuai adalah :
yijk = + i + j + ( )ij + ijk
Efek interaksi ()ij diinterpretasikan sebagai bagian dari rata-rata respon yang bukan
(
merupak atribut efek tambahan dari i and j Sebagai contoh misalkan anda menyukai
strawberi dan es krim secara individu, tetapi strawberi yang dicampur dalam eskrim
lebih disukai. Hal yang berlawanan misalkan anda menyukai ikan dan es krim tetapi
tidak menyukai es krim yang dicampur ikan.
Hasil tersebut adalah untuk anova satu arah, dengan mengabaikan metode
pengecatan. Statemen lm() menyesuaikan model linier dan statemen anova()
menampilkan hasil dalam bentuk tabel anova.
77
Analysis of Variance Table
Response: adhf
Df Sum Sq Mean Sq F value Pr(>F)
primer 2 4.5811 2.2906 5.5989 0.01527 *
Residuals 15 6.1367 0.4091
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Tampilan hasil di atas adalah anova satu arah untuk metode pengecatan, dengan
mengabaikan jenis cat (primer).
Response: adhf
Df Sum Sq Mean Sq F value Pr(>F)
applic 1 4.9089 4.9089 13.521 0.002039 **
Residuals 16 5.8089 0.3631
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Hasil berikut merupakan anova dua arah untuk metode pengecatan, varibel primer
dan interaksi antar keduanya.
Sebagai catatan, jumlah kuadrat untuk variable primer dan untuk variable applic
bernilai sama dengan hasil perhitungan dalam analisis satu arah.
> anova(lm(adhf~primer*applic, data=paint))
Analysis of Variance Table
Response: adhf
Df Sum Sq Mean Sq F value Pr(>F)
primer 2 4.5811 2.2906 27.8581 3.097e-05 ***
applic 1 4.9089 4.9089 59.7027 5.357e-06 ***
primer:applic 2 0.2411 0.1206 1.4662 0.2693
Residuals 12 0.9867 0.0822
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Interaksi variable tidak signifikan (p = 0.2693) oleh karena itu kita dapat
melakukan uji untuk efek utama, dimana keduanya memiliki signifikansi yang tinggi.
Kesimpulan: Bahwa pemilihan tipe primer dan pemilih metode pengecatan (aplikasi)
mempengaruhi kekuatan daya rekat cat, dan selisih antara tiga tipe cat adalah sama
untuk kedua cara pengecatan (aplikasi), dan selisih antara dua metode pengecatan
adalah sama untuk setiap tipe cat.
Untuk uji t contoh pengecatan di atas, dibahas di V.5. sub bab uji t.
Perintah berikut digunakan untuk menunjukkan cara perhitungan nilai rerata untuk
enam tipe cat yang berbeda: kombinasi variable applic dan cara bagaimana mengatur
nilai rerata dalam bentuk matriks untuk memberikan plot interaksi.
> split(paint$adhf,paint$applic:paint$primer)
$"D:1"
[1] 4.0 4.5 4.3
$"D:2"
[1] 5.6 4.9 5.4
78
$"D:3"
[1] 3.8 3.7 4.0
$"S:1"
[1] 5.4 4.9 5.6
$"S:2"
[1] 5.8 6.1 6.3
$"S:3"
[1] 5.5 5.0 5.0
>matrix(sapply(split(paint$adhf,
paint$applic:paint$primer),mean),ncol=2)
[,1] [,2]
[1,] 4.266667 5.300000
[2,] 5.300000 6.066667
[3,] 3.833333 5.166667
Perintah mathplot() akan mem-plot setiap kolom dari matriks pada graph yang
sama.
> matplot(matrix(sapply(split(paint$adhf,
paint$applic:paint$primer),mean),ncol=2), type="l",
xlab="Primer",ylab="Daya Rekat")
Dua garis di atas tampak seperti paralel, sesuai dengan kesimpulan sebelumnya
bahwa tidak terjadinya suatu interaksi. Oleh karena itu, selisih/perbedaan antara tipe
cat (primer) adalah sama untuk setiap metode pengecatan.
79
> matplot(matrix(sapply(split(paint$adhf,paint$primer:paint$applic),
mean),ncol=3), type="l", xlab="Aplikasi",ylab="Daya Rekat")
Cara lain, anda dapat juga memplot daya rekat (adhesi) dengan metode pengecatan
(aplikasi), dengan garis yang berbeda untuk setiap primer garis tampak parallel
(Gambar 5.23).
Berkaitan den gan contoh kasus pengecatan pesawat terbang dengan variable primer
(tipe cat) dan variable applic (metode pengecatan; semprot dan dipping) (lihat kasus
di bagian anova dua arah), penulisan uji t dan koefisiennya dalam R adalah:
> summary(lm(adhf~primer*applic, data=paint))
Call:
lm(formula = adhf ~ primer * applic, data = paint)
Residuals:
Min 1Q Median 3Q Max
-0.40000 -0.16667 0.03333 0.21667 0.33333
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.2667 0.1656 25.772 7.1e-12 ***
primer2 1.0333 0.2341 4.414 0.000845 ***
primer3 -0.4333 0.2341 -1.851 0.088949 .
applicS 1.0333 0.2341 4.414 0.000845 ***
primer2:applicS -0.2667 0.3311 -0.805 0.436265
primer3:applicS 0.3000 0.3311 0.906 0.382736
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
80
F-statistic: 23.67 on 5 and 12 DF, p-value: 7.89e-06
Data di atas menunjukkan nilai uji t dari masing-masing variabel.
Pencocokan distribusi adalah suatu cara untuk menentukan fungsi matematis yang
diwakili dalam bentuk variabel-variabel statistika.
Masalah yang sering dihadapi oleh statistikawan adalah, jika mempunyai suatu
pengamatan/observasi dengan variabel kuantitatif x1, x2, ., xn dan ingin
menguji jika pengamatannya itu, menjadi sample dari populasi yang tidak diketahui
atau milik dari suatu populasi dengan pdf (fungsi densitas probabilitas) f(x, ), dimana
adalah vektor dari parameter yang akan diestimasi dengan data yang ada.
Langkah pertama dalam pencocokan distribusi adalah memilih model atau fungsi
matematis yang mewakili data dengan baik. Semakin baik suatu model maka semakin
baik pula keterwakilan data. (Catatan: baik buruknya model, salah satunya dapat
diukur dengan error yang dihasilkan).
Terkadang untuk pemilihan suatu model atau fungsi, teknik grafik seperti histogram
dan lainnya dapat membantu. Namun secara grafik dapat mengakibatkan cenderung
subjektif, oleh karena itu ada metode yang didasari pada ekspresi analitik seperti
kriteria Pearsons K. Memecahkan persamaan diferensial tertentu dapat dicapai
dengan menggunakan kelompok fungsi yang mewakili distribusi empiris. Kurva dari
fungsi tersebut hanya bergantung pada nilai rerata, variabilitas, skewness/kemiringan,
dan kurtosis. Dengan menstandarisasi data, tipe kurva yang hanya bergantung pada
pengukuran skewness dan kurtosis diformulasikan dalam fungsi berikut:
12 ( 2 + 6) 2
K=
4(4 2 3 12 + 12)(2 2 3 12 )
dimana:
(x i )3
1 = i =1
adalah koefisien skewness Pearsons
n 3
n
(x i )4
2 = i =1
3 adalah koefisien kurtosis Pearsons
n 4
81
Berdasarkan nilai K, yang diperoleh dari data yang ada, kita mempunyai suatu fungsi
jenis tertentu. Berikut adalah beberapa contoh distribusi kontinu dan distibusi diskrit.
Untuk setiap distribusi, terdapat bentuk grafik dan perintah R untuk membentuk
grafik tersebut.
Untuk data diskrit, dapat melihat distribusi Poisson, dengan fungsi mass probabilitas:
x
f ( x, ) = e dimana x = 0, 1, 2, ...
x!
Contoh, penulisan:
1( x ) 2
1
f ( x, , ) = e 2 2
untuk x R
2
Sebagai contoh, dapat dituliskan perintah pembentukan kur va untuk model distribusi
Normal (Gaussian):
> curve(dnorm(x,m=10,sd=2), from=0,to=20,main="Distribusi Normal")
maka akan menghasilkan tampilan grafik seperti Gambar 5.28 sebagai berikut:
82
Gambar 5.28: Kurva distribusi Normal
Distribusi Gamma:
1 x
f ( x, , ) = x e untuk x R +
( )
83
Distribusi Weibull:
x
[ ( ) ]
1
f ( x, , ) = x e
untuk x R +
84
1) analogi
2) moment
3) maximum likelihood.
> mean.hat<-mean(x.norm)
> mean.hat
[1] 0.02646597
Metode moment adalalah teknik untuk membentuk penaksir parameter berbasis pada
pencocokan moment sample yang berhubungan dengan moment distribusi. Metode
ini membandingkan moment terhadap populasi (secara teori). Apabila terdapat
metode momen maka keuntungannya adalah terdapat pula bentuk yang sederhana.
Kita mendefinisikan moment sample (secara empiris) dengan cara tersebut.
n
mt = xit yi , t = 0,1,2,...
i =1
mt* = x t f ( x, )dx , t = 0,1,2,...
= s2
2
85
dimana pada sisi kiri adalah rerata dan variansi distribusi gamma dan sisi kanan
adalah rerata sample dan variansi sample terkoreksi. Dengan memecahkan persamaan
sebelumnya di atas, didapat:
x
= 2
s
x2
= 2
s
Penulisan untuk kasus di atas dengan R adalah sebagai berikut:
> x.gam<-rgamma(200,rate=0.5,shape=3.5) # sampling dari distribusi
gamma dengan = 0.5 dan = 0.35 (parameter bentuk)
> a.est
[1] 4.153633
n
L( x1 , x2 ,..., xn , ) = f ( xi , )
i =1
Selanjutnya kita dapat menggunakan metode analisis matematik (turuan parsial sama
dengan nol) bila fungsi likelihoodnya cukup sederhana, namun seringnya kita
mengoptimasi L(x1, x2, , xn, ) menggunakan metode iterasi. MLE mempunyai
beberapa sifat statistik dan beberapa keuntungan.
Misalkan, dalam kasus distribusi gamma, fungsi likelihoodnya adalah:
86
n
x
n n
1 x n n
L( x1 , x2 ,..., xn , ) = f ( xi , , ) = ) ( xi ) 1 e
i
xi e
i
=( i =1
i =1 i =1 ( ) ( ) i =1
n n
log( L) = n log( ) n log(( )) + ( 1) log xi xi
i =1 i =1
Pertama ditentukan nilai awal parameter penaksir secara acak, tetapi dapat pula
digunakan metode moment untuk menentukan nilai awal parameter penaksir tersebut.
Perintah mle( ) digunakan untuk menaksir parameter setiap jenis pdf. Untuk hal ini
perlu diketahui bahwa ekspresi analitik likelihood perlu diketahui.
shape rate
3.68320097 0.52910229
(0.35290545) (0.05431458)
87
> fitdistr(x.wei,densfun = dweibull, start = list(scale=1,shape=2))#
fitting parameter pdf Weibull
scale shape
-1.04721828 2.04959159
(0.03814184) (0.11080258)
mean sd
9.9355373 2.0101691
(0.1421404) (0.1005085)
y i yi*
= i =1
n
n
(y i yi* )
=
2 i =1
n
dimana yi adalah frekuensi empiric dan yi* adalah nilai yang dicocokkan.
Berikut adalah beberapa pengukuran relative:
n
y i yi*
= n
= i =1
n
yi n
i =1
y
i =1
i
(y )
n
2
yi* / n
2 i
=
2
n
= i =1
n
yi n
i =1
y /n
i =1
i
2
(y i yi* ) 2
2
2 = n
= i =1
n
y 2
i /n y
i =1
2
i
i =1
Keterangan: biasanya indeks tersebut merupakan persentase dari rerata yang sesuai.
88
0 1 2 3 4 5 6 7 8
21 29 46 53 28 16 4 2 1
> freq.os<-vector()
> for(i in 1: length(tab.os)) freq.os[i]<-tab.os[[i]] #
vektor frekuensi
empirik
> freq.ex<-(dpois(0:max(x.poi),lambda = lambda.est)*200) # vektor
frekuensi yang diharapkan atau fitted (expected)
> freq.os
[1] 21 29 46 53 28 16 4 2 1
> freq.ex
Suatu teknik grafik untuk menghitung goodness of fit dapat menggambarkan kurva
pdf dan histogram dalam satu kesatuan seperti pada gambar 5.31. Adapun
penulisannya dalam R adalah sebagai berikut:
> h<-hist(x.norm,breaks=15)
> xhist<-c(min(h$breaks),h$breaks)
> yhist<-c(0,h$density,0)
> xfit<-seq(min(x.norm),max(x.norm),length=40)
> yfit<-dnorm(xfit,mean=mean(x.norm),sd=sd(x.norm))
> plot(xhist,yhist, type = "s", ylim = c(0,max(yhist, yfit)),
main=Normal pdf dan histogram)
> lines(xfit,yfit, col=red)
89
Gambar 5.31: Kurva dan histogram pdf Normal
2
n
ai x(i )
W = ni =1
( xi x )2
i =1
> shapiro.test(x.norm)
data: x.norm
W = 0.9938, p-value = 0.5659
90
p-value lebih tinggi dibandingkan tingkat (level) signifikansi yang biasanya
digunakan untuk menguji hipotesis statistik. Hipotesis nol akan diterima apabila
sample data termasuk dalam distribusi Gaussian.
data: x.norm
X-squared = 0.539, df = 2, p-value = 0.7638
Suatu teknik pengujian yang diajukan oleh Cucconi (ahli statistik Italia) menguji
kenormalan tanpa minimbulkan masalah penaksiran parameter data sample.
Misal x1 x2 , xn sample variabel kontinu dan 1, 2, n himpunan bilangan
acak normal standard berukuran n, misalkan:
n 1
i
2
r =n eq= i =1
n 1
xi x r
kita pertimbangkan transformasi xi: yi = q + dimana x adalah rerata
n
sample dan adalah akar kuadrat variansi sample.
Disini dapat dilihat jika xi berasal dari populasi normal dan yi berdistribusi normal
standard maka kita dapat menggunakan uji Kolmogorov-Smirnov untuk menguji
hipotesis tersebut. Berikut adalah contoh penulisan di R:
data: y
D = 0.0298, p-value = 0.9943
alternative hypothesis: two.sided
Paket nortest (harus di download dari situs CRAN) digunakan untuk melakukan
uji kenormalan hingga 5 cara yang berbeda, yaitu:
91
1) sf.test()melakukan uji Shapiro-Francia:
data: x.norm
W = 0.9926, p-value = 0.3471
dimana,
n
(2i 1)
S = [ln F ( xi ) + ln(1 F ( xn + i +1 ))] , n adalah ukuran sample, dan F(x) adalah
i =1 n
fungsi distribusi kumulatif (CDF). R hanya menyediakan uji ini untuk cek
kenormalan:
data: x.norm
A = 0.4007, p-value = 0.3581
(F ( x) F ( x) )
2
W2 = n f ( x)dx
data: x.norm
W = 0.0545, p-value = 0.4449
92
data sample) dari hipotesis distribusi normal tidak diketahui. Uji ini cukup ampuh
untuk data sample yang berukuran kecil. Uji Lilliefors mengevaluasi hipotesis bahwa
X berdistribusi normal dengan suatu nilai rerata dan variansi berbanding hipotesis
alternative bahwa X tidak berdistribusi normal.
Uji ini membandingkan distribusi empiric X dengan distribusi normal dengan rerata
dan variansi yang sama dengan X.
data: x.norm
D = 0.0414, p-value = 0.5509
Uji ini serupa dengan uji Chi-square 2 yang digunakan untuk uji Goodness of fit
pada distribusi normal. Berikut adalah penulisan dalam perintah di R untuk uji chi-
square:
data: x.norm
P = 10.12, p-value = 0.753
1. Misalkan, tiap akhir tahun perusahaan akan memberikan bonus kepada pegawai
berdasarkan penjualan dalam beberapa bulan terkahir dengan nilai (dalam juta)
12 0.4 5 2 50 8 3 1 4 0.25
93
2. Dengan menggunakan data yang sama, buatlah histogram untuk penjualan tersebut
3. Misalkan, gunakan data set pada R untuk data Orange. Gambarkan boxplot untuk
masing-masing variabel (Tree, age, circumference) data tersebut.
(petunjuk: > boxplot(nama_variabel, main=title boxplot,
horizontal=TRUE)
5. Bacalah plot stem dan plot daun berikut, masukkanlah data dan buatlah
histogramnya!
6. Pada library (Packages ->Load package ->MASS) MASS, pilih data UScereal yang
mengandung informasi tentang sarapan sereal yang populer . Attach data tersebut
dengan cara berikut:
> library(MASS)
> data(UScereal)
> attach(UScereal)
> names(UScereal)
94
Lakukan uji hipotesis untuk menentukan apakah ada perbedaan antara dua tipe
program tersebut terhadap daya ingat mahasiswa ?
8. Data set InsectSpray pada data built-in di R, berbicara tentang jumlah serangga
dalam beberapa area yang diberi perlakukan dengan 6 jenis semprotan (spray)
berbeda. Data sudah dalam format untuk dilakukan ANOVA satu arah- yaitu vektor
dengan data(count), dan satu factor yang menggambarkan level (spray). Pertama,
buatlah boxplot side-by-side untuk melihat apakah ada kesamaan mean. Kemudian
lakukan ANOVA satu arah untuk melihat apakah terdapat kesamaan mean ?
95