ANALISIS DERET WAKTU Ganjil 2011 kuliah ke-2.

Download Report

Transcript ANALISIS DERET WAKTU Ganjil 2011 kuliah ke-2.

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
AP <- scan()
paste clipboard (ctrl+v)
enter
Ubah menjadi data jenis deret waktu (ts = time series)
AP <- ts(AP, start=c(1949,1), freq=12)
Buat plotnya
plot(AP, ylab="Penumpang (1000-an)")
600
“Gambar lebih bermakna daripada seribu kata-kata”
400
300
Feb (winter)
Nov (Autumn)
100
200
Penumpang (1000-an)
500
Summer
1950
1952
1954
1956
1958
1960
Time
Trend: perubahan sistematik yang tidak tampak periodik
Variasi Musiman: pola berulang dalam tiap tahun (periode)
• 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 R
layout(1:2)
plot(aggregate(AP))
boxplot(AP ~ cycle(AP))
4000
2000
1950
1952
1954
1956
1958
1960
Time
Data Penumpang Tahunan
300
500
Pengaruh bulanan
100
aggregate(AP)
Trend meningkat
1
2
3
4
5
6
7
8
9
Boxplot tiap bulan
10
11
12
2. Data Pengangguran Maine.XLSX
Data 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 datanya
attach(Maine.month)
#ubah menjadi data berjenis data time series
Maine.month.ts <- ts(unemploy, start = c(1996, 1), freq = 12)
#kita bisa buat data agregat (rata-rata) tahunannya
Maine.annual.ts <- aggregate(Maine.month.ts)/12
#Buat plot data bulanan dan tahunannya
layout(1:2)
plot(Maine.month.ts, ylab = "unemployed (%)")
plot(Maine.annual.ts, ylab = "unemployed (%)")
5
6
Rata-rata 1996
4
3
unemployed (%)
Feb
Agu
1996
1998
2000
2002
2004
2006
Time
4.5
3.5
unemployed (%)
Pengangguran Bulanan
1996
1998
2000
2002
2004
Time
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
22% lebih tinggi
[1] 1.222529
> Aug.ratio
18% lebih rendah
[1] 0.8163732
3. Data Deret Waktu Multiple:
Data Cokelat, Bir dan Listrik CBE.XLSX
Data 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 variabel
Elec.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 plotnya
plot(cbind(Elec.ts, Beer.ts, Choc.ts), main="Produksi Cokelat, Bir dan Listrik")
10000
6000
2000
Elec.ts
14000
Produksi Cokelat, Bir dan Listrik
150
2000 4000 6000 8000
Choc.ts
100
Beer.ts
200
Semua
meningkat,
karena jumlah
penduduk
meningkat
1960
1965
1970
1975
Time
1980
1985
1990
4. Nilai Kurs Kuartalan: £ versus NZ$ Pound_NZ.XLSX
Data 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")
3.2
3.0
2.8
2.6
2.4
2.2
Kurs Kuartalan $NZ / pound
3.4
Berpotensi terjadi salah ramalan
1992
1994
1996
Waktu / Tahun
1998
2000
5. Suhu Global GLOBAL.XLSX
Data tersebut dibaca langsung dari web dengan R.
www <- "http://www.massey.ac.nz/~pscowper/ts/global.dat"
Global <- scan(www)
#Ubah menjadi data time series
Global.ts <- ts(Global, st = c(1856, 1), end = c(2005, 12),fr = 12)
#Ubah menjadi data rata-rata tahunan
Global.annual <- aggregate(Global.ts, FUN = mean)
#Plot
layout(1:2)
plot(Global.ts)
plot(Global.annual)
0.0
-1.0
Global.ts
1900
1950
2000
Time
0.4
0.0
-0.4
Global.annual
Fenomena global warming mulai 1970-an
1900
1950
Time
2000
Ekstrak data tahun 1970 – 2005 (36 tahun)
0.2
0.0
-0.2
-0.4
New.series
0.4
0.6
0.8
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))
1970
1975
1980
1985
1990
Time
1995
2000
2005
DEKOMPOSISI
Notasi
Data deret waktu dengan panjang pengamatan n
x t : t  1,  , n   x1 , x 2 ,  , x n 
atau cukup x t  , jika panjang pengamatan sudah jelas.
Rata-rata sampel
x 
x
i
n
Prediksi atau ramalan
xˆ t  k |t adalah ramalan yang dibuat pada waktu t untuk nilai ramalan
pada waktu t+k
Model
Dekomposisi aditif
xt  m t  st  z t
mt : trend
st : efek musiman
zt : error
Jika efek musiman cenderung meningkat seiring peningkatan trend,
model yang tepat adalah model multiplikatif (perkalian):
xt  m t  st  z t
Model aditif dalam log
log  x t   m t  s t  z t
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)
sˆt  x t  mˆ t
Jika efek bulanannya multiplikatif
sˆt  x t / mˆ t
Membuat Dekomposisi dalam R (decompose)
Contoh data LISTRIK.
plot(decompose(Elec.ts))
2000 6000 10000 2000 6000 10000
500
0
-600 -200 200 600 -500
random
seasonal
trend
observed
Decomposition of additive time series
Error-nya masih jelek (tidak acak)
1960
1965
1970
1975
Time
1980
1985
1990
Coba model Multiplikatif
Elec.decom <- decompose(Elec.ts, type = "mult")
plot(Elec.decom)
2000 6000 10000
10000
6000
1.10 2000
1.00
0.98
1.02
Variasi errornya
meningkat utk
nilai trend yg
besar
0.94
random
1.060.90
seasonal
trend
observed
Decomposition of multiplicative time series
1960
1965
1970
1975
Time
1980
1985
1990
Trend <- Elec.decom$trend
Seasonal <- Elec.decom$seasonal
ts.plot(cbind(Elec.ts,Trend, Trend * Seasonal), col = 2:4)
Data asli
Taksiran Trend
Taksiran Model