analisis deret waktu
DESCRIPTION
ANALISIS DERET WAKTU. Abdul Kudus, SSi ., MSi ., PhD. Jumat, 15.40 – 18.10. PLOT, TREND dan VARIASI MUSIMAN. 1. Data Penumpang Pesawat Terbang AP.XLSX. Lihat Plotnya (Misal menggunakan software R). 1. Buka file Excel 2. Copy kolom data ke dalam clipboard (ctrl-C) 3. Di dalam R. - PowerPoint PPT PresentationTRANSCRIPT
ANALISIS DERET WAKTU
Abdul Kudus, SSi., MSi., PhD.Jumat, 15.40 – 18.10
PLOT, TREND dan VARIASI MUSIMAN1. Data Penumpang Pesawat Terbang AP.XLSXLihat Plotnya (Misal menggunakan software R)1. Buka file Excel2. Copy kolom data ke dalam clipboard (ctrl-C)3. Di dalam R
AP <- scan()paste clipboard (ctrl+v)enterUbah menjadi data jenis deret waktu (ts = time series)AP <- ts(AP, start=c(1949,1), freq=12)Buat plotnyaplot(AP, ylab="Penumpang (1000-an)")
Time
Pe
nu
mp
an
g (
10
00
-an
)
1950 1952 1954 1956 1958 1960
10
02
00
30
04
00
50
06
00
Trend: perubahan sistematik yang tidak tampak periodik
Summer
Nov (Autumn)Feb (winter)
Variasi Musiman: pola berulang dalam tiap tahun (periode)
“Gambar lebih bermakna daripada seribu kata-kata”
• Untuk mendapatkan gambaran yang jelas dari trend, maka efek musimannya dapat dibuang dengan cara meng-agregat-kan data menjadi data tahunan.
• Untuk mendapatkan ringkasan data setiap bulan bisa digunakan boxplot.
Di dalam Rlayout(1:2)plot(aggregate(AP))boxplot(AP ~ cycle(AP))
Time
ag
gre
ga
te(A
P)
1950 1952 1954 1956 1958 1960
20
00
40
00
1 2 3 4 5 6 7 8 9 10 11 12
10
03
00
50
0
Data Penumpang Tahunan
Boxplot tiap bulan
Trend meningkat
Pengaruh bulanan
2. Data Pengangguran Maine.XLSXData ini juga ada di web-nya buku Introductory Time Series with R.Data tersebut dalam format text ASCII dan bisa dibaca langsung dari web tsb dengan R.
www <- "http://www.massey.ac.nz/~pscowper/ts/Maine.dat"Maine.month <- read.table(www, header = TRUE)#akses langsung ke kolom datanyaattach(Maine.month)#ubah menjadi data berjenis data time seriesMaine.month.ts <- ts(unemploy, start = c(1996, 1), freq = 12)#kita bisa buat data agregat (rata-rata) tahunannyaMaine.annual.ts <- aggregate(Maine.month.ts)/12#Buat plot data bulanan dan tahunannyalayout(1:2)plot(Maine.month.ts, ylab = "unemployed (%)")plot(Maine.annual.ts, ylab = "unemployed (%)")
Time
un
em
plo
yed
(%
)
1996 1998 2000 2002 2004 2006
34
56
Time
un
em
plo
yed
(%
)
1996 1998 2000 2002 2004
3.5
4.5
Rata-rata 1996Feb
Agu
Pengangguran Bulanan
Pengangguran Rata-rata Tahunan
Kita bisa mengambil data bulan tertentu saja dgn window.> Maine.Feb <- window(Maine.month.ts, start = c(1996,2), freq = TRUE)> Maine.Aug <- window(Maine.month.ts, start = c(1996,8), freq = TRUE)> Feb.ratio <- mean(Maine.Feb) / mean(Maine.month.ts)> Aug.ratio <- mean(Maine.Aug) / mean(Maine.month.ts)> Feb.ratio[1] 1.222529> Aug.ratio[1] 0.8163732
22% lebih tinggi
18% lebih rendah
3. Data Deret Waktu Multiple: Data Cokelat, Bir dan Listrik CBE.XLSXData tersebut dibaca langsung dari web dengan R.www <- "http://www.massey.ac.nz/~pscowper/ts/cbe.dat"CBE <- read.table(www, header = T)#Buat data deret waktu tunggal utk setiap variabelElec.ts <- ts(CBE[, 3], start = 1958, freq = 12)Beer.ts <- ts(CBE[, 2], start = 1958, freq = 12)Choc.ts <- ts(CBE[, 1], start = 1958, freq = 12)#Buat plotnyaplot(cbind(Elec.ts, Beer.ts, Choc.ts), main="Produksi Cokelat, Bir dan Listrik")
2000
6000
1000
014
000
Ele
c.ts
100
150
200
Be
er.
ts
2000
4000
6000
8000
1960 1965 1970 1975 1980 1985 1990
Ch
oc.
ts
Time
Produksi Cokelat, Bir dan Listrik
Semua meningkat, karena jumlah penduduk meningkat
4. Nilai Kurs Kuartalan: £ versus NZ$ Pound_NZ.XLSXData tersebut dibaca langsung dari web dengan R.
> www <- "http://www.massey.ac.nz/~pscowper/ts/pounds_nz.dat"> Z <- read.table(www, header = T)#Ubah menjadi jenis time series> Z.ts <- ts(Z, st = 1991, fr = 4)#Buat plotnya> plot(Z.ts, xlab = "Waktu / Tahun",ylab = "Kurs Kuartalan $NZ / pound")
Waktu / Tahun
Ku
rs K
ua
rta
lan
$N
Z /
po
un
d
1992 1994 1996 1998 2000
2.2
2.4
2.6
2.8
3.0
3.2
3.4
Berpotensi terjadi salah ramalan
5. Suhu Global GLOBAL.XLSXData tersebut dibaca langsung dari web dengan R.
www <- "http://www.massey.ac.nz/~pscowper/ts/global.dat"Global <- scan(www)#Ubah menjadi data time seriesGlobal.ts <- ts(Global, st = c(1856, 1), end = c(2005, 12),fr = 12)#Ubah menjadi data rata-rata tahunanGlobal.annual <- aggregate(Global.ts, FUN = mean)#Plotlayout(1:2)plot(Global.ts)plot(Global.annual)
Time
Glo
ba
l.ts
1900 1950 2000
-1.0
0.0
Time
Glo
ba
l.an
nu
al
1900 1950 2000
-0.4
0.0
0.4
Fenomena global warming mulai 1970-an
Ekstrak data tahun 1970 – 2005 (36 tahun)
New.series <- window(Global.ts, start=c(1970, 1), end=c(2005, 12))New.time <- time(New.series)plot(New.series); abline(reg=lm(New.series ~ New.time))
Time
Ne
w.s
eri
es
1970 1975 1980 1985 1990 1995 2000 2005
-0.4
-0.2
0.0
0.2
0.4
0.6
0.8
DEKOMPOSISINotasi
nt xxxntx ,,,,,1: 21 Data deret waktu dengan panjang pengamatan n
atau cukup , jika panjang pengamatan sudah jelas. txRata-rata sampel
n
xx i
Prediksi atau ramalan
tktx |ˆ adalah ramalan yang dibuat pada waktu t untuk nilai ramalan pada waktu t+k
Model
Dekomposisi aditif tttt zsmx mt : trendst : efek musimanzt : error
Jika efek musiman cenderung meningkat seiring peningkatan trend, model yang tepat adalah model multiplikatif (perkalian):
tttt zsmx Model aditif dalam log
tttt zsmx log
Menaksir Trend dan Efek Musiman
Menaksir trend mt pada waktu t dapat dilakukan dengan menghitung rata-rata bergerak (moving average) yang berpusat di t.
Misal untuk data bulanan (periode 1 tahun)
Taksiran efek aditif bulanan (musiman)
ttt mxs ˆˆ Jika efek bulanannya multiplikatif
ttt mxs ˆ/ˆ
Membuat Dekomposisi dalam R (decompose)
Contoh data LISTRIK.plot(decompose(Elec.ts))
200060001
0000
ob
se
rve
d
2000
6000
10000
tre
nd
-500
0500
se
aso
na
l
-600-2
00
200
600
1960 1965 1970 1975 1980 1985 1990
ran
do
m
Time
Decomposition of additive time series
Error-nya masih jelek (tidak acak)
Coba model MultiplikatifElec.decom <- decompose(Elec.ts, type = "mult")plot(Elec.decom)
2000
6000
1000
0
ob
serv
ed
2000
6000
1000
0
tre
nd
0.90
1.00
1.10
sea
son
al
0.94
0.98
1.02
1.06
1960 1965 1970 1975 1980 1985 1990
ran
do
m
Time
Decomposition of multiplicative time series
Variasi errornya meningkat utk nilai trend yg besar
Trend <- Elec.decom$trendSeasonal <- Elec.decom$seasonalts.plot(cbind(Elec.ts,Trend, Trend * Seasonal), col = 2:4)
Data asliTaksiran Trend
Taksiran Model