ANALISISDATASTATISTIK
DENGAN
sht90
Dedicatedto
When the Lord created the world and people to live in it an enterprise
which, according to modern science, took a very long time I could well
imagine that He reasoned with Himself as follows: If I make everything
predictable, these human beings, whom I have endowed with pretty good brains,
will undoubtedly learn to predict everything, and they will thereupon have no
motive to do anything at all, because they will recognize that the future is
totally determined and cannot be influenced by any human action. On the other
hand, if I make everything unpredictable, they will gradually discover that
there is no rational basis for any decision whatsoever and, as in the first case,
they will thereupon have no motive to do anything at all. Neither scheme
would make sense. I must therefore create a mixture of the two. Let some
things be predictable and let others be unpredictable. They will then, amongst
many other things, have the very important task of finding out which is which.
Small Is Beautiful
E.F.SCHUMACHER
Untuk
Azizah, Alivia, Vanissa
ii
sht90
KataPengantar
KATAPENGANTAR
R adalah suatu sistem untuk analisis data yang termasuk kelompok software
statistik open source yang tidak memerlukan lisensi atau gratis, yang dikenal dengan
freeware. Sampai saat ini, pengguna statistika di Indonesia masih belum banyak yang
menggunakan R untuk keperluan analisis data. Sebagian besar pengguna statistika di
Indonesia masih menggunakan paketpaket statistik komersil, seperti SPSS, MINITAB,
Splus,SAS,atauEviews.Salahsatufaktorpenyebabnyaadalahmasihterbatasnyabuku
tentangRyangdalambahasaIndonesia.
Buku ini bukan merupakan suatu buku teks tentang teoriteori dalam analisis
statistik,tetapilebihmerupakanbukuterapantentangmetodemetodestatistikdengan
penggunaan R. Tujuan penulisan buku ini adalah untuk menunjukkan bagaimana cara
melakukan analisis data statistik dengan menggunakan R. Dalam hal ini, ditunjukkan
bagaimanaRsebagaisuatupaketstatistikyangpowerfuldanmenyediakansistemgrafik
yang baik untuk mendukung analisis. Jika proses perhitungan dalam analisis data
menjadimudah,makaenergidaripenggunastatistikadiharapkandapatlebihdifokuskan
padapemahamantentangdatayangdianalisis.
PaketRmemilikifasilitasyangsangatbanyakuntukanalisisdatastatistik,mulai
dari metode yang klasik sampai dengan yang modern. Pada Bab 1 diuraikan tentang
paketstatistikR,yaitutentangsejarahsingkat,caramemperolehdanmenginstal,serta
fasilitas RGUI (Graphical User Interface) atau RCommander dan cara menginstalnya.
Bab2dan3membahastentangmanajemendatadiR,khususnyadenganmenggunakan
fasilitasdiRCommanderdanperintahlangsungdiRConsole.
Analisisgrafik padaR dijelaskanpada Bab 4, khususnya penggunaan fasilitas di
RCommander.PadaBab5dibahastentangpenggunaanfasilitasdiRCommanderuntuk
perhitungan fungsi distribusi peluang, yang mencakup perhitungan peluang pada
distribusikontinudandiskrit.Bahasantentanganalisisstatistikdeskriptifdijelaskanpada
Bab 6. Pada Bab 7 dijelaskan tentang penggunaan fasilitas di RCommander untuk
analisisstatistikinferensi,yangmencakupujihipotesis(tentangratarata,proporsi,dan
varians), analisis regresi, dan model linear tergeneralisir (GLM). Pada bagian akhir dari
babinidiberikanringkasanbeberapaperintahdanlibraryyangberkaitandengananalisis
regresi. Dalam Bab 8 dibahas tentang analisis grafik dengan menggunakan perintah
langsungdiRConsoleataucommandline.
Bab9membahastentangpenggunaanRuntukanalisisruntunwaktu.Dalambab
ini ada tiga subbab utama tentang modelmodel dalam analisis runtun waktu yang
dibahas, yaitu model tren linear, model eksponensial smoothing, dan model ARIMA.
PadaBab10dijelaskantentangpenggunaanRuntukanalisismultivariat,yangmencakup
tentangAnalisisFaktor,AnalisisDiskriminan,danAnalisisCluster.Padaakhirnya,Bab11
dijelaskantentangpemrogramandiR.
iii
sht90
KataPengantar
Surabaya,09September2008
Penulis,
Suhartono
iv
sht90
DaftarIsi
DAFTARISI
KATAPENGANTAR
hal.
iv
DAFTARISI
vi
BAB1.PAKETSTATISTIKR
1.1Pendahuluan
1.2 SejarahSingkatR
1.3CaraMemperolehR,PaketdanLibrary
1.4InstalasiRdalamSistemOperasiWindows
1.5GUIRCommanderdanInstalasinyadalamSistemOperasiWindows
1.6ManajemenDirektoriKerjadiR
1.7Fasilitashelp
1.7.1Mencarihelpdarisuatuperintah(command)tertentu
1.7.2Menggunakanhelpsearchengine
1.7.3OnlineSearchEngine
1
1
1
1
2
4
6
10
10
12
15
BAB2.MANAJEMENDATADIPAKETR
2.1DataEntrymenggunakanRGuidenganRCommander
2.2 MenampilkandatayangsedangaktifdiRCommander
2.3 EditingdatadiRCommander
2.4 ImportingdatadiRCommander
2.4.1ImportingdatafileExceldiRCommander
2.4.2ImportingdatafileSPSSdiRCommander
2.4.3ImportingdatafileMINITABdiRCommander
16
16
19
20
20
20
22
22
24
25
25
27
2.5 Memilihdatasetyangaktif
2.6 Transformasidatasetataupengaturanvariabelpadadataset
2.6.1Recodeataukodeulangpeubah
2.6.2Computeatauhitungpeubahbaru
BAB3.MANAJEMENDATADIRDENGANCOMMANDLINE
3.1JenisjenisDataObjek
3.1.1DataArraySatuDimensiatauDataVektor
3.1.2DataMatriks
3.1.3DataFrame
3.1.4DataList
29
30
30
31
34
37
38
38
39
41
3.2 ImportingDatapadaCommandLine
3.2.1MembacaFileASCII
3.2.2ImportingDataFileExcel
3.2.3ImportingDatadariPaketStatistik
sht90
DaftarIsi
BAB4.GRAFIKMENGGUNAKANRCommander
4.1GrafikdalamRGUI
4.2 GrafikHistogram
4.3 DiagramDahandanDaun(StemandLeaf)
4.4 GrafikBoxPlot
4.5 GrafikQQPlot
4.6 GrafikDiagramPencar(ScatterPlot)
4.7 GrafikPlotRatarata(Mean)
4.8 DiagramBatang(BarChart)
4.9 DiagramLingkaran(PieChart)
4.10PlotIndeks
43
45
46
48
50
51
53
55
56
57
58
BAB5.FUNGSIDISTRIBUSIPELUANGDIRCommander
5.1FungsiDistribusiKontinu
5.1.1MenghitungKuantildariDistribusiNormal
5.1.2MenghitungPeluangdariDistribusiNormal
5.1.3MembuatPlotdariDistribusiNormal
5.1.4MembangkitkanDatadariDistribusiNormal
61
62
62
63
64
67
69
69
70
72
75
5.2FungsiDistribusiDiskrit
5.1.1MenghitungKuantildariDistribusiBinomial
5.1.2MenghitungPeluangdariDistribusiBinomial
5.1.3MembuatPlotdariDistribusiBinomial
5.1.4MembangkitkanDatadariDistribusiBinomial
BAB6.STATISTIKDESKRIPTIFMENGGUNAKANRCommander
6.1RingkasanNumerik(Summary)
6.1.1RingkasanNumerikdariSemuaVariabel
6.1.2RingkasanNumerikuntukSuatuVariabel
78
79
79
81
83
84
86
87
88
89
91
6.2 DistribusiFrekuensi
6.3 TabelStatistika
6.4 MatriksKorelasi
6.5 UjiKorelasi
6.6 UjiKenormalanShapiroWilk
6.7 TabelKontingensiDuaArah
6.8 EntryLangsungDataFrekuensiuntukTabelKotingensiDuaArah
BAB7.STATISTIKINFERENSIMENGGUNAKANRCommander
7.1PengujianRatarata(Mean)
7.1.1PengujianRataratasampeltunggal
7.1.2PengujianPerbedaanRatarataDuasampelsalingbebas
7.1.3PengujianPerbedaanRatarataSampelBerpasangan
vi
93
95
95
98
102
sht90
DaftarIsi
7.1.4AnalisisVarianssatuarah(OnewayANOVA)
7.1.5AnalisisVariansduaarah(MultiwayANOVA)
105
109
7.2PengujianKesamaanVariansi
7.2.1PengujianKesamaanDuaVariansi
7.2.2UjiBartlett
7.2.3UjiLevene
112
112
114
115
7.3PengujianProporsi
7.3.1PengujianProporsiSampelTunggal
7.3.2PengujianProporsiDuaSampel
116
117
118
7.4AnalisisRegresiLinear
7.4.1RegresiLinear
7.4.2ModelLinear
120
121
123
127
7.5GeneralizedLinearModel
7.6Rangkumanperintahdanlibraryyangberkaitandengan
AnalisisRegresi
130
BAB8.GRAFIKMENGGUNAKANRCLI
8.1FungsifungsiPlotUtama
8.1.1Perintahplot()
8.1.2Perintahqqnorm(x),qqline(x),qqplot(x,y)
8.1.3Perintahhist(x)
8.1.4Perintahimage(x,y,z,),contour(x,y,z,),persp(x,y,z,)
8.1.5Argumenargumenuntukfungsiplotutama
144
146
146
150
154
155
156
157
158
158
160
8.2.FungsifungsiPlotTambahan
8.3 FungsifungsiPlotyangbersifatinteraktif
8.4 NotasiMatematikapadaPlot
8.5 Settingparametergrafik
BAB9.ANALISISRUNTUNWAKTUDENGANR
9.1ModelTrendLinear
9.2.ModelExponentialSmoothing
9.1.1ModelHoltWintersAditif
9.1.2ModelHoltWintersMultiplikatif
9.1.3ModelEksponensialGanda
9.1.4ModelEksponensialSmoothingSederhana
162
163
165
167
171
173
174
176
181
189
194
197
203
9.3 ModelARIMA
9.3.1ContohKasusModelARIMANonmusimanyangStasioner
9.3.2ContohKasusModelNonmusimanyangTidakStasioner
9.3.3ModelARIMAMusiman
9.3.4ContohKasusModelARIMAMusiman
9.3.5KriteriaPemilihanModel
vii
sht90
DaftarIsi
9.4 Rangkumanperintahdanlibraryyangberkaitandengan
AnalisisRuntunWaktu
205
BAB10. ANALISISMULTIVARIATDENGANR
208
208
210
212
10.1 AnalisisFaktor
10.2 AnalisisDiskriminan
10.3 AnalisisCluster
BAB11. REGRESINONPARAMETRIKDANESTIMASIDENSITAS
215
215
219
221
227
232
11.1 EstimasiDensitasdenganKernel
11.2 RegresiNonparametrikdenganKernel
11.3 RegresiNonparametrikdenganSpline
11.4 JenisjenisBasisSpline
11.5 RangkumanlibraryuntukAplikasiKerneldanSpline
BAB12. MODELNONLINEAR
234
234
237
12.1 EstimasiModelRegresiNonlinear
12.2 PerintahnlsdanSSasympOriguntukestimasimodelnonlinear
BAB13. PENGENALANPEMROGRAMANDALAMR
241
241
244
245
248
253
13.1 PenulisanFungsi
13.2 TypeDatadanOperator
13.3 ControlFlowdidalamR
13.4 Beberapatopikyangberhubungandenganfungsi
13.5 Contohcontohfungsi
DAFTARPUSTAKA
256
DAFTARINDEKS
258
TENTANGPENULIS
261
viii
sht90
PaketStatistikR
BAB1
PAKETSTATISTIKR
1.1. Pendahuluan
Secara umum ada dua macam kelompok paket software statistik untuk
keperluan analisis data, yaitu kelompok software komersil dan kelompok software
statistik open source atau freeware. Beberapa contoh software statistik komersil yang
populardiIndonesiaadalahSPSS, MINITAB,Eviews,SAS,danSplus.Sedangkancontoh
dari freeware statistik antara lain R, Open Stats, SalStat, Vista, dan lainlain (lihat
http://www.statistics.com/content/freesoft/AZlisting.html).
Softwarestatistikyangkomersilmensyaratkanlisensidenganhargayangrelatif
sangat mahal untuk ukuran sebagian besar pengguna di Indonesia. Dengan demikian,
salah satu alternatif penyelesaian dari mahalnya lisensi tersebut adalah melalui
penggunaanfreewarestatistik,khususnyaR.
1.2. SejarahSingkatR
R dalam versi terakhirnya, yaitu versi 2.7.2 per 25 Agustus 2008, merupakan
suatusistemanalisisdatastatistikyangkompletsebagaihasildarikolaborasipenelitian
berbagai ahli statistik (statistisi) di seluruh dunia. Versi awal dari R dibuat pada tahun
1992diUniversitasAuckland,NewZealandolehRossIhakadanRobertGentleman.Pada
saat ini, source code kernel R dikembangkan terutama oleh R Core Team yang
beranggotakan 17 orang statistisi dari berbagai penjuru dunia (lihat http://www.r
project.org/contributors.html).Selainitu,parastatistisilainpenggunaRdiseluruhdunia
jugamemberikankontribusiberupakode,melaporkanbug,danmembuatdokumentasi
untukR.
Paket statistik R bersifat multiplatforms, dengan file instalasi binary/file tar
tersedia untuk sistem operasi Windows, Mac OS, Mac OS X, Linux, Free BSD, NetBSD,
irix,Solaris,AIX,danHPUX.Secaraumum,sintaksdaribahasaRadalahekuivalendengan
paket statistik Splus, sehingga sebagian besar keperluan analisis statistika, dan
pemrogramandenganRadalahhampiridentikdenganperintahyangdikenaldiSplus.
1.3. CaraMemperolehR,PaketdanLibrary
R dapat diperoleh secara gratis di CRANarchive yaitu The Comprehensice R
Archive Network di alamat http://cran.rproject.org. Pada server CRAN ini dapat
didownloadfileinstalasibinarydansourcecodedariRbasesystemdalamsistemoperasi
Windows(semuaversi),beberapajenisdistrolinux,danMacintosh.
Fungsi dan kemampuan dari R sebagian besar dapat diperoleh melalui Addon
packages/library.Suatulibraryadalahkumpulanperintahataufungsiyangdapatdi
sht90
PaketStatistikR
gunakan untuk melakukan analisis tertentu. Sebagai contoh, fungsi untuk melakukan
analisis time series dapat diperoleh di library ts. Instalasi standar dari R akan memuat
berbagailibrarydasar,antaralainbase,datasets,graphics,utils,danstats.Librarylain
hasilkontribusidaripenggunaR(diluaryangstandar)harusdiinstalsatupersatusesuai
denganyangdibutuhkanuntukanalisis.Daftarsemualibraryyangtersediadapatdiakses
darilinkdownloadCRANdialamathttp://cran.rproject.org.
1.4. InstalasiRdalamSistemOperasiWindows
Tahapan utama sebelum melakukan instalasi R dalam sitem operasi Windows
adalah mendownload file R2.7.2win32.exe yang dapat diperoleh di http://cran.r
project.org.Setelahitu,langkahlangkahinstalasiRdapatdilakukansepertiberikut:
Klikduakali(doubleclick)fileR2.7.2win32.exeyangterdapatpadadirektoriyang
telah disediakan, maka akan muncul jendela dialog seperti pada Gambar 1.1.
berikutini.
Gambar1.1.JendeladialogawalinstalasiRdalamsitemoperasiWindows
Setelah itu, lanjutkan jalannya proses instalasi dengan mengikuti Wizard dan
menggunakanpilihanpilihandefaultinstalasi.
Jika proses instalasi telah selesai, klik Finish untuk keluar dari proses instalasi.
Apabila semua proses berjalan dengan sukses, maka pada Desktop Windows dan
StartMenudariWindowsakanterdapatShortcutdariRsepertipadaGambar1.2.
berikutini.
sht90
PaketStatistikR
Gambar1.2.ShortcutdariR
Langkah terakhir jika instalasi R telah selesai adalah melakukan pengecekan atau
pengujianapakahprogramRdapatberjalandenganbaik.Lakukanklikduakalipada
shortcut R di Desktop atau pada Start Menu. Jika instalasi berlangsung dengan
baik,makajendelaprogramRakanterbukasepertiyangterlihatpadaGambar1.3.
Gambar1.3.JendelaawalprogramR,jikainstalasiberjalansukses
JikaselesaibekerjadenganR,makauntukkeluardariRdapatdilakukandengandua
cara,yaitu:
1. Ketikkanq()padacommandlinediRconsole,yaitu
>q()
2. PilihmenuFile,pilihExit,dankemudianklikYespadadialogSaveWorkspace
Image.
sht90
PaketStatistikR
1.5. GUIRCommanderdanInstalasinyadalamSistemOperasiWindows
Pada awalnya, interaksi utama antara pengguna dengan R adalah bersifat
Command Line Interface (CLI). Dengan demikian, untuk dapat menggunakan R di
perlukan penyesuaianpenyesuaian bagi pengguna yang telah terbiasa dengan fasilitas
Point and Click Graphical User Interface (GUI). Untungnya, pada saat ini telah tersedia
beberapaGUIsederhanauntukkeperluanbeberapaanalisisstatistikatertentu,khusus
nyayangberkaitandenganmanajemendatadiR.LibraryRcommanderyangterdiridari
Rcmdr, RcmdrPlugin.TechingDemos, RcmdrPlugin.epack, RcmdrPlugin.HH, dan
RcmdrPlugin.FactoMineR,merupakanlibrarytambahandariRuntukmemfasilitasiGUI
yangdapatdigunakanuntukberbagaianalisisstatistikadasar.
Instalasi libray Rcommander dapat dilakukan apabila filefile library di atas
sudah didownload dari server CRAN. Jika instalasi untuk R telah selesai dan berjalan
sukses,makalangkahlangkahuntukintalasiRcommanderadalahsebagaiberikut:
1. Pertama, jalankan program R sampai jendela program R terbuka (seperti yang
terlihatpadaGambar1.3diatas).
2. UntukmenginstalRcommander,pilihmenuPackages,pilihInstallpackage(s)from
localzipfiles.KemudianarahkanlokasipadadialogLookinkedirektoridimana
file Rcmdr_1.310.zip, RcmdrPlugin.HH_1.15.zip, RcmdrPlugin.epack_1.01.zip,
RcmdrPlugin.TechingDemos_1.310.zip, RcmdrPlugin.FactoMineR_1.00.zip. Pilih
semuafiletersebut,sepertiyangterlihatpadajendeladialogpadaGambar1.4.
Gambar1.4.JendeladialoguntukinstalasiRcommander
sht90
PaketStatistikR
Kemudian klik Open, maka R akan menginstal paket Rcommander yang ditandai
dengandialogberikutpadajendelaRconsole.
>utils:::menuInstallLocal()
package 'RcmdrPlugin.TeachingDemos' successfully unpacked and MD5 sums
checked
package'Rcmdr'successfullyunpackedandMD5sumschecked
package'RcmdrPlugin.epack'successfullyunpackedandMD5sumschecked
package 'RcmdrPlugin.FactoMineR' successfully unpacked and MD5 sums
checked
package'RcmdrPlugin.HH'successfullyunpackedandMD5sumschecked
updatingHTMLpackagedescriptions
>
3. PaketRcommanderdapatdijalankandenganduacarayangberbeda,yaitu:
>library(Rcmdr)
MemilihmenuPackages,pilihLoadpackagedankemudianmemilihRcmdr
pada daftar paket library yang telah terinstal, seperti yang terlihat pada
Gambar1.5.
Gambar1.5.JendeladialoguntukmenjalankanRcommander
sht90
PaketStatistikR
Apabila proses instalasi paket Rcommander berjalan dengan sukses, maka paket
RcommandertersebutakandiloadingdanmunculsepertipadaGambar1.6berikut
ini.
Gambar1.6.JendelaawaldaripaketlibraryRcommander
Pada saat ini, bahasa yang digunakan dalam paket Rcommander sudah ada yang
dalam bahasa Indonesia sebagai hasil pengembangan dan kontribusi statistisi di
Indonesia.
4. Untuk keluar dari paket Rcommander dan sekaligus R dapat dilakukan dengan
memilihmenuFile,pilihKeluar,danklikpadapilihanDariCommanderdanRyang
tersediadijendelaRcommander.
1.6. ManajemenDirektoriKerjadiR
CarakerjadariRadalahsamadenganSplus,yaitubekerjadengansatudirektori
untuk satu projek. R akan menyimpan file image dari semua obyek atau internal data
dan history dari semua perintah yang pernah diketikkan di jendela Rconsole pada
direktorikerjasecaraotomatisataudefaultdenganfileberekstensi.Rdata.Lokasi
sht90
PaketStatistikR
1.6.1. Mengubahlokasidirektorikerjaatauworkspace
Berikut ini adalah langkahlangkah yang dapat digunakan untuk membuat
direktorikhususdarisuatupekerjaandenganmenggunakanR.
Misalkan kita telah mempunyai direktori C:\Kerja_dg_R (buatlah direktori ini jika
belum ada). Langkah pertama, buatlah satu direktori baru di C:\Kerja_dg_R
dengan nama direktori Nama_Pekerjaan, misalkan Kerja1. Dengan demikian,
padatahapinidiperolehsuatudirektoribaruyaitu
C:\Kerja_dg_R\Kerja1.
BuatlahcopydarishortcutprogramRdidesktopwindow,danrenameshortcutini
sebagai shortcut Kerja1. Sehingga di desktop window muncul shortcut Kerja1
sepertiGambar1.7berikutini.
Gambar1.7.ShortcutdidesktopwindowdengannamaKerja1
Kemudian arahkan mouse pada shortcut tersebut dan klik kanan. Pilih Properties
danganti informasipadakolomStartin menjadi C:\Kerja_dg_R\Kerja1 seperti
yangterlihatpadaGambar1.8,setelahituklikOK.
Untuk mengetahui perubahan lokasi direktori kerja di R, lakukan klik dua kali
pada icon shortcut Kerja1 untuk menjalankan R. Sebagai ilustrasi sederhana, ketikkan
beberapabarisperintahberikutinisetelahjendelaRterbuka.
>x=1:15
>y=x+5
>x
[1]123456789101112131415
>y
[1]67891011121314151617181920
sht90
PaketStatistikR
Gambar1.8.PerubahanlokasidirektorikerjakeC:\Kerja_dg_R\Kerja1
sht90
PaketStatistikR
1.6.2. Menyimpanimagedirektorikerja
Pada bagian sebelumnya telah dijelaskan bagaimana semua obyek yang
digunakan dalam satu sesi pemakaian R, yaitu mulai dibukanya program R sampai
ditutup kembali, akan disimpan secara default ke dalam file .Rdata. Supaya filefile
pekerjaan lebih terorganisir, R memberikan fasilitas tambahan untuk menyimpan data
atauobyek yang digunakandalamsetiap sesiR ke dalam file workspacetertentu yang
memiliki ekstensi .Rdata. Filefile ini selanjutnya dapat diload kembali jika diperlukan.
Sebagai contoh, jalankan program R dan ketikkan beberapa perintah berikut ini ke
dalamjendelaRconsole.
>x=1:15
>y=x+5
>x
[1]123456789101112131415
>y
[1]67891011121314151617181920
Prosespenyimpanandataatauobyek,yaituxdanysepertiyangtertulisdiatas,
kedalamdirektoriC:\Kerja_dg_R\Kerja1dengannamafilecoba1.Rdatadapatdilakukan
dengan menggunakan menu File, dan pilih Save Workspace . Selanjutnya lakukan
keluar dari R, dan pilih No (yang berarti tidak menyimpan imag dari file kerja) pada
dialogSaveWorkspaceImage?SekarangjalankankembaliprogramR,makadataatau
obyekdifilecoba1.Rdatadapatdiloadkembalidenganmenggunakanduamacamcara,
yaitu:
PilihmenuFile,danpilihLoadWorkspace,dansetelahitupilihfiledidirektori
C:\Kerja_dg_R\Kerja1dengannamacoba1.Rdata
GunakanperintahberikutpadajendelaRconsole
>load("C:\\Kerja_dg_R\\Kerja1\\Coba1.RData")
>objects()
[1]"x""y"
>x
[1]123456789101112131415
>y
[1]67891011121314151617181920
DarijendelakotakRconsolediatasdapatdilihatbahwasemuaobyekyangdikerjakan
pada sesi sebelumnya telah berhasil diload kembali. Dengan cara yang sama, semua
historydariperintahpadasuatusesidapatdisimpanmelaluimenuFile,danpilihSave
sht90
PaketStatistikR
History . Untuk melakukan load kembali history pada sesi sebelumnya yang sudah
tersimpan ini, dapat dilakukan dengan melalui menu File, dan pilih Load History ,
kemudianpilihnamafilehistoryyangakandipanggilkembalitersebut.HistorydarisesiR
yang telah diload ini dapat diakses dengan menggunakan tanda panah ke atas dan ke
bawah.
1.7. Fasilitashelp
Secara umum ada beberapa fasilitas help dari R yang dapat diakses dengan
berbagaicara,antaralain:
Mencarihelpdarisuatuperintah(command)tertentu
Menggunakanhelpsearchengine
OnlineSearchEngine
1.7.1. Mencarihelpdarisuatuperintah(command)tertentu
Adabeberapaperintahyangdapatdigunakanuntukmencarihelpataubantuan
terhadap suatu fungsi atau perintah dari R yang telah diketahui namanya. Sebagai
contoh, jika ingin diketahui secara detail tentang suatu perintah atau fungsi R yang
bernama plot, maka pada jendela Rconsole dapat diketikkan salah satu perintah
berikutini,yaitu:
>help(plot)
>?plot
Jendela help yang sama dapat juga diperoleh dengan menggunakan menu dengan
pilihanHelp, dan pilihR function (text)dan setelahjendeladialogmuncul,ketikkan
kataplotsepertiyangterlihatpadaGambar1.9berikutini.
Gambar1.9.Jendeladialoghelpuntuksuatufungsiatauperintah
10
sht90
PaketStatistikR
Setelah salah satu dari perintah di atas dijalankan, maka akan ditampilkan
bagian dari jendela help dari perintah plot seperti yang terlihat pada Gambar 1.10
berikutini.
Gambar1.10.Hasilpencarianhelpuntuksuatufungsiplot
Penjelasandarijendelahasilpencarianhelpuntukfungsiplotiniadalahsebagaiberikut:
Ada dua kolom jendela yang muncul, yaitu kolom kiri tentang index dari fungsi
atau perintah yang dicari (misal plot), dan kolom kanan adalah hasil atau
penjelasandaripencarianfungsiyangingindiketahui.
Pada bagian kiri atas kolom jendela hasil help adalah tentang keterangan nama
dari perintah atau fungsi yang sedang ditampilkan dan nama paket atau library
yangmemuatperintahtersebut.Dalamcontohdiatas,untukperintahplotdapat
dilihatbahwaperintahplotinitersimpandalampaketataulibrarygraphics..
Padasetiapjendelahelpdarisuatuperintahsecaraumumakanmemuatbagian
bagianberikut:
Description:uraiansingkattentangperintahtersebut
Usage:uraiantentangsyntaxperintahuntukpenggunaanperintahtersebut.
Arguments:uraiantentangargumenargumenyangdiperlukandarifungsi
atauperintahtersebut.
Details:uraianyanglebihlengkap(daripadayangdiberikanpadabagian
description)tentangperintahtersebut.
11
sht90
PaketStatistikR
Values:uraiantentangoutputperintahtersebut.
Author(s):uraiantentangauthordariperintahtersebut.
References:uraiantentangreferensiyangdapatdigunakanuntuk
memperolehketeranganlebihlanjutdariperintahtersebut.
Seealso:bagianiniberisidaftarperintahataufungsiyangberkaitan
eratdenganperintahtersebut.
Example:bagianiniberisicontohcontohpenggunaanperintahtersebut.
1.7.2. Menggunakanhelpsearchengine
Metodepencarianhelplainyangdapatdilakukanadalahdenganmenggunakan
pencarianterhadapkatakunci.Beberapametodeyangdapatdilakukanuntuktujuan
inidapatdijelaskansepertiberikutini.
a.Menggunakanperintahapropos(katakunci)
Perintah ini dapat digunakan untuk memperoleh daftar perintahperintah dari
semua paketatau library yangtelah terinstal pada sistem Ryang memuat suatukata
kunci.Berikutiniadalahcontohhasilperintahapropos(plot).
>apropos("plot")
[1]".__C__recordedplot"
[4]"barplot.default"
[7]"boxplot.default"
[10]"coplot"
[13]"lag.plot"
[16]"mosaicplot"
[19]"plot.density"
[22]"plot.lm"
[25]"plot.spec"
[28]"plot.stepfun"
[31]"plot.window"
[34]"qqplot"
[37]"savePlot"
[40]"sunflowerplot"
>
"assocplot"
"biplot"
"boxplot.stats"
"fourfoldplot"
"matplot"
"plot"
"plot.design"
"plot.mlm"
"plot.spec.coherency"
"plot.ts"
"plot.xy"
"recordPlot"
"screeplot"
"termplot"
"barplot"
"boxplot"
"cdplot"
"interaction.plot"
"monthplot"
"plot.default"
"plot.ecdf"
"plot.new"
"plot.spec.phase"
"plot.TukeyHSD"
"preplot"
"replayPlot"
"spineplot"
"ts.plot"
Dari hasil jendela di Rconsole tersebut dapat dilihat output yang memuat kata kunci
plotdalamsuatunamaperintah.Outputyangdiperolehakanberbedadantergantung
padalibraryyangterinstalpadakomputer.
Output yang sama dapat pula diperoleh dengan menggunakan menu utama
pada pilihan Help, kemudian pilih Apropos dan selanjutnya ketik plot pada jendela
dialogsepertiyangterlihatpadaGambar1.11berikutini.
12
sht90
PaketStatistikR
Gambar1.11.JendeladialogAproposuntukpencariansuatuperintah
b.Menggunakanperintahhelp.search(katakunci)
Perintah ini akan melakukan pencarian terhadap sebuah string bernama kata
kuncidisemuapaketataulibraryyangtelahterinstalpadasistemR.Berikutiniadalah
contohperintahhelp.search(plot)padajendelaRconsole.
>help.search("plot")
HasildariperintahtersebutdapatdilihatpadaGambar1.12berikutini.
Gambar1.12.Hasilpencarianhelpdenganperintahhelp.search(plot)
13
sht90
PaketStatistikR
Dari hasil untuk contoh di atas dapat dilihat keterangan nama perintah atau fungsi
besertanamapaketataulibrary(katayangdidalamkurung)yangmemuatstringplot.
Output yang diperoleh akan berbeda dan tergantung pada library yang terinstal pada
komputer.
Output yang sama dapat pula diperoleh dengan menggunakan menu utama
pada pilihan Help,kemudian pilih Searchhelp dan selanjutnyaketik plot padajendela
dialogsepertiyangterlihatpadaGambar1.13berikutini.
Gambar1.13.JendeladialogSearchhelpuntukpencariansuatuperintah
c.Menggunakanversihtmldarijendelahelp
Tampilan dari help dalam versi html dapat diperoleh melalui fungsi atau
perintah help.start() pada jendela Rconsole. Selain itu, jendela help dalam html ini
dapatpuladibukamenggunakanmenupadapilihanHelp,dankemudianpilihHtmlhelp.
Berikutiniadalahcontohhelp.start()padajendelaRconsole.
>help.start()
HasildariperintahtersebutdapatdilihatpadaGambar1.14.Beberapaketeranganatau
uraiandarihasiljendelahelpversihtmladalahsebagaiberikut:
Pada bagian Manuals, diperoleh daftar link dari semua file manual dalam versi
htmldariR.Versifilepdfdarifilemanualinidapatdiaksesmelaluimenuutama
Help,danpilihaManuals(inPdf)dariR.
Pada bagian Reference terdiri dari dua informasi utama, yaitu tentang Package
yang berisi daftar semua paket atau library yang telah diinstal pada sistem, dan
tentang Search Engine & Keywords yang dapat digunakan untuk pencarian kata
kunci(keywords)dalamsemuapaketataulibraryyangtelahdiinstaldalamsistem
Ryangadadikomputer.
14
sht90
PaketStatistikR
PadabagianMiscellaneousMaterialterdiridaribeberapalinkbeberapainformasi
tambahanyangpentinguntukdiketahuilebihlanjut.
Gambar1.14.Hasilpencarianhelpdalamversihtmldenganperintahhelp.start()
1.7.3. OnlineSearchEngine
Informasi tentang R secara online dapat dicari dengan menggunakan search
engine di alamat http:\\cran.rproject.org\search.html. Pada alamat tersebut dapat
diperolehsemuainformasitentangRyangadadalamsitusCRAN,informasisemuapaket
atau library yang tersedia untu R, dan ditambah informasi yang tersedia pada archive
mailinglistrhelp@stat.math.ethz.ch.
15
sht90
ManajemendatadiPaketR
BAB2
MANAJEMENDATADIPAKETR
Manajemendatayangmeliputidataentry,edit,importdanexport,merupakan
suatulangkahyangpentingdalamanalisisstatistika.Adabeberapamacamdanukuran
datayangdapatdiolahmenggunakanR.Secaraumum,minimaladaduamacambentuk
data yang dapat diolah, yaitu data yang dimasukkan langsung lewat R editor melalui
keyboard, dan data yang sudah ditulis menggunakan Program Sheet lain, seperti Text,
SPSS, MINITAB, Access ataupun dBase. R menyediakan dua cara untuk melakukan
manajemen data, yaitu menggunakan RGUI dan melalui command line di Rconsole.
Pada bab ini, pembahasan tentang manajemen data difokuskan yang melalui RGUI,
khususnyapemakaianRCommander.
2.1. DataEntrymenggunakanRGuidenganRCommander
Padatahapawal,aktifkankembaliprogramRdenganmengklikiconshortcutnya.
KemudianloadlibraryRCommanderdenganmengetikkanperintahlibrary(Rcmdr)pada
jendela Rconsole, dan tunggu sampai RCommander selesai diloading. Jika proses
berjalansuksesmakaakannampakjendelaRCommandersepertipadaGambar2.1.
Gambar2.1.JendelaawaldaripaketlibraryRcommanderyangsuksesdiloading
16
sht90
ManajemendatadiPaketR
PengisiandatasecaralangsungviaRdenganmenggunakanRcommanderdapat
dilakukan melalui menu Data, dan pilih Dataset baru . Setelah itu, jendela dialog
pengisiannamadatasetakanditampilkan,sepertiyangterlihatpadaGambar2.2.Pada
kotakdialognamadataset,tuliskanlatihan1sebagainamadatasetbarutersebut.
Gambar2.2.Jendeladialogpengisiannamadataset
KemudianklikOK,danjendelaRGuiDataEditorakanterbukasepertipadaGambar2.3
berikutini.
Gambar2.3.JendelaRGuiDataEditoruntukpengisiandata
Pengisiannamavariabeldilakukandengancaraklikpadakolompalingatasdari
data editor. Sebagai contoh, untuk mengisikan nama variabel pertama, misalnya
responden,klikpadavar1.KemudianpadajendelaVariableeditorsepertiyangterlihat
pada Gambar 2.4, isikan responden sebagai variable name dan tipe data adalah
character(karenayangakandiisikanpadakolominiadalahnamanamaresponden).
17
sht90
ManajemendatadiPaketR
Gambar2.4.JendelaVariableeditoruntukpengisiannamavariabel
Sebagailatihan,isikandatatentangnamamahasiswa,nilaiUANtigamatapelajaran,dan
IPKsemester1,berikutinikedalamRDataeditor.
Responden
Adi
Budi
Dany
Eka
Fery
Nuri
Rury
Matematika
BIndonesia
BInggris
IPK1
8.0
7.6
6.9
8.9
9.5
7.3
6.5
9.1
8.8
8.1
9.2
9.6
8.7
7.5
8.4
8.5
7.2
9.0
9.5
7.9
8.2
3.35
3.02
2.90
3.42
3.75
3.26
2.76
Padadasarnya,prosespengisiandatainiadalahsamadenganpaketstatistikyanglain,
yaitu mulai isiannama kolom dan tipe data yangdiinputkan (numeric ataucharacter).
Setelah semua data selesai diinputkan, maka akan diperoleh tampilan Data Editor
sepertiberikutini.
Gambar2.5.JendelaDataEditorsetelahsemuadataselesaidiisikan
18
sht90
ManajemendatadiPaketR
Setelah dilakukan data entry, maka tutup jendela R Data Editor diatas untuk
mengakhiri proses data entry. Pada jendela RCommander terlihat Data set yang
dengan nama latihan1 saat ini sedang aktif, seperti yang terlihat pada Gambar 2.6.
Untuk menampilkan data yang sedang aktif di Jendela Keluaran RCommander, tulis
namadatasetyaitulatihan1diJendelaSkrip,kemudianklikKirim,makaakanterlihat
datasepertiberikutini.
Gambar2.6.JendelaRCommandersetelahdilakukanprosesentrydata
2.2.MenampilkandatayangsedangaktifdiRCommander
Untukmenampilkandatayangsedangaktifdimemori,lakukandenganmengklik
tombolLihatdataset.Setelahitujendeladataakandibukadanmenampilkandatayang
sedangaktifdimemorikomputersaatini,yaitudatalatihan1berikutini.
Gambar2.7.Jendeladatalatihan1yangsedangaktifdimemori
19
sht90
ManajemendatadiPaketR
2.3.EditingdatadiRCommander
Untuk melakukan editing terhadap data latihan1, lakukan dengan mengklik
tombolEdit data set.Setelah itujendelaData Editor akandibukakembali,danproses
editingdatadapatlangsungdilakukanpadadatadatayangsalahketik.Jikaeditingtelah
selesai dilakukan, tutup jendela Data Editor untuk kembali ke jendela Rcommander.
HasileditingyangtelahdilakukandapatdilihatdenganklikpadatombolLihatdataset.
2.4.ImportingdatadiRCommander
Seperti yang telah dijelaskan pada bagian sebelumnya, secara umum proses
data entry di RCommander dapat dilakukan dengan dua macam cara, yaitu dilakukan
langsung melalui Data Editor dan melalui import data dari format data yang diberikan
olehprogramlain.ProgramyangformatdatanyadapatdibacaolehRadalahdatadari
fileteksatauclipboard,datasetSPSS,datasetMINITAB,datasetSTATA,datadariExcel,
Access,ataudBase,sepertiyangterlihatpadajendelamenuberikut.
Gambar2.8.JendelaImpordatapadaRCommander
Pada bagian berikut ini akan dijelaskan penggunaan impor data dari Excel, SPSS, dan
MINITAB. Untuk file dari program yang lain, proses impor data melalui RCommander
dapat dilakukan secara sama dengan cara mengimpor data dari program Excel, SPSS,
ataupunMINITAB.
2.4.1.ImportingdatafileExceldiRCommander
MisalkansajadatafileExcelbelumada,danakandibuatterlebihdahulu.Buka
programExcel,setelahituisikandatatentangrespondendiatassehinggadiperolehdata
ExcelsepertiyangterlihatpadaGambar2.9.
20
sht90
ManajemendatadiPaketR
Gambar2.8.JendeladatapadaExcelyangakandiimporkeR
Langkah selanjutnya, simpan file ini sebagai file text (yaitu tab delimited txt), dengan
nama data1.txt di direktori C:\Kerja_R\. Untuk mengimpor data file ini kedalam
RCommander,pilihlahpadaRCommandermenuData,pilihImpordata,dankemudian
pilihdarifileteksatauclipboard.Padajendeladialogyangmuncul,isikaninformasi
namauntukdataset,namavariabel,danlainlain,sepertiberikutini.
Gambar2.9.JendeladialogImpordatadarifileteksatauclipboard
21
sht90
ManajemendatadiPaketR
Dalam hal ini, data hasil impor akan disimpan kedalam RCommander dengan
nama latihan2. Data ini diimpor dengan Pemisah Field/Medan adalah spasi. Klik OK,
kemudian akan muncul untuk melakukan browsing ke lokasi dari file teks yang akan
diimpor.ArahkankedirektoriC:\Kerja_R\danpilihfiledata1.txt.KemudianklikOpen,
maka sekarang data yang berada pada file data1.txt telah diimpor kedalam R
Commanderdengan nama latihan2.Sekarang, data set yang aktif pada RCommander
adalahlatihan2sepertiyangterlihatpadaGambar2.10.GunakantombolLihatdataset
untukmelihathasilimpordataini.
Gambar2.10.Jendeladialoghasilimpordatadanlatihan2sebagaidatasetaktif
2.4.2.ImportingdatafileSPSSdiRCommander
Proses impor data eksternal yang telah disimpan sebagai file SPSS, dapat
dilakukan dengan memilih pada RCommander menu Data, pilih Impor data, dan
kemudianpilihdaridatasetSPSS.Padajendeladialogyangmuncul,isikaninformasi
namauntukdataset(misallatihan3)sepertiberikutini.
Gambar2.11.JendeladialogImporDatasetSPSS
22
sht90
ManajemendatadiPaketR
KlikOK,danselanjutnyaarahkankedirektoritempatpenyimpananfileSPSSyangakan
diimpor, misalkan saja di C:\Kerja_R\ dengan nama data2.sav. Kemudian klik Open,
maka data hasil impor dari file data2.sav akan disimpan kedalam file latihan3. Pada
jendelaRCommanderterlihatdatasetlatihan3sedangaktif,sepertipadaGambar2.12.
KliktombolLihatdatasetuntukmelihathasilimpordataini.
Gambar2.12.Jendeladialoghasilimpordatadanlatihan3sebagaidatasetaktif
2.4.3.ImportingdatafileMINITABdiRCommander
Proses impor data eksternal yang telah disimpan sebagai file MINITAB adalah
ekuivalendenganimpordatateksatauSPSSsebelumnya,yaitudapatdilakukandengan
memilih pada RCommander menu Data, pilih Impor data, dan kemudian pilih dari
datasetMinitab.Padajendeladialogyangmuncul,isikaninformasinamauntukdata
set(misallatihan4)sepertiberikutini.
Gambar2.13.JendeladialogImporDatasetMINITAB
Klik OK, dan selanjutnya arahkan ke direktori tempat penyimpanan file MINITAB yang
akandiimpor,misalkansajadiC:\Kerja_R\dengannamadata3.MTP(MinitabPortable
Worksheet,lakukanpadasaatsaveasdiMinitab).KemudianklikOpen,makadatahasil
impor dari file data3.MTP akan disimpan kedalam file latihan4. Pada jendela R
Commander terlihat data set latihan4 sedang aktif, seperti pada Gambar 2.13. Klik
tombolLihatdatasetuntukmelihathasilimpordataini.
23
sht90
ManajemendatadiPaketR
Gambar2.14.Jendeladialoghasilimpordatadanlatihan4sebagaidatasetaktif
2.5.Memilihdatasetyangaktif
Pemilihan dataset yang aktif pada RCommander dapat dilakukan dengan
menggunakan menu Data, pilih Dataset aktif, dan kemudian klik Pilih dataset aktif
sepertiberikutini.
Gambar2.15.Jendeladialoguntukmemilihmenudatasetyangsedangaktif
24
sht90
ManajemendatadiPaketR
Selanjutnya, pilihlah dataset yang ingin diaktifkan dengan melakukan klik pada nama
datasetyangdipilih,kemudianklikOKsepertiberikutini.
Gambar2.16.Jendeladialoguntukmemilihdatasetyangsedangaktif
2.6.Transformasidatasetataupengaturanvariabelpadadataset
AdabeberapamenuuntuktransformasidatasetpadaRCommander,antaralain
recode atau kode ulang peubah, compute atau hitung peubah baru, standarisasi
peubah,dan lainnya.Secaralengkap,transformasi datasetyangdapatdilakukandapat
dilihatpadaGambar2.17.
Gambar2.17.Beberapamenuuntukmelakukantransformasidataset
2.6.1.Recodeataukodeulangpeubah
Kodeulangpeubahmerupakanpilihanmenupertamapadapengaturanvariabel
dataset. Misalkan saja akan dilakukan recode atau kode ulang pada variabel IPK dari
datasetlatihan4.
25
sht90
ManajemendatadiPaketR
RangenilaiIPK
Nilaikodebaru
<3.00
3.003.50
>3.50
Langkahlangkahpengkodeandapatdilakukansebagaiberikut.
BukamenurecodedenganmemilihmenuDatapadaRCommander,kemudianpilih
Atur peubah pada dataset aktif, dan selanjutnya pilih Kode ulang peubah .
Selanjutnyaakandiperolehtampilansepertiberikut.
Gambar2.18.JendelapilihanKodeulangPeubah
Kemudianarahkankevariabelipk,dannamakanhasilrecodesebagaiipk_recode.
Informasipengkodeandapatdijelaskandenganmenggunakaninformasiberikut:
0.00:2.99 = 1
3.00:3.49 = 2
else
= 3
Klik OK, dan sekarang jika dilihat pada dataset latihan4, akan diperoleh variabel
baruyaituipk_recodeyangberisikandatahasilpengkodeanulangdariipk.Lakukan
denganklikLihatdataset,sehinggadiperolehtampilandatasepertiberikut.
26
sht90
ManajemendatadiPaketR
Gambar2.19.JendeladatahasilKodeulangPeubahipkmenjadiipk_recode
2.6.2.Computeatauhitungpeubahbaru
Pilihanmenuhitung peubah barudapatdigunakanuntukmembentukvariabel
baruyangmerupakanfungsidarivariabelyangsudahada.Misalkansajaakandilakukan
transformasi terhadap variabeltinggipadadataset latihan4 menjadi variabel lain yang
dengannamatinggi_compute,yaitutinggi:100.
Langkahlangkahtransformasiiniadalahsebagaiberikut.
BukamenuHitungpeubahbarudenganmemilihmenuData,kemudianpilihAtur
peubahpadadatasetaktif,danselanjutnyapilihHitungpeubahbaru.Selanjutnya
akandiperolehtampilansepertipadaGambar2.20.
Selanjutnyaisikantinggi_computepadakolomNamapeubahbarudantinggi/100
padakolomEkspresiuntukdihitungsepertiyangterlihatpadaGambar2.20.
Klik OK, dan sekarang jika dilihat pada dataset latihan4, akan diperoleh variabel
baru yaitu tinggi_compute yang berisikan data hasil transformasi compute pada
variabeltinggi.LakukandenganklikLihatdataset,sehinggadiperolehtampilandata
baru pada kolom terakhir yaitu tinggi_compute yang merupakan hasil bagi dari
variabeltinggidengan100.
27
sht90
ManajemendatadiPaketR
Gambar2.20.JendelapilihanHitungpeubahbaru
Pengaturanatautransformasilainpadadatasetyangaktifdapatpuladilakukan
dengan menjalankan menu Data, pilih Atur peubah pada dataset aktif, dan arahkan
padatransformasiyangakanditerapkan.Bagianinihanyamenjelaskanduatransformasi
awal dari pilihan menu yang ada, yaitu recode dan compute. Transformasi lain yang
dapatdilakukanpadaRCommanderadalah:
Tambahkanbanyaknyapengamatankedataset
Standarisasipeubah
Konversipeubahnumerikkefaktor
Binpeubahnumerik
Aturulanglevelfaktor
Definisikankontrasdanfaktor
Namakanulangpeubah
Hapuspeubahdaridataset
28
sht90
ManajemenDatadiRdenganCommandLine
BAB3
MANAJEMENDATADIRDENGANCOMMANDLINE
Pada R, data yang ada dipandang sebagai suatu objek yang memiliki suatu
attributesatausifat.Sifatdataditentukanolehtypedatadanmodedata.Adaberbagai
typedatayangdikenalolehR,antaralainvektor,matriks,list,dataframe,array,factor,
dan function (builtin command). Sedangkan mode data yang dikenal R ada 4 macam
sepertiyangterlihatpadaTabel3.1berikutini.
Tabel3.1.EmpatmacammodedatayangdikenalR
Mode
ContohperintahdiCommandLine
Numeric
>23
>c(2.3,2,1.3,3.2)
>data.bulan=c(1,2,3,4,5,6,7,8,9,10,11,12)
Complex
>1+5i
>sqrt(as.complex(5))
Logical
>c(T,F,F,T,T,F,F,T,T,T)
>data.tahun>1998
Character
>c(Budi,Wati,Rony,Naily)
>c(F,T,2)
Nama objekdalamRharusdimulaidenganhuruf,ditambahdengankombinasi
darihurufbesar,hurufkecil,angkadantitik.Penggunaantitikbiasanyadilakukanuntuk
memudahkan pengorganisasian data. Berikut ini adalah beberapa contoh dari nama
objekyangvalid.
databudi
data.budi
data.budi.1
data.budi.5
data.budi.no7.02.02.08
Contohdarinamaobjekyangtidakvalid(invalid)adalahsebagaiberikut:
1databudi
databudi
databudi=1
:dimulaidariangka
:operatortidakdapatdigunakan
:operator=tidakdapatdigunakan
Dalam R versi 2.6.1 ini, assignment dapat digunakan dengan operator < dan =.
Untuk melihat isi dari suatu data objek, dapat dilakukan dengan mengetikkan nama
objektersebutdiRpromptpadaRconsole.
29
sht90
ManajemenDatadiRdenganCommandLine
3.1.JenisjenisDataObjek
Pada bagian ini akan dijelaskan beberapa jenis data objek pada R, yaitu data
arraysatudimensiataudatavektor,datamatriks,dataframe,dandatalist.
3.1.1.DataArraySatuDimensiatauDataVektor
Vektor merupakan suatu array atau himpunan bilangan, character atau string,
logicalvalue,danmerupakanobjekpalingdasaryangdikenaldalamR.Padadatavektor
harusdigunakanmodetunggalpadadata,sehinggagabunganduadataataulebihyang
berbedamodetidakdapatdilakukankedalamsatuobjekvektor.Jikainidilakukan,maka
Rakanmengubahdatakemodeyanglebihumum,seperticontohberikutini.
>c(T,1:10)
[1]112345678910
>c("A",F,T)
[1]"A""FALSE""TRUE"
>c("A",2,4,F,T)
[1]"A""2""4""FALSE""TRUE"
>x=c(1:10)
>x
[1]12345678910
>mode(x)
[1]"numeric"
>length(x)
[1]10
Pada contoh pertama dapat dilihat bahwa pada command line menghasilkan vektor
yang semua data diubah menjadi mode numerik, sedangkan pada contoh kedua dan
ketigamenghasilkanvektoryangsemuadatanyadiubahmenjadimodekarakter.Untuk
mengetahuimodesuatuobjekvektordapatdilakukandenganmenggunakancommand
modesepertipadacontohdiatas.Jumlahataupanjangdatayangbertipevektordapat
diketahuidenganmemanfaatkanfungsilength(perhatikancontohdiatas).
Ekstraksi sebagian data vektor dapat dilakukan dengan berbagai cara atau
langkah. Dalam praktek analisis data statistik, ekstraksi ini biasanya dilakukan untuk
pembentukandatabaruberdasarkandatayangsudahada.Berikutiniadalahbeberapa
contohhasilekstraksidarisuatudatavektoryangterdiridari10elemen,yaitu10,5,14,
12,8,11,9,10,16,20.
30
sht90
ManajemenDatadiRdenganCommandLine
>x=c(10,5,14,12,8,11,9,10,16,20)
>x#untukmelihatsemuaelemenobjekvektorx
[1]10514128119101620
>x[2]#menampilkanelemenkedua
[1]5
>x[c(1,3,7)]#menampilkanelemenke1,3,7
[1]10149
>x[c(2,8)]#menampilkansemuaelemenkecualielemenke2,8
[1]10141281191620
>x[x>10]#menampilkansemuaelemenyanglebihbesardari10
[1]1412111620
>y=x[x>10]#menyimpanvektorygelemennyalebihbesardari10dgnnamay
>y
[1]1412111620
3.1.2.DataMatriks
Matriks atau data array dua dimensi adalah salah satu tipe data yang banyak
digunakandalampemrogramanstatistik.SebagianbesarfungsifungsistatistikdalamR
dapat dianalisis dengan menggunakan bentuk matriks. Bentuk matriks ini juga banyak
digunakanpadaoperasifungsifungsibuiltinuntukaljabarlineardalamR,sepertiuntuk
penyelesaiansuatupersamaanlinear.
Proses entry data matriks dilakukan dengan menggunakan fungsi matrix.
Argumen yang diperlukan adalah elemenelemen dari matriks, dan argumen optional
yaitu banyaknya baris nrow dan banyaknya kolom ncolom. Sebagai contoh, gunakan
perintahperintahberikutinipadaRconsole.
>matriks.1=matrix(c(1,2,3,4,5,6),nrow=2,ncol=3)
>matriks.2=matrix(1:6,nrow=2,ncol=3)
>matriks.3=matrix(1:6,nrow=2)
>matriks.4=matrix(1:6,2)
>matriks.1
[,1][,2][,3]
[1,]135
[2,]246
Keempatperintahdiatasakanmenghasilkanmatriksyangsama.Untukmengetahuinya
ketikkan matriks.2, matriks.3, matriks.4, dan kemudian enter untuk masingmasing
perintahtersebut.
31
sht90
ManajemenDatadiRdenganCommandLine
PadaR,datasecaradefaultakandiisikankolomperkolomsepertiyangterlihat
padacontohberikutini.
>data=c(6.4,8.8,7.5,5.3,7.6,9.5)
>data
[1]6.48.87.55.37.69.5
>matriks.a=matrix(data,nrow=3,ncol=2)
>matriks.a
[,1][,2]
[1,]6.45.3
[2,]8.87.6
[3,]7.59.5
>matriks.b=matrix(data,nrow=3,ncol=2,byrow=T)
>matriks.b
[,1][,2]
[1,]6.48.8
[2,]7.55.3
[3,]7.69.5
>dim(matriks.a)
[1]32
>length(matriks.a)
[1]6
>mode(matriks.a)
[1]"numeric"
Dimensi, length dan mode dari suatu matriks dapat dilihat dengan menggunakan
perintahdim,length,danmodesepertipadacontohdiatas.Perludiingatbahwasemua
elemendarimatriksharusmemilikimodeyangsama.Jikahal initidakdipenuhi,maka
elemenelemenakandiubahmenjadimodeyangpalingumum.
Adabeberapaoperatoryangbiasadigunakanuntukoperasimatriksdanvektor,
antara lain perkalian, invers matriks, transpose matriks dan crossproduct. Ringkasan
darioperatoroperatorinidapatdilihatpadaTabel2.2.
32
sht90
ManajemenDatadiRdenganCommandLine
Tabel3.2.Operatoruntukoperasimatriksdanvektor
Operator
Keterangan
Perkalianelemendemielemendarimatriks
%*%
Perkalianmatriks
%o%
Outer
solve
Inversdarisuatumatriks
Transposedarisuatumatriks
crossprod
Crossproductsuatumatriks,yaitut(x)%*%x
Berikutiniadalahbeberapacontohhasilpenggunaanoperatorpadasuatumatriksdan
vektor.
>a=1:5
>a
[1]12345
>a*a#perkalianelemendemielemendarimatriksa
[1]1491625
>crossprod(a)#crossproduckdarimatriksa,yaitut(a)%*%a
[,1]
[1,]55
>b=matrix(c(1:4),2)
>b
[,1][,2]
[1,]13
[2,]24
>b*b#perkalianelemendemielemendarimatriksb
[,1][,2]
[1,]19
[2,]416
>b%*%b#perkalianmatriksbdenganmatriksb
[,1][,2]
[1,]715
[2,]1022
>solve(b)#inversdarimatriksb
[,1][,2]
[1,]21.5
[2,]10.5
33
sht90
ManajemenDatadiRdenganCommandLine
Pada R, dapat pula dilakukan penggabungan satu kolom atau satu baris baru
kedalam matriks lain. Hal ini dapat dilakukan dengan menggunakan perintah rbind
(untukmenambahkankebaris)dancbind(untukmenambahkankekolom).Perhatikan
contohcontohberikutini.
>a=matrix(c(3,4,5,6,7,8),2,3)
>a
[,1][,2][,3]
[1,]357
[2,]468
>a1=cbind(a,c(1,2))#menambahkankekolomke4daria
>a1
[,1][,2][,3][,4]
[1,]3571
[2,]4682
>a2=cbind(c(1,2),a)#menambahkankekolomke1daria
>a2
[,1][,2][,3][,4]
[1,]1357
[2,]2468
>a3=rbind(a,c(1,2,3))#menambahkankebariske3daria
>a3
[,1][,2][,3]
[1,]357
[2,]468
[3,]123
>a4=rbind(c(1,2,3),a)#menambahkankebariske1daria
>a4
[,1][,2][,3]
[1,]123
[2,]357
[3,]468
3.1.3.DataFrame
Data frame merupakan objek yang mempunyai bentuk sama dengan matriks,
yaitu terdiri atas baris dan kolom. Perbedaannya adalah data frame dapat terdiri atas
mode data yang berbedabeda untuk setiap kolomnya. Misalkan saja, kolom pertama
adalahnumeric,kolomkeduaadalahstring/character,dankolomketigaadalahlogical.
Objekdataframedapatdibuatdenganmenggunakanperintahdata.frame,sepertipada
contohcontohberikutini.
34
sht90
ManajemenDatadiRdenganCommandLine
>data.frame(c(1:4),c(T,T,F,F))
c.1.4.c.T..T..F..F.
11TRUE
22TRUE
33FALSE
44FALSE
>data.frame(nomer=c(1:4),jawaban=c(T,T,F,F))#adanamakolom
nomerjawaban
11TRUE
22TRUE
33FALSE
44FALSE
>cobaframe=data.frame(c(1:4),c(T,T,F,F))#simpanobjekdicobaframe
>cobaframe
c.1.4.c.T..T..F..F.
11TRUE
22TRUE
33FALSE
44FALSE
>names(cobaframe)[1]="nomer"#namakolomke1nomer
>names(cobaframe)[2]="jawaban"#namakolomke2jawaban
>cobaframe
nomerjawaban
11TRUE
22TRUE
33FALSE
44FALSE
>cobaframe1=data.frame(c(1:4),c(T,T,F,F))
>cobaframe1
c.1.4.c.T..T..F..F.
11TRUE
22TRUE
33FALSE
44FALSE
>names(cobaframe1)=c("nomer","jawaban")#berinamakolom
>cobaframe1
nomerjawaban
11TRUE
22TRUE
33FALSE
44FALSE
35
sht90
ManajemenDatadiRdenganCommandLine
Secaraumum,perintahperintahdiatasadalahekuivalendenganperintahberikutini.
>cobaframe2=data.frame(nomer=c(1:4),jawaban=c(T,T,F,F))
>cobaframe2
nomerjawaban
11TRUE
22TRUE
33FALSE
44FALSE
Seperti pada data vektor, ekstraksi sebagian data pada matriks dan data frame dapat
puladilakukandenganberbagaicaraataulangkah.Berikutiniadalahbeberapacontoh
hasilekstraksidarisuatumatriksdandataframe.
>matriks.1=matrix(1:9,3)
>dataframe.1=data.frame(nomer=1:4,nama=c("Adi","Budi","Cika","Dony"),
nilai=7:10)
>matriks.1
[,1][,2][,3]
[1,]147
[2,]258
[3,]369
>matriks.1[2,2]
[1]5
>dataframe.1
nomernamanilai
11Adi7
22Budi8
33Cika9
44Dony10
>dataframe.1[2,2]
[1]Budi
Levels:AdiBudiCikaDony
>dataframe.1["nama"]
nama
1Adi
2Budi
3Cika
4Dony
36
sht90
ManajemenDatadiRdenganCommandLine
3.1.4.DataList
Datalistmerupakanobjekyangpalingumumataugeneraldanpalingfleksibeldi
dalamR.Listadalahsuatuvektorterurutdarisekumpulankomponen.Setiapkomponen
dapat berupa sembarang data objek, yaitu vektor, matriks, data frame, atau data list
sendiri.Tiapkomponenpadadatalistdapatmempunyaimodeyangberbeda.Datalist
dapatdibuatdenganmenggunakanperintahlist.Berikutiniadalahcontohpendefinisian
danpemakaianelemenlist.
>list(c(1:3),c(T,F,T,T),data.frame(nama=c("Budi","Cika","Dony"),nilai=c(8:10)))
[[1]]
[1]123
[[2]]
[1]TRUEFALSETRUETRUE
[[3]]
namanilai
1Budi8
2Cika9
3Dony10
>datalist.1=list(nomer=c(1:3),jawaban=c(T,F,T,T),nilaiframe=data.frame(nama
=c("Budi","Cika","Dony"),nilai=c(8:10)))
>datalist.1
$nomer
[1]123
$jawaban
[1]TRUEFALSETRUETRUE
$nilaiframe
namanilai
1Budi8
2Cika9
3Dony10
Seperti pada jenisjenis data sebelumnya, ekstraksi sebagian data pada data list dapat
puladilakukandenganberbagaicaraataulangkah.Berikutiniadalahbeberapacontoh
hasilekstraksidarisuatudatalist.
37
sht90
ManajemenDatadiRdenganCommandLine
>datalist.1[1]#mengaksesnamadanelemenpertama
$nomer
[1]123
>datalist.1[[1]]#mengakseselemenpertama
[1]123
>datalist.1$nomer#mengakseselemenpertamaberdasarkannamanya
[1]123
>datalist.1$jawaban#mengakseselemenkedua
[1]TRUEFALSETRUETRUE
>datalist.1$nilaiframe#mengakseselemendataframe
namanilai
1Budi8
2Cika9
3Dony10
>datalist.1$nilaiframe$nama
[1]BudiCikaDony
Levels:BudiCikaDony
3.2.ImportingDatapadaCommandLine
Secaraumum,prosesimportingdatapadaRdapatdilakukandenganduacara,
yaitumenggunakanperintahperintahdicommandlinedanmenggunakanfasilitasGUI
RCmdr (lihat bagian 2.1 sebelumnya). Pada bagian ini akan dijelaskan penggunaan
perintahpadacommandlineuntukimportingdata.
3.2.1.MembacaFileASCII
Suatu file ASCII biasanya terdiri dari bilanganbilangan yang dipisahkan meng
gunakan spasi, tab, tanda akhir baris atau tanda baris baru, serta pembatas yang lain.
MisalkandatafileASCIIyangdibuatdiNOTEPADdengannamalatihan5.txtberisidata
sepertiberikutini.
50 28 75 35 49 64 88 94 54 34 28 56
87 42 33 67 31 98 58 47 37 66 64 25
66 35 87 58 93 86 69 29 96 86 57 80
38
sht90
ManajemenDatadiRdenganCommandLine
Anggap bahwa file ASCII dengan nama latihan5.txt ini sudah tersimpan pada direktori
kerja R. Proses impor data dapat dilakukan dengan perintah scan dan latihan5.txt
sebagai argumennya. Apabila data tidakberada padadirektori kerjaR, maka tulisjuga
direktori tersebut pada argumennya. Berikut ini adalah contoh proses impor data file
ASCII.
>scan("latihan5.txt")
Read36items
[1]50287535496488945434285687423367319858473766642566
[26]3587589386692996865780
>data5.scan=scan("latihan5.txt")
Read36items
>data5.scan
[1]50287535496488945434285687423367319858473766642566
[26]3587589386692996865780
>matrix5.scan=matrix(scan("latihan5.txt"),6)
Read36items
>matrix5.scan
[,1][,2][,3][,4][,5][,6]
[1,]508887586669
[2,]289442473529
[3,]755433378796
[4,]353467665886
[5,]492831649357
[6,]645698258680
>data6.scan=scan("c:\\Kerja_R\\latihan5.txt")
Read36items
>data6.scan
[1]50287535496488945434285687423367319858473766642566
[26]3587589386692996865780
3.2.2.ImportingDataFileExcel
Data file Excel dengan ekstensi .XLS dapat diimpor secara langsung meng
gunakanfasilitasGUIRCmdr(lihatbagiansebelumnya).Untukdapatdiimporkedalam
R dengan fasilitas command line, maka data file Excel harus terlebih dulu diubah
menjadiformatTextTabDelimited(ekstensi.TXT)atauCSVcommadelimited(ekstensi
.CSV). Setelah itu, data ini dapat diimpor menggunakan perintah read.table atau
read.csv.
39
sht90
ManajemenDatadiRdenganCommandLine
Misalkan saja data file Excel yang akan diimpor adalah seperti pada gambar
berikutinidantelahdisimpanmenjadifiledata1.txtataudata1.csv.
Gambar3.1.Jendeladata1.txtpadaExcelyangakandiimporkeR
Proses impordata1.txtdapatdilakukandenganperintahread.table,sedangkan,impor
data1.csv dilakukan dengan perintah read.csv. Argumen optional header=T digunakan
dengan tujuan agar R menggunakan baris pertama dari file sebagai header atau nama
darivariabel.Sepertipadabagiansebelumnya,apabiladatatidakberadapadadirektori
kerjaR,makatulisjugadirektoritersebutpadaargumennya.Berikutiniadalahcontoh
prosesimpordatafiledenganekstensi.TXTdan.CSV.
>latihan2<read.table("data1.txt",header=TRUE)#atau
>latihan2<read.table("c:\\Kerja_R\\data1.txt",header=TRUE)#atau
>latihan2<read.table("c:/Kerja_R/data1.txt",header=TRUE)
>latihan2
1
2
3
4
5
6
7
40
sht90
ManajemenDatadiRdenganCommandLine
>latihan3<read.csv("data1.csv",header=TRUE)
>latihan3
1
2
3
4
5
6
7
Responden.Matematika.BIndonesia.BInggris.IPK1
Adi;8;9.1;8.4;3.35
Budi;7.6;8.8;8.5;3.02
Dany;6.9;8.1;7.2;2.9
Eka;8.9;9.2;9;3.42
Fery;9.5;9.6;9.5;3.75
Nuri;7.3;8.7;7.9;3.26
Rury;6.5;7.5;8.2;2.76
3.2.3.ImportingDatadariPaketStatistik
R mempunyai paket atau library foreign untuk melakukan importing data dari
filedalamformatpaketstatistikayanglain.SampaisaatiniyangtersediapadaRadalah
importingdatafiledaripaketpaketstatistikaberikut:
MINITAB
: gunakanperintahread.mtpuntukmembacafileMinitab
PortableWorksheetataudatadenganekstensi.MTP.
FileinidapatdibuatdiMINITABdenganperintahSAVEAS
danpilihan.MTP
SPSS
: gunakanperintahread.spssuntukmembacafile.SAV.
SAS
: gunakanperintahread.ssdatauread.xport.
S+
: gunakanperintahread.S
STATA
: gunakanperintahread.dta
Systat
: gunakanperinahread.systat
Epiinfo
: gunakanperintahread.epiinfountukmembacafile.REC.
Pada bagian ini akan diberikan contoh hanya untuk mengimpor data file SPSS
danMINITAByangseringkalidigunakandalamanalisisdatastatistik.Misalkandatafile
SPSS yang sudah dimiliki diberi nama WORLD95.SAV dan telah disimpan di direktori
kerjaR.ProsesimpordatainikedalamRdenganmenggunakanperintahcommandline
adalahsebagaiberikut.
41
sht90
ManajemenDatadiRdenganCommandLine
>latihan4<read.spss("World95.sav",use.value.labels=TRUE,
max.value.labels=Inf,to.data.frame=TRUE)
>latihan4[,1:5]#hanyamenampilkan5kolompertamasaja
1
2
3
4
5
6
>latihan5<read.mtp("C:/Kerja_R/Fa.MTP")
>latihan5
$X
[1]1081391114641275
$Y1
[1]8.046.957.588.818.339.967.244.2610.844.825.68
$Y2
[1]9.148.148.748.779.268.106.133.109.137.264.74
$Y3
[1]7.466.7712.747.117.818.846.085.398.156.425.73
$X4
[1]888888819888
$Y4
[1]6.585.767.718.848.477.045.2512.505.567.916.89
42
sht90
GrafikMenggunakanRCommander
BAB4
GRAFIKMENGGUNAKANRCommander
Gambar4.1.JendeladialoguntukLoadWorkspace
SetelahdiklikLoadWorkspacemakajendelaRakanmemberikanpilihandirektoridan
file workspace mana yang akan ditampilkan, seperti yang terlihat pada Gambar 4.2.
Pilihlahfileworkspacelatihan4.RDatayangadadidirektoriC:\Kerja_R.
43
sht90
GrafikMenggunakanRCommander
Gambar4.2.Jendeladialoguntukpilihanfileworkspaceyangakandiaktifkan
LangkahselanjutnyaadalahmengaktifkanRcommanderdenganmenggunakan
perintahlibrary(Rcmdr).Setelahitu,aktifkandatasetdenganmenggunakanmenuData,
klikDatasetaktif,danPilihdatasetaktifsepertiyangditampilkanpadaGambar4.3.
Gambar4.3.Jendeladialoguntukmemilihdatasetyangakandiaktifkan
44
sht90
GrafikMenggunakanRCommander
DaribeberapapilihanDatasetsyangada,kliklatihan4sebagaifileworkspaceyangakan
diaktifkan,sepertipadaGambar4.4.Dengandemikian,prosespengaktifankembalidata
latihan4 sudah dilakukan, dan proses analisis data baik secara statistik deskriptif atau
inferensdapatdilakukan.
Gambar4.4.Jendeladialoguntukpilihandatasetyangakandiaktifkan
4.1.GrafikdalamRGUI
R menyediakan banyak menu pilihan grafik pada RCommander, antara lain
Histogram, Diagram Batang dan Daun, Boxplot, dan lainlain. Secara lengkap pilihan
grafikyangtersediadapatdilihatpadagambarberikutini.
Gambar4.5.JendeladialoguntukpilihanGrafikpadaRCommander
45
sht90
GrafikMenggunakanRCommander
4.2.GrafikHistogram
Menu yang digunakan untuk membuat grafik histogram adalah Grafik, pilih
Histogram . Misalkan akan dibuat histogram untuk variabel LIFEEXPF (usia harapan
hidup wanita di suatu negara), maka pada jendela dialog yang muncul, pilih LIFEEXPF
sepertipadaGambar4.6.IsikanjumlahintervalyangdiinginkanpadakolomBanyaknya
bin,danklikOKuntukmenampilkanoutputhistogramnya.
Gambar4.5.Jendeladialogpilihanvariabeluntukpembuatanhistogram
OutputhistogramuntukdataLIFEEXPFyangdiperolehdariperintahdiatasdapatdilihat
pada Gambar 4.6. Dalam contoh ini, digunakan metode auto untuk pemilihan jumlah
interval,yaitumetodeSturgesdanCacahanFrekuensiyangdigunakanuntuknilai(Skala
Sumbu) yang diplotkan pada histogram. Selain itu dapat digunakan pilihan Persentase
atauKepadatanpadaSkalaSumbu.
OutputhistograminidapatdisimpandenganmenggunakanmenuFile,danpilih
Saveasdarijendelagrafik.Pilihlahoutputyangsesuai,misalkansajadalamformatPDF.
Maka pilih format PDF dalam daftar format file output. Selanjutnya, beri nama file
output dengan histogramLIFEEXPF.PDF. Selain itu, output histogram ini dapat pula
disimpandalamformatMetafile,Postcript,Png,Bmp,danJpeg.
Jikafilehistograminiingindikopiuntukdiinsertkedalamprogramlain,misalkan
kedalamMicrosoftWord,makadapatdigunakanmenuFile,pilihCopytotheclipboard,
danpilihasaBitmapatauCtrlC.Kemudian,bukaprogramMicrosoftWord,makafile
grafikdapatdipastekanmenggunakanperintahCtrlV.
46
sht90
GrafikMenggunakanRCommander
Gambar4.6.OutputhistogrampadavariabelLIFESXPF
SelainmenggunakanmenudiRCommander,pembuatanhistogramdapatjuga
dilakukan dengan command line di RConsole, yaitu dengan command hist diikuti
argumenoptionalyangdiinginkan.Berikutadalahcontohpembuatanhistogramdengan
commandlineuntukvariabelLIFEEXPFdanLIFEEXPM(usiaharapanhiduppriadisuatu
negara).
>Hist(latihan4$LIFEEXPF,scale="frequency",breaks="Sturges",col="darkgray")
>Hist(latihan4$LIFEEXPF,scale="frequency",breaks=10,col="darkgray")
>hist(latihan4$LIFEEXPF)
>#lihatperbedaanoutputhistogramyangdihasilkan
>Hist(latihan4$LIFEEXPM,scale="frequency",breaks="Sturges",col="darkgray")
>Hist(latihan4$LIFEEXPM,scale="frequency",breaks=10,col="darkgray")
>hist(latihan4$LIFEEXPM)
47
sht90
GrafikMenggunakanRCommander
4.3.DiagramBatangdanDaun(StemandLeaf)
MenuyangdigunakanuntukmembuatdiagrambatangdandaunadalahGrafik,
pilihSajianBatangdanDaun.Misalkanakandibuatdiagrambatangdandaununtuk
variabel LIFEEXPF, maka pada jendela dialog yang muncul, pilih LIFEEXPF seperti pada
Gambar4.7.
Gambar4.7.Jendeladialoguntukpembuatandiagrambatangdandaun
48
sht90
GrafikMenggunakanRCommander
>stem.leaf(latihan4$LIFEEXPF)
1 | 2: represents 12
leaf unit: 1
n: 109
LO: 43 44 44 45 45 46 47
9
5* | 00
12
t | 223
15
f | 455
17
s | 77
22
5. | 88889
6* |
23
t | 3
26
f | 455
32
s | 677777
39
6. | 8888899
45
7* | 000001
51
t | 222333
(14)
f | 44444555555555
44
s | 66666777777888888888
24
7. | 9999999
17
8* | 00000001111111
3
t | 222
Gambar4.8.OutputdiagrambatangdandaunpadavariabelLIFESXPF
Pembuatandiagrambatangdandauninidapatjugadilakukandengancommand
line di RConsole, yaitu dengan command stem.leaf diikuti argumen optional yang
diinginkan. Berikut adalah contoh pembuatan diagram batang dan daun dengan
commandlineuntukvariabelLIFEEXPFdanLIFEEXPM.
>stem.leaf(latihan4$LIFEEXPF)
>stem.leaf(latihan4$LIFEEXPF,m=2)
>stem.leaf(latihan4$LIFEEXPF,style="bare",unit=1)
>#lihatperbedaanoutputdiagrambatangdandaunyangdihasilkan
>stem.leaf(latihan4$LIFEEXPM)
>stem.leaf(latihan4$LIFEEXPM,m=3)
>stem.leaf(latihan4$LIFEEXPF,style="bare",unit=1)
49
sht90
GrafikMenggunakanRCommander
4.4.GrafikBoxPlot
R menyediakan pilihan Boxplot pada menu Grafik untuk membuat tampilan
BoxPlot dari suatu data. Misalkan akan dibuat BoxPlot untuk variabel LIFEEXPF
berdasarkan RELIGION (kelompok agama mayoritas di negara tersebut), maka pada
jendeladialogyangmuncul,pilihLIFEEXPFsepertipadaGambar4.9.
Gambar4.9.JendeladialoguntukpilihanvariabeldalampembuatanBoxplot
Setelah itu, pilih Plot dengan kelompok sehingga diperoleh tampilan jendela seperti
padaGambar4.10.KlikRELIGIONsebagaivariabelkelompok,dankemudianklikOK.
Gambar4.10.JendeladialoguntukpilihanvariabelkelompokdalamBoxplot
OutputdariBoxPlotyangdiperolehakanditampilkandiJendelaKeluaranpada
RCommander seperti pada Gambar 4.11. Output tersebut menjelaskan bahwa usia
harapan hidup wanita di negara dengan mayoritas penduduknya beragama Jewish
(Yahudi)danProtestansecararatarataadalahpalingtinggidibandinglainnya.
50
sht90
GrafikMenggunakanRCommander
Gambar4.11.OutputBoxPlotpadavariabelLIFESXPFberdasarkanRELIGION
>boxplot(latihan4$LIFEEXPF)
>boxplot(latihan4$LIFEEXPM)
>boxplot(LIFEEXPF~RELIGION,ylab="LIFEEXPF",xlab="RELIGION",data=latihan4)
>boxplot(latihan4$LIFEEXPF~latihan4$RELIGION)
>#lihatperbedaanoutputBoxPlotyangdihasilkan
4.5.GrafikQQPlot
QQPlot merupakan salah satu metode eksplorasi secara grafik yang dapat
digunakan untuk menguji apakah suatu data berdistribusi normal. Untuk membuat
grafik QQPlot, R menyediakan pilihan QQPlot pada menu Grafik. Misalkan akan
dibuat QQPlot untuk variabel LIFEEXPF, maka pada jendela dialog yang muncul, pilih
LIFEEXPFsepertipadaGambar4.12.
51
sht90
GrafikMenggunakanRCommander
Gambar4.12.JendeladialoguntukpilihanvariabeldalampembuatanQQPlot
Kemudian pilih LIFEEXPF dari daftar variabel dan gunakan distribusi normal sebagai
distribusidefaultpadaQQPlot.KlikOK,makaakandiperolehgrafiksepertiberikut.
Gambar4.13.OutputQQPlotpadavariabelLIFESXPF
52
sht90
GrafikMenggunakanRCommander
BerdasarkanoutputpadaGambar4.13dapatdijelaskanbahwavariabelLIFEEXPFtidak
berdistribusi normal dan data cenderung menceng ke kanan (ekor lebih panjang di
bagiankiri).Haliniterlihatjelasjugadarigrafikhistogramnya(lihatGambar4.6).
Command line di RConsole dapat juga digunakan untuk pembuatan QQPlot,
yaitu dengan command boxplot diikuti argumen optional yang diinginkan. Berikut
adalahcontohpembuatanBoxPlotdengancommandlineuntukvariabelLIFEEXPFdan
LIFEEXPMsendirisendiridanberdasarkanvariabelRELIGION.
>qq.plot(latihan4$LIFEEXPF,dist="norm",labels=FALSE)
>qq.plot(latihan4$LIFEEXPM,dist="norm",labels=FALSE)
4.6.GrafikDiagramPencar(ScatterPlot)
R menyediakan pilihan Diagram pencar pada menu Grafik untuk membuat
tampilan ScatterPlot dari suatu data. Misalkan akan dibuat ScatterPlot untuk variabel
LIFEEXPF sebagai sumbu Y dan variabel LOGGDP sebagai sumbu X. Gunakan default
untukpilihanyanglain,sepertipadaGambar4.14.
Gambar4.14.JendeladialogpilihanvariabeldalampembuatanDiagramPencar
53
sht90
GrafikMenggunakanRCommander
Kemudian pilih LOG_GDP pada variabel X dan LIFEEXPF untuk variabel Y, dan klik OK
sehinggadiperolehoutputgrafiksepertiberikutini.
Gambar4.15.OutputDiagramPencarantaravariabelLOG_GDPdanLIFESXPF
Pada output Diagram Pencar, diperoleh juga grafik BoxPlot dari setiap marginal
variabel, dan garis regresi linear dan nonparametrik terbaik untuk menggambarkan
hubunganantarakeduavariabelini.
Command line di RConsole dapat juga digunakan untuk pembuatan Diagram
Pencar di atas, yaitu dengan command scatterplot diikuti argumen optional yang
diinginkan. Berikut adalah contoh pembuatan Diagram Pencar dengan command line
untuk variabel LIFEEXPF sebagai sumbu Y, dan LOG_GDP sebagai sumbu X, seperti
perintahdiRCommanderdiatas.
>scatterplot(LIFEEXPF~LOG_GDP,reg.line=lm,smooth=TRUE,labels=FALSE,
boxplots='xy',span=0.5,data=latihan4)
54
sht90
GrafikMenggunakanRCommander
4.7.GrafikPlotRatarata(Mean)
R menyediakan pilihan Plot Rerata pada menu Grafik untuk membuat
tampilan Plot Ratarata dari suatu data. Misalkan akan dibuat Plot Ratarata untuk
variabelLIFEEXPFberdasarkanREGION(kelompokwilayahnegara),makapadajendela
dialog yang muncul, pilih REGION dan LIFEEXPF seperti pada Gambar 4.16. Klik OK,
sehinggadiperolehoutputsepertipadaGambar4.17.
Gambar4.16.JendeladialogpilihanvariabeldalampembuatanPlotRatarata
Gambar4.17.OutputPlotRataratavariabelREGIONdanLIFESXPF
55
sht90
GrafikMenggunakanRCommander
Pada output Plot Ratarata di atas dapat dilihat bahwa LIFEEXPF (usia harapan hidup
wanita)yangterendahrataratanyaadalahpadanegaranegaradiAfrika.
CommandlinediRConsoleuntukpembuatanPlotRatarataadalahcommand
plotMeansdiikutiargumenoptionalyangdiinginkan.Berikutadalahcontohpembuatan
PlotRataratadengancommandlineuntukvariabelLIFEEXPFdanREGION.
>plotMeans(latihan4$LIFEEXPF,latihan4$REGION,error.bars="se")
>plotMeans(latihan4$LIFEEXPF,latihan4$REGION,error.bars="conf.int",level=0.95)
4.8.DiagramBatang(BarChart)
R menyediakan pilihan Diagram batang pada menu Grafik untuk membuat
tampilanDiagramBatangdarisuatudata.MisalkanakandibuatDiagramBatanguntuk
variabel REGION, maka pada jendela dialog yang muncul, pilih REGION seperti pada
Gambar4.18berikutini.
Gambar4.18.JendeladialogpilihanvariabeldalampembuatanDiagramBatang
Setelah itu klik OK, dan akan diperoleh output Diagram Batang seperti pada Gambar
4.19. Pada output tersebut dapat dilihat bahwa ada dua kelompok REGION terbesar,
yaitunegaranegarayangtermasukdiregionalOECPdanAmerikaLatin.
Command line di RConsole dapat juga digunakan untuk pembuatan Diagram
Batang, yaitu dengan command barplot diikuti argumen optional yang diinginkan.
BerikutadalahcontohpembuatanDiagramBatangdengancommandlineuntukvariabel
REGION,sepertiperintahdiRCommanderdiatas.
>barplot(table(latihan4$REGION),xlab="REGION",ylab="Frequency")
56
sht90
GrafikMenggunakanRCommander
Gambar4.19.OutputDiagramBatangdarivariabelREGION
4.9.DiagramLingkaran(PieChart)
Tampilan Diagram Lingkaran pada paket R disediakan melalui pilihan Diagram
lingkaranpadamenuGrafik.Misalkanakan dibuatDiagramLingkaranuntukvariabel
REGION,makapadajendeladialogyangmuncul,pilihREGIONsepertipadaGambar4.20
berikutini.
Gambar4.20.JendeladialogpilihanvariabeldalampembuatanDiagramLingkaran
Kemudian klik OK, dan akan diperoleh output Diagram Lingkaran seperti yang terlihat
padaGambar4.21.
57
sht90
GrafikMenggunakanRCommander
Gambar4.21.OutputDiagramLingkarandarivariabelREGION
>pie(table(latihan4$REGION),labels=levels(latihan4$REGION),main="REGION",
col=rainbow(length(levels(latihan4$REGION))))
4.10.PlotIndeks
Plot Indeks adalah suatu plot dari variabel menurut indeks atau urutan data.
Plot ini dalam analisis data statistik lebih dikenal dengan Time Series Plot. R
menyediakan pilihan Plot Indeks pada menu Grafik untuk membuat tampilan Plot
Indeksdarisuatudata.PadaRCommanderinihanyatersediaduapilihantipedariplot,
yaitu Paku dan Poin. Misalkan akan dibuat Plot Indeks untuk variabel LIFEEXPF, maka
pada jendela dialog yang muncul, pilih LIFEEXPF seperti pada Gambar 4.22. Dalam hal
ini, pilih tipe plot Paku, dan kemudian klik OK, sehingga diperoleh output Plot Indeks
sepertiyangterlihatpadaGambar4.23.
58
sht90
GrafikMenggunakanRCommander
Gambar4.22.JendeladialogpilihanvariabeldalampembuatanPlotIndeks
Gambar4.23.OutputPlotIndeksdarivariabelLIFEEXPF
CommandlinediRConsoleyangdapatdigunakanuntukpembuatanPlotIndeks
adalah plot diikuti argumen optional yang diinginkan. Jika akan menampilkan plot
berupa garis, maka dapat digunakan pilihan type=l, yang berarti line atau garis.
Berikut adalah contoh pembuatan Plot Indeks dengan command line untuk variabel
LIFEEXPF.
59
sht90
GrafikMenggunakanRCommander
>plot(latihan4$LIFEEXPF,type="h")
>plot(latihan4$LIFEEXPF,type="p")
>plot(latihan4$LIFEEXPF,type="l",main="TimeSeriesPlotDataLIFEEXPF")
Berikut ini adalah output Plot Indeks pada variabel LIFEEXPF dengan pilihan tipe garis
(line)yangdinotasikandenganl.
Gambar4.24.OutputPlotIndeksdarivariabelLIFEEXPFdengantype=l
60
sht90
FungsiDistribusiPeluangdiRCommander
BAB5
FUNGSIDISTRIBUSIPELUANGDIRCommander
PadababiniakandijelaskanpenggunaanRCommanderuntukperhitunganyang
berkaitan dengan fungsi distribusi peluang. RCommander menyediakan menu untuk
melakukan beberapa operasi standar yang berkaitan dengan fungsi distribusi peluang,
yaitu:
Perhitungannilaikuantil
Perhitungannilaipeluang
Pembuatanplotdistribusiataugrafikdensitas
Pembuatanplotdistribusikumulatif
Pembangkitandataataurandomdata
Secara umum ada dua macam distribusi yang disediakan paket R, yaitu Distribusi
KontinudanDiskrit.Untukmengetahuidistribusikontinuataudiskritapasajayangada
di R, dapat dilakukan dengan memilih menu Distribusi, kemudian pilih Distribusi
Kontinu, sehingga akan muncul pilihan dari berbagai distribusi kontinu yang ada di R,
sepertiyangterlihatpadaGambar5.1.
Gambar5.1.JendeladialoguntukpilihanDistribusiKontinu
Dari Gambar 5.1 dapat dilihat macammacam distribusi kontinu yang ada di R,
yaitu Distribusi Normal, t, Chikuadrat, F, Eksponensial, Seragam, Beta, Cauchy,
Logistik,LogNormal,Gamma,Weibull,danGumbel.Secaraumum,prosesperhitungan
yang berkaitan dengan distribusi peluang untuk macammacam distribusi kontinu
tersebutadalahrelatifsama.Untukitu,padababinifokuspembahasanhanyadiberikan
padadistribusiyangbanyakdipakaidianalisisstatistikadasar,yaituDistribusiNormal.
61
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.2.JendeladialoguntukpilihanDistribusiDiskrit
5.1.FungsiDistribusiKontinu
Pada bagian ini akan dijelaskan cara perhitungan berkaitan dengan fungsi
distribusipeluang,yaituperhitungannilaikuantil,pembuatanplotataugrafikdensitas,
pembuatan plot distribusi kumulatif, dan pembangkitan data dari distribusi kontinu,
khususnyaDistribusiNormalyangbanyakdigunakandalamanalisisstatistikadasar.
5.1.1.MenghitungKuantildariDistribusiNormal
PerhitungannilaikuantiltertentudariDistribusiNormaldapatdilakukandengan
RCommander,yaitu gunakan menu Distribusi, pilihDistribusi Kontinu, pilih Distribusi
Normal, dan kemudian klik Kuantil Normal . Setelah itu akan terlihat jendela pilihan
untukmendapatkankuantilyangakandicarisepertipadaGambar5.3.
Misalkanakandihitungnilaikuantil=0,05(5%)dariDistribusiNormalStandar,
yaitu ingin dicari nilai Z sedemikian hingga P( Z Z ) = 0,05 (luasan lower tail atau
ekor bawah), maka pada jendela isian Peluang tulis nilai 0.05. Dalam hal ini ratarata
adalah 0 dan deviasi standar 1. Kemudian klik OK, sehingga akan diperoleh nilai pada
jendelakeluaranRCommanderyaitu Z 0,05 = 1.644854 .Pilihanekoratasatauuppertail
digunakanjikaingindicarinilai Z1 sedemikianhingga P( Z Z1 ) = 1 .Jikapilihan
ekor atas yang digunakan, maka keluaran RCommander memberikan nilai 1.644854
padajendelakeluarannya.
62
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.3.JendeladialoguntukperhitunganKuantilNormal
SelainmenggunakanmenudiRCommander,perhitungankuantilnormaldapat
juga dilakukan dengan command line di RConsole, yaitu dengan command qnorm
diikuti argumen optional yang diinginkan. Berikut adalah contoh perhitungan kuantil
normaldengancommandlineuntuk=0,05.
>qnorm(c(0.05),mean=0,sd=1,lower.tail=TRUE)
[1]1.644854
>qnorm(c(0.05),mean=10,sd=2,lower.tail=TRUE)
[1]6.710293
>qnorm(c(0.05),mean=0,sd=1,lower.tail=FALSE)
[1]1.644854
>qnorm(c(0.05),mean=10,sd=2,lower.tail=FALSE)
[1]13.28971
5.1.2.MenghitungPeluangdariDistribusiNormal
Perhitungan peluang dari suatu nilai tertentu dari Distribusi Normal dapat
dilakukan dengan RCommander, yaitu gunakan menu Distribusi, pilih Distribusi
Kontinu,pilihDistribusiNormal,dankemudianklikPeluangNormal.Setelahituakan
terlihatjendelapilihanuntukmemperolehpeluangyangdicarisepertipadaGambar5.4.
MisalkanakandihitungnilaipeluangdariDistribusiNormalStandar,yaituingin
dicarinilai P( Z 3) (luasanlowertailatauekorbawah),makapadajendelaisianNilai
peubah tulis nilai 3. Dalam hal ini ratarata adalah 0 dan deviasi standar 1. Klik OK,
sehinggaakandiperolehnilai0.001349898padajendelakeluaranRCommander.
63
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.4.JendeladialoguntukperhitunganPeluangNormal
Pilihan ekor atas atau upper tail digunakan jika ingin dicari nilai P( Z c) . Jika pilihan
ekor atas yang digunakan dan c = 3 , maka keluaran RCommander juga akan mem
berikannilai0.001349898padajendelakeluarannya.
Perhitungan peluang normal dapat juga dilakukan dengan command line di R
Console, yaitu dengan command pnorm diikuti argumen optional yang diinginkan.
Berikut adalah contoh perhitungan peluang normal dengan command line untuk
berbagainilaipeubah.
>pnorm(c(3),mean=0,sd=1,lower.tail=TRUE)
[1]0.001349898
>pnorm(c(6.710293),mean=10,sd=2,lower.tail=TRUE)
[1]0.05000001
>pnorm(c(3),mean=0,sd=1,lower.tail=FALSE)
[1]0.001349898
>pnorm(c(13.28971),mean=10,sd=2,lower.tail=FALSE)
[1]0.04999986
5.1.3.MembuatPlotdariDistribusiNormal
PlotdariDistribusiNormalteoritisdenganrataratadandeviasistandartertentu
dapatdilakukandenganRCommander,yaitugunakanmenuDistribusi,pilihDistribusi
Kontinu,pilihDistribusiNormal,dankemudianklikPlotDistribusiNormal.Setelahitu
akan terlihat jendela pilihan untuk mendapatkan plot distribusi normal teoritis yang
ingindicarisepertipadaGambar5.5.
64
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.5.JendeladialoguntukpembuatanPlotDistribusiNormal
Misalkan akan dibuat plot fungsi kepadatan peluang dari Distribusi Normal
Standar,makapadajendelaisianmu(rerata)tulisnilai0dansigma(simpanganbaku)1.
KlikpilihanPlotfungsikepadatan,dankemudianklikOK,sehinggaakandiperolehplot
fungsikepadatandariDistribusiNormalStandarsepertipadaGambar5.6berikutini.
Gambar5.6.OutputplotfungsikepadatanDistribusiNormalStandar
Jika pilihan Plot fungsi distribusi (kumulatif) yang dipilih, maka akan diperoleh output
plot fungsi distribusi kumulatif dari Distribusi Normal Standar seperti terlihat pada
Gambar5.7.
65
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.7.OutputplotfungsidistribusikumulatifdariDistribusiNormalStandar
Pembuatan plot fungsi kepadatan dan fungsi distribusi kumulatif dapat juga
dilakukan dengan command line di RConsole, yaitu dengan command dnorm (untuk
plot fungsi kepadatan) dan command pnorm (untuk plot fungsi distribusi kumulatif)
diikuti argumen optional yang diinginkan. Berikut adalah contoh pembuatan plotplot
tersebutdengancommandlineuntuksuatunilaipeubah.
>.x<seq(3.291,3.291,length=100)
>plot(.x,dnorm(.x,mean=0,sd=1),xlab="x",ylab="Density",
main=expression(paste("NormalDistribution:",mu,"=0,",
sigma,"=1")),type="l")
>abline(h=0,col="gray")
>.x<seq(4,4,length=100)
>plot(.x,pnorm(.x,mean=0,sd=1),xlab="x",ylab="CumulativeProbability",
main=expression(paste("NormalDistribution:",mu,"=0,",
sigma,"=1")),type="l")
>abline(h=0,col="gray")
>#amatiperbedaanoutputyangdihasilkan
66
sht90
FungsiDistribusiPeluangdiRCommander
5.1.4.MembangkitkanDatadariDistribusiNormal
R menyedikan fasilitas untuk membangkitkan data yang mengikuti distribusi
statistika tertentu. Misalkan akan dibangkitkan data yang mengikuti distribusi normal,
makadapatdigunakanmenuDistribusi,pilihDistribusiKontinu,pilihDistribusiNormal,
dan kemudian klik Sampel dari Distribusi Normal . Setelah itu akan terlihat jendela
pilihanuntukpembangkitandatadaridistribusinormalsepertipadaGambar5.8berikut
ini.
Gambar5.8.JendeladialoguntukmembangkitkandatadariDistribusiNormal
Sebagai contoh, akan dibangkitkan data sebanyak 15 baris dan 10 kolom yang
mengikutiDistribusiNormalStandar,makatulisnamadatasethasildaridatabangkitan
pada isian Masukkan nama untuk data set (misalkan dengan nama latihan5). Pada
jendelaisianmu(rerata)tulisnilai0,sigma(simpanganbaku)1,Ukuransampel(baris)
15, dan Banyaknya pengamatan (kolom) 10. Jika ratarata sampel juga ingin
ditambahkan, maka klik pada pilihan Rerata sampel, dan kemudian klik OK. Pilihan
pilihanyanglain,yaituJumlahsampeldanDeviasibakusampeljugadapatditampilkan
jikadiinginkan.
Untukmengetahuihasildatayangdibangkitkan,klikpilihanLihatdatasetpada
RCommander, sehingga akan terlihat datadata hasil bangkitan seperti pada Gambar
5.9. Secara umum akan diperoleh 15 baris sampel dan 11 kolom data, yaitu 10 kolom
datahasilbangkitandan1kolomterakhiryangberisirataratadarisetiapsampelyang
dibangkitkan.
67
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.9.OutputdatahasilbangkitandariDistribusiNormalStandar
Pembangkitan data dari suatu distribusi statistika tertentu ini juga dapat
dilakukan dengan command line di RConsole, yaitu dengan command rnorm (untuk
Distribusi Normal) diikuti argumen optional yang diinginkan. Berikut adalah contoh
pembangkitandatadengancommandlineuntukDistribusiNormaldenganrataratadan
deviasistandartertentu.
>rnorm(15,mean=0,sd=1)
[1]0.660257510.207162941.037686241.599514440.090306041.90549079
[7]1.687788430.083684230.964726230.103008760.272611010.16491906
[13]0.526977990.574489610.45865682
>latihan5<as.data.frame(matrix(rnorm(15*10,mean=0,sd=1),ncol=10))
>rownames(latihan5)<paste("sample",1:15,sep="")
>colnames(latihan5)<paste("obs",1:10,sep="")
>latihan5$mean<rowMeans(latihan5[,1:10])
>showData(latihan5,placement='20+200',font=getRcmdr('logFont'),
maxwidth=80,maxheight=30)
SecaraumumRmenyediakanfasilitasuntukmembangkitkandatadariberbagai
distribusi statistika yang kontinu. Daftar lengkap berkaitan dengan command line di R
untuk membangkitkan data dari distribusi kontinu beserta argumen dan library yang
diperlukandapatdilihatpadaTabel5.1.
68
sht90
FungsiDistribusiPeluangdiRCommander
Tabel5.1.DaftarfungsiR(commandline)untukmembangkitkandatayang
mengikutisuatudistribusikontinutertentu
DistribusiKontinu
FungsiR
Argumenyangdiperlukan
library
Beta
rbeta
n,shape1,shape2
stats
Cauchy
rcauchy
n,location=0,scale=1
stats
Chisquared
rchisq
n,df
stats
Eksponensial
rexp
n,rate
stats
rf
n,df1,df2
stats
Gamma
rgamma
n,shape,rate=1
stats
Lognormal
rlnorm
n,mean,sd
stats
Logistic
rlogis
n,location=0,scale=1
stats
Normal
rnorm
n,mean,sd
stats
Studentt
rt
n,df
stats
Seragam(Uniform)
runif
n,min,max
stats
Weibull
rweibull
n,shape,scale=1
stats
MultivariateNormal
mvrnorm
n=1,mu,Sigma
MASS
5.2.FungsiDistribusiDiskrit
Seperti pada bagianDistribusiKontinu,padabagianFungsiDistribusiDiskrit ini
akan dijelaskan cara perhitungan berkaitan dengan fungsi distribusi peluang, yaitu
perhitungannilaikuantil,pembuatanplotataugrafikdensitas,pembuatanplotdistribusi
kumulatif, dan pembangkitan data dari suatu distribusi diskrit. Dalam hal ini, fokus
pembahasan hanya diberikan pada Distribusi Binomial, sedangkan untuk distribusi
diskrityanglaindapatdilakukandengancarayangrelatifsama.
5.2.1.MenghitungKuantildariDistribusiBinomial
Perhitungan nilai kuantil tertentu dari Distribusi Binomial dapat dilakukan
dengan RCommander, yaitu gunakan menu Distribusi, pilih Distribusi Diskrit, pilih
Distribusi Binomial, dan kemudian klik Kuantil Binomial . Setelah itu akan terlihat
jendelapilihanuntukmendapatkankuantilyangakandicarisepertipadaGambar5.10.
Misalkanakandihitungnilaikuantil=0,25(25%)dariDistribusiBinomialdengann=20
danp=0.5,yaituingindicarinilai X sedemikianhingga P( X X ) = 0,25 (luasanlower
tailatauekorbawah).
69
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.10.JendeladialoguntukmenghitungKuantilBinomial
Untukmendapatkankuantildiatas,makapadajendelaisianPeluangtulisnilai
0.25, Trial Binomial 20, dan Peluang Sukses 0.5. Kemudian klik OK, sehingga akan
diperoleh nilai pada jendela keluaran RCommander yaitu X 0,25 = 8 . Pilihan ekor atas
(uppertail)digunakanjikaakandicarinilai X 1 sedemikianhingga P( X X 1 ) = 1 .
Jika pilihan ekor atas yang digunakan, maka keluaran RCommander memberikan nilai
12padajendelakeluarannya.
Perhitungan kuantil binomial dapat juga dilakukan dengan command line di R
Console, yaitu dengan command qbinom diikuti argumen optional yang diinginkan.
Berikutadalahcontohperhitungankuantilbinomialdengancommandlineuntuk=0,25
danyanglain.
>qbinom(c(0.25),size=20,prob=0.5,lower.tail=TRUE)
[1]8
>qbinom(c(0.25),size=20,prob=0.5,lower.tail=FALSE)
[1]12
>qbinom(c(0.75),size=20,prob=0.5,lower.tail=TRUE)
[1]12
5.2.2.MenghitungPeluangdariDistribusiBinomial
Perhitungan peluang kumulatif untuk nilai tertentu dari Distribusi Binomial
dapatdilakukandenganRCommander,yaitugunakanmenuDistribusi,pilihDistribusi
Diskrit, pilih Distribusi Binomial, dan klik Peluang ujung Binomial . Setelah itu akan
terlihatjendelapilihanuntukmemperolehpeluangyangdicarisepertiGambar5.11.
70
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.11.JendeladialoguntukmenghitungPeluangBinomialKumulatif
Misalkan akan dihitung nilai peluang dari Distribusi Binomial Kumulatif, yaitu
ingin dicari nilai P( X 8) (luasan lower tail atau ekor bawah) dari Distribusi Binomial
dengann=20danp=0.5,makapadajendelaisianNilaipeubahtulisnilai8.Dalamcontoh
ini isikan Trial Binomial 20, dan Peluang Sukses 0.5. Klik OK, sehingga akan diperoleh
nilai0.2517223padajendelakeluaranRCommander.
Selain itu, R juga memberikan fasilitas untuk menghitung nilai peluang untuk
suatunilaitertentu.Misalkanakandicari P( X = 8) dariDistribusiBinomialdengann=20
dan p=0.5. Untuk itu, pilih menu Distribusi, pilih Distribusi Diskrit, pilih Distribusi
Binomial,danklikPeluangBinomial.IsikanTrialBinomial20,danPeluangSukses0.5.
KlikOK,makaakanditampilkannilaipeluanguntuk X = 0,1,2, K ,20 .
Perhitungan peluang binomial dan peluang binomial kumulatif dapat juga
dilakukan dengan command line di RConsole, yaitu dengan command pbinom (untuk
peluang) dan pbinom (untuk peluang kumulatif) diikuti argumen optional yang di
inginkan. Berikut adalah contoh perhitungan peluang binomial dan peluang binomial
kumulatifdengancommandlineuntuknilainilaitertentu.
>dbinom(8,size=20,prob=0.5)
[1]0.1201344
>pbinom(c(8),size=20,prob=0.5,lower.tail=TRUE)
[1]0.2517223
>pbinom(c(8),size=20,prob=0.5,lower.tail=FALSE)
[1]0.7482777
>pbinom(c(11),size=20,prob=0.5,lower.tail=FALSE)
[1]0.2517223
71
sht90
FungsiDistribusiPeluangdiRCommander
>dbinom(0:20,size=20,prob=0.5)
[1]9.536743e071.907349e051.811981e041.087189e034.620552e03
[6]1.478577e023.696442e027.392883e021.201344e011.601791e01
[11]1.761971e011.601791e011.201344e017.392883e023.696442e02
[16]1.478577e024.620552e031.087189e031.811981e041.907349e05
[21]9.536743e07
>.Table<data.frame(Pr=dbinom(0:20,size=20,prob=0.5))
>rownames(.Table)<0:20
>.Table
Pr
09.536743e07
11.907349e05
21.811981e04
31.087189e03
44.620552e03
51.478577e02
63.696442e02
77.392883e02
81.201344e01
91.601791e01
101.761971e01
111.601791e01
121.201344e01
137.392883e02
143.696442e02
151.478577e02
164.620552e03
171.087189e03
181.811981e04
191.907349e05
209.536743e07
5.2.3.MembuatPlotdariDistribusiBinomial
Plot dari Distribusi Binomial teoritis dengan n dan p tertentu dapat dilakukan
dengan RCommander, yaitu gunakan menu Distribusi, pilih Distribusi Diskrit, pilih
Distribusi Normal, dan kemudian klik Plot Distribusi Binomial . Setelah itu akan
terlihat jendela pilihan untuk mendapatkan plot distribusi binomial teoritis yang ingin
dicari seperti pada Gambar 5.12. Misalkan akan dibuat plot fungsi kepadatan peluang
dariDistribusiBinomialdengann=20danp=0.5,makapadajendelatulis20padaisian
TrialBinomial,dantulis0.5padaisianPeluangSukses.
72
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.12.JendeladialoguntukmembuatPlotDistribusiBinomial
Setelah itu pilih plot yang akan dibuat, misalkan saja plot fungsi kepadatan
peluang, maka klik pilihan Plot fungsi kepadatan peluang. Klik OK, sehingga akan
diperolehplotfungsikepadatandariDistribusiBinomialdengann=20danp=0.5seperti
padaGambar5.13berikutini.
Gambar5.13.OutputplotfungsikepadatanDistribusiBinomialdengann=20danp=0.5
73
sht90
FungsiDistribusiPeluangdiRCommander
Gambar5.14.OutputplotfungsiDistribusiKumulatifBinomialdengann=20danp=0.5
Pembuatan plot fungsi kepadatan dan fungsi distribusi kumulatif dapat juga
dilakukan dengan command line di RConsole, yaitu dengan command dnorm (untuk
plot fungsi kepadatan) dan command pnorm (untuk plot fungsi distribusi kumulatif)
diikuti argumen optional yang diinginkan. Berikut adalah contoh pembuatan plotplot
tersebutdengancommandlineuntuksuatunilaipeubah.
>.x<3:17
>plot(.x,dbinom(.x,size=20,prob=0.5),xlab="NumberofSuccesses",
ylab="ProbabilityMass",main="BinomialDistribution:Trials=20,
Probabilityofsuccess=0.5",type="h")
>points(.x,dbinom(.x,size=20,prob=0.5),pch=16)
>abline(h=0,col="gray")
74
sht90
FungsiDistribusiPeluangdiRCommander
>.x<rep(.x,rep(2,length(.x)))
>plot(.x[1],pbinom(.x,size=20,prob=0.5)[length(.x)],
xlab="NumberofSuccesses",ylab="CumulativeProbability",
main="BinomialDistribution:Trials=20,Probabilityofsuccess=0.5",
type="l")
>abline(h=0,col="gray")
5.2.4.MembangkitkanDatadariDistribusiBinomial
Seperti pada distribusi kontinu, R menyedikan fasilitas untuk membangkitkan
data yang mengikuti distribusi diskrit tertentu. Misalkan akan dibangkitkan data yang
mengikuti distribusi binomial, maka dapat digunakan menu Distribusi, pilih Distribusi
Diskrit,pilihDistribusiBinomial,dankemudianklikSampeldariDistribusiBinomial.
Setelah itu akan terlihat jendela pilihan untuk pembangkitan data dari distribusi
binomialsepertipadaGambar5.15berikutini.
Gambar5.15.JendeladialoguntukmembangkitkandatadariDistribusiBinomial
Sebagai contoh, akan dibangkitkan data sebanyak 15 baris dan 5 kolom yang
mengikuti Distribusi Binomial dengan n=20 dan p=0.5, maka tulis nama dataset hasil
databangkitanpadaisianMasukkannamauntukdataset(misalkanBinomialSamples).
Tulisangka20padakolomisianTrialBinomial,danangka0.5padaisianPeluangSukses.
75
sht90
FungsiDistribusiPeluangdiRCommander
Selanjutnya,padapilihanUkuransampel(baris)ketikangka15dan5padaBanyaknya
pengamatan (kolom). Jika ratarata sampel juga ingin ditambahkan, maka klik pada
pilihan Rerata sampel, dan kemudian klik OK. Pilihanpilihan yang lain, yaitu Jumlah
sampeldanDeviasibakusampeljugadapatditampilkanjikadiinginkan.
Untukmengetahuihasildatayangdibangkitkan,klikpilihanLihatdatasetpada
RCommander, sehingga akan terlihat datadata hasil bangkitan seperti pada Gambar
5.16.Secaraumumakandiperoleh15barissampeldan6kolomdata,yaitu5kolomdata
hasil bangkitan dan 1 kolom terakhir yang berisi ratarata dari setiap sampel yang
dibangkitkan.
Gambar5.16.OutputdatahasilbangkitandariDistribusiBinomial(n=20danp=0.5)
Proses pembangkitan data dari suatu distribusi statistika yang diskrit ini juga
dapat dilakukan dengan command line di RConsole, yaitu dengan command rbinom
(untuk Distribusi Binomial) diikuti argumen optional yang diinginkan. Berikut adalah
contoh pembangkitan data dengan command line untuk Distribusi Binomial dengan n
danptertentu.
>rbinom(100,size=20,prob=0.5)
[1]121291213688711117108912991010812899
[26]11812121113156111112810119811128131014121211
[51]121111121111717612961110788119108710116
[76]149129971012111412121313312121410108691515
76
sht90
FungsiDistribusiPeluangdiRCommander
>matrix(rbinom(15*5,size=20,prob=0.5),ncol=5)
[,1][,2][,3][,4][,5]
[1,]13114148
[2,]111012810
[3,]131112810
[4,]1281199
[5,]1178710
[6,]1111101114
[7,]10911119
[8,]111212712
[9,]111210138
[10,]12812116
[11,]8118135
[12,]13119128
[13,]1399106
[14,]109111210
[15,]121012118
>BinomialSamples<as.data.frame(matrix(rbinom(15*5,size=20,prob=0.5),ncol=5))
>rownames(BinomialSamples)<paste("sample",1:15,sep="")
>colnames(BinomialSamples)<paste("obs",1:5,sep="")
>BinomialSamples$mean<rowMeans(BinomialSamples[,1:5])
>showData(BinomialSamples,placement='20+200',font=getRcmdr('logFont'),
maxwidth=80,maxheight=30)
SecaraumumRmenyediakanfasilitasuntukmembangkitkandatadariberbagai
distribusi statistika yang diskrit. Daftar lengkap berkaitan dengan command line di R
untukmembangkitkandatadaridistribusidiskritbeserta argumendanlibraryyangdi
perlukandapatdilihatpadaTabel5.2.
Tabel5.2.DaftarfungsiR(commandline)untukmembangkitkandatayang
mengikutisuatudistribusidiskrittertentu
DistribusiKontinu
FungsiR
Argumenyangdiperlukan
Binomial
rbinom
n,size,prob
stats
BinomialNegatif
rnbinom
n,size,prob,mu
stats
Geometrik
rgeom
n,prob
stats
Hipergeometrik
rhyper
nn,m,n,k
stats
Poisson
rpois
n,lambda
stats
77
library
sht90
StatistikDeskriptifmenggunakanRCommander
BAB6
STATISTIKDESKRIPTIFMENGGUNAKANRCommander
Ringkasannumerik,
DistribusiFrekuensi,
Hitungobservasihilang
Tabelstatistika,
Matrikskorelasi,
Ujikorelasi,dan
UjikenormalanShapiroWilk.
Gambar5.1.JendeladialoguntukpilihanDistribusiKontinu
Selain tabel satu informasi, pada bab ini juga akan dijelaskan cara pembuatan
tabel lebih dari satu informasi, khususnya tabel dua informasi secara bersamasama
yang dikenal dengan tabulasi silang atau tabel kontingensi. Fasilitas yang disedikan R
untukpembuatantabelkontingensiinidapatdiihatpadaGambar5.2.
78
sht90
StatistikDeskriptifmenggunakanRCommander
Gambar5.2.JendeladialoguntukpilihanDistribusiDiskrit
Sebagai langkah awal, buka kembali program R dengan mengklik icon R 2.6.1.
danpanggildatatentangnegaranegaradiduniapadatahun1995yangdikenaldengan
data WORLD95.SAV di SPSS yang sudah disimpan dalam file R yaitu latihan4.RData,
seperti yang digunakan pada Bab 4 sebelumnya. Load file workspace tersebut dengan
menggunakanmenuFile,pilihLoadWorkspace.
6.1.RingkasanNumerik(Summary)
Pada bagian ini akan dijelaskan cara perhitungan ringkasan deskriptif dari data
dengan menggunakan berbagai metode statistika deskriptif. Secara umum ada dua
macam data yang akan dibuat ringkasan numeriknya, yaitu data metrik (skala interval
ataurasio)dandatanonmetrik(skalanominalatauordinal).Rmenyediakanduamacam
cara untuk menampilkan ringkasan numerik dari variabelvariabel yang ada pada data,
yaitumenampilkanringkasannumerikdarisemuavariabelyangada,danmenampilkan
ringkasan numerik hanya dari variabel tertentu saja. Berikut ini adalah penjelasan
lengkapuntukmasingmasingcarapembuatanringkasannumerik.
6.1.1.RingkasanNumerikdariSemuaVariabel
PerhitunganRingkasanNumerikdarisemuavariabeldapatdilakukandenganR
Commander,yaitugunakanmenuStatistika,pilihRingkasan,pilihDatasetaktif.Setelah
itu akan terlihat jendela informasi tentang jumlah variabel pada dataset yang akan
ditampilkanringkasannumeriknyasepertipadaGambar5.3.Dalamhalini,semuadata
baikyangmetrikataupunnonmetrikakanditampilkanringkasannumeriknya.
Pada data metrik, ringkasan numerik akan menampilkan beberapa besaran
statistikyaituMean,Min,Max,Kuartil1,Median,danKuartil3.Sedangkanpadadata
nonmetrik,ringkasannumerikhanyamenampilkanjumlahataufrekuensipadamasing
masingkategoriyangada.
79
sht90
StatistikDeskriptifmenggunakanRCommander
Gambar5.3.Jendelainformasijumlahvariabelyangdibuatringkasannumeriknya
Output lengkap yang diperoleh dari pilihan Ringkasan dan Dataset aktif pada data
latihan4.RDatabesertacommandlinediRConsoleadalahsebagaiberikut.
>summary(latihan4)
COUNTRY
Afghanistan : 1
Argentina
: 1
Armenia
: 1
Australia
: 1
Austria
: 1
Azerbaijan : 1
(Other)
:103
POPULATN
Min.
:
256
1st Qu.:
5100
Median : 10400
Mean
: 47724
3rd Qu.: 35600
Max.
:1205200
DENSITY
Min.
:
2.3
1st Qu.: 29.0
Median : 64.0
Mean
: 203.4
3rd Qu.: 126.0
Max.
:5494.0
URBAN
Min.
: 5.00
1st Qu.: 40.75
Median : 60.00
Mean
: 56.53
3rd Qu.: 75.00
Max.
:100.00
NA's
: 1.00
RELIGION
Catholic:41
Muslim :27
Protstnt:16
Orthodox: 8
Buddhist: 7
Animist : 4
(Other) : 6
LIFEEXPF
Min.
:43.00
1st Qu.:67.00
Median :74.00
Mean
:70.16
3rd Qu.:78.00
Max.
:82.00
LIFEEXPM
Min.
:41.00
1st Qu.:61.00
Median :67.00
Mean
:64.92
3rd Qu.:72.00
Max.
:76.00
LITERACY
Min.
: 18.00
1st Qu.: 63.00
Median : 88.00
Mean
: 78.34
3rd Qu.: 98.00
Max.
:100.00
NA's
: 2.00
FERTILTY
Min.
:1.300
1st Qu.:1.880
Median :3.050
Mean
:3.563
3rd Qu.:5.000
Max.
:8.190
NA's
:2.000
LIT_FEMA
Min.
: 9.00
1st Qu.: 45.00
Median : 71.00
Mean
: 67.26
3rd Qu.: 93.00
Max.
:100.00
NA's
: 24.00
LOG_POP
Min.
:2.408
1st Qu.:3.708
Median :4.017
Mean
:4.114
3rd Qu.:4.551
Max.
:6.081
CROPGROW
LIT_MALE
Min.
: 0.00
Min.
: 28.00
1st Qu.: 6.00
1st Qu.: 63.00
Median :13.50
Median : 87.00
Mean
:17.98
Mean
: 78.73
3rd Qu.:26.75
3rd Qu.: 96.00
Max.
:77.00
Max.
:100.00
NA's
: 3.00
NA's
: 24.00
CLIMATE
temperate
:34
tropical
:32
mediterranean:10
desert
: 7
arid
: 6
(Other)
:13
NA's
: 7
80
sht90
StatistikDeskriptifmenggunakanRCommander
6.1.2.RingkasanNumerikuntukSuatuVariabel
Perhitungan Ringkasan Numerik khusus untuk variabel metrik dapat dilakukan
denganRCommander,yaitugunakanmenuStatistika,pilihRingkasan,pilihRingkasan
numerik . Setelah itu akan terlihat jendela informasi tentang variabel metrik dari
datasetyangakanditampilkanringkasannumeriknyasepertipadaGambar5.4berikut.
Gambar5.4.Jendelapilihanvariabelmetrikyangdibuatringkasannumeriknya
MisalkanakandibuatringkasannumerikuntukvariabelLIFEEXPF(usiaharapan
hidup wanita di suatu negara), maka pada jendela dialog yang muncul, klik LIFEEXPF
pada pilihan Peubah. Kemudian klik besaranbesaran statistik yang akan ditampilkan
ringkasannya. Setelah itu, klik OK untuk menampilkan output ringkasan numeriknya,
sehinggadiperolehoutputpadajendelakeluaransepertiberikutini.
>numSummary(latihan4[,"LIFEEXPF"],statistics=c("mean","sd","quantiles"))
mean
sd 0% 25% 50% 75% 100%
n
70.15596 10.57178 43 67 74 78
82 109
Perhitunganringkasannumerikinidapatjugadilakukandengancommandlinedi
RConsole,yaitudengancommandsummarydiikutiargumenoptionalyangdiinginkan.
Berikut adalah contoh perhitungan ringkasan numerik dengan command line untuk
suatuvariabelmetrik.
81
sht90
StatistikDeskriptifmenggunakanRCommander
>summary(latihan4$LIFEEXPF)
Min. 1st Qu.
43.00
67.00
Median
74.00
Max.
82.00
Gambar5.5.Jendelapilihanpeubahkelompok(group)dalamringkasannumerik
Selanjutnya klik OK, maka akan diperoleh output ringkasan numerik pada jendela
keluaransepertipadaoutputberikutini.
>numSummary(latihan4[,"LIFEEXPF"],groups=latihan4$REGION,
statistics=c("mean","sd","quantiles"))
OECD
East Europe
Pacific/Asia
Africa
Middle East
Latn America
mean
sd 0% 25% 50% 75% 100% n
80.09524 1.179185 78 79 80 81
82 21
76.00000 1.109400 74 75 76 77
78 14
67.41176 10.886108 44 59 69 74
82 17
54.26316 7.978040 43 48 55 58
70 19
71.58824 4.500817 63 68 72 74
80 17
71.76190 7.388537 47 67 75 77
79 21
82
sht90
StatistikDeskriptifmenggunakanRCommander
Dari output tersebut dapat dijelaskan bahwa ratarata usia harapan hidup
perempuan tertinggi pada negaranegara yang termasuk kawasan OECD, dan yang
terendahadalahpadakawasanAFRICA.Secaravisualhalinisepertiyangtelahdiperoleh
padaPlotRataratadiBab4sebelumnya.
6.2.DistribusiFrekuensi
Pembuatan Distribusi Frekuensi untuk variabel nonmetrik dapat dilakukan
dengan RCommander, yaitu gunakan menu Statistika, pilih Ringkasan, pilih Distribusi
Frekuensi . Setelah itu akan terlihat jendela pilihan tentang variabel nonmetrik dari
datasetyangakanditampilkandistribusifrekuensinyasepertipadaGambar5.6.
Gambar5.6.Jendelapilihanvariabelnonmetrik(satuataulebih)yangakan
ditampilkandistribusifrekuensinya.
Misalkan akan dibuat distribusi frekuensi untuk variabel REGION, maka pada
jendeladialogpilihanvariabelyangmuncul,klikREGIONpadapilihanPeubah.Kemudian
klik OK untuk menampilkan output distribusi frekuensinya, sehingga diperoleh output
padajendelakeluaransepertiberikutini.
>.Table<table(latihan4$REGION)
>.Table#countsforREGION
OECDEastEuropePacific/AsiaAfricaMiddleEastLatnAmerica
211417191721
>100*.Table/sum(.Table)#percentagesforREGION
OECDEastEuropePacific/AsiaAfricaMiddleEastLatnAmerica
19.2660612.8440415.5963317.4311915.5963319.26606
83
sht90
StatistikDeskriptifmenggunakanRCommander
Sebagai tambahan, pada menu pilihan Distribusi Frekuensi ini dapat juga
dilakukan Uji Kecocokan untuk mengevaluasi apakah probabilitas masingmasing
kategori sesuai dengan yang dihipotesakan. Misalkan akan diuji apakah persentase
negara pada masingmasingREGIONadalah sama, yaitu1/6, makapilih Uji kecocokan
Chikuadrat(hanyauntuksatupeubah)sehinggadiperolehjendelapilihanprobabilitas
yangmenjadihipotesissepertigambarberikutini.
Gambar5.7.Jendelapilihanisianprobabilitasyangdihipotesakan
Klik OK untuk menampilkan output hasil pengujian, sehingga diperoleh output pada
jendelakeluaransepertiberikutini.
>.Probs<c(0.166666666666667,0.166666666666667,0.166666666666667,
0.166666666666667,0.166666666666667,0.166666666666667)
>chisq.test(.Table,p=.Probs)
Chisquaredtestforgivenprobabilities
data:.Table
Xsquared=2.0275,df=5,pvalue=0.8453
Hasiltersebutmenunjukkanbahwanilaipvaluepengujianadalah0.8453.Sehinggajika
digunakan=0.05dapatdisimpulkanbahwapengujianmenunjukkangagaltolakH0.Hal
ini dikarenakan nilai pvalue lebih besar dari . Dengan demikian dapat disimpulkan
bahwaproporsinegaradimasingmasingREGIONadalahsamayaitu1/6.
6.3.TabelStatistika
R juga menyediakan fasilitas untuk membuat ringkasan statistik dalam tabel
untuksuatuvariabelnumerik(metrik)berdasarkanvariabelnonmetrik(kategorik)atau
faktor tertentu. Pada RCommander, gunakan menu Statistika, pilih Ringkasan, pilih
TabelstatistikasehinggadiperolehjendelapilihansepertipadaGambar5.8.
84
sht90
StatistikDeskriptifmenggunakanRCommander
Gambar5.8.JendelapilihanFaktordanPeubahresponyangakanditampilkan
TabelStatistikanya
>tapply(latihan4$LOG_GDP,list(REGION=latihan4$REGION),mean,na.rm=TRUE)
REGION
OECDEastEuropePacific/AsiaAfricaMiddleEastLatnAmerica
4.2078143.6864283.1076482.7718813.5464123.200901
>tapply(latihan4$LIFEEXPF,list(REGION=latihan4$REGION),median,na.rm=TRUE)
REGION
OECDEastEuropePacific/AsiaAfricaMiddleEastLatnAmerica
807669557275
85
sht90
StatistikDeskriptifmenggunakanRCommander
6.4.MatriksKorelasi
Perhitungan Matriks Korelasi untuk variabelvariabel metrik dan nonmetrik
dapatdilakukandenganRCommander,yaitugunakanmenuStatistika,pilihRingkasan,
pilih Matriks korelasi . Setelah itu akan terlihat jendela pilihan tentang variabel
variabeldaridatasetyangakanditampilkanmatrikskorelasinyasepertipadaGambar5.9
berikutini.
Gambar5.9.JendelapilihanPeubahyangakanditampilkanmatrikskorelasinya
>cor(latihan4[,c("CALORIES","FERTILTY","LIFEEXPF","LIFEEXPM","LOG_GDP")],
use="complete.obs")
CALORIES
FERTILTY
LIFEEXPF
LIFEEXPM
LOG_GDP
CALORIES 1.0000000 -0.6958507 0.7753786 0.7650363 0.8474292
FERTILTY -0.6958507 1.0000000 -0.8435988 -0.8089856 -0.7170879
LIFEEXPF 0.7753786 -0.8435988 1.0000000 0.9893717 0.8287739
LIFEEXPM 0.7650363 -0.8089856 0.9893717 1.0000000 0.8037349
LOG_GDP
0.8474292 -0.7170879 0.8287739 0.8037349 1.0000000
86
sht90
StatistikDeskriptifmenggunakanRCommander
6.5.UjiKorelasi
Perhitungan Uji Korelasi, baik untuk korelasi ProdukMomen Pearson ataupun
korelasi RankOrder Spearman dapat dilakukan dengan RCommander, yaitu gunakan
menu Statistika, pilih Ringkasan, pilih Uji korelasi . Setelah itu akan terlihat jendela
pilihantentangduavariabelyangakandiujikorelasinyasepertipadaGambar5.10.
Gambar5.10.JendelapilihanduaPeubahyangakandiujikorelasinya
>cor.test(latihan4$LIFEEXPF,latihan4$LOG_GDP,alternative="two.sided",method="pearson")
Pearson'sproductmomentcorrelation
data:latihan4$LIFEEXPFandlatihan4$LOG_GDP
t=15.4575,df=107,pvalue<2.2e16
alternativehypothesis:truecorrelationisnotequalto0
95percentconfidenceinterval:
0.76211770.8813950
sampleestimates:
cor
0.8310795
87
sht90
StatistikDeskriptifmenggunakanRCommander
Hasiltersebutmenunjukkanbahwanilaipvaluepengujianadalah2.2e16.Sehinggajika
digunakan =0.05 dapat disimpulkan bahwa pengujian menunjukkan tolak H0. Hal ini
dikarenakannilaipvaluelebihkecildari.Dengandemikiandapatdisimpulkanbahwa
adakorelasipositifantaraLIFEEXPFdanLOGGDP.
6.6.UjiKenormalanShapiroWilk
Perhitungan Uji Kenormalan ShapiroWilk pada RCommander dapat dilakukan
denganmenggunakanmenuStatistika,pilihRingkasan,kemudianpilihUjikenormalan
ShapiroWilk.Setelahituakanterlihatjendelapilihantentangvariabelyangakandiuji
kenormalannyasepertipadaGambar5.11berikutini.
Gambar5.11.JendelapilihanPeubahyangakandiujikenormalannya
>shapiro.test(latihan4$LIFEEXPF)
ShapiroWilknormalitytest
data:latihan4$LIFEEXPF
W=0.8596,pvalue=9.435e09
Output ini menunjukkan bahwa nilai pvalue pengujian adalah 9.435e9. Sehingga jika
digunakan =0.05 dapat disimpulkan bahwa pengujian menunjukkan tolak H0 yang
berartidataLIFEEXPFtidakberdistribusinormal.HalinididukungolehQQPlotpadaBab
4sebelumnya(lihatpadahalaman52).
88
sht90
StatistikDeskriptifmenggunakanRCommander
6.7.TabelKontingensiDuaArah
Pembuatan tabel kontingensi dua arah pada RCommander dapat dilakukan
dengan menggunakan menu Statistika, pilih Tabel kontingensi, dan kemudian pilih
Tabel dua arah . Setelah itu akan terlihat jendela pilihan tentang dua variabel
nonmetrik(kategorik)yangakandibuattabelkontingensiduaarahsepertipadaGambar
5.12berikutini.
Gambar5.12.JendelapilihanDuaPeubahyangakandibuatTabelKontingensinya
Misalkan akan dibuat tabel kontingensi dua arah untuk variabel CLIMATE dan
REGION,makapadajendeladialogpilihanPeubahbarisyangmunculklikCLIMATEdan
pilih REGION pada pilihan Peubah kolom. Kemudian pilih besaran (persentase baris,
persentase kolom, atau persentase keseluruhan) dan uji hipotesis (sebagai pilihan
defaultadalahujikesalingbebasanChikuadrat)yangakan dilakukan.Setelah itu,klik
OKuntukmenampilkanoutputtabelkontingensiduaarahpadajendelakeluaranseperti
berikutini.
89
sht90
StatistikDeskriptifmenggunakanRCommander
>.Table<xtabs(~CLIMATE+REGION,data=latihan4)
>.Table
REGION
CLIMATE
OECD East Europe Pacific/Asia Africa Middle East Latn America
desert
0
0
0
1
6
0
arid / desert
0
0
0
1
4
0
arid
1
0
1
0
2
2
tropical
0
0
9
10
0
13
mediterranean
1
2
2
2
2
1
maritime
1
3
0
0
0
0
temperate
15
8
4
2
2
3
arctic / temp
3
1
0
0
0
0
arctic
0
0
0
0
0
0
>rowPercents(.Table)#RowPercentages
REGION
CLIMATE
OECD East Europe Pacific/Asia Africa Middle East Latn America
desert
0.0
0.0
0.0
14.3
85.7
0.0
arid / desert 0.0
0.0
0.0
20.0
80.0
0.0
arid
16.7
0.0
16.7
0.0
33.3
33.3
tropical
0.0
0.0
28.1
31.2
0.0
40.6
mediterranean 10.0
20.0
20.0
20.0
20.0
10.0
maritime
25.0
75.0
0.0
0.0
0.0
0.0
temperate
44.1
23.5
11.8
5.9
5.9
8.8
arctic / temp 75.0
25.0
0.0
0.0
0.0
0.0
arctic
NaN
NaN
NaN
NaN
NaN
NaN
REGION
CLIMATE
Total Count
desert
100.0
7
arid / desert 100.0
5
arid
100.0
6
tropical
99.9
32
mediterranean 100.0
10
maritime
100.0
4
temperate
100.0
34
arctic / temp 100.0
4
arctic
NaN
0
>.Test<chisq.test(.Table,correct=FALSE)
Warning in chisq.test(.Table, correct = FALSE) :
Chi-squared approximation may be incorrect
>.Test
data: .Table
X-squared = NaN, df = 40, p-value = NA
Output uji Chikuadrat tidak dapat diperoleh karena banyak nilai 0 pada beberapa sel
kombinasiantaravariabelCLIMATEdanREGION.
90
sht90
StatistikDeskriptifmenggunakanRCommander
6.8.EntryLangsungDataFrekuensiuntukTabelKontingensiDuaArah
Rjugamenyediakanfasilitasuntukmembuattabelkontingensiduaarahdengan
caramemasukkanlangsungfrekuensifrekuensipadasetiapkombinasiselyangadapada
tabel kontingensi. Pembuatan masukkan tabel dua arah ini pada RCommander dapat
dilakukandenganmenggunakanmenuStatistika,pilihTabelkontingensi,dankemudian
pilihMasukkandananalisistabelduaarah.Setelahituakanterlihatjendelapilihan
tentang Banyaknya baris dan Banyaknya kolom, serta Masukkan frekuensi yang akan
dibuattabelkontingensiduaarahsepertipadaGambar5.13berikutini.
Gambar5.12.JendelapilihanDuaPeubahyangakandibuatTabelKontingensinya
MisalkanakandibuattabelkontingensiduaarahuntukvariabelPILIHANACARA
TVdanGENDERRESPONDEN,makapadajendelakolom,tulisOlahragadanSinetron,
dantulisPriadanWanitapadajendelabaris.Isikanangka45,20,25,dan40padaempat
sel isian yang ada (misal Pria cenderung menonton Olah raga, sedangkan Wanita
cenderung menonton Sinetron). Kemudian klik OK untuk menampilkan output tabel
kontingensiduaarahpadajendelakeluaransepertiberikutini.
91
sht90
StatistikDeskriptifmenggunakanRCommander
>library(abind)#aktifkanterlebihdulujikadiperlukan
>.Table<matrix(c(45,20,25,40),2,2,byrow=TRUE)
>rownames(.Table)<c('Pria','Wanita')
>colnames(.Table)<c('Olahraga','Sinetron')
>.Table#Counts
Pria
Wanita
>rowPercents(.Table)
Pria
Wanita
>.Test<chisq.test(.Table,correct=FALSE)
>.Test
Pearson'sChisquaredtest
data:.Table
Xsquared=12.381,df=1,pvalue=0.0004337
Hasildarioutputiniadalahtabelkontingensiduaarahyangberisifrekuensipada
masingmasingselkombinasigenderrespondendanacaraTVyangseringditonton.Hasil
uji Chikuadrat menunjukkan nilai pvalue 0.0004337. Sehingga jika digunakan =0.05
dapatdisimpulkanbahwapengujianmenunjukkantolak H0yang berartibahwagender
respondendanacaraTVyangditontontidaksalingbebasatausalingterkait.Keterkaitan
duavariabeltersebutadalahPriacenderungmenontonOlahraga(68,2%Pria),sedang
kanWanitacenderungmenontonSinetron(61,5%Wanita).
92
sht90
StatistikInferensimenggunakanRCommander
BAB7
STATISTIKINFERENSIMENGGUNAKANRCommander
2.Tabelkontingensi(ContingencyTables),yangterdiridaridialogpilihan
93
sht90
StatistikInferensimenggunakanRCommander
3.Rerata(Means),yangterdiridaridialogpilihan
4.Proporsi(Proportions),yangterdiridaridialogpilihan
5.Variansi(Variances),yangterdiridaridialogpilihan
6.Ujinonparametrik(Nonparametrictests),yangterdiridaridialogpilihan
7.Analisisdimensional(Dimensionalanalysis),yangterdiridaridialogpilihan
8.Pencocokanmodel(Fitmodels),yangterdiridaridialogpilihan
94
sht90
StatistikInferensimenggunakanRCommander
PembahasantentangRingkasandanTabelkontingesisudahdiberikanpadaBab
6sebelumnya.Dengandemikian,babiniakanmembahasanalisisstatistikauntukpilihan
Ratarata,Variansi,danseterusnya.
7.1.PengujianRatarata(Mean)
Padabagianiniakandijelaskancaraperhitunganuntukpengujianrataratadari
suatu data. R menyediakan lima macam pilihan pada pengujian ratarata, yaitu Ujit
sampel tunggal, Ujit sampel saling bebas, Ujit berpasangan, ANAVA Satuarah, dan
ANAVA Multiarah. Pilihanpilihan analisis statistika tersebut dapat diperoleh dengan
memilih menu Statistika, dan kemudian memilih Rerata seperti yang terlihat pada
Gambar7.1berikutini.
Gambar7.1.Jendeladialoguntukpilihanpadapengujianratarata
7.1.1.PengujianRataratasampeltunggal(Singlesamplettest)
MisalkansuatusamplingterhadapairsungaiKALIMASSurabayadilakukanoleh
Departemen Kesehatan kota Surabaya untuk menentukan apakah ratarata jumlah
bakteriperunitvolumeairdiSungaitersebutmasihdibawahambangbatasamanyaitu
200.Kemudian,penelitididepartementersebutmengumpulkan10sampelairperunit
volumedanmenemukanjumlahbakterisebagaiberikut.
Sampelke
10
Jml.bakteri
175
190
215
198
184
207
210
193
196
180
Apakahdata(informasi)inimemberikanbuktiyangkuatbahwarataratajumlahbakteri
perunitvolumeairdisungaiKALIMASmasihdibawahambangbatasaman?
95
sht90
StatistikInferensimenggunakanRCommander
Gambar7.2.JendelatampilanuntukentrydatapadaRCommander
KemudiantentukanLevelKeyakinanpengujianyangakandigunakan,misalkansaja0.95.
Hal ini berarti yang digunakan adalah 5%. Setelah semua isian dialog sudah sesuai
dengan pengujian yang akan dilakukan, klik OK untuk menampilkan output dari
pengujianini.
96
sht90
StatistikInferensimenggunakanRCommander
Gambar7.3.JendeladialoguntukpilihanpadaUjitsampeltunggal
Outputhasilpengujianrataratasampeltunggalyangdiperolehdaricontohkasusdiatas
adalahsebagaiberikut.
>t.test(data7mu1$bakteri,alternative='less',mu=200,conf.level=.95)
OneSamplettest
data:data7mu1$bakteri
t=1.2516,df=9,pvalue=0.1211
alternativehypothesis:truemeanislessthan200
95percentconfidenceinterval:
Inf202.4162
sampleestimates:
meanofx
194.8
Hasilinimenunjukkanbahwanilaistatistiktyangdiperolehadalah1.2516,dan
nilai pvalue pengujian adalah 0.1211. Dengan menggunakan kaidah pengambilan
keputusanberdasarkanpvalue,yaitutolakH0jikapvaluelebihkecildarinilai,maka
pada=0.05dapatdisimpulkanbahwapengujianmenunjukkangagaltolakH0.Dengan
demikiandapatdijelaskanbahwarataratajumlahbakteriperunitvolumeairyangada
di Sungai KALIMAS Surabaya tidak berada di bawah ambang batas aman atau per
nyataanbahwarataratajumlahbakteriperunitvolumeairdiSungaiKALIMASmasihdi
bawahambangbatasamanadalahTIDAKBENAR.
97
sht90
StatistikInferensimenggunakanRCommander
7.1.2. PengujianPerbedaanRatarataDuasampelsalingbebas(Independent
samplettest)
Misalkan suatu metode perakitan produk dalam pabrik tertentu memerlukan
kirakirasatubulanmasatraininguntukseorangpegawaibaruuntukmencapaiefisiensi
maksimum.Suatumetodetrainingyangbarutelahdiusulkandanpengujiandilakukan
untuk membandingkan metode baru tersebut dengan prosedur yang standar. Dua
kelompokyangmasingmasingterdiridarisembilanpegawaibarudilatihselamaperiode
waktu tiga minggu, satu kelompok menggunakan metode baru dan lainnya mengikuti
prosedur latihan yang standar.Lama waktu (dalammenit) yangdiperlukanoleh setiap
pegawaiuntukmerakitprodukdicatatpadaakhirdariperiodeempatminggutersebut,
danhasilnyadapatdilihatpadatabelberikut.
Tabel7.1.Lamawaktu(dalammenit)untukmerakitproduk
ProsedurStandar
32
37
35
28
41
44
35
31
34
ProsedurBaru
35
31
29
25
34
40
27
32
31
Apakah data ini memberikan cukup bukti untuk menyatakan bahwa mean (ratarata)
waktuuntukmerakitprodukpadaakhirperiodeempatminggulatihanadalahlebihkecil
untukprosedur(metode)latihanbaru?
Seperti pada bagian sebelumnya, pengujian perbedaan ratarata dua sampel
independen inidapatdilakukan setelahdatatersedia diR.Dalamhalini,adaduacara
yang dapat dilakukan yaitu memasukkan data pada dataset baru atau menambahkan
data pada dataset yang sudah ada. Pada bagian ini akan digunakan cara kedua yaitu
menambahkan datadata ini pada dataset yang sudah ada dari subbab sebelumnya
(data7mu).
Untuk itu, aktifkan dulu data7mu dengan menggunakan menu Data, pilih
Dataset aktif, dan kemudian klik Pilih dataset aktif . Setelah itu pilih data7mu yang
sudah tersimpan sebelumnya. Selanjutnya, editing data untuk menambah data baru
dapatdilakukandenganmengklikjendeladialogEditdataset.Dengandemikianproses
editinguntukmenambahkandatabarudapatdilakukan.IsikandatadatapadaTabel7.1
pada dua kolom baru yang tersedia, yaitu kolom pertama dengan nama waktu yang
berisidatadatawaktuperakitan(baik denganmetodebaru ataupunmetodestandar).
Sehinggapadakolomwaktuiniada18data.Padakolomyangkeduaberinamametode,
isikan angkaangka kode dari metode baru (misalkan dengan kode 1) dan metode
standar (kode 2). Setelah proses input data baru telah lengkap, maka akan diperoleh
tampilandatasetdata7muyangberisi3(tiga)kolomsepertiyangterlihatpadaGambar
7.4. Kemudian tutup jendela pengisian data ini untuk melanjutkan ke komputasi
pengujianperbedaanratarataduasampelsalingbebas.
98
sht90
StatistikInferensimenggunakanRCommander
Gambar7.4.JendelatampilanuntukhasileditingdatabarupadaRCommander
Gambar7.5.JendeladialoguntukKonversiPeubahNumerikkeFaktor
99
sht90
StatistikInferensimenggunakanRCommander
Selanjutnya pilih variabel metode, dan klik Level Faktor pada pilihan Sediakan nama
leveldangunakanpilihandefault<samadenganpubah>padaNamapeubahbaru.Klik
OKsehinggadiperolehtampilansepertiberikutini.
Gambar7.6.JendeladialoguntukNamalevelpadapeubahbaru
Isikannamalevelyangsesuaidengannilainumerikyangakandiberinama,yaitu
metode standar untuk 1 dan metode baru untuk 2. Setelah itu klik OK, dan proses
konversivariabeldarinumerikkefaktortelahdilakukan.Untukmelihatperubahandata
akibat proses konversi ini dapat dilakukan dengan mengklik pada jendela pilihan Lihat
dataset,sehinggadiperolehtampilandata7mubarusepertipadaGambar7.7berikut.
Gambar7.7.Jendelatampilandatabarusetelahkonversimetodekefaktor
100
sht90
StatistikInferensimenggunakanRCommander
Sebagaicatatan,hasileditingdenganmenambahkanvariabelbarudenganjumlahdata
lebih banyak daripada variabel yang lama menyebabkan variabel yang lama mengan
dungdatamissing.
Tahap selanjutnya adalah proses pengujian perbedaan ratarata untuk data di
atas, yaitu dengan memilih menu Statistika, pilih Rerata, dan kemudian pilih Ujit
sampelsalingbebas,sehinggadiperolehjendeladialogsepertipadaGambar7.8.Klik
metode pada jendela Kelompok, dan waktu pada jendela Peubah respon, serta pilih
Hipotesis Alternatif yang sesuai dengan permasalahan di atas, yaitu klik Selisih>0.
Dalamkasusini,hipotesisstatistikayangdigunakanadalah
H0: 1 2 0 atau 1 2
H1: 1 2 > 0 atau 1 > 2
dengan 1 adalahrataratapopulasiuntukwaktumerakitdenganprosedurstandar,dan
2 menyatakanrataratapopulasiuntukwaktumerakitdenganprosedurbaru.
Gambar7.8.JendeladialoguntukUjitSampelSalingBebas
Setelah itu, pilih Interval Keyakinan yang digunakan (misalkan saja 0.95 yang
berarti=5%).KemudianpilihAsumsivariansisamadenganmengkliksalahsatupilihan
yang ada, misalkan saja Ya (pada bagian selanjutnya hal ini akan diuji dengan
menggunakan fasilitas yang ada di RCommander). Setelah semua isian dialog sudah
sesuai dengan pengujian yang akan dilakukan, klik OK untuk menampilkan output dari
pengujian ini. Hasil dari pengujian perbedaan ratarata untuk kasus waktu merakit di
atassecaralengkapdapatdilihatpadaoutputberikutini.
101
sht90
StatistikInferensimenggunakanRCommander
>fix(data7mu)
>data7mu$metode<factor(data7mu$metode,labels=c('metodestandar',
'metodebaru'))
>t.test(waktu~metode,alternative='greater',conf.level=.95,var.equal=TRUE,
data=data7mu)
TwoSamplettest
data:waktubymetode
t=1.6495,df=16,pvalue=0.05927
alternativehypothesis:truedifferenceinmeansisgreaterthan0
95percentconfidenceinterval:
0.2142871Inf
sampleestimates:
meaningroupmetodestandarmeaningroupmetodebaru
35.2222231.55556
Hasilinimenunjukkanbahwanilaistatistiktyangdiperolehadalah1.6495,dan
nilai pvalue pengujian adalah 0.05927. Dengan menggunakan kaidah pengambilan
keputusanberdasarkanpvalue,makapada=0.05dapatdisimpulkanbahwapengujian
menunjukkangagaltolakH0.Dengandemikiandapatdijelaskanbahwarataratawaktu
perakitandenganmetodebarudanmetodestandaradalahtidakberbedaataudugaan
bahwa metode baru memberikan waktu perakitan lebih cepat adalah tidak didukung
olehdata.
7.1.3. PengujianPerbedaanRataratasampelberpasangan(Pairedttest)
Misalkansebuahpabrikinginmembandingkankualitaskeawetandariduajenis
banmobilyangberbeda,yaitubanAdanB.Untukperbandingan,dilakukaneksperimen
dengan cara sebuah ban jenis A dan sebuah ban jenis B secara acak ditentukan dan
dipasang pada roda belakang dari lima mobil. Mobilmobil tersebut dijalankan untuk
sejauh km tertentu dan jarak keawetan (jarak sampai diperoleh ban mengalami
kerusakan tertentu) dicatat untuk setiap ban. Hasil pengukuran dari percobaan ini
(dalam ribu km) dapat dilihat pada Tabel 7.2. Dalam percobaan ini, faktor pengemudi,
kondisi mobil, kondisi jalan, dan faktorfaktor lain yang diduga berpengaruh terhadap
tingkat keawetan pemakaian ban diharapkan dapat dikendalikan dengan cara me
lakukan pengacakan letak ban pada roda belakang setiap mobil yang digunakan.
Berdasarkan data pada Tabel 7.2, tentukan apakah hasil ini memberikan cukup bukti
untukmenyatakanbahwaadaperbedaantingkatkeawetanuntukkeduajenisbanmobil
tersebut.
102
sht90
StatistikInferensimenggunakanRCommander
Tabel7.2.Tingkatkeawetan(dalamribukm)untukduajenisban
JenisBan
Mobil
1.
2.
3.
4.
5.
BanA
BanB
10,6
9,8
12,3
9,7
8,8
10,2
9,4
11,8
9,1
8,3
PengujianperbedaanrataratasampelberpasangandapatdilakukandenganR
CommandersetelahdatatersediadiR.Untukitu,aktifkanduluRCommanderdanbuat
datasetbaru,misalkansajadengannamadata7mu3denganmenggunakanmenuData,
pilihDatasetbaru.Setelahitubuattigakolomuntukvariabelmobil,banA,danbanB.
Isikan data pada Tabel 7.2 pada kolomkolom baru yang tersedia, sehingga diperoleh
tampilandatasepertipadaGambar7.9berikutini.
Gambar7.9.JendelatampilandatauntukUjitberpasangan
103
sht90
StatistikInferensimenggunakanRCommander
Dalam contoh kasus percobaan tingkat keawetan kedua ban ini, hipotesis
statistikayangdigunakanadalah
H0 : = 0
H1 : 0 atauadaperbedaantingkatkeawetan
dengan adalahratarata(populasi)selisihtingkatkeawetanbanAdenganbanB.
Gambar7.10.JendeladialoguntukUjitBerpasangan
Kemudian, pilih Interval Keyakinan yang digunakan (misalkan saja 0.95 yang berarti
=5%).Setelahsemuaisiandialogsudahsesuaidenganpengujianyangakandilakukan,
klikOKuntukmenampilkanoutputdaripengujiansepertiberikutini.
>t.test(data7mu3$Ban.A,data7mu3$Ban.B,alternative='two.sided',
conf.level=.95,paired=TRUE)
Pairedttest
data:data7mu3$Ban.Aanddata7mu3$Ban.B
t=12.8285,df=4,pvalue=0.0002128
alternativehypothesis:truedifferenceinmeansisnotequalto0
95percentconfidenceinterval:
0.37611490.5838851
sampleestimates:
meanofthedifferences
0.48
104
sht90
StatistikInferensimenggunakanRCommander
Hasilinimenunjukkanbahwanilaistatistiktyangdiperolehadalah12.8285,dan
nilai pvalue pengujian adalah 0.0002128. Dengan menggunakan kaidah pengambilan
keputusanberdasarkanpvalue,makapada=0.05dapatdisimpulkanbahwapengujian
menunjukkantolakH0.Dengandemikiandapatdijelaskanbahwaratarataselisihtingkat
keawetan antara ban A dan B adalah berbeda. Hasil ini menunjukkan bahwa ban A
mempunyai tingkat keawetan lebih lama (jarak lebih jauh) dibanding ban B. Hal ini
ditunjukkan oleh nilai positif pada ratarata selisih jarak tempuh antara ban A dan B
sampaibanbantersebutrusak.
7.1.4. AnalisisVariansi(ANAVA)satuarah(OnewayANOVA)
Suatueksperimendilakukanuntukmembandingkanhargasepotongroti(merek
tertentu) pada empat lokasi di suatu kota. Empat toko pada lokasi 1, 2 dan 3 dipilih
secaraacaksebagaisampel,sedangkandilokasi4hanyaduatokoyangterpilih(hanya
duatokoiniyangmenjualmerektersebut).Diperolehdatasebagaiberikut:
Tabel7.3.Hargasepotongrotimerektertentupadaempatlokasi
Lokasi
Harga(riburupiah)
1.59
1.63
1.65
1.61
1.58
1.61
1.64
1.63
1.54
1.54
1.55
1.58
1.69
1.70
Apakah data ini memberikan bukti yang cukup untuk menyatakan bahwa ada
perbedaanrataratahargarotiditokotokopada4lokasidikotatersebut?
Pengujian perbedaan ratarata dari empat sampel ini dapat dilakukan dengan
metode ANAVA satu arah yang tersedia di RCommander setelah data tersedia di R.
Untuk itu, buat dataset baru, misalkan saja dengan nama data7mu4 dengan
menggunakan menu Data, pilih Dataset baru . Setelah itu buat dua kolom untuk
variabel lokasi, dan harga. Isikan data pada Tabel 7.3 pada kolomkolom baru yang
tersedia,sehinggadiperolehdatasepertipadaGambar7.11.
Seperti pada Ujit sampel saling bebas, diperlukan langkah awal untuk
mengaktifkanANAVAsatuarahini,yaitumengkonversivariabellokasimenjadifaktor.
Hal ini dapat dilakukan dengan menggunakan menu Data, pilih Atur peubah pada
dataset aktif, dan kemudian klik Konversi peubah numerik ke faktor , seperti yang
digunakanpadavariabelmetodepadaUjitsampelsalingbebasdibagiansebelumnya.
105
sht90
StatistikInferensimenggunakanRCommander
Gambar7.11.JendelatampilandatauntukANAVAsatuarah
Darigambarinidapatdilihatbahwastrukturdatayangdigunakanadalahsamadengan
padapengujianrataratasampelsalingbebas(independen).
Tahap selanjutnya adalah proses pengujian ANAVA satu arah, yaitu dengan
memilih menu Statistika, pilih Rerata, dan kemudian pilih ANAVA Satuarah. Selain
itu,ujiANAVAsatuarahinidapatjugadilakukandenganmenggunakanmenuStatistika,
pilihRerata,dankemudianpilihANAVAMultiarah,sehinggadiperolehjendeladialog
sepertipadaGambar7.12berikutini.
Gambar7.12.JendeladialoguntukANAVAmultiarah
106
sht90
StatistikInferensimenggunakanRCommander
Pada jendela dialog pilihan ANAVA multiarah terlihat bahwa fasilitas ini dapat
digunakanuntuksatuataulebihfaktor.Sehinggakalauhanyasatufaktoryangdiselidiki,
makafasilitasiniadalahsamasajadenganANAVAsatuarah.
Selanjutnya, klik lokasi pada jendela Faktor, dan harga pada jendela Peubah
respon. Pada contoh kasus perbandingan ratarata harga ini, hipotesis statistika yang
digunakanadalah
H0: 1=2=3=4=
H1: minimaladasatumeanpopulasiyangbeda
dengan i adalah ratarata (populasi) harga roti di lokasi i. Statistik uji yang digunakan
adalah uji F, dan bentuk perhitungannya disajikan dalam suatu tabel yang dikenal
dengan tabel ANAVA. Berikut ini adalah bentuk umum tabel ANAVA satu arah untuk
perbandinganrataratakpopulasi.
Sumber
d.f.
SS
MS
Treatment
k1
SST
MST=SST/(k1)
MST/MSE
Error
nk
SSE
MSE=SSE/(nk)
Total
n1
SSTotal
Kemudian,klikOKuntukmenampilkanoutputdaripengujiansepertiberikutini.
>Anova(lm(harga~lokasi,data=data7mu4))
AnovaTable(TypeIItests)
Response:harga
SumSqDfFvaluePr(>F)
lokasi0.00087530.08970.964
Residuals0.03252510
>tapply(data7mu4$harga,list(lokasi=data7mu4$lokasi),mean,na.rm=TRUE)#means
lokasi
1234
1.60001.62001.61251.6050
>tapply(data7mu4$harga,list(lokasi=data7mu4$lokasi),sd,na.rm=TRUE)#std.deviations
lokasi
1234
0.063770420.065828060.045000000.03535534
107
sht90
StatistikInferensimenggunakanRCommander
HasilinimenunjukkanbahwanilaistatistikFyangdiperolehadalah0.0897,dan
nilai pvalue pengujian adalah 0.964. Dengan menggunakan kaidah pengambilan
keputusanberdasarkanpvalue,makapada=0.05dapatdisimpulkanbahwapengujian
menunjukkan gagal tolak H0. Dengan demikian dapat dijelaskan bahwa ratarata harga
rotidiempatlokasiituadalahsama.
Selain dengan menggunakan perintah di RCommander, dapat juga digunakan
commandlinediRConsoleyaitumenggunakanperintahlm.Perintahinisecaraumum
adalahuntukuntukanalisismodellinear(linearmodel),termasukjugadapatdigunakan
untuk analisis regresi linear. Berikut ini adalah contoh penggunakan perintah lm pada
datadiatasbesertaoutputnya.
>fit<lm(harga~lokasi,data=data7mu4)
>summary(fit)
Call:
lm(formula=harga~lokasi,data=data7mu4)
Residuals:
Min1QMedian3QMax
0.080000.023750.006250.026870.09000
Coefficients:
EstimateStd.ErrortvaluePr(>|t|)
(Intercept)1.600000.0285156.1107.84e14***
lokasi[T.2]0.020000.040330.4960.631
lokasi[T.3]0.012500.040330.3100.763
lokasi[T.4]0.005000.049390.1010.921
Signif.codes:0***0.001**0.01*0.05.0.11
Residualstandarderror:0.05703on10degreesoffreedom
MultipleRSquared:0.0262,AdjustedRsquared:0.2659
Fstatistic:0.08967on3and10DF,pvalue:0.964
>anova(fit)
AnalysisofVarianceTable
Response:harga
DfSumSqMeanSqFvaluePr(>F)
lokasi30.0008750.0002920.08970.964
Residuals100.0325250.003252
Hasil dengan perintah ini memberikan output yang lebih banyak, termasuk koefisien
regresiyangdapatdigunakanuntukmenghitungrataratahargarotipadasetiaplokasi.
108
sht90
StatistikInferensimenggunakanRCommander
7.1.5. AnalisisVariansi(ANAVA)duaarah(MultiwayANOVA)
Suatu eksperimen dilakukan untuk menguji apakah terdapat efek (pengaruh)
dariduafaktor,yaitujenismaterialdantemperaturpemakaian,terhadaplamabaterai
tertentu dapat bertahan (usia pakai baterai). Tiga jenis material dan tiga macam
temperaturberbedadipilihsecaraacakdandigunakandalameksperimenini.Dalamhal
ini,temperaturyangdipilihadalah15,70,dan125(dalam0F).Padasetiapselkombinasi
perlakuandilakukanpengulangan(replikasi)sebanyakempatkali.Datahasileksperimen
inisecaralengkapdapatdilihatpadaTabel7.4.
Tabel7.4.Dataeksperimanterhadapusiapakaibaterai(dalamjam)
Temperatur(0F)
TipeMaterial
15
70
125
130155
74180
3440
8075
2070
8258
150188
159126
136122
106115
2570
5845
138110
168160
174120
150139
96104
8260
Apakahdatainimemberikanbuktiyangcukupuntukmenyatakanbahwaadaefekjenis
materialdantemperaturterhadapusiapakaibaterai?
Untuk menguji efek kedua faktor tersebut dapat dilakukan dengan metode
ANAVA multi arah yang tersedia di RCommander. Untuk itu, buat dataset baru,
misalkansajadengannamadata7mu5denganmenggunakanmenuData,pilihDataset
baru. Setelah itu buatdua kolomuntuk variabellokasi, dan harga. Isikan data pada
Tabel 7.4 pada kolomkolom baru yang tersedia, sehingga diperoleh data seperti pada
Gambar7.13.Darigambarinidapatdilihatbahwastrukturdatayangdigunakanadalah
samadenganpadaANAVAsatuarah.
Seperti pada ANAVA satu arah, diperlukan langkah awal untuk mengaktifkan
ANAVA satu arah ini, yaitu mengkonversi variabel jenis material dan temperatur
menjadi faktor. Hal ini dapat dilakukan dengan menggunakan menu Data, pilih Atur
peubah pada dataset aktif, dan kemudian klik Konversi peubah numerik ke faktor ,
sepertiyangdigunakanpadavariabellokasipadaANAVAsatuarahsebelumnya.Dalam
kasus ini, karena ada dua faktor yang akan diselidiki pengaruhnya terhadap respon,
makaanalisisyangdigunakandisebutANAVAduaarah.
109
sht90
StatistikInferensimenggunakanRCommander
Gambar7.13.JendelatampilandatauntukANAVAduaarah
Tahap selanjutnya adalah proses pengujian ANAVA dua arah, yaitu dengan
memilih menu Statistika, pilih Rerata, dan kemudian pilih ANAVA Multiarah,
sehinggadiperolehjendeladialogsepertipadaGambar7.14.Padajendeladialogpilihan
ANAVA multiarah klik material dan temperat pada jendela Faktor, dan usia pada
jendela Peubah respon. Pada contoh kasus ini, ada tiga hipotesis statistika yang
digunakan,yaitu:
1.EfekfaktorJenisMaterial
H0 : i=0(i=1,2,3)atautidakadaefekjenismaterialterhadapusiapakai
H1 : minimaladasatui0atauadaefekjenismaterialterhadapusiapakai
110
sht90
StatistikInferensimenggunakanRCommander
2.EfekfaktorTemperatur
H0 : j=0(j=1,2,3)atautidakadaefektemperaturterhadapusiapakai
H1 : minimaladasatuj0atauadaefektemperaturterhadapusiapakai
3.EfekinteraksifaktorJenisMaterialdanTemperatur
H0 : ()ij=0(i,j=1,2,3)atautidakadaefekinteraksi
H1 : minimaladasatuj0atauadaefekinteraksi
Gambar7.14.JendeladialoguntukANAVAmultiarah
Kemudian,klikOKuntukmenampilkanoutputdaripengujianANAVA duaarahseperti
dalamkotakdibawahparagrafini.Hasilinimenunjukkanbahwaadaefekyangsignifikan
dari jenis material, temperatur, serta interaksi antara jenis material dan temperatur,
terhadapusiapakaibaterai.Haliniditunjukkanolehpvalueyangsemuanyalebihkecil
dari=0.05padaketigaefekyangdievaluasi.
>data7mu5$material<as.factor(data7mu5$material)
>data7mu5$temperat<as.factor(data7mu5$temperat)
>Anova(lm(usia~material*temperat,data=data7mu5))
AnovaTable(TypeIItests)
Response:usia
SumSqDfFvaluePr(>F)
material39119228.96771.909e07***
temperat1068427.91140.001976**
material:temperat961443.55950.018611*
Residuals1823127
Signif.codes:0***0.001**0.01*0.05.0.11
111
sht90
StatistikInferensimenggunakanRCommander
>tapply(data7mu5$usia,list(material=data7mu5$material,
temperat=data7mu5$temperat),mean,na.rm=TRUE)#means
temperat
material
15
70
125
1 134.75 155.75 144.00
2 57.25 119.75 145.75
3 57.50 49.50 85.50
>tapply(data7mu5$usia,list(material=data7mu5$material,
temperat=data7mu5$temperat),sd,na.rm=TRUE)#std.deviations
temperat
material
15
70
125
1 45.35324 25.61738 25.97435
2 23.59908 12.65899 22.54440
3 26.85144 19.26136 19.27866
>tapply(data7mu5$usia,list(material=data7mu5$material,
temperat=data7mu5$temperat),function(x)sum(!is.na(x)))#counts
temperat
material 15 70 125
1 4 4
4
2 4 4
4
3 4 4
4
Sebagai tambahan, hasil dari perintah ANAVA multi arah pada RCommander juga
menampilkan output yang berisi nilainilai mean, standar deviasi, dan jumlah
pengulanganpadasetiapselkombinasiantarfaktor.
7.2.PengujianKesamaanVariansi
Rmenyediakantigamacampilihanpadapengujiankesamaanvariansi,yaituUji
F dua variansi, Uji Bartlett, dan Uji Levene. Pilihanpilihan analisis statistika tersebut
dapat diperoleh dengan memilih menu Statistika, dan kemudian memilih Variansi.
Berikutiniadalahpenjelasanuntukmasingmasingujitersebut.
7.2.1. PengujianKesamaanDuaVariansi
Pada bagian 7.1.2 sebelumnya telah dibahas pengujian ratarata dua sampel
independendenganujit.Dalamujiiniadaduapilihanberkaitandenganasumsivarians
dariduasampelyangdiamati,yaitusamaatauberbeda.Untukmengujikesamaandua
varianstersebutdapatdilakukandenganujiF.
112
sht90
StatistikInferensimenggunakanRCommander
Gambar7.15.JendeladialoguntukUjiFDuaVariansi
Selanjutnya, klik metode pada jendela Kelompok, dan waktu pada jendela
Peubahrespon.Padacontohkasusperbandinganduavariansdarilamawaktumerakit
produk dengan metode standar dan metode baru, hipotesis statistika yang digunakan
adalah
H0: 12 = 22 ataukeduavariansadalahsamabesar
H1: 12 22 ataukeduavariansadalahberbeda.
Statistik uji yang digunakan adalah uji F. Ada tiga pilihan Hipotesis Alternatif atau H1
yang dapat dilakukan, yaitu Duaarah, Selisih<0, dan Selisih>0. Pada contoh ini klik
pilihanDuaarahsesuaidenganyangdinyatakanpadahipotesisstatistikadiatas.Setelah
itu tetapkan Level Keyakinan yang digunakan dalam pengujian (misalkan 0,95 yang
berarti =0.05). Klik OK sehingga diperoleh tampilan output pada jendela keluaran
sepertiberikutini.
113
sht90
StatistikInferensimenggunakanRCommander
>var.test(waktu~metode,alternative='two.sided',conf.level=.95,data=data7mu2)
Ftesttocomparetwovariances
data:waktubymetode
F=1.2205,numdf=8,denomdf=8,pvalue=0.7849
alternativehypothesis:trueratioofvariancesisnotequalto1
95percentconfidenceinterval:
0.27531145.4109136
sampleestimates:
ratioofvariances
1.220527
Hasil ini menunjukkan bahwa tidak ada perbedaan varians dari lama waktu
merakit produk dengan metode standar dan metode baru. Hal ini ditunjukkan oleh p
value(yaitu0.7849)yanglebihbesardari=0.05.
7.2.2. UjiBartlett
R menyediakan fasilitas untuk pengujian kesamaan varians dari beberapa
sampel(lebihdariduasampel).Sebagaicontohkasus,lihatkembalibagian7.1.5tentang
pengujian tentang efek jenis material dan temperatur terhadap usia pakai baterai.
Misalkan ingin diketahui apakah ada perbedaan varians usia pakai baterai pada ketiga
jenis material yang digunakan, maka dapat digunakan menu Statistika, pilih Variansi,
dan setelah itu pilih Uji Bartlett, sehingga diperoleh jendela dialog seperti pada
Gambar7.16.(Aktifkanterlebihdahuludatasetyangsudahtersimpansebelumnya,yaitu
data7mu5padabagian7.1.5).
Gambar7.16.JendeladialoguntukUjiBartlett
114
sht90
StatistikInferensimenggunakanRCommander
Selanjutnya, pilih material pada jendela Kelompok, dan usia pada jendela
Peubahrespon.Padacontohkasusini,hipotesisstatistikayangdigunakanadalah
H0: 12 = 22 = 32 atauketigavariansadalahsamabesar
H1: minimaladasatuvariansyangberbeda.
KlikOKsehinggadiperolehtampilanoutputpadajendelakeluaransepertiberikutini.
>bartlett.test(usia~material,data=data7mu5)
Bartletttestofhomogeneityofvariances
data:usiabymaterial
Bartlett'sKsquared=2.8321,df=2,pvalue=0.2427
Hasilinimenunjukkanbahwatidakadaperbedaanvariansdariusiapakaibateraipada
ketigajenismaterialyangdigunakandalameksperimen.Haliniditunjukkanolehpvalue
(yaitu0.2427)yanglebihbesardari=0.05.
7.2.3. UjiLevene
Seperti pada bagian sebelumnya, Uji Levene adalah uji yang dapat digunakan
untuk pengujian kesamaan varians dari beberapa sampel (lebih dari dua sampel).
Perhatikan kembali contoh pada bagian sebelumnya, yaitu apakah ada perbedaan
varians usia pakai baterai pada ketiga jenis material yang digunakan. R menyediakan
fasilitas untuk Uji Levene yaitu melalui menu Statistika, pilih Variansi, dan setelah itu
pilihUjiLevene,sehinggadiperolehjendeladialogsepertipadaGambar7.16.
Gambar7.17.JendeladialoguntukUjiLevene
115
sht90
StatistikInferensimenggunakanRCommander
Selanjutnya, pilih material pada jendela Kelompok, dan usia pada jendela
Peubah respon. Seperti pada contoh sebelumnya, hipotesis statistika yang digunakan
adalah
H0: 12 = 22 = 32 atauketigavariansadalahsamabesar
H1: minimaladasatuvariansyangberbeda.
KlikOKsehinggadiperolehtampilanoutputpadajendelakeluaransepertiberikutini.
>tapply(data7mu5$usia,data7mu5$material,var,na.rm=TRUE)
123
1004.51521838.9924659.0606
>levene.test(data7mu5$usia,data7mu5$material)
Levene'sTestforHomogeneityofVariance
DfFvaluePr(>F)
group21.04450.3632
33
Seperti pada hasil Uji Bartlett sebelumnya, hasil Uji Levene ini menunjukkan bahwa
tidak ada perbedaan varians dari usia pakai baterai pada ketiga jenis material yang
digunakandalameksperimen.Haliniditunjukkanolehpvalue(yaitu0.3632)yanglebih
besardari=0.05.
7.3.PengujianProporsi
Rmenyediakandua macampilihanpadapengujianproporsi,yaituUjiProporsi
SampelTunggaldanUjiProporsiDuaSampel.Pilihanpilihananalisisstatistikatersebut
dapat diperoleh dengan memilih menu Statistika, dan kemudian memilih Proporsi.
Untuk penjelasan pengujian proporsi ini digunakan data HBAT.SAV yang ada di buku
Hair dkk. (2006, hal. 2831) dengan judul Multivariate Data Analysis. Data tersebut
berisi data profil responden, tingkat persepsi terhadap variabelvariabel pemasaran
(kualitas produk, image website, kecepatan pengiriman, dan lainlain), serta tingkat
kepuasankonsumen.
Sebagai tahap awal, gunakan RCommander untuk melakukan impor data file
SPSS yaitu HBAT.SAV ke file R. Untuk itu, gunakan menu Data, pilih Impor data, dan
kemudian klik dari dataset SPSS. Setelah itu, pengujian proporsi dengan R dapat
dilakukandenganpilihanpilihanmenuyangtersedia.
116
sht90
StatistikInferensimenggunakanRCommander
7.3.1. PengujianProporsiSampelTunggal
Pada data HBAT ada salah satu pertanyaan yang berkaitan dengan apakah
konsumen akan melakukan hubungan (memesan kembali) di masa yang akan datang
denganperusahaan(dinotasikanX23).Adaduajawabanyangdapatdipilih,yaituTIDAK
dan YA. Misalkan dari 100 konsumen yang telah memberikan jawaban ingin diketahui
apakah ada perbedaan proporsi yang menjawab TIDAK dan YA. Hal ini sama dengan
pengujian untuk mengetahui apakah proporsi konsumen yang menjawab TIDAK (tidak
maumelakukanhubungandimasadatang)adalah0,50.
Uji proporsi sampel tunggal pada R disediakan melalui menu Statistika, pilih
Proporsi,dansetelahitupilihUjiproporsiSampeltunggal,sehinggadiperolehjendela
dialogsepertipadaGambar7.18berikutini.
Gambar7.18.JendeladialoguntukUjiProporsiSampelTunggal
Selanjutnya,pilihX23padajendelaPeubah,danisikanangka0.5padajendelaHipotesis
nol:p=. Seperticontohsebelumnya, adatigapilihan Hipotesis Alternatif atau H1 yaitu
ProporsiPopulasi=p0,ProporsiPopulasi<p0,danProporsiPopulasi>p0.Padacontoh
iniklikProporsiPopulasi=p0sesuaidenganhipotesisstatistikayangdigunakanyaitu
H0: p=0,50atauproporsiyangmenjawabTIDAKadalah0,50
H1: p0,50
117
sht90
StatistikInferensimenggunakanRCommander
SetelahitutetapkanLevelKeyakinanyangdigunakandalampengujian(misalkan
0,95 yang berarti =0.05) beserta Tipe Ujinya. Klik OK sehingga diperoleh tampilan
outputpadajendelakeluaransepertiberikutini.
>hbat<read.spss("D:/hair_multivariate_6_data/HBAT.sav",
use.value.labels=TRUE,max.value.labels=Inf,to.data.frame=TRUE)
>.Table<xtabs(~X23,data=hbat)
>.Table
X23
No,wouldnotconsiderYes,wouldconsider
5545
>prop.test(rbind(.Table),alternative='two.sided',p=.5,conf.level=.95,
correct=FALSE)
1sampleproportionstestwithoutcontinuitycorrection
data:rbind(.Table),nullprobability0.5
Xsquared=1,df=1,pvalue=0.3173
alternativehypothesis:truepisnotequalto0.5
95percentconfidenceinterval:
0.45244600.6438546
sampleestimates:
p
0.55
HasilinimenunjukkanbahwapengujiangagalmenolakH0yaituproporsikonsumenyang
menjawab TIDAKmau menjalinkembali hubungan di masadatangadalah 0,50. Hal ini
ditunjukkanolehpvalue(yaitu0.3173)yanglebihbesardari=0.05.Dengandemikian
dapatdisimpulkanbahwatidakadaperbedaanproporsikonsumenyangmaudantidak
maumenjalinkembalihubungandenganperusahaandimasadatang.
7.3.2. PengujianProporsiDuaSampel
Salah satu variabel profile konsumen pada data HBAT adalah jenis perusahaan
(dinotasikan X2), yaitu magazine industry dan newsprint industry. Misalkan ingin
diketahui apakah ada perbedaan proporsi yang menjawab TIDAK dan YA pada per
tanyaan tentang mau tidaknya melakukan hubungan kembali di masa datang dalam
keduakelompokkonsumenindustritersebut.
118
sht90
StatistikInferensimenggunakanRCommander
Uji proporsi dua sampel adalah uji statistik yang dapat dilakukan untuk
menjawab permasalahan tersebut. R menyediakan fasilitas uji ini melalui menu
Statistika, pilih Proporsi, dan setelah itu pilih Uji proporsi dua sampel, sehingga
diperolehjendeladialogsepertipadaGambar7.19.
Gambar7.19.JendeladialoguntukUjiProporsiduasampel
Selanjutnya,pilihX2padajendelaKelompok,danpilihX23padajendelaPeubahrespon.
Padacontohinihipotesisstatistikayangdigunakanadalah
H0: p1=p2atauproporsiyangmenjawabTIDAKmaumelakukan
hubungankembalidimasadatangpadakonsumen
magazineindustrydannewsprintindustryadalah
SAMA
H1: p1p2atauadaPERBEDAANproporsiyangmenjawabTIDAK
maumelakukanhubungankembalidimasadatang
padakonsumenmagazineindustrydannewsprint
industry
SetelahitupilihHipotesisAlternatifatauH1yangsesuaidenganhipotesisdiatas,yaitu
Duaarah.TetapkanjugaLevelKeyakinandanTipeUjiyangdigunakan.KlikOKsehingga
diperolehtampilanoutputpadajendelakeluaransepertiberikutini.
119
sht90
StatistikInferensimenggunakanRCommander
>.Table<xtabs(~X2+X23,data=hbat)
>.Table
X23
X2No,wouldnotconsiderYes,wouldconsider
Magazineindustry3022
Newsprintindustry2523
>rowPercents(.Table)
X23
X2No,wouldnotconsiderYes,wouldconsiderTotalCount
Magazineindustry57.742.310052
Newsprintindustry52.147.910048
>prop.test(.Table,alternative='two.sided',conf.level=.95,correct=FALSE)
2sampletestforequalityofproportionswithoutcontinuity
correction
data:.Table
Xsquared=0.3173,df=1,pvalue=0.5732
alternativehypothesis:two.sided
95percentconfidenceinterval:
0.13885710.2510366
sampleestimates:
prop1prop2
0.57692310.5208333
HasilinimenunjukkanbahwapengujiangagalmenolakH0yaituproporsikonsumenyang
menjawab TIDAK mau menjalin kembali hubungan di masa datang antara konsumen
magazineindustrydannewsprintindustryadalahSAMA.Haliniditunjukkanolehpvalue
(yaitu0.5732)yanglebihbesardari=0.05.Dengandemikiandapatdisimpulkanbahwa
jenis industri dari konsumen tidak memberikan perbedaan terhadap kemauan dalam
menjalinkembalihubungandenganperusahaandimasadatang.
7.4.AnalisisRegresiLinear
Ada berbagai prosedur dan library untuk melakukan analisis data dengan
berbagai jenis persamaan regresi yang disediakan oleh R, baik model linear ataupun
nonlinear. Pada bagian ini akan dijelaskan analisis regresi linear yang disediakan di R
Commander.SecaraumumadaduamenuyangdisediakanRCommanderuntukanalisis
regresilinear,yaituRegresiLineardanModelLinear.
120
sht90
StatistikInferensimenggunakanRCommander
7.4.1. RegresiLinear
Misalkan akan diamati hubungan antara tingkat persepsi konsumen terhadap
kualitas produk HBAT (variabel X6) dan tingkat kepuasan konsumen (variabel X19)
melaluimodelregresilinear.Untukkeperluanini,RCommandermenyediakanfasilitas
melaluimenuStatistika,pilihPencocokanModel,dansetelahitupilihRegresiLinier,
sehingga diperoleh jendela dialog seperti pada Gambar 7.20. Menu ini disediakan
terutama untuk estimasi model regresi linear dari variabel dependen yang bersifat
metrikdenganvariabelindependenyangsemuanyabersifatmetrik,dansecaradefault
memuatkomponenkonstantadalammodelregresinya.
Gambar7.20.JendeladialoguntukRegresiLinier
Pada contoh kasus HBAT ini, ketik nama untuk model regresi linear yang akan
diestimasi (default adalah Regmodel.1). Hal ini berarti output hasil estimasi regresi
linear disimpan sebagai objek dengan nama Regmodel.1. Kemudian pilih X19 (tingkat
kepuasan konsumen) pada jendela Peubah respon (variabel dependen), dan pilih X6
(tingkat persepsi konsumen terhadap kualitas produk HBAT) pada jendela Peubah
eksplanatori (variabel independen). Jendela dialog pada variabel independen menye
diakan pilihan satu atau lebih yang mengindikasikan bahwa menu ini secara umum
dapat digunakan untuk analisis regresi linear berganda. Klik OK sehingga diperoleh
outputmodelregresilinearsederhanasepertiyangterlihatdihalaman122.
Output tersebut menunjukkan bahwa persepsi terhadap kualitas produk ber
pengaruhsignifikanterhadapkepuasankonsumen.Haliniditunjukkanolehbesarnyap
valuedariujit(yaitu 2.90e07) yanglebihkecildari=0.05.Tandakoefisienregresiyang
positif menjelaskan bahwa semakin besar tingkat persepsi terhadap kualitas produk
makasemakintinggipulatingkatkepuasankonsumenpadaprodukHBAT.
121
sht90
StatistikInferensimenggunakanRCommander
>RegModel.1<lm(X19~X6,data=hbat)
>summary(RegModel.1)
Call:
lm(formula=X19~X6,data=hbat)
Residuals:
Min1QMedian3QMax
1.887460.727110.015770.856412.25220
Coefficients:
EstimateStd.ErrortvaluePr(>|t|)
(Intercept)3.675930.597656.1511.68e08***
X60.415120.075345.5102.90e07***
Signif.codes:0***0.001**0.01*0.05.0.11
Residualstandarderror:1.047on98degreesoffreedom
MultipleRSquared:0.2365,AdjustedRsquared:0.2287
Fstatistic:30.36on1and98DF,pvalue:2.901e07
>#perhatikanhasildariperintahperintahberikutini
>hbat$fitted.RegModel.1<fitted(RegModel.1)
>hbat$residuals.RegModel.1<residuals(RegModel.1)
>hbat$rstudent.RegModel.1<rstudent(RegModel.1)
>hbat$hatvalues.RegModel.1<hatvalues(RegModel.1)
>hbat$cooks.distance.RegModel.1<cooks.distance(RegModel.1)
>#perintahuntukmendapatkangambargarisregresi
>plot(hbat$X6,hbat$X19)
>lines(hbat$X6,hbat$fitted.RegModel.1,col="red")
Perintah terakhir pada output diatas adalah untuk mendapatkan garis regresi yang
menjelaskan hubungan antara persepsi terhadap kualitas produk dengan kepuasan
konsumen.HasildariperintahinidapatdilihatpadaGambar7.21.Darigambarinidapat
dijelaskan bahwa secara keseluruhan terdapat variasi observasi yang besar dari garis
regresi yang ada. Hal ini juga ditunjukkan oleh nilai koefisien determinasi (R2) model
yangcukupkecil,yaitu0,2365.
122
sht90
StatistikInferensimenggunakanRCommander
Gambar7.21.Plotobservasidanhasilgarisregresilinear
7.4.2. ModelLinear
Menu pilihan Model Linier pada RCommander bersifat lebih umum daripada
menu Regresi Linier sebelumnya. Pada menu ini, variabel dependen dibatasi hanya
untuk variabel yang bersifat metrik. Sedangkan untuk variabel independen, tidak
terbatas hanya untuk variabel yang bersifat metrik, tetapi juga dapat yang bersifat
nonmetrik atau bertipe kategori (yang dalam pengolahan data menggunakan variabel
dummy).
Misalkan akan diteliti hubungan antara tipe konsumen berdasarkan lamanya
menjadi konsumen (variabel X1) dan tingkat persepsi konsumen terhadap kualitas
produkHBAT(variabelX6)terhadaptingkatkepuasankonsumen(variabelX19)melalui
model regresi linear berganda. Dalam hal ini X1 merupakan variabel nonmetrik yang
terdiri dari 3 kategori, yaitu kurang dari 1 tahun, 15 tahun, dan lebih dari 5 tahun.
Untuk keperluan analisis regresi linear berganda ini, RCommander menyediakan
fasilitas melalui menu Statistika, pilih Pencocokan Model, dan setelah itu pilih Model
Linier,sehinggadiperolehjendeladialogsepertipadaGambar7.22.
123
sht90
StatistikInferensimenggunakanRCommander
Gambar7.22.JendeladialoguntukModelLinier
Untukpenyelesaiankasusdiatas,ketiknamaobjekoutputmodelregresilinear
yangakandiestimasi(misalLinearModel.2).Haliniberartioutputhasilestimasiregresi
linear berganda disimpan sebagai objek dengan nama LinearModel.2. Kemudian pilih
X19 (tingkat kepuasan konsumen) pada jendela Formula Model: (variabel dependen),
danpilihX6+X1(tingkatpersepsikonsumenterhadapkualitasprodukHBATdanjenis
konsumen) pada jendela kanan dari Formula Model (variabel independen). Jendela
dialog pada Formula Model menyediakan banyak pilihan dari model linear ataupun
modelyangdilinearkandengantransformasitertentu.KlikOKsehinggadiperolehoutput
modelregresilinearbergandasepertiyangterlihatdihalaman125.
Output ini menunjukkan bahwa jenis (lama menjadi) konsumen dan persepsi
terhadapkualitasprodukberpengaruhsignifikanterhadapkepuasankonsumen.Halini
ditunjukkan oleh besarnya pvalue dari uji t pada kedua variabel tersebut yang lebih
kecildari=0.05.Khususuntukvariabeljeniskonsumen,adaduakoefisienregresiyang
ditampilkan, yaitu pada konsumen 15 tahun (sebesar 1,5511) dan lebih dari 5 tahun
(sebesar 1,3940). Tanda koefisien regresi yang positif pada kedua variabel dummy
tersebut menjelaskan bahwa konsumen lama (15 tahun dan lebih dari 5 tahun)
memilikitingkatkepuasanlebihtinggidibandingkonsumenbaru(kurangdari1tahun).
Sebagaitambahan,hasilregresilinearbergandamemberikannilaikoefisiendeterminasi
(R2) model yang lebih besar dibanding hasil regresi linear sebelumnya, yaitu naik dari
0,2365menjadi0,5458.
124
sht90
StatistikInferensimenggunakanRCommander
>LinearModel.2<lm(X19~X6+X1,data=hbat)
>summary(LinearModel.2)
Call:
lm(formula=X19~X6+X1,data=hbat)
Residuals:
Min1QMedian3QMax
1.859730.632500.052930.549872.11380
Coefficients:
EstimateStd.ErrortvaluePr(>|t|)
(Intercept)3.83340.57066.7181.31e09***
X60.26650.07783.4260.000903***
X1[T.1to5years]1.55110.19987.7638.99e12***
X1[T.Over5years]1.39400.25575.4523.87e07***
Signif.codes:0***0.001**0.01*0.05.0.11
Residualstandarderror:0.8157on96degreesoffreedom
MultipleRSquared:0.5458,AdjustedRsquared:0.5316
Fstatistic:38.45on3and96DF,pvalue:<2.2e16
>#perhatikanhasildariperintahperintahberikutini
>hbat$fitted.LinearModel.2<fitted(LinearModel.2)
>hbat$residuals.LinearModel.2<residuals(LinearModel.2)
>hbat$rstudent.LinearModel.2<rstudent(LinearModel.2)
>hbat$hatvalues.LinearModel.2<hatvalues(LinearModel.2)
>hbat$cooks.distance.LinearModel.2<cooks.distance(LinearModel.2)
>trellis.device(theme="col.whitebg")
>plot(all.effects(LinearModel.2),ask=FALSE)
125
sht90
StatistikInferensimenggunakanRCommander
Gambar7.23.JendeladialoguntukanalisislanjutandariModelLinier
KlikpadapilihanPlotEfekakanmenghasilkanoutputgrafiksepertipadagambarberikut
ini.
Gambar7.24.PlotEfekpadamasingmasingvariabelindependedariModelLinier
126
sht90
StatistikInferensimenggunakanRCommander
7.5.ModelLinearTergeneralisir(GeneralizedLinearModel)
RCommander menyediakan fasilitas untuk analisis ModelLinier Tergeneralisir
melalui menu Statistika, pilih Pencocokan Model, dan setelah itu pilih Model Linier
Tergeneralisir. Secara umum, Model Linier Tergeneralisir digunakan untuk analisis
model pada data variabel respon (dependen) yang mengikuti distribusi keluarga
eksponensial. Ada beberapa famili distribusi yang tersedia di RCommander, yaitu
gaussian, binomial, poisson, Gamma, inverse.gaussian, quasibinomial, dan quasi
poisson. Pada bagian ini hanya dijelaskan pada kasus famili distribusi binomial yaitu
variabelresponyangmempunyaiduakategori, sehinggamodelyangdiperolehdikenal
denganmodelregresilogisitik.
Misalkan akan diteliti hubungan antara tipe konsumen berdasarkan lamanya
menjadi konsumen (variabel X1) dan tingkat persepsi konsumen terhadap kualitas
produkHBAT(variabelX6)terhadapkemauankonsumenuntukmembangunhubungan
dengan perusahaan di masa yang akan datang (variabel X23, yang jawabannya adalah
YA dan TIDAK). Untuk keperluan analisis regresi logistik ini, pilih menu Statistika, pilih
Pencocokan Model, dan kemudian pilih Model Linier Tergeneralisir, sehingga
diperolehjendeladialogsepertiberikut.
Gambar7.25.JendeladialoguntukanalisisModelLinierTergeneralisir
127
sht90
StatistikInferensimenggunakanRCommander
Untuk penyelesaian conoth kasus ini, ketik nama objek output model linear
tergeneralisir (GLM) yang akan diestimasi (misal GLM.1). Hal ini berarti output hasil
estimasi GLM disimpan sebagai objek dengan nama GLM.1. Kemudian pilih X23
(kemauan untuk membangun hubungan di masa datang) pada sebelah kiri jendela
Formula Model: (variabel dependen), dan pilih X1 + X6 (jenis konsumen dan tingkat
persepsi konsumen terhadap kualitas produk HBAT) pada jendela kanan dari Formula
Model(variabelindependen).KlikduakalipadapilihanbinomialdijendelaFamili,dan
pilih Fungsi hubungan (link)yang sesuai,yaitu logitpada kasus regresi logistikini.Klik
OKsehinggadiperolehoutputregresilogistriksepertiberikutini.
>GLM.1<glm(X23~X1+X6,family=binomial(logit),data=hbat)
>summary(GLM.1)
Call:
glm(formula=X23~X1+X6,family=binomial(logit),data=hbat)
DevianceResiduals:
Min1QMedian3QMax
1.65660.60710.31650.85802.2036
Coefficients:
EstimateStd.ErrorzvaluePr(>|z|)
(Intercept)4.65461.80362.5810.009858**
X1[T.1to5years]2.99940.81113.6980.000217***
X1[T.Over5years]3.03770.91103.3350.000854***
X60.26970.22451.2010.229733
Signif.codes:0***0.001**0.01*0.05.0.11
(Dispersionparameterforbinomialfamilytakentobe1)
Nulldeviance:137.63on99degreesoffreedom
Residualdeviance:101.78on96degreesoffreedom
AIC:109.78
NumberofFisherScoringiterations:5
>trellis.device(theme="col.whitebg")
>plot(all.effects(GLM.1),ask=FALSE)
128
sht90
StatistikInferensimenggunakanRCommander
Gambar7.26.PlotEfekpadamasingmasingvariabelindependendariGLM
129
sht90
StatistikInferensimenggunakanRCommander
7.6.RangkumanperintahdanlibraryyangberkaitandenganAnalisisRegresi
Berikutiniadalahrangkumanperintahdanpenjelasantentangkegunaan,serta
librarydariperintahtersebut,yangbiasanyadigunakandalamanalisisregresi.
LinearModel
Perintah
Kegunaan
library
Anova
TabelAnovauntukmodellineardanmodellinear
tergeneralisir(GLM)
car
anova
Menghitungsuatutabelanalisisvariansuntuksatu
ataulebihmodellinearyangdiestimasi
stats
coef
Suatufungsigenericuntukmengekstrasikoefisien
modeldariobyekpadafungsipemodelan
stats
coeftest
Pengujiankoefisienyangdiestimasi
confint
Menghitungtaksiranintervaluntuksatuataulebih
parameterdalammodelyangdiestimasi
stats
deviance
Mengembalikandeviancedariobjekmodelyang
diestimasi
stats
effects
Mengembalikanefekdarimodelyangdiestimasi
stats
fitted
Suatufungsigenericuntukmengekstrasinilai
prediksiobjekyangdiambildarifungsipemodelan
stats
formula
Memberikansuatucaramengekstrasiformula
yangterintegrasidenganobjeklain
stats
linear.hypothesis Mengujihipotesiskelinearan
lmtest
car
lm
Digunakanuntukmengestimasimodellinear.
Perintahinidapatdigunakanuntukregresi,analisis
varians,dananalisiskovarians
stats
model.matrix
Membuatsuatumatriksrancangan
stats
predict
Nilaiprediksiberdasarkanobjekmodellinear
stats
residuals
Suatufungsigenerikuntukmengekstrasiresidual
modeldariobjekpadafungsipemodelan
stats
summary.lm
Metodeuntukmeringkas(summary)
stats
vcov
Mengambilmatriksvarianskovariansdari
parameterutamaobjekmodelyangdiestimasi
stats
130
sht90
StatistikInferensimenggunakanRCommander
Pemilihanvariabeldalammodel
Perintah
Kegunaan
library
add1
Menghitungsemuaargumensingletermsyang
ditambahkanataudikeluarkandarimodel,
mengestimasimodeldanmenghitungtabeldari
perubahandinilaiprediksi
stats
AIC
FungsigenericuntukmenghitungAICatauAkaike
informationcriterionuntuksatuataubeberapa
objekmodelyangdiestimasi,berdasarkanrumus
2*loglikelihood+k*npar,dengannparadalah
jumlahparametermodel,dank=2untukAIC,atau
k=log(n)untukBICatauSBC(Schwarz'sBayesian
criterion),dengannadalahbanyaknyapengamatan.
stats
Cpplot
PlotCp
drop1
Menghitungsemuaargumensingletermsyang
ditambahkanataudikeluarkandarimodel,
mengestimasimodeldanmenghitungtabeldari
perubahandinilaiprediksi
stats
extractAIC
Menghitung(generalized)AICuntukmodel
parametrikyangdiestimasi
stats
leaps
Pemilihansubsetdengan`leapsandbounds'
leaps
maxadjr
MaximumAdjustedRsquared
offset
Anoffsetisatermtobeaddedtoalinearpredictor,
suchasinageneralisedlinearmodel,withknown
coefficient1ratherthananestimatedcoefficient
stats
step
SelectaformulabasedmodelbyAIC
stats
faraway
update.formula isusedtoupdatemodelformulae.Thistypically
involvesaddingordroppingterms,butupdatescan
bemoregeneral
131
faraway
stats
sht90
StatistikInferensimenggunakanRCommander
Cekdiagnosakesesuaianmodel
Perintah
Kegunaan
library
cookd
Cook'sDistancesforLinearandGeneralized
LinearModels
car
cooks.distance
Cooksdistance
stats
covratio
covarianceratio
stats
dfbeta
DBETA
stats
dfbetas
DBETAS
stats
dffits
DFFTITS
stats
hat
diagonalelementsofthehatmatrix
stats
hatvalues
diagonalelementsofthehatmatrix
stats
influence.measures Thissuiteoffunctionscanbeusedtocompute
someoftheregression(leaveoneoutdeletion)
diagnosticsforlinearandgeneralized
linearmodels
stats
lm.influence
Thisfunctionprovidesthebasicquantitieswhich
areusedinformingawidevarietyofdiagnostics
forcheckingthequalityofregressionfits
stats
ls.diag
Computesbasicstatistics,includingstandard
errors,tandpvaluesfortheregression
coefficients
stats
outlier.test
BonferroniOutlierTest
car
rstandard
standardizedresiduals
stats
rstudent
studentizedresiduals
stats
vif
VarianceInflationFactor
132
car
sht90
StatistikInferensimenggunakanRCommander
AnalisisGrafikpadamodellinear
Perintah
Kegunaan
library
ceres.plots
CeresPlots
car
cr.plots
Component+Residual(PartialResidual)Plots
car
influence.plot
RegressionInfluencePlot
car
leverage.plots
RegressionLeveragePlots
car
panel.car
PanelFunctionCoplots
car
plot.lm
Fourplots(selectablebywhich)arecurrently
provided:aplotofresidualsagainstfittedvalues,a
ScaleLocationplotofsqrt{|residuals|}against
fittedvalues,aNormalQQplot,andaplotof
Cook'sdistancesversusrowlabels
prplot
PartialResidualPlot
qq.plot
QuantileComparisonPlots
qqline
addsalinetoanormalquantilequantileplot
whichpassesthroughthefirstandthirdquartiles
stats
qqnorm
isagenericfunctionthedefaultmethodofwhich
producesanormalQQplotofthevaluesiny
stats
reg.line
PlotRegressionLine
car
scatterplot.matrix ScatterplotMatrices
car
scatterplot
ScatterplotswithBoxplots
car
spread.level.plot
SpreadLevelPlots
car
133
stats
faraway
car
sht90
StatistikInferensimenggunakanRCommander
Pengujianasumsipadamodellinear
Perintah
Kegunaan
library
ad.test
AndersonDarlingtestfornormality
nortest
bartlett.test
PerformsBartlett'stestofthenullthatthe
variancesineachofthegroups(samples)arethe
same
bgtest
BreuschGodfreyTest
lmtest
bptest
BreuschPaganTest
lmtest
cvm.test
CramervonMisestestfornormality
nortest
durbin.watson
DurbinWatsonTestforAutocorrelatedErrors
dwtest
DurbinWatsonTest
levene.test
Levene'sTest
lillie.test
Lilliefors(KolmogorovSmirnov)testfornormality
ncv.test
ScoreTestforNonConstantErrorVariance
pearson.test
Pearsonchisquaretestfornormality
nortest
sf.test
ShapiroFranciatestfornormality
nortest
shapiro.test
PerformstheShapiroWilktestofnormality
stats
car
lmtest
car
nortest
car
stats
TransformasiVariabelpadamodellinear
Perintah
Kegunaan
library
box.cox
BoxCoxFamilyofTransformations
boxcox
BoxCoxTransformationsforLinearModels
box.cox.powers
MultivariateUnconditionalBoxCox
Transformations
car
box.tidwell
BoxTidwellTransformations
car
box.cox.var
ConstructedVariableforBoxCoxTransformation
car
134
car
MASS
sht90
StatistikInferensimenggunakanRCommander
RegresiRidge
Perintah
lm.ridge
Kegunaan
RidgeRegression
library
MASS
Regresitersegmentasi(SegmentedRegression)
Perintah
Kegunaan
library
segmented
Segmentedrelationshipsinregressionmodels
segmented
slope.segmented
Summaryforslopesofsegmentedrelationships
segmented
LeastSquaresTergeneralisir(GeneralizedLeastSquares)
Perintah
Kegunaan
library
ACF.gls
AutocorrelationFunctionforglsResiduals
nlme
anova.gls
CompareLikelihoodsofFittedObjects
nlme
gls
FitLinearModelUsingGeneralizedLeastSquares
nlme
intervals.gls
ConfidenceIntervalsonglsParameters
nlme
lm.gls
fitLinearModelsbyGeneralizedLeastSquares
MASS
plot.gls
PlotaglsObject
nlme
predict.gls
PredictionsfromaglsObject
nlme
qqnorm.gls
NormalPlotofResidualsfromaglsObject
nlme
residuals.gls
ExtractglsResiduals
nlme
summary.gls
SummarizeaglsObject
nlme
135
sht90
StatistikInferensimenggunakanRCommander
ModelLinearTergeneralisir(GeneralizedLinearModel)
Perintah
Kegunaan
library
family
Familyobjectsprovideaconvenientwaytospecifythe
detailsofthemodelsusedbyfunctionssuchasglm
stats
glm.nb
fitaNegativeBinomialGeneralizedLinearModel
MASS
glm
isusedtofitgeneralizedlinearmodels,specifiedby
givingasymbolicdescriptionofthelinearpredictorand
adescriptionoftheerrordistribution
stats
polr
ProportionalOddsLogisticRegression
MASS
LeastSquaresNonlinear(NonlinearLeastSquaresatauNLS)
Perintah
Kegunaan
library
nlm
Thisfunctioncarriesoutaminimizationofthefunction
fusingaNewtontypealgorithm
stats
nls
Determinethenonlinearleastsquaresestimatesofthe
nonlinearmodelparametersandreturnaclassnls
object
stats
nlscontrol
Allowtheusertosetsomecharacteristicsofthenls
nonlinearleastsquaresalgorithm
stats
nlsModel
ThisistheconstructorfornlsModelobjects,whichare
functionclosuresforseveralfunctionsinalist.The
closureincludesanonlinearmodelformula,datavalues
fortheformula,aswellasparametersandtheirvalues
stats
GeneralizedNonlinearLeastSquaresatauGNLS
Perintah
Kegunaan
library
coef.gnls
ExtractgnlsCoefficients
nlme
gnls
FitNonlinearModelUsingGeneralizedLeastSquares
nlme
predict.gnls
PredictionsfromagnlsObject
nlme
136
sht90
StatistikInferensimenggunakanRCommander
LoessRegression
Perintah
Kegunaan
library
loess
Fitapolynomialsurfacedeterminedbyoneormore
numericalpredictors,usinglocalfitting
stats
loess.control
Setcontrolparametersforloessfits
stats
predict.loess
Predictionsfromaloessfit,optionallywithstandard
errors
stats
scatter.smooth Plotandaddasmoothcurvecomputedbyloesstoa
scatterplot
stats
SplinesRegression
Perintah
Kegunaan
library
bs
BSplineBasisforPolynomialSplines
splines
ns
GenerateaBasisMatrixforNaturalCBSplineBasis
forPolynomialSplinesubicSplines
splines
periodicSpline
CreateaPeriodicInterpolationSpline
splines
polySpline
PiecewisePolynomialSplineRepresentation
splines
predict.bSpline EvaluateaSplineatNewValuesofx
splines
predict.bs
EvaluateaSplineBasis
splines
splineDesign
DesignMatrixforBsplines
splines
splineKnots
KnotVectorfromaSpline
splines
splineOrder
DeterminetheOrderofaSpline
splines
RobustRegression
Perintah
Kegunaan
library
lqs
ResistantRegression
MASS
rlm
RobustFittingofLinearModels
MASS
137
sht90
StatistikInferensimenggunakanRCommander
Structuralequationmodels
Perintah
Kegunaan
library
sem
GeneralStructuralEquationModels
sem
tsls
TwoStageLeastSquares
sem
SimultaneousEquationEstimation
Perintah
systemfit
Kegunaan
library
FitsasetoflinearstructuralequationsusingOrdinary
LeastSquares(OLS),WeightedLeastSquares(WLS),
SeeminglyUnrelatedRegression(SUR),TwoStage
LeastSquares(2SLS),WeightedTwoStageLeast
Squares(W2SLS)orThreeStageLeastSquares(3SLS)
systemfit
PartialLeastSquaresRegression(PLSR)andPrincipalComponentRegression(PCR)
Perintah
Kegunaan
library
biplot.mvr
BiplotsofPLSRandPCRModels
pls
coefplot
PlotRegressionCoefficientsofPLSRandPCRmodels
pls
crossval
CrossvalidationofPLSRandPCRmodels
pls
cvsegments
Generatesegmentsforcrossvalidation
pls
kernelpls.fit
KernelPLS(DayalandMacGregor)
pls
msc
MultiplicativeScatterCorrection
pls
mvr
PartialLeastSquaresandPrincipalComponents
Regression
pls
mvrCv
Crossvalidation
pls
oscorespls.fit
OrthogonalscoresPLSR
pls
predplot
PredictionPlots
pls
scoreplot
PlotsofScoresandLoadings
pls
138
sht90
StatistikInferensimenggunakanRCommander
Lanjutan:PLSRandPCR
Perintah
Kegunaan
library
scores
ExtractScoresandLoadingsfromPLSRandPCR
Models
pls
svdpc.fit
PrincipalComponentsRegression
pls
validationplot
ValidationPlots
pls
QuantileRegression
Perintah
Kegunaan
library
anova.rq
Anovafunctionforquantileregressionfits
quantreg
boot.rq
BootstrappingQuantileRegression
quantreg
lprq
locallypolynomialquantileregression
quantreg
nlrq
Functiontocomputenonlinearquantileregression
estimates
quantreg
qss
AdditiveNonparametricTermsforrqssFitting
quantreg
ranks
QuantileRegressionRanks
quantreg
rq
QuantileRegression
quantreg
rqss
AdditiveQuantileRegressionSmoothing
quantreg
rrs.test
QuantileRegressionRankscoreTest
quantreg
standardize
Functiontostandardizethequantileregression
process
quantreg
139
sht90
StatistikInferensimenggunakanRCommander
Linearandnonlinearmixedeffectsmodels
Perintah
Kegunaan
library
ACF
AutocorrelationFunction
nlme
ACF.lme
AutocorrelationFunctionforlmeResiduals
nlme
anova.lme
CompareLikelihoodsofFittedObjects
nlme
fitted.lme
ExtractlmeFittedValues
nlme
fixed.effects
ExtractlmeFittedValues
nlme
intervals
ConfidenceIntervalsonCoefficients
nlme
intervals.lme
ConfidenceIntervalsonlmeParameters
nlme
lme
LinearMixedEffectsModels
nlme
nlme
NonlinearMixedEffectsModels
nlme
predict.lme
PredictionsfromanlmeObject
nlme
predict.nlme
PredictionsfromannlmeObject
nlme
qqnorm.lme
NormalPlotofResidualsorRandomEffectsfroman
lmeobject
nlme
random.effects ExtractRandomEffects
nlme
ranef.lme
ExtractlmeRandomEffects
nlme
residuals.lme
ExtractlmeResiduals
nlme
simulate.lme
Simulatelmemodels
nlme
summary.lme
SummarizeanlmeObject
nlme
glmmPQL
FitGeneralizedLinearMixedModelsviaPQL
MASS
140
sht90
StatistikInferensimenggunakanRCommander
GeneralizedAdditiveModel(GAM)
Perintah
Kegunaan
library
anova.gam
Comparethefitsofanumberofgammodels
gam
gam.control
Controlparametersforfittinggammodels
gam
gam
Fitageneralizedadditivemodel
gam
na.gam.replace Amissingvaluemethodthatishelpfulwithgams
gam
plot.gam
Aninteractiveplottingfunctionforgams
gam
predict.gam
Makepredictionsfromagamobject
gam
preplot.gam
extractsthecomponentsfromagaminaplotready
form
gam
step.gam
stepwisemodelsearchwithgam
gam
summary.gam
summarymethodforgam
gam
SurvivalAnalysis
Perintah
Kegunaan
library
anova.survreg
ANOVAtablesforsurvregobjects
survival
clogit
Conditionallogisticregression
survival
cox.zph
TesttheproportionalhazardsassumptionofaCox
regression
survival
coxph
ProportionalHazardsRegression
survival
oxph.detail
Detailsofacoxmodelfit
survival
coxph.rvar
RobustvarianceforaCoxmodel
survival
ridge
Ridgeregression
survival
survdiff
TestSurvivalCurveDifferences
survival
survexp
ComputeExpectedSurvival
survival
survfit
ComputeasurvivalCurveforCensoredData
survival
survreg
Regressionforaparametricsurvivalmodel
survival
141
sht90
StatistikInferensimenggunakanRCommander
ClassificationandRegressionTrees
Perintah
Kegunaan
library
cv.tree
CrossvalidationforChoosingtreeComplexity
tree
deviance.tree
ExtractDeviancefromatreeObject
tree
labels.rpart
CreateSplitLabelsForanrpartObject
rpart
meanvar.rpart
MeanVariancePlotforanrpartObject
rpart
misclass.tree
MisclassificationsbyaClassificationtree
tree
na.rpart
HandlesMissingValuesinanrpartObject
rpart
partition.tree
PlotthePartitionsofasimpleTreeModel
tree
path.rpart
FollowPathstoSelectedNodesofanrpartObject
rpart
plotcp
PlotaComplexityParameterTableforanrpartFit
rpart
printcp
DisplaysCPtableforFittedrpartObject
rpart
prune.misclass
CostcomplexityPruningofTreebyerrorrate
tree
prune.rpart
CostcomplexityPruningofanrpartObject
rpart
prune.tree
CostcomplexityPruningoftreeObject
tree
rpart
RecursivePartitioningandRegressionTrees
rpart
rpconvert
Updateanrpartobject
rpart
rsq.rpart
PlotstheApproximateRSquarefortheDifferent
Splits
rpart
snip.rpart
SnipSubtreesofanrpartObject
rpart
solder
SolderingofComponentsonPrintedCircuitBoards
rpart
text.tree
AnnotateaTreePlot
tree
tile.tree
AddClassBarplotstoaClassificationTreePlo
tree
tree.control
SelectParametersforTree
tree
tree.screens
SplitScreenforPlottingTrees
tree
tree
FitaClassificationorRegressionTree
tree
142
sht90
StatistikInferensimenggunakanRCommander
Betaregression
Perintah
Kegunaan
library
betareg
Fittingbetaregressionmodels
betareg
plot.betareg
PlotDiagnosticsforabetaregObject
betareg
predict.betareg
Predictedvaluesfrombetaregressionmodel
betareg
residuals.betareg Residualsfunctionforbetaregressionmodels
betareg
summary.betareg SummarymethodforBetaRegression
betareg
143
sht90
GrafikMenggunakanRCLI
BAB8
GRAFIKMENGGUNAKANRCLI
Secara garis besar ada dua cara untuk membuat grafik dalam R, yaitu dengan
menggunakan RGUI (lihat Bab 4) dan RCLI. Pada bagian ini akan diberikan beberapa
contoh pembuatan grafik dengan menggunakan RCLI. Aktifkan jendela grafik terlebih
dahulusebelummembuatsuatugrafik.Jikausermemanggilsuatuperintahpembuatan
grafik,makaRsecaraotomatisakanmengaktifkansatujendelagrafik.Semuagrafikyang
dibuatakandiplotpadajendelagrafikini.
Jikauseringinmengaktifkanlebihdarisatujendelagrafikdalamsistemoperasi
windows,userdapatmengaktifkanjendelagrafikbarudenganperintah
>win.graph()
atau
>windows()
Untukmenutupjendelagrafikterakhiryangsedangaktif,gunakanperintah
>graphics.off()
atau
>dev.off()
SecaraumumperintahuntukpembuatangrafikdidalamRdapatdikelompokkan
menjadi3kelompokutama,yaitu
1.Fungsifungsiplotutamaatauhighlevelplottingcommands
Fungsidalamkelompokinidapatdigunakanuntukmembuatsuatuplotbarupada
jendelagrafik.Beberapafungsitersebutadalahplot,qqplot,hist,image,contour,
persp.
2.Fungsifungsiplottambahanataulowlevelplottingcommands
Fungsidikelompokinidapatdigunakanuntukmenambahkaninformasitambahan
kedalam suatu grafik yang telah dibuat dengan fungsifungsi plot utama diatas.
Fungsifungsitambahaninidapatdigunakanuntukmenambahkantitiktitikbaru,
garisgaris atau keteranganketerangan kedalam grafik. Beberapa fungsi yang
termasukkelompokiniadalahpoints,lines,text,abline,legend,title.
3.Fungsifungsiyangbersifatinteraktifatauinteractivegraphicsfunctions
Fungsi dalam kelompok ini memungkinkan user untuk menambahkan informasi
atau mengambil informasi dari suatu plot yang telah ada menggunakan alat
sepertimouse.Beberapafungsitersebutadalahlocator,identify.
144
sht90
GrafikMenggunakanRCLI
>search()
[1]".GlobalEnv""package:stats""package:graphics"
[4]"package:grDevices""package:utils""package:datasets"
[7]"package:methods""Autoloads""package:base"
Dari keluaran tersebut dapat dilihat bahwa library graphics sebagai objects berada
diurutanketiga dalamdirektorisearchdariR.Kemudianuntuk melihatdaftarperintah
dalam library graphics dapat digunakan perintah objects diikuti nomer urutan objek
tersebut. Berikut adalah perintahperintah yang ada dalam library graphics dengan
menggunakanperintahobjects(4).
>objects(3)
[1]
[5]
[9]
[13]
[17]
[21]
[25]
[29]
[33]
[37]
[41]
[45]
[49]
[53]
[57]
[61]
[65]
[69]
[73]
[77]
"abline"
"Axis"
"barplot"
"boxplot.default"
"co.intervals"
"curve"
"fourfoldplot"
"hist.default"
"layout"
"lines"
"matplot"
"pairs"
"persp"
"plot.default"
"plot.xy"
"rect"
"spineplot"
"strheight"
"symbols"
"xinch"
"arrows"
"axis.Date"
"barplot.default"
"bxp"
"contour"
"dotchart"
"frame"
"identify"
"layout.show"
"lines.default"
"matpoints"
"pairs.default"
"pie"
"plot.design"
"points"
"rug"
"split.screen"
"stripchart"
"text"
"xspline"
"assocplot"
"axis.POSIXct"
"box"
"cdplot"
"contour.default"
"erase.screen"
"grid"
"image"
"lcm"
"locator"
"mosaicplot"
"panel.smooth"
"piechart"
"plot.new"
"points.default"
"screen"
"stars"
"strwidth"
"text.default"
"xyinch"
145
"axis"
"axTicks"
"boxplot"
"close.screen"
"coplot"
"filled.contour"
"hist"
"image.default"
"legend"
"matlines"
"mtext"
"par"
"plot"
"plot.window"
"polygon"
"segments"
"stem"
"sunflowerplot"
"title"
"yinch"
sht90
GrafikMenggunakanRCLI
8.1.FungsifungsiPlotUtama
Seperti yang dijelaskan sebelumnya, fungsifungsi plot utama dapat digunakan
untuk membuat suatu plot baru dalam suatu jendela grafik. Jika jendela grafik yang
sedang aktif telah berisi suatu grafik/plot, maka dengan perintahperintah grafik tipe
plot utama ini mengakibatkan R akan menghapus grafik/plot yang telah ada tersebut.
Berikutiniadalahpenjelasanbeberapafungsiyangtermasukdalamtipeplotutamaini.
8.1.1.Perintahplot()
Perintahplot()digunakanuntukmenampilkanplotdarisuatudata.Padapaket
R,perintahplotinidapatmembuatplot/grafikyangbersesuaiandengantipedaridata.
Berikutiniadalahbeberapacontohpenggunaanplotpadaberbagaitipedata.
Membuatdiagrampencaratauscatterplotdaridataxdany
Perintahplot(x,y)dapatdigunakanuntukmembuatdiagrampencardaridatax
dan y. Perhatikan contoh data harga jual (X dalam ribu rupiah) dan volume penjualan
atausales(Ydalamjutarupiah)mingguansuatuprodukpadatabelberikutini.
Tabel8.1.Datahargadansalesselama10minggupengamatan
Mingguke
10
X(harga)
1.3
1.7
1.5
1.6
1.2
1.6
1.4
1.1
Y(sales)
10
12
10
15
12
17
20
Untuk membuat diagram pencar dari data harga dan sales tersebut, dapat digunakan
scriptRberikutini.
>harga=c(1.3,2,1.7,1.5,1.6,1.2,1.6,1.4,1,1.1)
>sales=c(10,6,5,12,10,15,5,12,17,20)
>plot(harga,sales)
GrafikkeluarandariperintahiniadalahdiagrampencarsepertipadaGambar8.1.
146
sht90
GrafikMenggunakanRCLI
Gambar8.1.Outputdiagrampencardenganperintahplot(x,y)
Berdasarkandiagrampencardiatasdapatdijelaskanbahwaadahubunganlinearnegatif
yangcukupkuatantarahargadansales.Haliniberartijikaterjadikenaikanhargapada
produkadakecenderunganpenjualanakanmengalamipenurunan,dansebaliknya.
Membuatplotmenurutindeksatauurutanwaktu(TimeSeriesPlot)
Perintahplot(x)dapatjugadigunakanuntukmembuatplotdaridataxmenurut
indeks. Pada data yang bertipe runtun waktu (time series), perintah plot(x) akan
menghasilkan plot dari x menurut urutan waktu atau dikenal dengan Time Series Plot.
Perhatikan contoh pemakaian plot(x) pada data sales (dalam juta rupiah) mingguan
suatuprodukdiTabel8.1berikutini.
>plot(sales)
>win.graph()#membukajendelagrafikbaruuntukplotdata
>y=ts(sales)
>plot(y)
147
sht90
GrafikMenggunakanRCLI
GrafikkeluarandariperintahplotdiatasdapatdilihatpadaGambar8.2.Darigambarini
dapat dijelaskan bahwa plot(x) menghasilkan Time Series Plot jika data bertipe runtun
waktu(lihatgambarb).
(a)
(b)
Gambar8.2.Outputplotmenurutindeksdenganperintahplot(x)
Membuatplotdaridatabertipefaktor
Pada Bab 7 sebelumnya diberikan contoh data HBAT yang mengandung data
bertipe faktor. Untuk ilustrasi penggunaan perintah plot(x) pada data bertipe faktor,
aktifkan kembali data HBAT yang sudah tersimpan di direktori C:\Kerja_R dalam file R
dengannamahbat.RData.SalahsatuvariabelyangbertipefaktoradalahX1,yaitutipe
konsumenberdasarkanlamanyamenjadikonsumenHBAT.Perhatikanperintahperintah
berikutuntukmemanggildatadanmembuatplotpadavariabelX1.
>load("C:\\Kerja_R\\hbat.RData")
>summary(hbat$X1)
Lessthan1year1to5yearsOver5years
323533
>plot(hbat$X1)
Grafik keluaran dari perintah plot untuk variabel X1 diatas dapat dilihat pada Gambar
8.3berikutini.
148
sht90
GrafikMenggunakanRCLI
Gambar8.3.Outputperintahplot(x)padadatabertipefaktor
BerdasarkangrafikpadaGambar8.3dapatdijelaskanbahwajumlahkonsumendengan
lamamenjadikonsumen15tahunadalahkelompokterbanyakdari100konsumenyang
menjadisampel,yaitu35konsumen.
Selain itu, perintah plot() juga dapat digunakan untuk membuat boxplot dari
suatuvariabelyangbersifatmetrikberdasarkansuatuvariabelnonmetrik(faktor).Misal
kan akan dibuat boxplot tingkat kepuasan konsumen (X19) berdasarkan lama menjadi
konsumenHBAT(X1).Perhatikanperintahdanhasildariperintahberikutini.
>numSummary(hbat[,"X19"],groups=hbat$X1,statistics=c("mean","sd","quantile"))
mean
sd 0% 25% 50% 75% 100% n
Less than 1 year 5.725000 0.7603055 4.7 5.35 5.45 6.10 8.4 32
1 to 5 years
7.314286 0.6983775 6.1 6.70 7.30 7.75 9.0 35
Over 5 years
7.654545 1.0779294 5.5 7.10 7.60 8.60 9.9 33
>plot(hbat$X19~hbat$X1)
149
sht90
GrafikMenggunakanRCLI
Gambar8.4.Outputperintahplot(x)padadatametrik(X19)berdasarkan
datayangbertipefaktor(X1)
8.1.2.Perintahqqnorm(x),qqline(x),qqplot(x,y)
Perintahperintah ini digunakan untuk membuat dan menampilkan Quantile
Quantile Plots atau dikenal dengan QQ plot. Plot ini dapat digunakan untuk menguji
apakahsekumpulandataberasaldarisuatudistribusitertentu,atauapakahduasampel
datamemilikidistribusiyangidentik(sama).Perintahqqnormdigunakanuntukmenguji
apakah suatu data mengikuti Distribusi Normal, sedangkan perintah qqplot dapat di
gunakan untuk membuat perbandingan dengan distribusi yang lain. Bersama dengan
perintah qqnorm, perintah fungsi plot tambahan qqline dapat digunakan untuk me
nambahkangarisdarikuantilpertamakekuantilketigadalamplotqqnorm.Datadapat
dikatakan berasal dari distribusi yang bersifat heavier tail dibandingkan dengan
Distribusi normal jika plot qqnorm memiliki bentuk turun (dibawah garis) pada bagian
kiridannaik(diatasgaris)padabagiankanan.
Berikut ini adalah contoh ilustrasi penggunaan qqnorm untuk uji kecocokan
terhadapDistribusiNormalpada suatuvariabeldi dataHBAT,dancontohpenggunaan
qqplotuntukperbandingandistribusipadasuatudatasimulasi.
150
sht90
GrafikMenggunakanRCLI
UjikecocokanterhadapDistribusiNormal
Untukilustrasipenggunaanperintahqqnormpadasuatudata,gunakanvariabel
X6 (tingkat persepsi konsumen terhadap kualitas produk) pada data HBAT diatas.
PerhatikanperintahperintahberikutuntukmembuatplotKuantilKuantilNormalpada
variabelX6.
>qqnorm(hbat$X6)#perintahuntukmembuatKuantilKuantilNormal
>qqline(hbat$X6,col=2)#kuantilteoritis
HasildariperintahqqnormdanqqlinepadadataX6diatasdapatdilihatpadaGambar
8.5.Darigambartersebutdapatdijelaskanbahwasecaravisualdatatidakberdistribusi
Normal, karena terdapat sejumlah data dibagian kuantil atas dan bawah yang terletak
diluargarislurus.
Gambar8.5.OutputperintahqqnormdanqqlinepadadataX6
151
sht90
GrafikMenggunakanRCLI
UjikecocokanterhadapDistribusiStatistiktertentu
Pada bagian ini akan diberikan ilustrai penggunaan perintah qqplot untuk uji
kecocokanterhadapdistribusitertentupadasuatudatasampel.Misalkansajadiketahui
suatu data y yang dibangkitkan secara random (mengikuti distribusi t dengan df=4).
Secara umum akan diperoleh data yang bersifat heavy tail karena dibangkitkan pada
nilai df yang kecil. Perintah simulasi dan pengujian kenormalan data adalah sebagai
berikut.
>y=rt(100,df=4)
>qqnorm(y)#perintahuntukmembuatKuantilKuantilNormal
>qqline(y,col=2)#kuantilteoritis
Berikutadalahoutputdariperintahqqnormdanqqlinediatas.
Gambar8.6.Outputperintahqqnormdanqqlinepadadatay
152
sht90
GrafikMenggunakanRCLI
Hasildariperintahqqnormdanqqlinepadadataydiatasmenunjukkanbahwa
data tidak berdistribusi Normal. Selanjutnya data akan dicoba bandingkan dengan
distribusitdengandfyangkecil.Untukitu,bangkitkansampeldatalaindaridistribusit
dengan df 4. Berikut perintah pembangkitan data dan qqplot untuk perbandingan
distribusi.
>Qteori=rt(200,df=4)
>qqplot(Qteori,y)#distribusiteoritispembandingsebagaix,datasebagaiy
Output dari perintah diatas dapat dilihat pada Gambar 8.7. Dari gambar ini terlihat
bahwa data secara visual relatif dalam garis lurus, sehingga distribusi t dengan df=4
relatifcukupbaikuntukmemodelkandatasimulasiydiatas.
Gambar8.7.OutputperintahqqplotpadadataydanQteori
Sebagai catatan, karena sifat dari pengujian secara grafik yang cenderung subyektif,
maka kesimpulan yang diperoleh harus dikonfirmasi dengan menggunakan uji statistik
yangsesuai.
153
sht90
GrafikMenggunakanRCLI
8.1.3.Perintahhist(x)
Perintahhistdigunakanuntukmembuatplothistogramdarisuatudatatertentu.
PerhitunganbanyaknyakelasintervalsecaradefaultdiRmenggunakanmetodeSturges.
Untuk pilihan lain yang tersedia berkaitan dengan pembuatan histogram dapat dilihat
padahelpperintahhist.Misalkanakandibuathistogramdarivariabeltingkatkepuasan
konsumenHBATatauvariabelX19.Berikutiniadalahperintahperintahuntukpembuat
anhistogrampadaX19.
>hist(hbat$X19)
>hist(hbat$X19,breaks=20)
>hist(hbat$X19,breaks=20,col="green",border="pink")
>#Perhatikanperbedaanoutputhistogramyangditampilkan
Berikut ini adalah output histogram pada perintah hist yang terakhir, yaitu yang
melibatkanargumenbanyaknyakelasintervalbesertawarnahistogramnya.
Gambar8.8.OutputperintahhistpadavariabelX19datahbat
154
sht90
GrafikMenggunakanRCLI
8.1.4.Perintahimage(x,y,z,),contour(x,y,z,),persp(x,y,z,)
Perintah persp adalah perintah yang digunakan untuk membuat plot tiga
dimensi. Sedangkan perintah image dan contour digunakan untuk membuat plot
proyeksiduadimensidaridatatersebut.Untukilustrasipenggunaanketigaperintahdan
outputnya,perhatikanscriptberikutini.
>y=seq(20,20,0.5)#bilanganantara20dan20denganjarak0.5
>x=seq(20,20,0.5)
>z=outer(x^2,y^2,"*")#z=x^2+y^2untuksemuaelemenxdany
>persp(x,y,z)#plotdimensitigadarix,y,danzdengansudutdefault
>persp(x,y,z,theta=30,phi=30,col="green")#sudutdanwarnabeda
>#Perhatikanperbedaanoutputplottigadimensiyangditampilkan
>image(x,y,z)
>contour(x,y,z)
Berikutiniadalahoutputdariperintahperspdantambahanargumenargumendiatas.
Gambar8.9.Outputperintahpersppadadatasimulasi
155
sht90
GrafikMenggunakanRCLI
8.1.5.Argumenargumenuntukfungsiplotutama
Secaralengkapargumenargumenuntukfungsiplotutamadapatdilihatdengan
perintahhelp(plot).Berikutiniadalahbeberapaargumendankegunaannyapadafungsi
plot.
add=TRUE
Argumen add=TRUE dapat digunakan untuk melakukan setting agar plot yang
dibuat ditambahkan kedalam plot yang telah ada, yaitu fungsi plot utama.
Sehingga plot yang dibuat bersifat seperti fungsi plot tambahan. Perintah ini
hanya dapat digunakan untuk beberapa fngsi plot utama. Default nilai dari add
adalahadd=FALSE.
axes=FALSE
Argumen axes=FALSE dapat digunakan untuk melakukan setting agar axes dari
suatuplottidak ditampilkan.Hal ini berguna apabilauserakanmembuatsetting
sendiriterhadaptampilandariaxispadaplotdenganperintahaxis().Defaultnilai
dariaxesadalahaxes=TRUE,yaituaxisakanditampilkanpadaplot.
log=x,log=y,log=xy
Argumen ini bertujuan untuk merubah satuan dari sumbu x, y atau keduanya
menjadiberskalalog.
type=
Argumen ini bertujuan untuk menentukan tipe dari plot yang dibuat. Berikut ini
adalahbeberapapilihantipeyangtersedia.(Catatan:contohpenggunaanadalah
type=luntukmembuatplotgarisataulines)
.
xlab=string,ylab=string,main=string,sub=string
Argumen ini bertujuan untuk memberi keterangan dari axis x, y, dan judul dari
grafik.Argumensubberfungsiuntukmenampilkansubjudul,biasanyadiletakkan
dibawahaxisx.
156
sht90
GrafikMenggunakanRCLI
8.2.FungsifungsiPlotTambahan
Ada beberapa macam fungsi plot tambahan atau low level graphics function
yang dapat digunakan untuk memperbaiki tampilan atau menambahkan sejumlah
keterangandalamplotyangtelahdibuatdenganfungsigrafikutama.Berikutiniadalah
adalahpenjelasanbeberapafungsiyangtermasukdalamtipeplottambahanini.
points(x,y)
Fungsiatauperintahinidapatdigunakanuntukmenambahkantitiktitikpada
koordinatyangdiberikanolehxdany.
lines(x,y)
Perintahinibertujuanuntukmenambahkangarismenurutkoordinatyang
diberikandalamxdany.
text(x,y,labels,)
Perintahinidapatdigunakanuntukmenambahkansuatutekspadakoordinatx
dany.
ablines(a,b),abline(h=y),abline(v=x)
Perintahablines(a,b)bertujuanuntukmenambahkangarislurusy=a+bxpada
plotyangtelahada.Sedangkanperintahabline(h=y)danabline(v=x)digunakan
untukmembuatgarishorisontalatauvertikalsesuaidenganlokasiyang
diberikanpadah=yatauv=x.
legend(x,y,legend,)
Perintahinidapatdigunakanuntukmembuatlegenddarisuatuplotpadaposisi
yangdiberikankoordinatxdany.Beberapaargumentambahandiberikanpada
perintahlegend(vmenunjukkansuatuvektoryangbersesuaiannilainyadengan
keteranganpadaargumenlegend),yaitu
legend(,lty=v)untukmemberikanlinetypeyangdigunakandalamplot
legend(,col=v)untukmemberikanwarnadarititikataugarisdalamplot
legend(,lwd=v)untukmemberikanlinewidthdarigarisdalamplot
title(main,sub)
Perintahinibertujuanuntukmemberikanjuduldansubjuduldariplot.Hasil
yangsamadapatdiberikandenganmenggunakanargumenmaindansubdari
fungsiplotutama.
157
sht90
GrafikMenggunakanRCLI
8.3.FungsifungsiPlotyangbersifatinteraktif
Ada beberapa macam fungsi plot interaktif yang juga dapat digunakan untuk
memperbaikitampilanataumenambahkansejumlahketerangandalamplotyangtelah
dibuatdenganberinteraksiRmenggunakanmouse.Berikutiniadalahadalahpenjelasan
beberapafungsiyangtermasukdalamtipeplottambahanini.
locator(n,type)
Denganperintahini,Rmenungguuseruntukmemillihn(maksimum512)lokasi
padaplotyangada,danmembuatplotyangbersesuaiandenganspesifikasi
yangdiberikanpadaargumentype.
locator()
Perintahinibergunauntukpemilihanlokasidalamsuatuplotsecarainteraktif,
misalnyabergunauntukmenempatakanteks,labelataulegendpadaposisi
yanglebihtepatdalamgrafik.
identify(x,y,labels)
Perintahinidapatdigunakanuntukmeletakkanlabel(ataunomerindeksdari
datajikaargumenlabeltidakdiberikan)darititiktitikyangdiberikandalamx
dany.
8.4.NotasiMatematikapadaPlot
Sejumlahfasilitasuntukmenambahkansimbolpersamaanmatematikakedalam
suatuplottersediapadaR.Informasilengkapberkaitandenganfasilitasinidapatdilihat
dengan perintah help(plotmath). Untuk mengetahui beberapa contoh notasi hasil dari
perintahplotmath,lakukanperintahperintahberikutini.
>help(plotmath)
>example(plotmath)#Terdiridaribeberapaperintahdenganplotmath
>demo(plotmath)
Berikut ini adalah salah satu contoh pemakaian perintah plotmath untuk pembuatan
persamaanmatematikapadasuatuplotdata.
158
sht90
GrafikMenggunakanRCLI
>x<seq(4,4,len=101)
>y<cbind(sin(x),cos(x))
>matplot(x,y,type="l",xaxt="n",
+main=expression(paste(plain(sin)*phi,"and",
+plain(cos)*phi)),
+ylab=expression("sin"*phi,"cos"*phi),#only1stistaken
+xlab=expression(paste("PhaseAngle",phi)),
+col.main="blue")
>axis(1,at=c(pi,pi/2,0,pi/2,pi),
+labels=expression(pi,pi/2,0,pi/2,pi))
Hasildariscriptyangmelibatkanperintahmatplotdiatasadalahsebagaiberikut.
Gambar8.10.Outputperintahpembuatannotasimatematikapadaplot
159
sht90
GrafikMenggunakanRCLI
8.5.Settingparametergrafik
Default dari R dalam setiap jendela grafik hanya akan dibuat plot dari satu
grafik. Setting ini dapat diubah sedemikian hingga dalam satu jendela grafik dapat
dibuat lebih dari satu grafik, yaitu dengan menggunakan perintah par. Perintah par
(singkatan dari kata partisi) ini diikuti dengan argumen mfrow (singkatan dari multi
figure row). Misalkan akan dibuat 6 grafik dalam satu halaman, yaitu 2 baris dan 3
kolom, maka dapat digunakan perintah par(mfrow=c(2,3)). Berikut ini adalah contoh
perintah untuk pembuatan 6 grafik dalam satu halaman dengan melibatkan variabel
variabelpadadatahbat.RData.
>win.graph()
>par(mfrow=c(2,3))
>hist(hbat$X19)#Plotpertamasebuahhistogram
>plot(hbat$X6,hbat$X19,main="DiagrampencarX6vsX19")#Plotkedua
>qqnorm(hbat$X19)#PlotketigasebuahkuantilkuantilnormaldariX19
>qq.plot(hbat$X6)#PlotkeempatsebuahkuantilkuantilnormaldariX6
>plot(hbat$X1,hbat$X19)#Plotkelimasebuahboxplot
>plot(hbat$X19,type="l")#Ploturutanindeks
Output dari perintahperintah diatas dapat dilihat pada Gambar 8.11 di halaman 147.
Hasilinimemberikangambarankepadauserbeberapakeunggulanpembuatanplotpada
R,khususnyamultiplotpadasatutampilanbersamasama.
Keterangan lanjut berkaitan dengan setting dari parameterparameter untuk
grafikatauGraphicalParametersdapatdilihatpadamenuhelpdariperintahpar,yaitu
denganmenggunakanperintah?par.Berikutadalahparameterparametertersebut.
160
sht90
GrafikMenggunakanRCLI
Gambar8.11.Outputperintahpembuatanplotdengansettingparametergrafik
161
sht90
AnalisisRuntunWaktudenganR
BAB9
ANALISISRUNTUNWAKTUDENGANR
Dalamduniausahayangterusmenerusberubahdengancepat,seorangmanajer
harus mampu menganalisis lingkungan yang terus berubah dan dapat memprediksi
berbagaikemungkinandimasadepan.Kemampuanuntukmeramalatauforecastmasa
depan usaha menjadi penting sebagai dasar pengambilan keputusan strategis bagi
kelangsungan perusahaan. Sebagai contoh, bagian pemasaran suatu perusahaan yang
inginmengetahuipermintaansuatuprodukdimasamendatang,ataupemerintahingin
mengetahuidanmemperkirakanberapalajuinflasitahuntahunmendatang.
Berbagaiteknikuntukmelakukanperamalanmasadepanberdasarkanpadadata
masa lalu telah dikembangkan berdasarkan pada pengetahuan akan ilmu statistika.
Secara umum ada dua pendekatan untuk peramalan, yaitu peramalan kuantitatif dan
kualitatif. Peramalan kualitatif dilakukan jika data yang tersedia tidak ada atau tidak
mencukupi, misalnya dalam proyek peluncuran produk baru. Metode peramalan
kualitatifbiasanyadilakukansecarasubyektif,sepertiteknikDelphidanexpertopinion.
Sedangkanmetodeperamalankuantitatifdilakukandenganmenggunakandata
masa lalu yang tersedia. Secara umum metode peramalan kuantitatif terbagi atas dua
kelompokutama,yaitu:
PendekatanCausal(sebabakibat)
Metodeperamalankelompokinimembahasproyeksisuatukejadianberdasarkan
variabelvariabelyangdidugamempengaruhikejadiantersebut.Teknikperamalan
yang termasuk pendekatan ini diantaranya adalah analisis regresi berganda, dan
modelekonometrik.
PendekatanTimeSeries
Metode peramalan kelompok ini membahas proyeksi masa depan dari suatu
variabeldidasarkanpadadatamasalaludansekarang.
BabiniakanmembahaspenerapanpaketRpadamodelperamalandenganpendekatan
timeseriesyangbanyakdigunakanuntukmelakukankegiatanperamalan.
Dataruntunwaktuatautimeseriesadalahdatayangdikumpulkan,dicatat,atau
diamati berdasarkan urutan waktu. Beberapa contoh time series adalah data bulanan
tentanghargasembilankebutuhanpokok,databulananmengenaikonsumsimasyarakat
akan daging ayam dan sapi, data bulanan tentang jumlah impor/ekspor komoditas
tertentu, atau data harian dari Indeks Harga Saham Gabungan (IHSG) di Bursa Efek
Jakarta, yang menunjukkan pergerakan IHSG setiap hari. Secara umum, tujuan dari
analisisruntunwaktuadalahuntukmenemukanbentukpoladaridatadimasalaludan
menggunakan pengetahuan ini untuk melakukan peramalan terhadap sifatsifat dari
datadimasayangakandatang.
162
sht90
AnalisisRuntunWaktudenganR
R menyediakan banyak library untuk analisis runtun waktu atau dikenal juga
dengan Time Series Analysis. Selain pada library standar yaitu stats, analisis runtun
waktu lebih lanjut dapat dilakukan dengan menggunakan library fSeries, tseries,
forecasting,strucchange,TSA,fArma,fracdiff,danmasihbanyakyanglain.Padabagian
iniakandibahaspenggunaanRuntukanalisismodelmodelruntunwaktu,sepertimodel
tren, exponential smoothing, ARIMA, dan Neural Networks. Pembahasan tentang
perintahperintah di R untuk analisis runtun waktu di bab ini akan difokuskan pada
penggunaanperintahdiRConsole.
9.1.ModelTrendLinear
PrinsipdarimodelTrendLinearadalahmencaripersamaantrendlineardaridata
dan menggunakannya untuk mendapatkan ramalan pada waktuwaktu yang akan
datang, Yt + k .Secaramatematis,persamaanlineardaritrendlineardapatditulissebagai
berikut:
Yt = a + bt ,
denganadanbadalahkoefisienkoefisienpersamaanlinearyangakandicariberdasar
kandatayangada,dantadalahkodedariurutanperiodewaktu(biasanyat=1,2,).
Sebagai contoh kasus, misalkan akan dilakukan peramalan jumlah penumpang
pesawatudarainternasionalpadadataAirPassengersyangsudahtersediadiR.Dengan
menulis langsung nama data tersebut pada RConsole, maka akan diperoleh tampilan
dataruntunwaktumulaiJanuari1949sampaidenganDesember1960sepertiberikut.
>AirPassengers
JanFebMarAprMayJunJulAugSepOctNovDec
1949112118132129121135148148136119104118
1950115126141135125149170170158133114140
1951145150178163172178199199184162146166
1952171180193181183218230242209191172194
1953196196236235229243264272237211180201
1954204188235227234264302293259229203229
1955242233267269270315364347312274237278
1956284277317313318374413405355306271306
1957315301356348355422465467404347305336
1958340318362348363435491505404359310337
1959360342406396420472548559463407362405
1960417391419461472535622606508461390432
163
sht90
AnalisisRuntunWaktudenganR
>AirPassengers
>t=1:length(AirPassengers)
>y=AirPassengers
>fit=lm(y~t)
>summary(fit)
Call:
lm(formula=y~t)
Residuals:
Min1QMedian3QMax
93.85830.7275.75724.489164.999
Coefficients:
EstimateStd.ErrortvaluePr(>|t|)
(Intercept)87.652787.7163511.36<2e16***
t2.657180.0923328.78<2e16***
Signif.codes:0***0.001**0.01*0.05.0.11
Residualstandarderror:46.06on142degreesoffreedom
MultipleRsquared:0.8536,AdjustedRsquared:0.8526
Fstatistic:828.2on1and142DF,pvalue:<2.2e16
>plot(t,y,type="o",xlab="monthly,19491960",ylab="AirPassengers")
>abline(fit)
Persamaan tren linear ini menunjukkan bahwa setiap bulan ada kenaikan jumlah
penumpangpesawatudarainternasionalyaiturataratasebesar2,65718.
Dua perintah terakhir pada script diatas digunakan untuk membuat ilustrasi
grafik yaituplotantara data aktualdengan nilainilaiprediksinya. Outputdari perintah
inidapatdilihatpadaGambar9.1berikutini.
164
sht90
AnalisisRuntunWaktudenganR
Gambar9.1.OutputmodeltrenlinearpadadataAirPassengers
9.2.ModelExponentialSmoothing
Prinsip dari metode Exponential Smoothing adalah menggunakan nilai peng
halusan secara eksponensial sebagai ramalan dari kejadian di satu waktu yang akan
datang, Yt + k . Secara umum ada tiga macam model eksponensial, yaitu eksponensial
sederhana(untukdatadenganpolastasioner),eksponensialgandayangdikenaldengan
modelHolt(untukdatadenganpolatren),danmodelHoltWinters(untukdatadengan
polamusimandenganatautanpatren).
Rmenyediakanfasilitasuntukketigamodeltersebutdengansatuperintahyaitu
HoltWinters.Penggunaandariperintahiniadalahsepertiberikut.
HoltWinters(x,alpha=NULL,beta=NULL,gamma=NULL,
seasonal=c("additive","multiplicative"),
start.periods=3,l.start=NULL,b.start=NULL,
s.start=NULL,
optim.start=c(alpha=0.3,beta=0.1,gamma=0.1),
optim.control=list())
165
sht90
AnalisisRuntunWaktudenganR
Perintah HoltWinters ini memiliki beberapa argumen yang dapat digunakan untuk
menentukanpemilihanmetodeeksponensialsmoothingmanayangakandipilih.Berikut
iniadalahargumenyangdapatdipilihpadaperintahHoltWinters.
Argumen
Keterangan
Anobjectofclassts
alpha
alphaparameterofHoltWintersFilter.
beta
betaparameterofHoltWintersFilter.Ifsetto0,thefunction
willdoexponentialsmoothing.
gamma
gammaparameterusedfortheseasonalcomponent.Ifsetto
0,annonseasonalmodelisfitted.
seasonal
Characterstringtoselectan"additive"(thedefault)or
"multiplicative"seasonalmodel.Thefirstfew
charactersaresufficient.(Onlytakeseffectifgammaisnon
zero).
start.periods Startperiodsusedintheautodetectionofstartvalues.Must
beatleast3.
l.start
Startvalueforlevel(a[0]).
b.start
Startvaluefortrend(b[0]).
s.start
Vectorofstartvaluesfortheseasonalcomponent
(s_1[0]...s_p[0])
optim.start
Vectorwithnamedcomponentsalpha,beta,andgamma
containingthestartingvaluesfortheoptimizer.Onlythe
valuesneededmustbespecified.Ignoredintheone
parametercase.
optim.control Optionallistwithadditionalcontrolparameterspassedto
optimifthisisused.Ignoredintheoneparametercase.
Model HoltWinters yang disediakan di R terdiri dari dua pilihan, yaitu model
aditif dan multiplikatif. Model aditif digunakan pada data runtun waktu dengan pola
seasonal dengan variasi musiman konstan. Sedangkan model multiplikatif digunakan
untukdatadenganpolaseasonalyangmengandungvariasitidakkonstan.
166
sht90
AnalisisRuntunWaktudenganR
Fungsi prediksi pada model HoltWinters aditif (untuk runtun waktu dengan
panjangperiodep)adalah
Yhat[t+h]=a[t]+h*b[t]+s[t+1+(h1)modp],
dengana[t],b[t]dans[t]adalah
a[t]=(Y[t]s[tp])+(1)(a[t1]+b[t1])
b[t]=(a[t]a[t1])+(1)b[t1]
s[t]=gamma(Y[t]a[t])+(1gamma)s[tp].
Sedangkan fungsi prediksi pada model HoltWinters multiplikatif (untuk runtun waktu
denganpanjangperiodep)adalah
Yhat[t+h]=(a[t]+h*b[t])*s[t+1+(h1)modp],
dengana[t],b[t]dans[t]adalah
a[t]=(Y[t]/s[tp])+(1)(a[t1]+b[t1])
b[t]=(a[t]a[t1])+(1)b[t1]
s[t]=gamma(Y[t]/a[t])+(1gamma)s[tp].
Fungsi ini bekerja untuk mendapatkan nilainilai optimal dari dan/atau dan/atau
gammadenganmeminimalkankuadratdarierrorprediksisatutahap.
9.2.1.ModelHoltWintersAditif
Sebagai contoh kasus, misalkan akan dilakukan peramalan CO2 pada data co2
yangsudahtersediadiR.DenganmenulislangsungnamadatatersebutpadaRConsole,
maka akan diperoleh tampilan data runtun waktu mulai Januari 1959 sampai dengan
Desember 1997. Sebagai tahap awal, identifikasi pola data dapat dilakukan dengan
menampilkan plottimeseries denganmenggunakanperintahplot(x).Outputdariplot
tersebutdapatdilihatpadaGambar9.2.Darigambartersebutdapatdilihatbahwadata
mengandung pola tren dan seasonal dengan variasi relatif konstan. Dengan demikian
modelHoltWintersaditifadalahsesuaiuntukditerapkangunaperamalanpadadata.
167
sht90
AnalisisRuntunWaktudenganR
Gambar9.2.OutputmodeltrenlinearpadadataAirPassengers
BerikutadalahscriptRyangdigunakanuntukmenerapkanmodelHoltWinters
aditifpadadataCO2yangsudahtersediadiR.
>#SeasonalAdditiveHoltWinters
>co2
>plot(co2)#menampilkanplottimeseriesdaridata
>model1<HoltWinters(co2)#menerapkanHoltWintersaditif(default)
>fore1<predict(model1,50,prediction.interval=TRUE)
>plot(model1,fore1)
>plot(fitted(model1))
168
sht90
AnalisisRuntunWaktudenganR
>model1
HoltWintersexponentialsmoothingwithtrendandadditiveseasonalcomponent.
Call:
HoltWinters(x = co2)
Smoothing parameters:
alpha: 0.4907075
beta : 0.01197529
gamma: 0.4536582
Coefficients:
[,1]
a
364.6866567
b
0.1268701
s1
0.2812220
s2
1.0173743
s3
1.6642371
s4
2.9411121
s5
3.3487805
s6
2.5064789
s7
0.9613233
s8
-1.3122489
s9
-3.3464772
s10 -3.1988220
s11 -1.8558114
s12 -0.5254438
>fore1
Jan
Feb
Mar
Apr
May
Oct
Nov
Dec
Jan
Feb
1998
1998
1998
1998
1998
fit
365.0947
365.9578
366.7315
368.1352
368.6698
upr
365.6900
366.6224
367.4603
368.9244
369.5162
lwr
364.4995
365.2931
366.0027
367.3461
367.8234
2001
2001
2001
2002
2002
367.3239
368.7937
370.2510
371.1845
372.0475
369.9810
371.4892
372.9848
373.9829
374.8841
364.6667
366.0983
367.5171
368.3861
369.2110
169
sht90
AnalisisRuntunWaktudenganR
Gambar9.3.NilaiaktualdanramalanpadadataCO2
Gambar9.4.Nilainilaikomponenlevel,trend,danseasonalpadadataCO2
170
sht90
AnalisisRuntunWaktudenganR
9.2.2.ModelHoltWintersMultiplikatif
Misalkan akan dilakukan peramalan jumlah penumpang pesawat udara pada
dataAirPassengersyangsudahtersediadiR.Sebagaitahapawal,identifikasipoladata
dapatdilakukandenganmenampilkanplottimeseries(lihatGambar9.1)menunjukkan
bahwa data mengandung pola tren dan seasonal dengan variasi yang cenderung
meningkat.Dengandemikiansalahsatumodelyangsesuaiuntukperamalanpadadata
AirPassengersiniadalahmodelHoltWintersmultiplikatif.
BerikutadalahscriptRyangdigunakanuntukmenerapkanmodelHoltWinters
multiplikatifpadadataAirPassengersyangsudahtersediadiR.
>#SeasonalMultiplicativeHoltWinters
>AirPassengers
>plot(AirPassengers)#menampilkanplottimeseriesdaridata
>model2<HoltWinters(AirPassengers,seasonal=mult)
>fore2<predict(model2,24,prediction.interval=TRUE)
>plot(model2,fore2)
>plot(fitted(model2))
>model2
HoltWintersexponentialsmoothingwithtrendandmultiplicativeseasonalcomponent.
Call:
HoltWinters(x=AirPassengers,seasonal="mult")
Smoothingparameters:
alpha:0.274855
beta:0.01745283
gamma:0.8766261
Coefficients:
[,1]
a475.6200718danseterusnya.
171
sht90
AnalisisRuntunWaktudenganR
Plot komponen data, serta perbandingan antara nilai aktual dan ramalan ditampilkan
sepertipadaGambar9.5dan9.6berikutini.
Gambar9.5.NilaiaktualdanramalanpadadataAirPassengers
Gambar9.6.Nilaikomponenlevel,trend,danseasonalpadaAirPassengers
172
sht90
AnalisisRuntunWaktudenganR
9.2.3.ModelHoltWintersNonseasonalatauModelEksponensialGanda
Misalkan akan dilakukan peramalan jumlah populasi penduduk United States
(dalam juta jiwa) pada data uspop yang sudah tersedia di R (ditambah suatu error).
Tahapawalidentifikasipoladatamenunjukkanbahwadatamengandungpolatrenyang
cenderungmeningkat.Dengandemikiansalahsatumodelyangsesuaiuntukperamalan
padadatauspopiniadalahmodeleksponensialgandaatauHoltWintersnonseasonal.
BerikutadalahscriptRyangdigunakanuntukmenerapkanmodelHoltWinters
nonseasonal pada data uspop yang sudah tersedia di R, serta beberapa output dari
perintahperintahtersebut.
>#NonSeasonalHoltWinters
>uspop
TimeSeries:
Start=1790
End=1970
Frequency=0.1
[1]3.935.317.249.6412.9017.1023.2031.4039.8050.20
[11]62.9076.0092.00105.70122.80131.70151.30179.30203.20
>x<uspop+rnorm(uspop,sd=5)#errorN(0,5)ditambahkankedatauspop
>model3<HoltWinters(x,gamma=0)#gamma=0untukeksponensialganda
>model3
HoltWintersexponentialsmoothingwithtrendandwithoutseasonalcomponent.
Call:
HoltWinters(x=x,gamma=0)
Smoothingparameters:
alpha:0.5747944
beta:1
gamma:0
Coefficients:
[,1]
a201.89779
b29.71546
>model3$SSE#nilaiSSEdarimodelHoltWintersnonseasonal
[1]1020.530
>fore3<predict(model3,5,prediction.interval=TRUE)#ramalan5tahunkedepan
>plot(model3,fore3)
173
sht90
AnalisisRuntunWaktudenganR
PlotperbandinganantaranilaiaktualdanramalandarimodelHoltWinternonseasonal
padadatauspopadalahsebagaiberikut.
Gambar9.7.Nilaiaktualdanramalanpadadatauspop
9.2.4.ModelEksponensialSmoothingSederhana
Misalkan saja akan dilakukan penerapan model eksponensial smoothing
sederhanauntukperamalanjumlahpopulasipendudukUnitedStates(dalamjutajiwa)
pada data uspop yang sudah tersedia di R, seperti pada bagian sebelumnya. Berikut
adalah script R yang digunakan untuk menerapkan model eksponensial smoothing
sederhana pada data uspop (plus suatu error), serta beberapa output dari perintah
perintahtersebut.
>#ExponentialSmoothing
>uspop
>x<uspop+rnorm(uspop,sd=5)
>model4<HoltWinters(x,gamma=0,beta=0)
>fore4<predict(model4,5,prediction.interval=TRUE)#ramalan5tahunkedepan
174
sht90
AnalisisRuntunWaktudenganR
>model4
HoltWintersexponentialsmoothingwithouttrendandwithoutseasonalcomponent.
Call:
HoltWinters(x=x,beta=0,gamma=0)
Smoothingparameters:
alpha:0.9999216
beta:0
gamma:0
Coefficients:
[,1]
a208.6348
>model4$SSE#menampilkannilaiSSEdarimodeleksponensialsmoothingsederhana
[1]3974.916
>plot(model4,fore4)
Plot perbandingan antara nilai aktual dan ramalan dari model eksponensial smoothing
sederhanapadadatauspopadalahsebagaiberikut.
Gambar9.8.Nilaiaktualdanramalanpadadatauspopdenganmetode
eskponensialsmoothingsederhana
175
sht90
AnalisisRuntunWaktudenganR
9.3.ModelARIMA
Model Autoregressive Integrated Moving Average (ARIMA) merupakan salah
satu model yang populer dalam peramalan dengan pendekatan time series. Model ini
terdiri dari tiga bentuk utama yaitu model AR, MA, dan ARMA. Prosedur BoxJenkins
adalah suatu prosedur standar yang banyak digunakan dalam pembentukan model
ARIMA.Proseduriniterdiridariempattahapanyangiteratifdalampembentukanmodel
ARIMA pada suatu data runtun waktu, yaitu tahap identifikasi, estimasi, diagnostic
check, dan peramalan. Berikut ini adalah diagram yang menggambarkan tahaptahap
dalamprosedurBoxJenkins.
Postulasikan
KelasUmumModel
1.TahapIDENTIFIKASI
(Identifikasimodeldugaansementara)
2.TahapESTIMASI
(Estimasikanparametermodel)
TIDAK
3.TahapDIAGNOSTICCHECK
(Verifikasiapakahmodelsesuai?)
YA
4.TahapFORECASTING
(Gunakanmodeluntukperamalan)
Gambar9.9.ProsedurBoxJenkinsuntukpembentukanmodelARIMA
176
sht90
AnalisisRuntunWaktudenganR
Secaraumum,bentukmatematisdarimodelARIMA(p,d,q)dapatditulissebagai
berikut
(1 1 B K p B p )(1 B) d Z t = (1 1 B K q B q )a t ,
Tabel9.1.PolateoritisACFdanPACFdariprosesyangstasioner
Proses
ACF
PACF
AR(p)
Diesdown
(turuncepatsecara
eksponensial/sinusoidal)
Cutsoffafterlagp
(terputussetelahlagp)
Cutsoffafterlagq
(terputussetelahlagq)
Diesdown
(turuncepatsecara
eksponensial/sinusoidal)
Diesdown
(turuncepatsecara
eksponensial/sinusoidal))
Diesdown
(turuncepatsecara
eksponensial/sinusoidal))
Cutsoffafterlagq
(terputussetelahlagq)
Cutsoffafterlagp
(terputussetelahlagp)
Tidakadayangsignifikan
(tidakadayangkeluarbatas)
Tidakadayangsignifikan
(tidakadayangkeluarbatas)
MA(q)
ARMA(p,q)
AR(p)atau
MA(q)
Whitenoise
(Random)
Radalahsalahsatupaketstatistikayangmenyediakanfasilitasuntukmembuat
bentukACFdanPACFteoritisdarimodelmodelARIMAyangstasioner.Berikutiniadalah
contohscriptuntukmembuatplotACFdanPACFteoritisdarimodelAR(p),MA(q)dan
ARMA(p,q),sertaoutputnya.
177
sht90
AnalisisRuntunWaktudenganR
>#ACFdanPACFteoritisuntukAR(1)
>acf.ar1=ARMAacf(ar=0.8,ma=0,20)
>pacf.ar1=ARMAacf(ar=0.8,ma=0,20,pacf=T)
>acf.ar1=acf.ar1[2:21]
>c1=acf.ar1
>c2=pacf.ar1
>ar1=cbind(c1,c2)
>ar1#NilainilaiACFdanPACFteoritis
>par(mfrow=c(1,2))
>plot(acf.ar1,type="h",xlab="lag",ylim=c(1,1))
>abline(h=0)
>plot(pacf.ar1,type="h",xlab="lag",ylim=c(1,1))
>abline(h=0)
Berikut ini adalah hasil plot ACF dan PACF teoritis dari model ARIMA(1,0,0) yang
biasanyadisingkatmodelAR(1),dengannilaikoefisienparametermodel(phi)0,8.
Gambar9.10.PlotACFdanPACFteoritismodelAR(1)denganphi=0,8
DarigambardiatasdapatdijelaskanbahwaplotACFpadamodelAR(1)dengankoefisien
parameterpositifadalahdiesdown(turuncepatsecaraeksponensial)dengannilaiACF
yang selalu positif. Sedangkan PACF menunjukkan pola yang terputus setelah lag 1
sepertipetunjukpadaTabel9.1.
178
sht90
AnalisisRuntunWaktudenganR
>#ACFdanPACFteoritisuntukMA(2)
>acf.ma2=ARMAacf(ar=0,ma=c(1.5,0.7),20)
>pacf.ma2=ARMAacf(ar=0,ma=c(1.5,0.7),20,pacf=T)
>acf.ma2=acf.ma2[2:21]
>c1=acf.ma2
>c2=pacf.ma2
>ma2=cbind(c1,c2)
>ma2#NilainilaiACFdanPACFteoritis
>par(mfrow=c(1,2))
>plot(acf.ma2,type="h",xlab="lag",ylim=c(1,1))
>abline(h=0)
>plot(pacf.ma2,type="h",xlab="lag",ylim=c(1,1))
>abline(h=0)
Di bawah ini adalah hasil plot ACF dan PACF teoritis dari model ARIMA(0,0,2)
yangbiasanyadisingkatmodelMA(2),dengannilaikoefisienparametermodel(tetha1
dan2)1,5dan0,7.
Gambar9.10.PlotACFdanPACFteoritismodelMA(2)dengantetha1,5dan0,7
Berdasarkan pola pada gambar diatas dapat dijelaskan bahwa plot ACF pada model
MA(2)dengankoefisienparameterpositif1,5(tetha1)dan0,7(tetha2)adalahterputus
setelah lag 2. Sedangkan PACF menunjukkan pola yang dies down (turun cepat secara
sinusoidal)dengannilaiPACFyangberubahdaripositifkenegatifsepertipetunjukpada
Tabel9.1diatas.
179
sht90
AnalisisRuntunWaktudenganR
>#ACFdanPACFteoritisuntukARMA(1,1)
>acf.arma11=ARMAacf(ar=0.7,ma=0.4,10)
>pacf.arma11=ARMAacf(ar=0.7,ma=0.4,10,pacf=T)
>acf.arma11=acf.arma11[2:11]
>c1=acf.arma11
>c2=pacf.arma11
>arma11=cbind(c1,c2)
>arma11#NilainilaiACFdanPACFteoritis
>par(mfrow=c(1,2))
>plot(acf.arma11,type="h",xlab="lag",ylim=c(1,1))
>abline(h=0)
>plot(pacf.arma11,type="h",xlab="lag",ylim=c(1,1))
>abline(h=0)
HasilplotACFdanPACFteoritisdarimodelARIMA(1,0,1)yangdisingkatmodel
ARMA(1,1),dengannilaikoefisienparameterAR(phi)0,7dankoefisienMA(tetha)0,4.
Gambar9.11.PlotACFdanPACFteoritismodelARMA(1,1)denganphi0,7dantetha0,4
180
sht90
AnalisisRuntunWaktudenganR
9.3.1.ContohKasusModelARIMANonmusimanyangStasioner
Misalkan akan dilakukan peramalan dengan model ARIMA pada data runtun
wakturecruit.dat,yaitudatatentangbanyaknyaikanbaruyangtelahdikumpulkanoleh
Dr. Roy Mendelssohn dari The Pacific Environmental Fisheries Group (lihat buku
Shumway dan Stoffer (2006), dengan judul Time Series Analysis and Its Applications
with R Examples; halaman 7). Data ini adalah data bulanan mulai tahun 19501987.
BerikutiniadalahscriptfileRuntukmemanggildanmenampilkanplottimeseriesdari
data.
>rec=ts(scan("recruit.dat"),start=1950,frequency=12)
>plot(rec)
Hasilplottimeseriesdaridataadalahsebagaiberikut.
Gambar9.12.Plottimeseriesdaridatarecruit
181
sht90
AnalisisRuntunWaktudenganR
Dari plot time series pada Gambar 9.12 dapat dijelaskan bahwa data relatif
stasioner dan tidak mengandung tren. Berikut adalah script file R untuk menampilkan
ACFdanPACFdaridatarecruitbesertaoutputnya.
>rec=ts(scan("recruit.dat"))
>plot(rec)#menampilkanplottimeseriesdaridata
>win.graph
>par(mfrow=c(2,1))
>acf(rec,48)#menampilkanACFsampailag48
>pacf(rec,48)#menampilkanPACFsampailag48
Gambar9.13.PlotACFdanPACFdaridatarecruit
182
sht90
AnalisisRuntunWaktudenganR
Hasil identifikasi bentuk ACF dan PACF dari data recruit menunjukkan bahwa
ACF cenderung dies down (turun cepat) dan PACF cenderung terputus setelah lag 2.
Dengan demikian, model dugaan yang sesuai untuk data ini adalah ARIMA(2,0,0) atau
AR(2). Tahap selanjutnya adalah estimasi parameter pada model ARIMA dugaan. Ada
beberapametodeestimasiparameteryangdisediakanR,antaralain:
EstimasiYuleWalker(YW)
EstimasiOrdinaryLeastSquares(OLS)
EstimasiMaximumLikelihoodEstimation(MLE)
BerikutiniadalahscriptfileRuntukestimasiparameterdenganmenggunakanmetode
estimasiYuleWalkerbesertaoutputnya.
>rec.yw=ar.yw(rec,order=2)
>rec.yw$x.mean
[1]62.26278#taksirannilairataratadata
>rec.yw$ar
[1]1.33158740.4445447#taksirannilaiphi1danphi2
>sqrt(diag(rec.yw$asy.var.coef))
[1]0.042226370.04222637#standarerrordariphi1danphi2
>rec.yw$var.pred
[1]94.79912#taksiranvarianserror(mse)
Berdasarkan hasil taksiran YuleWalker pada output diatas, maka model AR(2) yang
diperolehdapatditulissecaramatematissepertiberikut(duaangkabelakangkoma)
(1 1.33B + 0.44 B 2 )( Z t 62.26) = at ,
atau
Z t = 62.26(1 1.33 + 0.44) + 1.33Z t 1 0.44 Z t 2 + at ,
dengan Z t adalahdataaslipadawaktuket.Outputdiatasjugamemberikannilainilai
standarerrorpadamasingmasingkoefisienyangdapatdigunakanuntukujisignifikansi
parameterparametermodeltersebut.
Sebagaiperbandingan,berikutiniadalahscriptfileRuntukestimasiparameter
denganmenggunakanmetodeestimasiOrdinaryLeastSquaresdanMaximumLikelihood
Estimation,sertaoutputyangdihasilkan.
183
sht90
AnalisisRuntunWaktudenganR
>rec.ols=ar.ols(rec,order=2)#metodeOLS
>rec.ols$x.mean
[1]62.26278#taksirannilairataratadata
>rec.ols$ar
,,1
[,1]
[1,]1.3540685#taksirannilaiphi1danphi2
[2,]0.4631784
>rec.ols$asy.se.coef
$x.mean
[1]0.4460397
$ar
[1]0.041789010.04187942#standarerrordariphi1danphi2
>rec.ols$var.pred
[,1]
[1,]89.71705#taksiranvarianserror(mse)
>rec.mle=ar.mle(rec,order=2)#metodeMLE
>rec.mle$x.mean
[1]62.26153#taksirannilairataratadata
>rec.mle$ar
[1]1.35128090.4612736#taksirannilaiphi1danphi
>sqrt(diag(rec.mle$asy.var.coef))
[1]0.040991590.04099159#standarerrordariphi1danphi2
>rec.mle$var.pred
[1]89.33597#taksiranvarianserror(mse)
Hasilestimasiketigametodetersebutmenunjukkanbahwanilainilaitaksiranparameter
modelAR(2)yangdiperolehrelatiftidakberbedajauh.Halyangmenarikadalahtaksiran
dari varians error (atau yang dikenal dengan MSE). Nilai MSE yang diperoleh ketiga
modelmenunjukkanbahwametodeMLEmemberikannilaiMSEyangpalingkecil,yaitu
89.33597.
Selain menggunakan perintahperintah diatas, R juga menyediakan perintah
arima untuk estimasi secara langsung dengan menampilkan beberapa nilai taksiran
sekaligus.Berikutadalahketeranganpenggunaanarimadanargumenyangdibutuhkan.
184
sht90
AnalisisRuntunWaktudenganR
arima(x,order=c(0,0,0),
seasonal=list(order=c(0,0,0),period=NA),
xreg=NULL,include.mean=TRUE,
transform.pars=TRUE,
fixed=NULL,init=NULL,
method=c("CSSML","ML","CSS"),
n.cond,optim.control=list(),kappa=1e6)
Sebagai contoh, script untuk estimasi CSSMLE (pilihan default) pada data recruit
denganperintaharimabesertaoutputnyaadalahsebagaiberikut.
>fit1<arima(rec,c(2,0,0))
>fit1
Call:
arima(x=rec,order=c(2,0,0))
Coefficients:
ar1ar2intercept
1.35120.461261.8585
s.e.0.04160.04174.0039
sigma^2estimatedas89.33:loglikelihood=1661.51,aic=3331.02
HasildiatasmenunjukkanbahwanilainilaitaksiranparametermodelAR(2)untukdata
recruitadalahsamadenganmenggunakanperintahsebelumnya.
Langkahselanjutnyasetelah estimasiparameterdiperolehadalahcekdiagnosa
untuk mengetahui apakah model sudah memenuhi syarat kebaikan suatu model. R
menyediakan fasilitas untuk uji kesesuaian model, yaitu Uji Statistik LjungBox untuk
mengetahui apakah residual model sudah memenuhi syarat white noise. Hal ini dapat
dilakukandenganperintahtsdiagseperticontohberikutini.
>fit1<arima(rec,c(2,0,0))
>tsdiag(fit1)#cekdiagnosadenganUjiLjungBox
185
sht90
AnalisisRuntunWaktudenganR
Berikut adalah output hasil perintah tsdiag untuk pengecekan apakah residual model
sudahmemenuhisyaratwhitenoise.
Gambar9.14.PlotACFresidualdanpvaluedariujiStatistikLjungBox
Hasil diatas menunjukkan bahwa residual model AR(2) telah memenuhi syarat white
noise.HaliniditunjukkanolehpvaluedariujiLjungBoxyangsemuanyalebihbesardari
0,05(alphaatautingkatsignifikansipengujian).
Asumsikeduayangjugaharusdiperiksaadalahnormalitasdariresidualmodel.R
menyediakan banyak perintah untuk uji normalitas, baik secara grafik atau statistik
inferensia.PadabagianiniakandigunakanhistogramdanQQplotuntukevaluasisecara
grafik.Secarainferensidigunakansalahsatuperintahyangada,yaitushapiro.testuntuk
menerapkan uji ShapiroWilk. Berikut adalah script file R yang dapat digunakan untuk
menampilkan histogram dan QQplot dari residual, serta uji normalitas residual model
denganujiShapiroWilk.
186
sht90
AnalisisRuntunWaktudenganR
>par(mfrow=c(2,1))
>hist(fit1$resid,br=12)
>qqnorm(fit1$resid)
>shapiro.test(fit1$resid)
ShapiroWilknormalitytest
data:fit1$resid
W=0.9736,pvalue=2.723e07
OutputhistogramdanQQplotresidualmodelAR(2)padadatarecruitdapatdilihatpaga
Gambar 9.15. Output uji ShapiroWilk diatas menunjukkan bahwa residual belum
memenuhisyaratdistribusinormal.Haliniditunjukkanolehpvalueyanglebihkecildari
0.05(alphapengujian).
Gambar9.15.HistogramdanQQPlotresidualmodelAR(2)padadatarecruit
187
sht90
AnalisisRuntunWaktudenganR
Langkah terakhir setelah model yang diperoleh sudah memenuhi syarat model
adalahperamalan.AnggapmodelAR(2)adalahmodelyangsesuaiuntukperamalandata
recruit. Berikut ini adalah script file R yang lengkap mulai tahap identifikasi, estimasi,
cekdiagnosa,danperamalan.
>rec=ts(scan("recruit.dat"),start=1950,frequency=12)
>plot(rec)#TahapIDENTIFIKASI
>win.graph
>par(mfrow=c(2,1))
>acf(rec,48)#menampilkanACFsampailag48
>pacf(rec,48)#menampilkanPACFsampailag48
>fit1<arima(rec,c(2,0,0))#TahapESTIMASI
>tsdiag(fit1)#TahapCEKDIAGNOSA
>win.graph
>par(mfrow=c(2,1))
>hist(fit1$resid,br=12)
>qqnorm(fit1$resid)
>shapiro.test(fit1$resid)
>rec.fore=predict(fit1,n.ahead=24)#TahapPERAMALAN
>U=rec.fore$pred+rec.fore$se
>L=rec.fore$predrec.fore$se
>minx=min(rec,L)
>maxx=max(rec,U)
>ts.plot(rec,rec.fore$pred,xlim=c(1970,1990),ylim=c(minx,maxx))
>lines(rec.fore$pred,col="red",type="o")
>lines(U,col="blue",lty="dashed")
>lines(L,col="blue",lty="dashed")
Pada script ini nilainilai ramalan 24 periode yang akan datang disimpan dalam object
yangdiberinamarec.fore.Dalamhalininilainilairamalanbesertabatasatasdanbatas
bawah juga diberikan. Untuk menampilkan angkaangka tersebut cukup dengan
menuliskannamaobjecttersebutpadaRConsole.
Hasil plot ramalan beserta batas atas dan batas bawah ramalan ditampilkan
pada Gambar 9.16. Warna merah menunjukkan nilainilai ramalan, sedangkan warna
biru adalah batas bawah dan atas dari ramalan. Hasil tersebut menunjukkan bahwa
ramalan yang diperoleh relatif cukup baik, karena sudah mengikuti pola data recruit
padawaktuwaktusebelumnya.
188
sht90
AnalisisRuntunWaktudenganR
Gambar9.16.Plotramalan,batasatasdanbatasbawahpadadatarecruit
9.3.2.ContohKasusModelARIMANonmusimanyangTidakStasioner
Misalkan akan dilakukan peramalan dengan model ARIMA pada data runtun
waktugnp96.dat,yaitudatakuartalantentangGNPUSperiode1947(1)sampai2002(3).
Datainiadalahdataruntunwaktuyangtidakstasionerdalammeandanvarians,seperti
yang terlihat pada Gambar 9.17. Hal ini ditunjukkan oleh fluktuasi varians yang
cenderungmeningkatseiringbertambahnyawaktu.Karenadatabelumstasionerdalam
meandanvarians,makapadatahapidentifikasidilakukanprosestransformasiterlebih
dulu untuk menstabilkan varians, dan kemudian differencing untuk menstasionerkan
mean data. Pemilihan transformasi yang sesuai dapat menggunakan transformasi Box
Cox.Dalamkasusini,transforamasilogyangterpilihuntukmenstabilkanvariansidata.R
menyediakanperintahdiffuntukprosesdifferencingsuatudataruntunwaktu.
Berikut ini adalah script lengkap untuk memanggil data, identifikasi, estimasi,
cek diagnosa, dan peramalan pada data gnp96.dat. Output lengkap dari script ini
ditampilkan per tahapan pembentukan model ARIMA dengan menggunakan prosedur
BoxJenkins.
189
sht90
AnalisisRuntunWaktudenganR
>gnp96=read.table("gnp96.dat")
>gnp=ts(gnp96[,2],start=1947,frequency=4)
>#tahapIDENTIFIKASI
>plot(gnp)
>acf(gnp,50)
>gnpgr=diff(log(gnp))#transformasidandifferencingdata
>plot.ts(gnpgr)
>par(mfrow=c(2,1))
>acf(gnpgr,24)
>pacf(gnpgr,24)
>#tahapESTIMASI
>gnpgr.ar=arima(gnpgr,order=c(1,0,0))#potentialproblemhere
>gnpgr.ma=arima(gnpgr,order=c(0,0,2))
>gnpgr.ar
>gnpgr.ma
>#tahapCEKDIAGNOSA
>tsdiag(gnpgr.ar,gof.lag=20)
>tsdiag(gnpgr.ma,gof.lag=20)
HasilTahapIDENTIFIKASI
Gambar9.17.PlotdatakuartalanGNPUSmulai1947(1)sampai2002(3)
190
sht90
AnalisisRuntunWaktudenganR
Gambar9.18.PlotACFdatakuartalanGNPUSmulai1947(1)2002(3)
Berikut ini adalah hasil transformasi log dan differencing untuk mendapatkan data
runtunwaktuyangstasioner.
Gambar9.19.PlotdatakuartalanGNPUSsetelahdilogdandifferencing(gnpgr)
191
sht90
AnalisisRuntunWaktudenganR
OutputbentukACFdanPACFdaridatagnpyangsudahditransformasidandifferencing
menjadidatagnppr.
Gambar9.20.PlotACFdanPACFdaridatagnpgr
HasilTahapESTIMASI
>gnpgr.ar#HasilestimasiparametermodelARIMA(1,1,0)
Call:
arima(x=gnpgr,order=c(1,0,0))
Coefficients:
ar1intercept
0.34670.0083
s.e.0.06270.0010
sigma^2estimatedas9.03e05:loglikelihood=718.61,aic=1431.22
192
sht90
AnalisisRuntunWaktudenganR
>gnpgr.ma#HasilestimasiparametermodelARIMA(0,1,2)
Call:
arima(x=gnpgr,order=c(0,0,2))
Coefficients:
ma1ma2intercept
0.30280.20350.0083
s.e.0.06540.06440.0010
sigma^2estimatedas8.92e05:loglikelihood=719.96,aic=1431.93
HasilTahapCEKDIAGNOSA
Gambar9.20.PlotACFdanPACFdariresidualmodelARIMA(1,1,0)
193
sht90
AnalisisRuntunWaktudenganR
Gambar9.21.PlotACFdanPACFdariresidualmodelARIMA(0,1,2)
Hasilhasil diatas menunjukkan bahwa model ARIMA(0,1,2) adalah model ARIMA yang
lebih sesuai untuk data GNP US jika dibandingkan dengan model ARIMA(1,1,0). Hal ini
ditunjukkan oleh nilai likelihood yang lebih besar dan nilai AIC yang lebih kecil pada
modelARIMA(0,1,2).
9.3.3.ModelARIMAMusiman
Secara umum, model ARIMA musiman terdiri dari dua macam yaitu model
musiman saja atau ARIMA(P,D,Q)S dan model ARIMA multiplikatif musiman dan
nonmusiman atau ARIMA(p,d,q)(P,D,Q)S, dengan S adalah periode musiman. Bentuk
matematisdarimodelARIMA(P,D,Q)Sdapatditulissebagaiberikut
(1 1S B K P B PS )(1 B S ) D Z t = (1 1 B K Q B QS ) at .
194
sht90
AnalisisRuntunWaktudenganR
Sepertipadamodelnonmusiman,penentuanordePdanQdarimodelARIMAmusiman
pada suatu data runtun waktu dilakukan dengan mengidentifikasi plot ACF dan PACF
daridatayangsudahstasioner.Berikutiniadalahpetunjukumumuntukpenentuanorde
PdanQpadasuatudataruntunwaktumusimanyangsudahstasioner.
Tabel9.2.PolateoritisACFdanPACFdariprosesmusimanyangstasioner
Proses
ACF
PACF
AR(P)S
DiesdownpadalagkS,dengan
k=1,2,3,
CutsoffsetelahlagPS
MA(Q)S
CutsoffsetelahlagQS
DiesdownpadalagkS,dengan
k=1,2,3,
DiesdownpadalagkS,dengan
k=1,2,3,
DiesdownpadalagkS,dengan
k=1,2,3,
AR(P)Satau CutsoffsetelahlagQS
MA(Q)S
CutsoffsetelahlagPS
Whitenoise
(Random)
Tidakadayangsignifikan
(tidakadayangkeluarbatas)
ARMA(P,Q)S
Tidakadayangsignifikan
(tidakadayangkeluarbatas)
Selanjutnya, gabungan petunjuk pola ACF dan PACF pada Tabel 9.1 dan 9.2
dapat digunakan untuk menentukan orde p, q, P, dan Q pada model musiman
multiplikatif ARIMA(p,d,q)(P,D,Q)S. Secara umum bentuk model ARIMA BoxJenkins
MusimanatauARIMA(p,d,q)(P,D,Q)Sadalah:
p ( B ) P ( B S )(1 B ) d (1 B S ) D Z t = q ( B ) Q ( B S )at ,
dengan
p,d,q = orderAR,MAdandifferencingNonmusiman,
P,D,Q= orderAR,MAdanDifferencingMusiman,
p (B) = (1 1 B 2 B 2 ... p B p ) ,
195
sht90
AnalisisRuntunWaktudenganR
P ( B S ) = (1 1 B S 2 B 2 S ... P B PS ) ,
(1 B) d = operasimatematisdaridifferencingNonmusiman,
(1 B S ) D = operasimatematisdaridifferencingMusiman,
= (1 1 B 2 B 2 ... q B q ) ,
Q ( B S ) = (1 1 B S 2 B 2 S ... Q B QS ) ,
Zt
= Z t .
q (B )
>#ACFdanPACFteoritisuntukMA(1)(1)12
>theta=c(0.6,rep(0,10),0.5,0.3)
>#phi=c(rep(0,11),0.8)untukmodelAR
>acf.arma=ARMAacf(ar=0,ma=theta,60)
>pacf.arma=ARMAacf(ar=0,ma=theta,60,pacf=T)
>acf.arma=acf.arma[2:61]
>c1=acf.arma
>c2=pacf.arma
>arma=cbind(c1,c2)
>arma#NilainilaiACFdanPACFteoritis
>par(mfrow=c(1,2))
>plot(acf.arma,type="h",xlab="lag",ylim=c(1,1))
>abline(h=0)
>plot(pacf.arma,type="h",xlab="lag",ylim=c(1,1))
>abline(h=0)
Model ARIMA yang digunakan pada script diatas adalah ARIMA(0,0,1)(0,0,1)12 atau
disingkatMA(1)(1)12.Secaramatematismodelinidapatditulisdalambentuk
Z t = (1 1 B )(1 1 B12 )at ,
atau
Hasil plot ACF dan PACF teoritis dari model ARIMA(0,0,1)(0,0,1)12 dengan nilai
koefisienparametermodel(tetha1danTETHA1)0,6dan0,5dapatdilihatpadaGambar
9.22berikutini.
196
sht90
AnalisisRuntunWaktudenganR
Gambar9.22.PlotACFdanPACFteoritismodelARIMA(0,0,1)(0,0,1)12
9.3.4.ContohKasusModelARIMAMusiman
Misalkan akan dilakukan peramalan dengan model ARIMA pada data runtun
waktuprod.dat,yaitudatabulanantentangtheFederalReseerveBoardProcuctionIndex
(lihat buku Shumway dan Stoffer (2006), dengan judul Time Series Analysis and Its
ApplicationswithRExamples;halaman160).Datainiadalahdatabulananmulaitahun
19481978.BerikutiniadalahscriptfileRuntukmemanggildanmenampilkanplottime
series,ACF,danPACFdaridataasli.
>prod=ts(scan("prod.dat"),start=1948,frequency=12)
>plot(prod)
>par(mfrow=c(2,1))#(P)ACFofdata
>acf(prod,48)
>pacf(prod,48)
Hasil dari plot time series data indeks produksi tersebut (prod) dapat dilihat pada
Gambar9.23.Plotinimenunjukkanbahwadatamengandungtrennaikataudatabelum
stasionerdalammean.
Hal ini didukung oleh bentuk ACF dan PACF data asli pada Gambar 9.24,
khususnya pola ACF yang turun lambat yang mengindikasikan bahwa data belum
stasioner dalam mean. Pada tahap ini (tahap identifikasi) dilakukan differencing pada
datauntukmendapatkandatayangstasionerdalammean.
197
sht90
AnalisisRuntunWaktudenganR
Gambar9.23.Plottimeseriesdaridataindeksproduksi(prod)
Gambar9.24.PlotACFdanPACFdaridataindeksproduksi(prod)
198
sht90
AnalisisRuntunWaktudenganR
Berikut ini adalah script untuk differencing dan identifikasi bentuk ACF dan PACF dari
datayangsudahstasioner.
>par(mfrow=c(2,1))#ACFdanPACFdifferencingd=1
>acf(diff(prod),48)
>pacf(diff(prod),48)
>#Karenabelumstasionerdalammusiman,dilanjutkan
>#differencingmusimanD=1,S=12atauD=12.
>par(mfrow=c(2,1))#ACFdanPACFdifferencingd=1,D=12
>acf(diff(diff(prod),12),48)
>pacf(diff(diff(prod),12),48)
HasildariplotACFdanPACFpadadatayangsudahdidifferencingd=1,danD=1,S=12,
ataudifferencingnonmusimandanmusiman,ditampilkanpadaGambar9.25.
Gambar9.25.PlotACFdanPACFdaridataprodyangtelahdidifferencing
199
sht90
AnalisisRuntunWaktudenganR
GambarACFdanPACFdatayangsudahstasionermenunjukkanbahwapadalag
lagnonmusiman(lag19)ACFdanPACFcenderungdiesdown.Halinijugaterjadipada
laglagmusiman(lag12,24,36)yangcenderungjugadiesdown.Berdasarkanpetunjuk
padaTabel9.1dan9.2,didugaada3(tiga)modelyangsesuaiuntukdataini,yaitu:
1. ARIMA(1,1,1)(0,1,1)12
2. ARIMA(1,1,1)(2,1,0)12
3. ARIMA(1,1,1)(2,1,1)12.
Hasil estimasi pada ketiga model dugaan tersebut menunjukkan bahwa model
ARIMA(1,1,1)(2,1,1)12 merupakanmodelterbaik,berdasarkanperbandingankriteriaAIC.
Berikut adalah script R yang dapat digunakan untuk estimasi parameter pada model
ARIMAmultiplikatif.
>#TahapESTIMASIPARAMETERmodelke3
>prod.fit3=arima(prod,order=c(1,1,1),seasonal=list(order=c(2,1,1),period=12))
>prod.fit3
Berikut ini adalah output hasil estimasi parameter dari model ketiga, yaitu model
multiplikatif ARIMA(1,1,1)(2,1,1)12. Hasil ini menunjukkan bahwa model multiplikatif
ARIMA(1,1,1)(2,1,1)12 adalahsesuaiuntukdataprodkhususnyajikadilihatdaritaksiran
parameterdansignifikansiparametertersebut(hitungujistatistiktnya).
>prod.fit3#Menampilkanhasilhasilestimasiparameter
Call:
arima(x=prod,order=c(1,1,1),seasonal=list(order=c(2,1,1),period=12))
Coefficients:
ar1ma1sar1sar2sma1
0.57530.27090.21530.28000.4968
s.e.0.11200.13000.07840.06190.0712
sigma^2estimatedas1.351:loglikelihood=568.22,aic=1148.43
200
sht90
AnalisisRuntunWaktudenganR
Tahapselanjutnyayaitutahapcekdiagnosadanperamalanberdasarkanmodel
yangsesuai.BerikutadalahscriptRyangdapatdigunakanuntuktahapcekdiagnosadan
peramalanpadamodelARIMAmultiplikatif,sertaoutputnya.
>#TahapDIAGNOSTICSCHECK
>tsdiag(prod.fit3,gof.lag=48)
>#TahapPERAMALAN
>prod.pr=predict(prod.fit3,n.ahead=12)
>U=prod.pr$pred+2*prod.pr$se
>L=prod.pr$pred2*prod.pr$se
>ts.plot(prod,prod.pr$pred,col=1:2,type="o",ylim=c(105,175),xlim=c(1975,1980))
>lines(U,col="blue",lty="dashed")
>lines(L,col="blue",lty="dashed
Gambar9.26.OutputtahapcekdiagnosapadamodelARIMA(1,1,1)(2,1,1)12
201
sht90
AnalisisRuntunWaktudenganR
Plotperbandinganantaranilaiaktualdannilairamalanbeberapaperiodekedepandapat
dilihatpadagambarberikutini.
Gambar9.27.Plotramalan,batasatasdanbatasbawahpadadataprod
Dengan demikian model terbaik yang diperoleh untuk data prod diatas adalah model
multiplikatif ARIMA(1,1,1)(2,1,1)12 yang secara matematis dapat ditulis dalam bentuk
sebagaiberikut(duaangkabelakangkoma).
(1 0,58 B)(1 + 0,22 B12 + 0,28 B 24 )(1 B)(1 B12 ) Z t = (1 0,27 B)(1 0,50 B12 )at ,
dengantaksiranvarianserror(MSE)sebesar1,351.
Penjabaran dari model ARIMA(1,1,1)(2,1,1)12 di atas akan menunjukkan bahwa
peramalan indeks produksi pada suatu bulan (Zt) merupakan fungsi linear dari indeks
produksipadabulanbulansebelumnya,yaitusatu(Zt1),dua(Zt2),duabelas(Zt12),tiga
belas(Zt13),empatbelas(Zt14),duapuluhempat(Zt24),duapuluhlima(Zt25),duapuluh
enam(Zt26),tigapuluhenam(Zt36),tigapuluhtujuh(Zt37),tigapuluhdelapan(Zt38),dan
residualpadabulanbulansebelumnya,yaitusatu(at1),duabelas(at12),dantigabelas
(at13)bulansebelumnya.
202
sht90
AnalisisRuntunWaktudenganR
9.3.5.KriteriaPemilihanModel
Ada beberapa kriteris pemilihan model yang dapat digunakan untuk memilih
model ARIMA terbaik pada suatu data runtun waktu, antara lain Akaikes Information
Criterion (AIC), AIC Bias Corrected (AICc), dan Schwarzs Information Criterion (SIC).
Berikutiniadalahrumusuntukperhitungankriteriakriteriatersebut.
AkaikesInformationCriterion(AIC)
n + 2k
,
n
AIC = ln k2 +
dengan k adalah banyaknya parameter dalam model, dan n adalah jumlah data
(pengamatan), serta k2 estimator maksimum likelihood dari varians error yang
didefinisikansebagaiberikut
k2 =
RSS k
,
n
denganRSSadalahtheresidualsumofsquares(jumlahkuadraterror).
AICBiasCorrected(AICc),
AICc = ln k2 +
n+k
,
nk 2
dengank,n,dan k2 sepertiyangdidefinisikandiatas.
SchwarzsInformationCriterion(SIC).
SIC = ln k2 +
k ln n
,
n
dengank,n,dan k2 sepertiyangdidefinisikandiatas.
Misalkan akan dilakukan perbandingan nilainilai kriteria AIC, AICc, dan SIC
untukpemilihanmodelterbaikpadakasusdataGNPUSsebelumnya,yaituantaramodel
ARIMA(1,1,0)denganARIMA(0,1,2).Sepertiyangdijelaskanpadasubbab9.3.3,kriteria
AIC menunjukkan bahwa model ARIMA(0,1,2) adalah model yang lebih baik dibanding
modelARIMA(1,1,0).HalinidikarenakanmodelARIMA(0,1,2)memberikannilaiAICyang
lebih kecil dibandingkan dengan model ARIMA(1,1,0). Berikut ini adalah script dan
output untuk perhitungan nilainilai kriteria AIC, AICc, dan SIC pada kedua model
tersebut.
203
sht90
AnalisisRuntunWaktudenganR
>gnp96=read.table("gnp96.dat")
>gnp=ts(gnp96[,2],start=1947,frequency=4)
>gnpgr=diff(log(gnp))
>gnpgr.ar=arima(gnpgr,order=c(1,0,0))
>gnpgr.ma=arima(gnpgr,order=c(0,0,2))
>
>n=length(gnpgr)#jumlahdata
>kma=length(gnpgr.ma$coef)#jumlahparameterpadamodelMA
>sma=gnpgr.ma$sigma2#nilaimledarisigma^2
>kar=length(gnpgr.ar$coef)#jumlahparameterpadamodelMA
>sar=gnpgr.ar$sigma2#nilaimleofsigma^2
>
>#PerhitungannilaiAIC
>log(sma)+(n+2*kma)/n#MA(2)
[1]8.297695
>log(sar)+(n+2*kar)/n#AR(1)
[1]8.294403
>
>#PerhitungannilaiAICc
>log(sma)+(n+kma)/(nkma2)#MA(2)
[1]8.287855
>log(sar)+(n+kar)/(nkar2)#AR(1)
[1]8.284898
>
>#PerhitungannilaiBIC
>log(sma)+kma*log(n)/n#MA(2)
[1]9.251712
>log(sar)+kar*log(n)/n#AR(1)
[1]9.263748
OutputdiatasmenunjukkanbahwakriteriaAICcdanSICmemberikanhasilyang
berbeda. Kriteria AICc memberikan hasil yang sama dengan AIC, yaitu model terbaik
adalahmodelARIMA(0,1,2).HaliniditunjukkanolehnilaiAICcpadamodelARIMA(0,1,2)
yang lebih kecil daripada model ARIMA(1,1,0). Sebaliknya, kriteria SIC menunjukkan
bahwa model yang lebih sederhana adalah yang lebih baik, yaitu model ARIMA(1,1,0).
Nilai SIC pada model ARIMA(1,1,0) adalah 9,288 dan ini lebih kecil dibanding yang
diperolehmodelARIMA(0,1,2),yaitu9,276.Seringkalidalambanyakkasus,kriteriaSIC
akancenderungmemilihmodelyanglebihsederhanadibandingkriteriaAICdanAICc.
204
sht90
AnalisisRuntunWaktudenganR
9.4.RangkumanperintahdanlibraryyangberkaitandenganAnalisisRuntun
Waktu
Berikut ini adalah rangkuman beberapa perintah dan penjelasan tentang
kegunaan,sertalibrarydariperintahtersebut,yangbiasanyadigunakandalamanalisis
runtunwaktu.
InputDataRuntunWaktu
Perintah
Kegunaan
library
cycle()
givesthepositionsinthecycleofeachobservation
stats
deltat()
returnsthetimeintervalbetweenobservations
stats
end()
extractsandencodesthetimesthelastobservation
weretaken
stats
frequency()
returnsthenumberofsamplesperunittime
stats
start()
readsatimeseriesfile
stats
time()
extractsandencodesthetimesthefirstobservation
weretaken
stats
ts()
createstimeseriesobjects
stats
window()
isagenericfunctionwhichextractsthesubsetofthe
object'x'observedbetweenthetimes'start'and
'end'.Ifafrequencyisspecified,theseriesisthenre
sampledatthenewfrequency
stats
DekomposisiRuntunWaktu
Perintah
Kegunaan
library
decompose()
decomposesatimeseriesintoseasonal,trendand
irregularcomponentsusingmovingaverages.Deals
withadditiveormultiplicativeseasonalcomponent
stats
filter()
linearfilteringonatimeseries
stats
HoltWinters()
computesHoltWintersFilteringofagiventime
series
stats
205
sht90
AnalisisRuntunWaktudenganR
Perintah
Kegunaan
library
sfilter()
removesseasonalfluctuationusingasimplemoving
average
ast
spectrum()
estimatesthespectraldensityofatimeseries
stats
stl()
decomposesatimeseriesintoseasonal,trendand
irregularcomponentsusing'loess'
stats
tsr()
decomposesatimeseriesintotrend,seasonaland
irregular.Dealswithadditiveand
multiplicativecomponents
ast
PengujiandalamAnalisisRuntunWaktu
Perintah
Kegunaan
library
adf.test()
computestheAugmentedDickeyFullertestforthe
nullthat'x'hasaunitroot(tseries)
tseries
Box.test()
computestheBoxPierceorLjungBoxteststatistic
forexaminingthenullhypothesisofindependencein
agiventimeseries
stats
bds.test()
computesandprintstheBDSteststatisticforthe
nullthat'x'isaseriesofi.i.d.randomvariables
tseries
bptest()
performstheBreuschPagantestfor
heteroskedasticityofresiduals
lmtest
dwtest()
performstheDurbinWatsontestfor
autocorrelationofresiduals
lmtest
jarque.bera.test() JarqueBeratestfornormality
tseries
kpss.test()
computesKPSStestforstationarity
tseries
shapiro.test()
ShapiroWilkNormalityTest
stats
tsdiag()
agenericfunctiontoplottimeseriesdiagnostics
stats
206
sht90
AnalisisRuntunWaktudenganR
ModelmodelStokastikdalamAnalisisRuntunWaktu
Perintah
Kegunaan
library
ar()
fitsanautoregressivetimeseriesmodeltothedata,
bydefaultselectingthecomplexitybyAIC
stats
arima()
fitsanARIMAmodeltoaunivariatetimeseries
stats
arima.sim()
simulatefromanARIMAmodel
stats
arma()
fitsanARMAmodeltoaunivariatetimeseriesby
conditionalleastsquares
tseries
garch()
fitsaGeneralizedAutoregressiveConditional
HeteroscedasticGARCH(p,q)timeseriesmodeltothe
databycomputingthemaximumlikelihood
estimatesoftheconditionallynormalmodel
tseries
GrafikdalamAnalisisRuntunWaktu
Perintah
Kegunaan
library
lag.plot()
plotstimeseriesagainstlaggedversionsof
themselves.Helpsvisualizing"autodependence"
evenwhenautocorrelationsvanish
stats
plot.ts()
plottingtimeseriesobjects
stats
seaplot()
plottingseasonalsubseriesorprofile
ast
ts.plot()
plotsseveraltimeseriesonacommonplot.Unlike
'plot.ts'theseriescanhaveadifferenttimebases,
buttheyshouldhavethesamefrequency
stat
ccf(),pacf(),
ccf()
thefunction'acf'computes(andbydefaultplots)
estimatesoftheautocovarianceorautocorrelation
function.Function'pacf'isthefunctionusedforthe
partialautocorrelations.Function'ccf'computesthe
crosscorrelationorcrosscovarianceoftwo
univariateseries
stats
diff.ts()
returnssuitablylaggedanditerateddifferences
stats
lag()
computesalaggedversionofatimeseries,shifting
thetimebasebackbyagivennumber
ofobservations
stats
207
sht90
AnalisisMultivariatdenganR
BAB10
ANALISISMULTIVARIATDENGANR
Analisis Multivariat merupakan salah satu metode dalam analisis statistik yang
banyak digunakan dalam penelitian kuantitatif yang melibatkan banyak variabel. Ada
beberapa metode dalam Analisis Multivariat, antara lain Analisis Faktor, Analisis
Diskriminan, Analisis Klaster, Multidimensional Scaling, Analisis Konjoin, dan Model
PersamaanStruktural(SEM).PadababiniakandijelaskanpenggunaanRuntukbeberapa
metodetersebut,khususnyaAnalisisFaktor,AnalisisDiskriminan,danAnalisisKlaster.
10.1.AnalisisFaktor
Analisis Faktor merupakan salah satu metode interdependensi dalam analisis
multivariat yang biasanya digunakan untuk mengeksplorasi struktur hubungan yang
terjadidalamsuatukelompokvariabel.Selainitu,AnalisisFaktorjugadigunakanuntuk
mereduksi dimensi data kedalam suatu variabel baru yang independen yang disebut
denganfaktoratauvariabellatent.Secaraumum,adaduamacamAnalisisFaktoryaitu
AnalisisFaktoreksploratoridankonfirmatori.Padabagianini,penjelasanpenggunaanR
hanyadifokuskanpadaAnalisisFaktoreksploratori.
RmenyediakanfasilitasuntukAnalisisFaktorpadalibrarystatsdenganperintah
factanal. Misalkan akan dilakukan Analisis Faktor terhadap variabelvariabel tentang
persepsipelangganpadadataHBAT.SAVyang adadibukuHairdkk.(2006,hal.2831)
dengan judul Multivariate Data Analysis seperti yang juga dibahas di Bab 7. Ada 13
variabel persepsi pelanggan yang akan dievaluasi struktur hubungannya, yaitu
x6,x7,,x18.Identifikasikecukupandatamenunjukkanbahwavariabelx15danx17tidak
memenuhi syarat kecukupan data sehingga kedua variabel tersebut tidak diikutkan
dalam Analisis Faktor. Penjelasan tentang hasil identifikasi ini secara lengkap dapat
dilihatdiHairdkk.(2006)padaBab3tentangAnalisisFaktor.
Perintah factanal pada R adalah fasilitas untuk Analisis Faktor dengan metode
ekstraksi Maksimum Likelihood. Ada beberapa pilihan rotasi dan metode untuk
mendapatkan faktor skor. Berikut ini adalah deskripsi penggunaan secara umum dari
perintahtersebut.
factanal(x,factors,data=NULL,covmat=NULL,n.obs=NA,
subset,na.action,start=NULL,
scores=c("none","regression","Bartlett"),
rotation="varimax",control=NULL,...)
208
sht90
AnalisisMultivariatdenganR
Untuk kasus data persepsi pelanggan pada data HBAT.SAV yang sudah diimport ke
dalamRdengannamahbat,berikutadalahperintahdanoutputdariAnalisisFaktor.
>FA<factanal(~x6+x7+x8+x9+x10+x11+x12+x13+x14+x16+x18,
+factors=4,data=hbat,rotation="varimax",scores="regression")
>FA
Call:
factanal(x = ~x6 + x7 + x8 + x9 + x10 + x11 + x12 + x13 + x14 + x16 + x18,
factors = 4, data = hbat, scores = "regression", rotation = "varimax")
Uniquenesses:
x6
x7
x8
x9
x10
x11
x12
x13
x14
x16
x18
0.682 0.360 0.228 0.178 0.679 0.005 0.017 0.636 0.163 0.347 0.076
Loadings:
Factor1 Factor2 Factor3
x6
x7
0.793
x8
0.872
x9
0.884
0.142
x10 0.190
0.521
x11 0.502
0.104
x12 0.119
0.974
x13
0.225 -0.216
x14
0.894
x16 0.794
0.101
0.105
x18 0.928
0.189
Factor4
0.557
0.102
0.135
-0.110
0.856
-0.130
-0.514
0.158
0.164
SS loadings
Proportion Var
Cumulative Var
Hasil output diatas menunjukkan bahwa empat faktor yang dihasilkan dapat
menjelaskan 69,4% total variansi data. Variabelvariabel utama penyusun faktor
tersebutadalah
Faktor1:variabelx9,x16,danx18,
Faktor2:variabelx7,x10,danx12,
Faktor3:variabelx8,danx14,
Faktor4:variabelx6danx13.
Outputtersebutjugamenunjukkanbahwaadasatuvariabelyangsebaiknyadihilangkan
darianalisiskarenahasilrotasimasihmasukdalamduafaktor,yaitux11yangmenyusun
Faktor1dan4.
209
sht90
AnalisisMultivariatdenganR
>print(FA,digits=3,cutoff=0.4,sort=TRUE)
Call:
factanal(x = ~x6 + x7 + x8 + x9 + x10 + x11 + x12 + x13 + x14 + x16 + x18,
factors = 4, data = hbat, scores = "regression", rotation = "varimax")
Uniquenesses:
x6
x7
x8
x9
x10
x11
x12
x13
x14
x16
x18
0.682 0.360 0.228 0.178 0.679 0.005 0.017 0.636 0.163 0.347 0.076
Loadings:
Factor1 Factor2 Factor3 Factor4
x9
0.884
x16 0.794
x18 0.928
x7
0.793
x10
0.521
x12
0.974
x8
0.872
x14
0.894
x6
0.557
x11 0.502
0.856
x13
-0.514
SS loadings
Proportion Var
Cumulative Var
10.2.AnalisisDiskriminan
Analisis Diskriminan merupakan salah satu metode dependensi dalam analisis
multivariat yang biasanya digunakan untuk evaluasi klasifikasi objek. Sifat data yang
digunakan dalam analisis ini adalah nonmetrik pada variabel dependen (biasanya
berupakodegroupobjek)danmetrikpadakelompokvariabelindependen.Tujuandari
analisis ini adalah mendapatkan suatu fungsi (disebut fungsi diskriminan) yang dapat
digunakanuntukmemisahkanobjeksesuaidengangroupatauklasifikasinya.Fungsiini
selanjutnyadapatjugadigunakanuntukmemprediksigroupdarisuatuobjekbaruyang
diamati.
210
sht90
AnalisisMultivariatdenganR
>Iris<data.frame(rbind(iris3[,,1],iris3[,,2],iris3[,,3]),
+Sp=rep(c("s","c","v"),rep(50,3)))
>train<sample(1:150,75)#Sampel75datadari150
>table(Iris$Sp[train])#75datasampelyangterpilih
c s v
29 22 24
>z<lda(Sp~.,Iris,prior=c(1,1,1)/3,subset=train)
>z#MenampilkanhasilAnalisisDiskriminan
Call:
lda(Sp ~ ., data = Iris, prior = c(1, 1, 1)/3,
subset = train)
Prior probabilities of groups:
c
s
v
0.3333333 0.3333333 0.3333333
Group means:
Sepal.L. Sepal.W.
c 5.986207 2.765517
s 4.954545 3.400000
v 6.683333 2.958333
Petal.L.
4.293103
1.481818
5.654167
Petal.W.
1.327586
0.250000
2.016667
PerintahAnalisisDiskriminanLinearpadascriptdiatasdiaplikasikanpada75datasampel
(train) dan sisanya digunakan untuk validasi apakah fungsi diskriminan yang diperoleh
dapatmemprediksidengantepatgroupdari75datasisanya.Taksirannilaikoefisiendari
duafungsilineardiskriminanyangdihasilkandapatdilihatpadaoutputtersebut.
211
sht90
AnalisisMultivariatdenganR
Evaluasi kebaikan klasifikasi dari Analisis Diskriminan Linear pada data training
dantestingdapatdilihatpadaoutputberikutini.
>predict(z,Iris[train,])$class
[1]ssssssssssssssssssssssssssssccccccccvc
[39]cccccccccccvvvvvvvvvvvvvvcvcvvvvvvvvv
Levels:csv
>table(Iris$Sp[train],predict(z,Iris[train,])$class)
c s v
c 28 0 1
s 0 22 0
v 0 0 24
>table(Iris$Sp[train],predict(z,Iris[train,])$class)
c s v
c 20 0 1
s 0 28 0
v 2 0 24
Hasil diatas menunjukkan bahwa pada data training hanya ada satu pengamatan yang
salahterklasifikasi,yaituharusnyakelompokcdiprediksiv.Sedangkanpadadatatesting
ada tiga pengamatan yang salah terklasifikasi, yaitu satu pengamatan kelompok c
diprediksiv,danduapengamatankelompokvdiprediksic.
10.3.AnalisisCluster
AnalisisClusteradalahsuatumetodedalamanalisismultivariatyangdigunakan
untuk menemukan struktur group atau kelompok diantara kasuskasus (obyek) yang
diamati. Secara umum, metode dalam Analisis Cluster didasarkan pada ukuran
similaritasdandissimiliaritas.PaketRmenyediakanfasilitasuntukAnalisisClusterpada
RCommander.PilihanuntukAnalisisClusterinidapatdilakukandenganmemilihmenu
Statistika, pilih Analisis Dimensional, dan kemudian pilih Analisis Klaster, sehingga
diperolehpilihansepertiberikutini.
212
sht90
AnalisisMultivariatdenganR
Pada bagian ini, penjelasan tentang penggunaan R untuk Analisis Cluster akan
difokuskan pada pemakaian perintah langsung di RConsole atau command line.
PerintahhclustdapatdigunakanuntukimplementasiAnalisisClusterdenganbeberapa
pilihan metode agglomeration, yaitu "ward", "single", "complete", "average",
"mcquitty","median"atau"centroid". MisalkanakanditerapkanAnalisisClusteruntuk
mendapatkan kelompok negaranegara bagian di Amerika pada data USArrest yang
sudahtersediadipaketR.BerikutiniadalahscriptdanhasiloutputdariAnalisisCluster
Hirarkidenganmenggunakanukurandissimilaritasdanmetodeaverage.
>hca<hclust(dist(USArrests))
>plot(hca)
>rect.hclust(hca,k=3,border="red")
>x<rect.hclust(hca,h=50,which=c(2,7),border=3:4)
Berikut ini adalah output dendogram berdasarkan script diatas, yang dapat digunakan
untukmenentukanjumlahkelompokyangakandianalisislanjut.
Gambar10.1.DendogramuntuknegaranegarabagianAmerikaberdasarkan
AnalisisClusterHirarkimetodeaverage
213
sht90
AnalisisMultivariatdenganR
>hca<hclust(dist(USArrests))
>cutree(hca,k=1:5)#k=1adalahkelompoktrivial
Alabama
Alaska
Arizona
Arkansas
California
Colorado
Connecticut
Delaware
Florida
Utah
Vermont
Virginia
Washington
West Virginia
Wisconsin
Wyoming
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
2
2
1
1
3
1
1
1
2
1
2
3
1
1
4
1
1
1
2
1
2
3
1
4
5
1
1
1
2
1
2
3
1
4
1
1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
2
2
3
3
2
3
3
2
2
3
3
2
3
5
2
2
5
5
2
>##Perbandingan2dan3grouphasilCluster
>g24<cutree(hca,k=c(2,4))
>table(g24[,"2"],g24[,"4"])
1 2 3
1 14 0 0
2 0 14 20
4
2
0
214
sht90
RegresiNonparametrikdanEstimasiDensitas
BAB11
REGRESINONPARAMETRIKDANESTIMASIDENSITAS
Padadekadeterakhirini,pemodelanstatistikanonparametrikmerupakansalah
satu metode statistika yang berkembang dengan pesat seiring dengan perkembangan
komputasi. Bab ini akan menjelaskan penggunaan R untuk pemodelan regresi dan
estimasidensitasnonparametrik,khususnyapenggunaankerneldanspline.
11.1.EstimasiDensitasdenganKernel
Estimasinonparametrikdarifungsidensitasprobabilitasmerupakansuatutopik
yang luas. Beberapa buku yang membahas tentang hal ini adalah Silverman (1986),
Hrdle(1991),Scott(1992),sertaWanddanJones(1995).Metodeestimasiyangdibahas
dalambagianiniadalahmetodeestimasinonparametrikdengankernel.
Perintah untuk membuat histogram yaitu hist dengan argumen freq=FALSE
adalahjugasuatuestimatordarifungsidensitas.Jikatiaptiaptitiktengahdarikelasdi
masingmasing histogram dihubungkan maka akan diperoleh estimator fungsi densitas
dalam bentuk poligon frekuensi. Berikut ini adalah contoh script untuk mendapatkan
histogramdalamfrekuensirelatif(probabilitas)yangdapatdigunakansebagaiestimator
darifungsidensitaspadasuatudata,yaitugeyser$durationyangsudahtersediadiR.
>data(geyser,package="MASS")
>x<geyser$duration
>hist(x,breaks=22,freq=FALSE,
main="SmoothingwithGaussianKernel")
Output dari script ini dapat dilihat pada Gambar 11.1. Dari gambar tersebut dapat
dijelaskanbahwadatageyser$durationbersifatbimodal,yaitumempunyaiduamacam
puncakdisekitarangka2dan4.
Rmenyediakanfasilitasestimasinonparametrikdarifungsidensitasprobabilitas
denganperintahdensitydilibrarystatsdanbeberapaperintahdilibraryKernSmooth.
Secaramatematis,implementasipenghalusdensitasdengankerneladalah
1 n x xj
f ( x) = K
b j =1 b
215
sht90
RegresiNonparametrikdanEstimasiDensitas
Gambar11.1.Outputhistogramfrekuensirelatifpadadataduration
Pada bagian ini, penjelasan tentang estimasi nonparametrik dari suatu fungsi
densitas akan ditekankan pada penggunaan perintahperintah yang ada di library
KernSmooth. Beberapa jenis kernel yang tersedia di library KernSmooth dapat dilihat
padatabelberikutini.
ArgumenKernel
KeteranganJenisKernel
normal
KernelGaussian(pilihandefault)
box
KernelRectangularbox
"epanech"
KernelEpanechnikov(thecentredbeta(2,2)density)
"biweight"
KernelBiweight(thecentredbeta(3,3)density)
"triweight"
KernelTriweight(thecentredbeta(4,4)density)
216
sht90
RegresiNonparametrikdanEstimasiDensitas
Berikutiniadalahcontohgrafikdaribentukbentukkerneluntukestimasinonparametrik
darisuatufungsidensitas.
Gambar11.2.Grafikdariberbagaikerneluntukestimasidensitas
Perintah dpik pada library KernSmooth dapat digunakan untuk mendapatkan nilai
bandwithyangoptimalpadasuatukernelyangdiimplentasikanpadasuatudata.Berikut
ini adalah script untuk implementasi estimasi nonparametrik dari fungsi densitas pada
datageyser$durationyangsudahtersediadiR,denganmenggunakanpilihanbandwith
optimal.
>data(geyser,package="MASS")
>x<geyser$duration
>h.n<dpik(x,kernel="normal")#Pemilihanbandwithyangoptimal
>est.n<bkde(x,kernel="normal",bandwidth=h.n)
>h.b<dpik(x,kernel="box")
>est.b<bkde(x,kernel="box",bandwidth=h.b)
>h.e<dpik(x,kernel="epanech")
>est.e<bkde(x,kernel="epanech",bandwidth=h.e)
>h.bi<dpik(x,kernel="biweight")
>est.bi<bkde(x,kernel="biweight",bandwidth=h.bi)
>h.tri<dpik(x,kernel="triweight")
>est.tri<bkde(x,kernel="triweight",bandwidth=h.tri)
217
sht90
RegresiNonparametrikdanEstimasiDensitas
>#Perbandinganbandwithoptimalpadamasingmasingkernel
>hopt<cbind(h.n,h.b,h.e,h.bi,h.tri)
>hopt
h.n
h.b
h.e
h.bi
h.tri
[1,] 0.1438196 0.2502543 0.3183884 0.3771834 0.4283099
>win.graph()
>hist(x,breaks=22,freq=FALSE,main="SmoothingwithKernels")
>lines(est.n,col='red')#densitasdengankernelnormal
>lines(est.b,col='blue')#densitasdengankernelrectangular
>lines(est.e,col='gray')#densitasdengankernelepanechnikov
>lines(est.bi,col='green')#densitasdengankernelbiweight
>lines(est.tri,col='pink')#densitasdengankerneltriangular
Outputdariscriptdiatasadalahestimasidaribentukfungsidensitasprobabilitasseperti
padagambardibawahini.
Gambar11.3.Grafikdariberbagaikerneluntukestimasidensitas
218
sht90
RegresiNonparametrikdanEstimasiDensitas
Sebagaitambahan,padalibraryKernSmoothjugatersediafasilitasuntukanalisis
kernel dua dimensi, yaitu dengan perintah bkde2D. Berikut ini adalah contoh script
tentanganalisiskernelduadimensipadadatageyseryangsudahadadiR.
>data(geyser,package="MASS")
>x<cbind(geyser$duration,geyser$waiting)
>est<bkde2D(x,bandwidth=c(0.7,7))
>contour(est$x1,est$x2,est$fhat)
>persp(est$fhat)
Berikutiniadalahoutputdariscriptdiatas.
(a).
(b).
Gambar11.4.Grafikdariestimasidensitasduadimensipadadatageyser
10.2.RegresiNonparametrikdenganKernel
Dalam praktek, seringkali dijumpai permasalahan keterkaitan antara variabel
independendandependenyangbentukketerkaitannyatidakdiketahuisecarapastiatau
hanyaadasedikitinformasitentangbentukketerkaitantersebut.Regresinonparametrik
adalah suatu metode statistika yang banyak digunakan untuk menganalisis hubungan
antara variabel independen dan dependen yang bentuk hubungan antar variabel
tersebut tidak diketahui. Ada beberapa metode dalam regresi nonparametrik, antara
laindenganpenghalusan(smoothing)kerneldanspline.
219
sht90
RegresiNonparametrikdanEstimasiDensitas
b
j =1
y i =
n xi x j
K
b
j =1
n
y i K
dengan b adalah parameter bandwith, dan K ( ) suatu fungsi kernel seperti pada
estimasi densitas sebelumnya. Ada dua perintah utama di library KernSmooth yang
dapatdigunakanuntukestimasiregresinonparametrikdengankernel,yaitu:
Perintah
Keterangan
dpill
menggunakanmetodologidirectpluginuntukmemilih
bandwidthpadasuatuestimasiregresikernelGaussianlinear
lokal,sepertiyangdideskripsikanolehRuppert,Sheatherdan
Wand(1995).
locpoly
estimasisuatufungsidensitasprobabilitas,fungsiregresiatau
turunannyadenganmenggunakanpolinomiallokal.
>data(geyser,package="MASS")
>x<geyser$duration
>y<geyser$waiting
>win.graph()
>plot(x,y,col="blue")
>h.opt<dpill(x,y)#Selectiontheoptimalbandwith
>fit.opt<locpoly(x,y,bandwidth=h.opt)
>lines(fit.opt,col="red")
>title(main="Gaussiankernelregressionwithoptimalbandwith")
220
sht90
RegresiNonparametrikdanEstimasiDensitas
Outputdariscriptdiatasadalahgarishalus(smooth)dariestimasiregresinonparametrik
dengankernelGaussiansepertiberikut(gariswarnamerah).
Gambar11.5.GrafikdariestimasiregresinonparametrikdengankernelGaussian
10.3.RegresiNonparametrikdenganSpline
Sepertipadaestimasiregresinonparametrikdengankernel,Rjugamenyediakan
fasilitas estimasi regresi nonparametrik dengan spline, yaitu dengan menggunakan
perintah smooth.spline. Misalkan diketahui ada n pasangan data ( xi , y i ) . Suatu
penghalusan (smoothing) spline meminimumkan suatu kompromi antara fit (taksiran)
danderajatdaripenghalus(smoothness)dalambentuk
2
2
wi [ y i f ( xi )] + ( f ( x)) dx
padasemuafungsi(terukuryangdapatditurunkanduakali) f .Iniadalahsuatuspline
kubikdenganknotknotpada xi ,tetapitidakmenginterpolasititiktitikdatauntuk > 0
dan derajat dari fit dikontrol oleh . Penentuan dapat ditetapkan tertentu atau
dipilihsecaraotomatisdenganmetodecrossvalidation.
221
sht90
RegresiNonparametrikdanEstimasiDensitas
Perintahdanargumenuntukaplikasiregresinonparametrikdengansplinekubik
padaRadalahsebagaiberikut.
smooth.spline(x,y=NULL,w=NULL,df,spar=NULL,
cv=FALSE,all.knots=FALSE,nknots=NULL,
keep.data=TRUE,df.offset=0,penalty=1,
control.spar=list())
Berikut ini adalah penjelasan tentang pilihan argumen yang dapat digunakan dalam
perintahsmooth.spline.
Argumen
Keterangan
avectorgivingthevaluesofthepredictorvariable,oralistoratwocolumn
matrixspecifyingxandy.
responses.Ifyismissing,theresponsesareassumedtobespecifiedbyx.
optionalvectorofweightsofthesamelengthasx;defaultstoall1.
df
thedesiredequivalentnumberofdegreesoffreedom(traceofthesmoother
matrix).
spar
cv
smoothingparameter,typically(butnotnecessarily)in(0,1].Thecoefficientof
theintegralofthesquaredsecondderivativeinthefit(penalizedloglikelihood)
criterionisamonotonefunctionofspar,seethedetailsbelow.
ordinary(TRUE)orgeneralizedcrossvalidation(GCV)whenFALSE.
all.knots
ifTRUE,alldistinctpointsinxareusedasknots.IfFALSE(default),asubsetofx[]
isused,specificallyx[j]wherethenknotsindicesareevenlyspacedin1:n,see
alsothenextargumentnknots.
nknots
integergivingthenumberofknotstousewhenall.knots=FALSE.Perdefault,this
islessthann,thenumberofuniquexvaluesforn>49.
keep.data
logicalspecifyingiftheinputdatashouldbekeptintheresult.IfTRUE(asper
default),fittedvaluesandresidualsareavailablefromtheresult.
df.offset
allowsthedegreesoffreedomtobeincreasedbydf.offsetintheGCVcriterion.
penalty
thecoefficientofthepenaltyfordegreesoffreedomintheGCVcriterion.
control.spar optionallistwithnamedcomponentscontrollingtherootfindingwhenthe
smoothingparameterspariscomputed,i.e.,missingorNULL,seebelow.
Notethatthisispartlyexperimentalandmaychangewithgeneralspar
computationimprovements!
222
sht90
RegresiNonparametrikdanEstimasiDensitas
>attach(cars)
>plot(speed,dist,main="data(cars)&smoothingsplines")
>cars.spl<smooth.spline(speed,dist)
>(cars.spl)
Call:
smooth.spline(x=speed,y=dist)
SmoothingParameterspar=0.7801305lambda=0.1112206(11iterations)
EquivalentDegreesofFreedom(Df):2.635278
PenalizedCriterion:4187.776
GCV:244.1044
>lines(cars.spl,col="blue")
>lines(smooth.spline(speed,dist,df=10),lty=2,col="red")
>legend(5,120,c(paste("default[C.V.]=>df=",round(cars.spl$df,1)),
+"s(*,df=10)"),col=c("blue","red"),lty=1:2,bg='bisque')
Gambar11.6.Grafikhasilregresisplinekubikpadadatacars
223
sht90
RegresiNonparametrikdanEstimasiDensitas
Pengecekan kebaikan model regresi nonparametrik spline kubik ini dapat dilakukan
denganmelihatanalisisresidualmodel.Berikutiniadalahscriptuntukplotresidualdari
modeldiatas.
>##Residual(TukeyAnscombe)plot:
>plot(residuals(cars.spl)~fitted(cars.spl))
>abline(h=0,col="gray")
Outputyangdihasilkandariscriptiniadalahsepertigambarberikutini.
Gambar11.7.Grafikanalisisresidualdariregresinonparametriksplinekubik
Hasil di atas menunjukkan bahwa residual cenderung mempunyai pola yang tidak
homogen,yaitucenderungmembesarseiringmeningkatnyanilaiprediksi(fitted).
Sebagai tambahan, berikut ini adalah contoh script lain untuk implementasi
regresi nonparametrikdengan spline kubikpada suatu data simulasi, denganberbagai
parametersmoothing(spar)danprediksipadadatatrainingdantesting.
224
sht90
RegresiNonparametrikdanEstimasiDensitas
#Contohsmoothingpadadatasimulasisimulasi
y18<c(1:3,5,4,7:3,2*(2:5),rep(10,4))
xx<seq(1,length(y18),len=201)
#Regresisplinekubikdenganx=1:18dany=y18
(s2<smooth.spline(y18))#SmoothingparameterdgnGCV
(s02<smooth.spline(y18,spar=0.2))#Smoothingparameter0.2
#Plotperbandinganhasilregresisplinekubikdenganberbagaixdanspar
plot(y18,main="Smoothingdengansplinekubik")
lines(s2,col="green")#Hasilprediksidenganx
lines(predict(s2,xx),col=red)#Hasilprediksi"GCV"denganxx
lines(predict(s02,xx),col="blue")#Hasilprediksi"spar=0.2"denganx
Output perbandingan grafik dari script ini dapat dilihat pada Gambar 11.8. Perhatikan
pilihanwarnapadascriptuntukmengetahuipilihanregresikubiksplineyangdigunakan.
Gambar11.8.Outputregresisplinekubikpadadatasimulasi
225
sht90
RegresiNonparametrikdanEstimasiDensitas
Selainsplinekubik,paketRjugamenyediakanfasilitasuntukimplementasijenis
splineyanglain.Adabanyaklibraryyangdapatdigunakan,salahsatunyaadalahlibrary
splinesyangmenyediakanfasilitasuntukBspline.Berikutiniadalahcontohscriptuntuk
implementasi regresi nonparametrik dengan Bspline pada data cars, dengan variabel
speedsebagaixdandistsebagaiyyangsudahtersediadiR.
library(splines)
bs(cars$speed,df=3)
summary(fm3<lm(dist~bs(speed,df=3),data=cars))
bs(cars$speed,df=5)
summary(fm5<lm(dist~bs(speed,df=5),data=cars))
bs(cars$speed,df=10)
summary(fm10<lm(dist~bs(speed,df=10),data=cars))
##Contohmenyimpandanmenampilkanprediksi
plot(cars,xlab="dist(in)",ylab="speed(lb)",main="RegresiBspline")
ht<seq(4,25,length.out=200)
lines(ht,predict(fm3,data.frame(speed=ht)),col="blue")
lines(ht,predict(fm5,data.frame(speed=ht)),col="red")
lines(ht,predict(fm10,data.frame(speed=ht)),col="green")
Ada dua output utama yang akan dihasilkan dari script tersebut, yaitu hasilhasil
estimasiBsplineyangterdiridarinilaiprediksi,knots,dankoefisiendarimodelregresi
spline,sertaoutputgrafikhasilprediksi.Berikutadalahsebagianhasildariscriptdiatas.
>bs(cars$speed,df=5)
12345
[1,]0.0000000000.00000000000.000000000.0000000000.000000000
[50,]0.0000000000.00000000000.000000000.0000000001.000000000
attr(,"degree")
[1]3
attr(,"knots")
33.33333%66.66667%
1318
attr(,"Boundary.knots")
[1]425
attr(,"intercept")
[1]FALSE
attr(,"class")
[1]"bs""basis"
226
sht90
RegresiNonparametrikdanEstimasiDensitas
HasiloutputgrafikhasilprediksiregresinonparametrikdenganBsplineuntukberbagai
derajatsplinedapatdilihatpadagambarberikutini.Untukmengetahuiperbedaanefek
dari derajat spline terhadap hasil smoothing yang diperoleh, perhatikan pilihan warna
padascriptdiatas.
Gambar11.9.GrafikhasilregresiBsplinepadadatacars
10.4.JenisjenisBasisSpline
Padabagiansebelumnyatelahdiilustrasikanhasilregresinonparametrikdengan
splinekubikdanBspline.Secaraumumadabeberapajenissplineyangdapatdigunakan
dalamregresinonparametrik.Rmenyediakanfasilitasuntukmengetahuimacammacam
spline, dikenal fungsi basis, yang dapat digunakan untuk regresi nonparametrik, yaitu
pada library fda. Dalam library ini disediakan fasilitas untuk membuat delapan macam
fungsi basis spline, yaitu basis Bspline, Constant, Exponential, Fourier, Monomial,
Polygonal,Polynomial,danPowerBasisObject.
Fungsifungsi yang ada di library fda dikembangkan untuk mendukung analisis
datafungsionalsepertiyangdigambarkanolehRamsaydanSilverman(2005).Berikutini
adalah tabel yang berisi perintahperintah untuk membuat fungsifungsi basis spline
yangdapatdiaplikasikanuntukpemodelanregresinonparametrik.
227
sht90
RegresiNonparametrikdanEstimasiDensitas
Perintah
Keterangan
create.bspline.basis
UntukmembuatsuatuBsplineBasis
create.constant.basis
UntukmembuatsuatuConstantBasis
create.exponential.basis
UntukmembuatsuatuExponentialBasis
create.fourier.basis
UntukmembuatsuatuFourierBasis
create.monomial.basis
UntukmembuatsuatuMonomialBasis
create.polygonal.basis
UntukmembuatsuatuPolygonalBasis
create.polynomial.basis
UntukmembuatsuatuPolynomialBasis
create.power.basis
UntukmembuatsuatuPowerBasisObject
Berikut ini adalah contoh script untuk membuat macammacam basis Bspline yang
dapatdigunakanpadaregresinonparametrik.
#Thesimplestbasiscurrentlyavailablewiththisfunction:
str(bspl1.1<create.bspline.basis(norder=1,breaks=0:1))
#1basisfunction,order1=degree0=stepfunction:
#constant1between0and1.
str(bspl1.2<create.bspline.basis(norder=1,breaks=c(0,.5,1)))
#2bases,order1=degree0=stepfunctions:
#(1)constant1between0and0.5and0otherwise
#(2)constant1between0.5and1and0otherwise.
str(bspl2.3<create.bspline.basis(norder=2,breaks=c(0,.5,1)))
#3bases:order2=degree1=linear
#(1)linefrom(0,1)downto(0.5,0),0after
#(2)linefrom(0,0)upto(0.5,1),thendownto(1,0)
#(3)0to(0.5,0)thenupto(1,1).
str(bspl3.4<create.bspline.basis(norder=3,breaks=c(0,.5,1)))
#4bases:order3=degree2=parabolas.
#(1)(x.5)^2from0to.5,0after
#(2)2*(x1)^2from.5to1,andaparabola
#from(0,0to(.5,.5)tomatch
#(3&4)=complementsto(2&1).
228
sht90
RegresiNonparametrikdanEstimasiDensitas
#Defaultbsplinebasis
str(bSpl4.23<create.bspline.basis())
#Cubicbspline(norder=4)withnbasis=23,
#sonbreaks=nbasisnorder+2=21,
#2ofwhicharerangeval,leaving19Interiorknots.
str(bSpl4.<create.bspline.basis(c(1,1)))
#SameasbSpl4.23butover(1,1)ratherthan(0,1).
win.graph()
par(mfrow=c(3,2))
plot(bspl1.1);plot(bspl1.2);plot(bspl2.3)
plot(bspl3.4);plot(bSpl4.23);plot(bSpl4.)
Outputdariscriptdiatasadalahsebagaiberikut.
Gambar11.10.MacammacamfungsibasisBspline
229
sht90
RegresiNonparametrikdanEstimasiDensitas
Basis constant adalah suatu basis spline yang menghasilkan suatu konstanta
sepertiyangterlihatpadaplotpertamadiGambar11.10atauyangpalingatassebelah
kiri.Fungsibasisyanglainadalahexponential,danberikutadalahscriptuntukmembuat
basissplineexponential.
#Createanexponentialbasisoverinterval[0,5]
#withbasisfunctions1,exp(t)andexp(5t)
basisobj<create.exponential.basis(c(0,5),3,c(0,1,5))
#plotthebasis
plot(basisobj)
Hasiloutputgrafikdariscriptiniadalahsebagaiberikut.
Gambar11.11.Macammacamfungsibasisexponential
Selanjutnya akan dijelaskan tentang fungsi basis Fourier. Fungsi basis Fourier
adalah suatu sistem yang biasanya digunakan pada fungsifungsi yang periodik. Fungsi
basis Fourier yang pertama adalah suatu fungsi konstanta. Sedangkan yang lainnya
adalah pasangan dari sin dan cos dengan pengali suatu integer dari periode dasar.
Jumlah atau banyaknya fungsi basis yang dibangkitkan adalah selalu ganjil. Berikut
adalahscriptuntukmembuatfungsibasisFourier.
230
sht90
RegresiNonparametrikdanEstimasiDensitas
#CreateaminimalFourierbasisforthemonthlytemperaturedata,
#using3basisfunctionswithperiod12months.
monthbasis3<create.fourier.basis(c(0,12))
#setuptheFourierbasisforthemonthlytemperaturedata,
#using9basisfunctionswithperiod12months.
monthbasis<create.fourier.basis(c(0,12),9,12.0)
#plotthebasis
win.graph()
par(mfrow=c(2,1))
plot(monthbasis3)
plot(monthbasis)
Outputgrafikdariscriptiniadalahsebagaiberikut.
Gambar11.12.MacammacamfungsibasisFourier
231
sht90
RegresiNonparametrikdanEstimasiDensitas
10.5.RangkumanlibraryuntukAplikasiKerneldanSpline
Pada bagian ini akan diberikan suatu rangkuman tentang beberapa library
besertaketerangantentangperintahperintahdalamlibrarytersebutyangdisediakanR
untukaplikasimetodekerneldanspline.
Tabellibraryuntukaplikasikernel
library
Keterangan
feature
Featuresignificanceformultivariatekerneldensityestimation.
GenKern
Functionsforgeneratingandmanipulatingkerneldensity
estimates.
KernSmooth
Fungsifungsiuntukpenghalusan(smoothing)kerneldan
densityestimation,sepertipadabukuWanddanJones(1995)
denganjudul"KernelSmoothing".
kernlab
Kernelbasedmachinelearningmethodsforclassification,
regression,clustering,noveltydetection,quantileregression
anddimensionalityreduction.Amongothermethodskernlab
includesSupportVectorMachines,SpectralClustering,Kernel
PCAandaQPsolver.
kerfdr
Semiparametrickernelbasedapproachtolocalfdr
estimations
ks
Kerneldensityestimatorsandkerneldiscriminantanalysisfor
multivariatedata.
locpol
Kernellocalpolinomialregression.
lokern
Kernelregressionsmoothingwithadaptivelocalorglobal
pluginbandwidthselection.
MKLE
Maximumkernellikelihoodestimation.
monreg
Nonparametricmonotoneregression.
monoProc
Strictlymonotonesmoothingprocedure,givenfitinoneortwo
variables.
np
Nonparametrickernelsmoothingmethodsformixed
datatypes.
sm
Smoothingmethodsfornonparametricregressionanddensity
estimation.
232
sht90
RegresiNonparametrikdanEstimasiDensitas
Tabellibraryuntukaplikasispline
library
Keterangan
assist
ASuiteofSPlusFunctionsImplementingSmoothingSplines
cobs99
ConstrainedBsplines
DierckxSpline
Rcompanionto"CurveandSurfaceFittingwithSplines"
earth
BuildregressionmodelsusingthetechniquesinFriedman's
papers"FastMARS"and"MultivariateAdaptiveRegression
Splines".
fda
Thesefunctionsweredevelopedtosupportfunctionaldata
analysisasdescribedinRamsay,J.O.andSilverman,B.W.
(2005)FunctionalDataAnalysis.NewYork:Springer.
gss
Acomprehensivepackageforstructuralmultivariatefunction
estimationusingsmoothingsplines.
kzs
Acollectionoffunctionsutilizingsplinestoconstructasmooth
estimateofasignalburiedinnoise.
lmeSplines
Addsmoothingsplinemodellingcapabilitytonlme.Fit
smoothingsplinetermsinGaussianlinearandnonlinear
mixedeffectsmodels.
logspline
Routinesforthelogsplinedensityestimation.
MBA
ScattereddatainterpolationwithMultilevelBSplines
mda
Mixtureandflexiblediscriminantanalysis,multivariate
additiveregressionsplines(MARS),BRUTO,...
polspline
Routinesforthepolynomialsplinefittingroutineshazard
regression,hazardestimationwithflexibletails,logspline,
lspec,polyclass,andpolymars
pspline
PenalizedSmoothingSplines.Smoothingsplineswithpenalties
onordermderivatives.
sspline
RpackageforComputingtheSphericalSmoothingSplines
233
sht90
RegresiNonparametrikdanEstimasiDensitas
BAB12
MODELNONLINEAR
12.1.EstimasiModelRegresiNonlinear
TeoritentangmodelregresinonlinearsecaralengkapdapatdilihatdiSeberdan
Wild(1989).Bentukumumdarisuatumodelregresinonlinearadalah
y = (x, ) +
1
+
1 + exp( 2 + 3t )
akandiaplikasikanpadadataUS.popyaitutentangpopulasidiAmerikaSerikat,dengan
y adalah jumlah populasi dan t menyatakan tahun. Berikut ini adalah script untuk
memanggildanmenampilkandataUS.popdalamsuatudiagrampencar.
>library(car)
>data(US.pop)
>attach(US.pop)
Thefollowingobject(s)aremaskedfromUS.pop(position3):
populationyear
>US.pop
yearpopulation
117903.929
218005.308
211990248.710
>plot(year,population,main='PopulationoftheUnitedStates')
234
sht90
RegresiNonparametrikdanEstimasiDensitas
>time<0:20
>pop.mod<nls(population~beta1/(1+exp(beta2+beta3*time)),
+start=list(beta1=350,beta2=4.5,beta3=0.3),trace=T)
13007.48:350.04.50.3
609.5727:351.80748623.84050020.2270578
365.4396:383.70453673.99111480.2276690
356.4001:389.16551263.99034570.2266199
235
sht90
RegresiNonparametrikdanEstimasiDensitas
>summary(pop.mod)
Formula:population~beta1/(1+exp(beta2+beta3*time))
Parameters:
EstimateStd.ErrortvaluePr(>|t|)
beta1389.1655130.8119712.632.20e10***
beta23.990350.0703256.74<2e16***
beta30.226620.0108620.874.60e14***
Signif.codes:0***0.001**0.01*0.05.0.11
Residualstandarderror:4.45on18degreesoffreedom
Numberofiterationstoconvergence:6
Achievedconvergencetolerance:1.492e06
>par(mfrow=c(1,2))
>plot(year,population,main='(a)')
>lines(year,fitted.values(pop.mod),lwd=2,col=2)
>plot(year,residuals(pop.mod),type='b',main='(b)',col="blue")
>abline(h=0,lty=2,col="green")
Hasil diatas menunjukkan nilainilai taksiran dari parameter model regresi nonlinear,
sehinggasecaralengkapmodelnonlinearyangdiperolehdapatditulisdalambentuk
y=
389.16551
+ .
1 + exp(3.99035 0.22662t )
Output tersebut juga menunjukkan bahwa nilai taksiran ketiga parameter itu adalah
signifikansecarastatistikpadaalpha0.001.Sebagaicatatan, t dalammodelregresinon
linear inimenyatakansuatukodedari tahun,yaitu 0 untuk tahun1790, 1 untuk 1800,
danseterusnya.Padaoutputsummary(pop.mod)jugaditampilkannilaitaksiranstandar
errordariresidual,yaitu4.45.
Padabagianakhirdariscriptdiatasberisiperintahuntukmembuatplotantara
nilai aktual dan prediksi secara bersamasama, serta perintah untuk menyajikan plot
residual model. Hasil lengkap plot perbandingan ini dapat dilihat pada Gambar 12.2a.
Dari gambar tersebut dapat dijelaskan bahwa nilainilai prediksi dari taksiran model
regresi nonlinear yang diperoleh relatif baik, karena sudah mengikuti pola yang ada
padadata.Kondisiiniberbedadenganyangdideskripsikanolehnilainilairesidualmodel
di Gambar 12.2b. Grafik residual tersebut menunjukkan bahwa residual model belum
menunjukkan pola yang random, melainkan pola yang cenderung mengandung sifat
autokorelasiatauberkaitandenganresidualsebelumatausesudahnya.
236
sht90
RegresiNonparametrikdanEstimasiDensitas
Gambar12.2.Plotperbandingankesesuaianprediksidanevaluasiresidualmodel
12.2.PerintahnlsdanSSasympOriguntukestimasimodelnonlinear
Ada beberapa perintah di paket R yang disediakan untuk menjalankan model
regresinonlinear,antaralainnlsdanSSasympOrig.Contohdiatasmerupakansalahsatu
aplikasi dari perintah nls pada suatu data real. Pada bagian ini akan diberikan
rangkuman tentang perintah nls dan SSasympOrig, khususnya yang berkaitan dengan
argumenargumenyangdapatditampilkan.Secaraumumpenggunaanperintahnlsdan
keteranganargumenyangdisediakanadalahsebagaiberikut.
nls(formula,data,start,control,algorithm,trace,subset,weights,
na.action,model,lower,upper,...)
237
sht90
RegresiNonparametrikdanEstimasiDensitas
Argumen
Keterangan
formula
anonlinearmodelformulaincludingvariablesandparameters.Willbe
coercedtoaformulaifnecessary.
data
anoptionaldataframeinwhichtoevaluatethevariablesinformula
andweights.Canalsobealistoranenvironment,butnotamatrix.
start
anamedlistornamednumericvectorofstartingestimates.When
startismissing,averycheapguessforstartistried(ifalgorithm
!= "plinear").
control
anoptionallistofcontrolsettings.Seenls.controlforthenamesof
thesettablecontrolvaluesandtheireffect.
algorithm
characterstringspecifyingthealgorithmtouse.Thedefaultalgorithm
isaGaussNewtonalgorithm.Otherpossiblevaluesare"plinear"
fortheGolubPereyraalgorithmforpartiallylinearleastsquares
modelsand"port"forthenl2solalgorithmfromthePortpackage.
trace
logicalvalueindicatingifatraceoftheiterationprogressshouldbe
printed.DefaultisFALSE.IfTRUEtheresidual(weighted)sumof
squaresandtheparametervaluesareprintedattheconclusionof
eachiteration.Whenthe"plinear"algorithmisused,the
conditionalestimatesofthelinearparametersareprintedafterthe
nonlinearparameters.Whenthe"port"algorithmisusedthe
objectivefunctionvalueprintedishalftheresidual(weighted)sumof
squares.
subset
anoptionalvectorspecifyingasubsetofobservationstobeusedinthe
fittingprocess.
weights
anoptionalnumericvectorof(fixed)weights.Whenpresent,the
objectivefunctionisweightedleastsquares.
na.action
afunctionwhichindicateswhatshouldhappenwhenthedatacontain
NAs.Thedefaultissetbythena.actionsettingofoptions,andis
na.failifthatisunset.Thefactoryfreshdefaultisna.omit.Value
na.excludecanbeuseful.
model
logical.Iftrue,themodelframeisreturnedaspartoftheobject.
DefaultisFALSE.
lower,upper vectorsoflowerandupperbounds,replicatedtobeaslongasstart.
Ifunspecified,allparametersareassumedtobeunconstrained.
Boundscanonlybeusedwiththe"port"algorithm.Theyare
ignored,withawarning,ifgivenforotheralgorithms.
...
Additionaloptionalarguments.Noneareusedatpresent.
238
sht90
RegresiNonparametrikdanEstimasiDensitas
Asym
+ ,
1 exp( exp(lrc) input )
dengan input adalah suatu vektor kovariat, dan Asym dan lrc merupakan parameter
parameter model. Secara umum penggunaan perintah SSasympOrig dan keterangan
argumenyangdisediakanadalahsebagaiberikut.
SSasympOrig(input,Asym,lrc)
Argumen
Keterangan
input
anumericvectorofvaluesatwhichtoevaluatethemodel.
Asym
anumericparameterrepresentingthehorizontalasymptote.
lrc
anumericparameterrepresentingthenaturallogarithmoftherate
constant.
Misalkan perintah SSasympOrig akan diaplikasikan pada data BOD yang sudah
tersediadiR.Datainiterdiridariduavariabel,yaituTimedandemand.Berikutiniadalah
script untuk aplikasi perintah SSasympOrig dan beberapa output berkaitan dengan
taksiranmodelregresinonlineardanplotprediksiyangdihasilkan.
>BOD
Timedemand
118.3
2210.3
3319.0
4416.0
5515.6
6719.8
>fm<nls(demand~SSasympOrig(Time,A,lrc),data=BOD)
>#fm<nls(demand~A*(1exp(exp(lrc)*Time)),data=BOD,
start=list(A=1,lrc=0.1),trace=TRUE)
239
sht90
RegresiNonparametrikdanEstimasiDensitas
>summary(fm)
Formula:demand~A*(1exp(exp(lrc)*Time))
Parameters:
EstimateStd.ErrortvaluePr(>|t|)
A19.14262.49597.6700.00155**
lrc0.63280.38241.6550.17328
Signif.codes:0***0.001**0.01*0.05.0.11
Residualstandarderror:2.549on4degreesoffreedom
Numberofiterationstoconvergence:7
Achievedconvergencetolerance:5.54e07
>predict(fm)#fittedvaluesatobservedtimes
[1]7.88744912.52497715.25167316.85487017.79749018.677580
>plot(demand~Time,data=BOD,col=4,
+main="BODdataandfittedfirstordercurve",
+xlim=c(0,7),ylim=c(0,20))
>tt<seq(0,8,length=101)
>lines(tt,predict(fm,list(Time=tt)),col=2)
Gambar12.3.PlotperbandingankesesuaianprediksipadadataBOD
240
why92
PengenalanPemrogramandalamR
BAB13
PENGENALANPEMROGRAMANDALAMR
13.1.PenulisanFungsi
SalahsatutahappentingdalampendefinisianfungsifungsibarudiRadalahcara
penulisan fungsi tersebut. Secara umum, struktur penulisan fungsi di dalam R adalah
sebagaiberikut.
nama_fungsi = function(argumen dari fungsi)
{
........... isi dari fungsi
}
Penulisan fungsi ini dapat dilakukan melalui dua macam cara, yaitu melalui RConsole
danREditor.Sebagaiilustrasi,misalkanakandibuatfungsiuntukmenghitungratarata
sekumpulandata.DalamhalinidianggapRtidakmemilikifungsiuntukmenghitungnilai
ratarata. Akan tetapi R memiliki fungsi untuk menghitung jumlah (yakni sum), dan
fungsiuntukmenghitungpanjangvektor(yaknilength).Berikutiniadalahcontohfungsi
rataratayangdituliskanpadaRConsole.
>
+
+
+
+
rata=function(x)
{
rata_rata=sum(x)/length(x)
rata_rata
}
Dalamcontohini,namafungsiyangdibuatadalahrata,danargumennyaadalah
xsebagaidatayangakandihitungrataratanya.
> x=c(2,1,3,4,5)
> rata(x)
[1] 3
241
why92
PengenalanPemrogramandalamR
SedangkanmelaluiREditor,pendefinisianfungsibarudapatdikerjakandenganlangkah
langkahsebagaiberikut.
Pertama kali munculkan REditor dengan klik File pada RConsole, kemudian pilih
New script. Selanjutnya ketik script fungsi yang akan dibuat padaREditorseperti
berikutini.
Apabila sudah selesai, simpan fungsi ini dengan memilih File pada RConsole, dan
kemudianklikSaveas...,sehinggadiperolehtampilansepertiberikutini.
242
why92
PengenalanPemrogramandalamR
Sebagai catatan, pemberian nama boleh berbeda dengan nama fungsi yang di
definisikan. Akan tetapi untuk mempermudah mengingatnya disarankan untuk
menggunakannamafilesamadengannamafungsi.Dalamhalinidiberinamarata.
Selanjutnyaagarfungsidapatdigunakan,makadidalamfileiniharusdibuatsource
nya. Proses ini dapat dapat dilakukan dengan menggunakan menu File, kemudian
klikSourceRcode...danpilihfileyangakandisourcekansepertiberikut.
KlikOpen,sehinggapadaRConsoleakanmuncultextberikutini.
> source("C:\\Program Files\\R\\R-2.6.1\\rata")
Text ini menunjukkan bahwa dalam fungsi yang didefinisikan tidak ada kesalahan
perintah. Untuk mencoba fungsi ini, misalkan akan dihitung ratarata dari data
3,1,2,4,5.Selanjutnyaketikperintahsepertiberikut.
> x=c(3,1,2,4,5)
> rata(x)
[1] 3
Sampai di sini sudah bisa didefinisikan fungsi baru yang sederhana didalam R.
Untuk pembuatan fungsi yang lebih kompleks, diperlukan pengetahuan tentang
typedatadanperintahperintahdalampemrograman.
243
why92
PengenalanPemrogramandalamR
13.2.TypeDatadanOperator
PadaBab3telahdibahastentangbeberapatypedatapadaR.Pengetahuanakan
typedatainisangatdiperlukandalampendefinisanfungsibaru.Secaraumumadatype
datadasar,yaitunumeric,characterataustring,danlogika.Sedangkantypedatayang
terstruktur,yangterdiridarikombinasitypedatadasar,adalaharray.Arrayyangterdiri
darisatudimensidinamakanvektor,sedangkanyangterdiridariduadimensiataulebih
dinamakan matrik. Bagaimana mendefinisikan datadata type ini secara lengkap sudah
dibahasdalamBab3.
Hal lain yang harus diingat selain type data adalah operator. Operator
digunakan untuk operasi matematik atau manipulasi data. Dalam pendefinisian fungsi
baru atau secara umum dalam pemrograman seringkali memerlukan kombinasi
penggunaan berbagai macam operator. Berikut ini ringkasan operator yang biasa
digunakandalamoperasimatematik.
OperatorAritmetika
+
penjumlahan
pengurangan
perkalian
pembagian
pangkat
OperatorLogika
<
kurangdari
<=
kurangdariatausamadengan
>
lebihdari
>=
lebihdariatausamadengan
==
samadengan
!=
tidaksamadengan
&
dan(and)
atau(or)
tidak(negasi)
244
why92
PengenalanPemrogramandalamR
Selainoperatordiatas,dalamBab3telahpuladibuatringkasanoperatoruntuk
matrik seperti penjumlahan, pengurangan, perkalian, invers, determinan dan eigen
value.Perintahperintahinisangatpentingdalammendefinisikanfungsibaru.
13.3.ControlFlowdidalamR
Barisanperintahdalam Rbiasanyadieksekusibarisperbaris.DalamR,barisan
perintahyangdiletakkandidalamtandakurung{}sebagaisatugroupdipandangsebagai
satuekspresitunggal.Barisanekspresiyangdinyatakandalambentukgroupinijugadi
eksekusibarisperbaris.Untukmengaturproseseksekusi,diperlukanperintahperintah
controlflow.Bentukcontrolflowiniakanbanyakdigunakandalammenulissuatufungsi
yangdibentukolehuser.Beberapaperintahcontrol flowyangdikenaldidalamRakan
dibahasdalambagianini.
Statemenif
Statemeninimempunyaiaturanpenulisan
> if (kondisi) {ekspresi}
Perintah ini berarti jika (kondisi) bernilai benar, maka {ekspresi} dilaksanakan, jika
(kondisi) bernilai salah, maka {ekspresi} tidak dilaksanakan. Berikut adalah contoh
statemenif.
Pada contoh ini, karena kondisi (2>3) bernilai False, maka ekspresi x=c(1,2,3) tidak
dieksekusi. Sehingga pada saat nilai x ditampilkan, karena x tidak ada maka keluar
pesanError:object"x"notfound.Selanjutnyaperhatikancontohstatemenifberikut
ini.
Padacontohini,karenakondisi(2<3)bernilaibenar(True),makaekspresix=c(1,2,3)
dieksekusi,sehingganilainilaidataxdapatditampilkan.
245
why92
PengenalanPemrogramandalamR
Statemenifelse
Statemeninimempunyaiaturanpenulisansepertiberikutini.
> if (kondisi) {ekspresi1} else {ekspresi2}
Perintah ini mempunyai arti jika (kondisi) bernilai benar maka {ekspresi1} yang
dilaksanakan, dan jika bernilai salah maka {ekspresi2} yang dilaksanakan. Berikut
contohstatemenifelse.
Statemenfor
Statemeninidigunakanuntukperulangan.Syntaxdasardarifungsiiniadalahsebagai
berikut.
> for (name in expr1) {expr2}
Pada contoh dibawah ini, statemen for akan digunakan untuk menghitung nilai
faktorial.
> f=1
> for (i in 1:5)
+ {
+ f=f*i
+ }
> f
[1] 120
Padacontohinidihitungnilai5!=1.2.3.4.5=120.
Fungsibreakdannext
Syntaxdarifungsiiniadalahsebagaiberikut.
break : stopdankeluarloopyangsedangdieksekusi.
next : stopiterasiyangsedangberjalandanlangsungmulaiiterasiselanjutnya.
Command next dan break pada dasarnya berfungsi untuk mencegah kemungkinan
adanyainfinitifeloopdalamsuatufungsi,sepertidalamsuatulooprepeat(yangdalam
246
why92
PengenalanPemrogramandalamR
Rtidakmemilikiakhireksekusiyangalami,sehinggamutlakdiperlukanstoppingloop
dengan perintah break atau next) dan while (yang diperlukan untuk menghentikan
perulangan atau loop di satu bagian dari ekspresi dalam loop tanpa melanjutkan ke
ekspresilaindidalamloopini).
Statemenreturndanstop
Keduabentukstatemeninidigunakanuntukmenghentikaneksekusidarisuatufungsi
yangtelahdiaksesdankembalikeRprompt.Syntaxnyaadalahsebagaiberikut.
return(expr) : stopfungsiyangsedangdiaksesataudievaluasidanmunculkan
outputnilaidariexprdiprompt.
stop(message): digunakanuntukmemberikantandaadanyakesalahandengan
menghentikanevaluasidarifungsiyangsedangdiaksesdan
menampilkanmessagedipromptsebagaipesankesalahandan
kembalikeRprompt.
Fungsi return tidak hanya membuat kita berhenti dari loop yang sedang dievaluasi,
tetapijugadarifungsiyangsedangdiakses.Jadiberbedadenganbentuk break atau
nextyangtidakmenghentikaneksekusifungsi.
Statementrepeat
Syntaxdasardaristatemeniniadalahsebagaiberikut.
> repeat {expr}
Perintah repeat pada R merupakan perintah ynag mengakibatkan perulangan atau
looping tiada henti. Oleh karena itu, penggunaan repeat memerlukan penambahan
perintahuntukmenghentikanperulangan.Perintahinibisamenggunakanstatemenif
yang dikombinasikan dengan break. Berikut ini adalah contoh untuk menghitung n!
denganmenggunakanrepeat.
> f=1
> i=0
> repeat
+ {
+ i=i+1
+ f=f*i
+ if (i==5) break
+ }
> f
[1] 120
247
why92
PengenalanPemrogramandalamR
Statementwhile
Statemen while merupakan statemen untuk perulangan, dengan syntax sebagai
berikut.
> while (condition) expr
Sebagaicontoh,akandibuatperintahuntukmenghitungnilain!.
> f=1
> i=0
> while (i<5)
+ {
+ i=i+1
+ f=f*i
+ }
> f
[1] 120
13.4.Beberapatopikyangberhubungandenganfungsi
Berikutiniadalahbeberapatopikyangberhubungandenganfungsiyangbanyak
digunakandalampemrogramR.
13.4.1.Argumendarisuatufungsi
Didalam membuat argumen dari suatu fungsi ada beberapa hal yang diperhatikan,
antaralainoptionaldanrequiredargument.
a.Optionalargument
Optionalargumentadalahargumensuatufungsiyangdapattidakdiberikannilainya
ketika fungsi tersebut dipanggil. Untuk hal tersebut biasanya ada nilai default dari
argumen itu yang tidak perlu didefinisikan nilainya pada saat dipanggil. Sebagai
contoh, misalkaningindibangkitkandataberdistribusinormalsebanyak10,dengan
mean=15danvariansi=9denganfungsirnormberikutini.
datanormal=function(n=10,mean=15,variansi=9)
{
data <- rnorm(n,mean,sqrt(variansi))
data
}
248
why92
PengenalanPemrogramandalamR
Seluruhargumendarifungsidatanormaldiatasmerupakanoptionalargumentyakni
secara default telah diberikan nilai dari masingmasing argumen. Setelah script
function diketikkan pada RConsole atau pada REditor, panggil dengan perintah
berikut.
> datanormal()
[1]12.48633015.94063616.79275218.63401513.50043015.72283810.076475
[8]9.9908978.05666015.627972
> datanormal(20,0,1)
Perintahiniakanmenggantinilaidefaultargumenoptionalpadafungsidatanormal,
sehinggadiperolehhasilsebagaiberikutini.
[1]1.143680170.134699672.596789361.471904790.757855801.73536802
[7]0.405799351.214022391.375582350.029391011.519455770.84322992
[13]1.692951402.572906340.525872041.643174260.573956250.23601621
[19]0.147496581.42066282
b.Requiredargument
Requiredargumentadalahargumenargumenyangharusdiberikanataudispesifikasi
nilainya jika fungsi tersebut dipanggil. Sebagai contoh akan dilakukan modifikasi
fungsibangkitannormaldiatasmenjadisepertiberikutini.
249
why92
PengenalanPemrogramandalamR
> datanormal2(10,0)
Perintah ini akan membangkitkan 10 bilangan random normal dengan mean 0 dan
variansi9,denganoutputsebagaiberikut.
[1]1.914678071.516189590.032839811.549366055.600143281.23081757
[7]2.015694231.603316113.206827781.46176645
13.4.2.Mengaturtampilandarioutput
Ada beberapa fungsi builtin yang dapat digunakan untuk mengatur tampilan
output, baik dengan menampilkan layar maupun dengan menyimpan data di disk.
Berikutadalahuraiantentangbeberapafungsitersebut.
a.Fungsitabdannewline
Untukmenggunakantabdalammenampilkanoutputmakagunakan\tsedangkan
untukmenggantibaris,gunakan\n.Perintahiniseringdigunakanbersamadengan
perintahcat(lihatbagiand).
b.Perintahprint
Perintahinibertujuanuntukmenampilkansuatuobjekkelayarsesuaidenganjenis
data.Perhatikancontohberikutini.
>dataprint=list(karakter=letters[1:5],numerik=c(1:5))
>print(dataprint)
$karakter
[1]"a""b""c""d""e"
$numerik
[1]12345
c.Perintahformat
Perintah format bertujuan untuk mengubah mode data dari numerik ke karakter.
Lihatcontohberikutini.
250
why92
PengenalanPemrogramandalamR
>angka=1:10
>angka
[1]12345678910
>karakter=format(angka)
>angka_karakter=format(angka)
>angka_karakter
[1]"1""2""3""4""5""6""7""8""9""10"
d.Perintahcat
Perintahcatmerupakanperintahyangcukupfleksibeldidalammenampilkanoutput
dilayar,yaitudapatmenampilkandatacharacter,datanumerik,komentarkomentar
output, ataupun menuliskan data layar. Lihat help menu dari R untuk keterangan
lebih lanjut mengenai fungsi ini. Untuk mengilustrasikan penggunaan dari perintah
catinidiberikancontohsebagaiberikut.Misalkanuseringinmerubahtampilandari
outputfungsibangkitannormaldiatas,danakandilakukanmodifikasidarifungsiitu
sepertiberikutini.
Setelah file disourcekan (jika diketik melalui REditor), maka contoh output dari
fungsi ini dapat dilihat dibawah ini. Perhatikan perbedaan tampilan output dengan
perintah datanormal3. Perintah \n dan \t telah dikenalkan pada bagian (a)
diatas.
>datanormal3()
===========
ListData
===========
2.422166
4.422396
.............
8.015969
===========
251
why92
PengenalanPemrogramandalamR
Lebihlanjut,fungsicatdapatdigunakanuntukmenyimpanoutputkedalamsuatufile
eksternal disk. Misalkan output dengan format yang sama dengan contoh diatas
ingin disimpan ke direktori c: dengan nama file output.txt (nama maksimum 8
character). Maka perlu dilakukan modifikasi fungsi datanormal menjadi sebagai
berikut.
252
why92
PengenalanPemrogramandalamR
e.Perintahwrite.table
Fungsi ini dapat digunakan untuk menuliskan data (biasanya bertipe dataframe)
yang ada kedalam suatu file di disk. Untuk keterangan lebih lanjut dari fungsi ini,
lihatfasilitashelpdariR.Berikutadalahcontohpenggunaandariperintahtersebut.
Setelah disourcekan file script dari fungsi ini, maka selanjutnya fungsi ini dapat
dipanggildenganmenggunakanperintahsepertiberikutini.
> datanormal5()
13.5.Contohcontohfungsi
Selanjutnya akan diberikan beberapa contoh fungsi dengan menggunakan
perintahperintah yang sudah dijelaskan di bagian sebelumnya. Contohcontoh ini
diharapkandapatlebihmemberipemahamantentangbagaimanamendefiniskanfungsi
baru di R. Sebelum mengetikkan script fungsi ini pada REditor, perintahperintah
berikut disarankan untuk dicoba terlebih dahulu baris per baris pada RConsole. Jika
urutan sudah benar, baik secara logic maupun syntax, maka urutanurutan perintah
pada RConsole dapat dicopy, kemudian dipaste ke REditor. Cara ini akan membantu
prosesmencarikesalahandalamprogram(debugging).
Ujitdengansampeltunggal
Berikut ini adalah contoh fungsi untuk uji ratarata sampel tunggal dengan
varians tidak diketahui dengan menggunakan statistik uji t. Pada fungsi berikut, diberi
nama uji_t, dengan argumen x sebagai vektor data yang akan diuji, mu0 sebagai nilai
ratarata yang dihipotesiskan, dan arah sebagai identifikasi apakah hipotesis alternatif
pengujianbersifatduaarah,kurangdariataulebihdari.
uji_t = function(x,mu0,arah)
{
df=length(x)-1
T=abs((mean(x)-mu0)/(sd(x)/sqrt(length(x))))
if (arah==0) P=2*(1-pt(abs(T),df))
else if (arah==-1) P=pt(T,df)
else P=pt(T,df,lower.tail=FALSE)
253
why92
PengenalanPemrogramandalamR
>bakteri=c(175,190,215,198,184,207,210,193,196,180)
>uji_t(bakteri,200,0)
UjitSampelTunggal
Ho:mu=200
H1:mu!=200
Mean=194.8stdev=13.13858n=10
T=1.251570,df=9P=0.2422777
>uji_t(bakteri,200,1)
UjitSampelTunggal
Ho:mu=200
H1:mu>200
Mean=194.8stdev=13.13858n=10
T=1.251570,df=9P=0.8788612
>uji_t(bakteri,200,1)
UjitSampelTunggal
Ho:mu=200
H1:mu<200
Mean=194.8stdev=13.13858n=10
T=1.251570,df=9P=0.1211388
254
why92
PengenalanPemrogramandalamR
RegresiLinearSederhana
Berikutiniakandiberikancontohfungsiregresiuntukmengestimasipersamaan
regresi linear sederhana. Fungsi ini mempunyai 2 argumen, yaitu y sebagai variabel
respon dan x sebagai variabel prediktor. Estimasi dilakukan dengan metode kuadrat
terkecil.Selanjutnya berturutturutdihitungstandarderrorhasil estimasi, thitung dan
nilai p. Sebagai validasi, hasil perhitungan dapat dibandingkan dengan output menu
regresisepertipadaBab7.
regresi<-function(y,x)
{
if (length(y)!=length(x)) cat("Banyak data tidak sama\n")
k=1
n=length(x)
for (i in 1:n) k[i]=1
X=cbind(k,x)
b=(solve(t(X)%*%X))%*%t(X)%*%y
y_hat=X%*%b
e=y-y_hat
SSR=sum((y_hat-mean(y))^2)
SSE=sum((y-y_hat)^2)
MSR=SSR/1
MSE=SSE/(n-1-1)
cov_b=solve(t(X)%*%X)*MSE
se_b=sqrt(diag(cov_b))
t_value=(1/se_b)*b
p_value=2*(1-pt(abs(t_value),n-2))
cat("
estimate std.error t_value
p \n")
for (i in 1:2)
{
if (i==1) cat("intercept
",b[i],se_b[i],t_value[i],p_value[i],"\n")
else cat(
"x
",b[i],se_b[i],t_value[i],p_value[i],"\n")
}
}
Untukmenjalankan,misalkandigunakandataberikutini.
>y=c(11,13,15,12,14,16,18)
>x=c(2,4,5,3,6,7,8)
>regresi(y,x)
estimatestd.errort_valuep
intercept8.7857140.749829911.716947.960169e05
x1.0714290.13923997.6948380.0005912413
255
sht90
DaftarPustaka
DAFTARPUSTAKA
*BerikutadalahreferensiebookyangdapatdidownloaddiserverCRANRProject
Baron, J. and Li, Y. (2003) Notes on the use of R for psychology experiments and
questionnaires.DeparmentofPsychology,UniversityofPennsylvania.
Bliese,P.(2006)MultilevelModelinginR(2.2):ABriefIntroductiontoR,themultilevel
packageandthenlmepackage.Paul.bliese@us.army.mil.
Chongsuvivatwong, V. (2006) Analysis of Epidomiological Data Using R and Epicalc.
EpidemiologyUnit,PrinceofSongklaUniversity,Thailand.
Faraway, J. J. (2002) Practical Regression and Anova using R. www.stat.lsa.umich.edu/
~faraway/book.
Farnsworth,G.V.(2006)EconometricsinR.gfarnsworth@kellogg.northwestern.edu.
Maindonald,J.H.(2004)UsingRforDataAnalysisandGraphics:Introduction,Codeand
Commentary.CentreforBioinformationScience,AustralianNationalUniversity.
Owen, W.J. (2007) The R Guide. Department of Mathematics and Computer Science,
UniversityofRichmond.
Paradis, E. (2005) R for Beginners. Institut des Sciences de lEvolution, Universite
MontpellierII,France.
Ricci,V.(2005)FittingDistributionswithR.vito_ricci@yahoo.com.
256
sht90
DaftarPustaka
Rossiter,D.G.(2007)IntroductiontotheRProjectforStatisticalComputingforuseatITS.
http://www.its.nl/personal/rossiter.
SeefeldK.andLinder,E.(2007)StatisticsUsingRwithBiologicalExamples.Department
ofMathematics&Statistics,UniversityofNewHampshire,Durham,NH.
Venables,W.N.andSmith,D.M.(2007)AnIntroductiontoR.TheRDevelopmentCore
Team.
Verzani,JA.(2002)SimpleRUsingRforIntroductoryStatistics.www.math.csi.cuny.edu
/Statistics/R/simpleR/Simple.
Vikneswaran (2005) An R companion to Experimental Design. www.geocities.com/
viknesh_g/.
257
sht90
DaftarIndeks
DAFTARINDEKS
abline,157
acf,140,177180
AIC,AICc,203
AkaikesInformationCriterion,lihatAIC
Analisis,
Cluster,212214
Diskriminan,210211
Faktor,208209
Multivariat,208
Regresi,120126
RuntunWaktu,162207
Variansi,105111
ANOVA,lihatAnalisisVariansi
ARIMA,176202
cekdiagnosa,185186
estimasi,183
indentifikasi,176177
musiman,197202
nonmusiman,181193
musiman,197202
peramalan,188189
YuleWalker,183
leastsquares,183184
maksimumlikelihood,183184
Bartlett,114
barchart,56
binomial,6977
boxandwhiskerplot,50
BoxJenkinsmethodology,176
chisquaretest,90
compute,2729
correlation,87
data,3037
array,30
frame,34
matriks,31
list,37
dataset,2425
dendogram,213
diagram,
batang(barchart),56
lingkaran(piechart),57
pencar(scatterplot),53
direktori,6
diskriminan,210211
linear,210
distribusi,6175
binomial,6977
diskrit,69
frekuensi,83
kontinu,62
normal,6267
edit,
data,20
eksponensialsmoothing,165175
ganda,173174
sederhana,174175
HoltWinters,167172
entry,
data,1618
estimasi,
densitas,215219
modelARIMA,183
modellineartergeneralisir,128
modelnonlinear,234237
regresilinear,121
FactorAnalysis,208209
factors,42
frame,34
fungsi,
distribusi,61,62,69
plot,146158
GeneralizedLinearModel,127129
grafik,4360,144161
setting,160161
GLM,127129
258
sht90
DaftarIndeks
help,1015
searchengine,1214
onlinesearchengine,15
histogram,46
HoltWinters,167172
aditif,167170
multiplikatif,171172
importdata,
ASCII,38
EXCEL,20,39
MINITAB,22,41
SPSS,22,41
instalasiR,2
kenormalan,
shapirowilk,88
kernel,215221
Epanechnikov,216217
Gaussian,216217
kontingensi,89
kuantil,62,69
binomial,69
normal,62
lda,210
Levene,115
library,1
linear,
model,123126
regresi,121122
lm,121126
logistik,
regresi,127129
matriks,31,86
data,31
korelasi,86
mean,
plot,55
model,162203
trenlinear,163
eksponensialsmoothing,165175
ARIMA,176203
lineartergeneralisir,127129
multivariat,
analisis,208214
normal,6267,88
distribusi,6267
nls,237239
operator,244
paket,1
pemrograman,241255
fungsi,241
indeks,58
optionalargument,248249
requiredargument,249250
plot,55,58,146161
indeks,58
interaktif,158
ratarata,55
utama,146156
tambahan,157
proporsi,116119
ujiperbedaan,116119
QQplot,51
recode,25
regresi,120130,215233,234240
kernel,215221
linear,120126
nonlinear,234240
nonparametrik,215233
spline,221233
ringkasan,7981
numerik,7981
runtunwaktu,162205
ShapiroWilk,88
SIC,203
spline,221233
basis,227228
Bspline,223225
kubik,226229
SSasympOrig,239240
StemandLeaf,48
259
sht90
DaftarIndeks
summary,7981
transformasi,25
dataset,25
tabel,84,89
kontingensi,89
statistika,84
ujiproporsi,116119
duasampel,119
sampeltunggal,117
ujiratarata,95104
duasampelbebas,98
sampelberpasangan,102
sampeltunggal,95
ujivariansi,112115
Bartlett,114
duavariansi,112
Levene,115
vektor,30
YuleWalker,183
260
sht90
TentangPenulis
TENTANGPENULIS
Bidang penelitian yang banyak dilakukan adalah time series forecasting, neural
network for data analysis, spatial time series, dan econometrics time series. Beberapa
areaterapanyangmenjadiobyekpenelitiandantelahdilakukanantaralainpemodelan
inflasidiIndonesia,turismdiBali,transportasi(kendaraan)dijalantol,hidrologi(debit
airdisuatubendungan),danpemodelanpemakaianenergilistrikjangkapendekdisuatu
area distribusi. Saat ini ia sedang meneliti tentang model hybrid neural network dan
analisiswaveletuntuktimeseriesforecasting,sertamengembangkanmodelintervensi,
structural change, dan model variasi kalender yang banyak terjadi di beberapa kasus
dataseriesdiIndonesia.
218