Ekonometrik

Tugas 5


Kontak : \(\downarrow\)
Email
Instagram yyosia
RPubs https://rpubs.com/yosia/

Introduction

Time series adalah data yang dikumpulkan untuk satu entitas dari waktu ke waktu.jadi data secara berurutan selama beberapa waktu. Grafik deret waktu dapat digunakan untuk memvisualisasikan tren dalam jumlah atau nilai numerik dari waktu ke waktu. Karena informasi tanggal dan waktu adalah data kategorikal berkelanjutan (dinyatakan sebagai rentang nilai), titik diplot sepanjang sumbu x dan dihubungkan oleh garis kontinu. Data yang hilang ditampilkan dengan garis putus-putus.

Data deret waktu adalah kumpulan pengamatan yang diperoleh melalui pengukuran berulang sepanjang waktu. Plot titik-titik pada grafik, dan salah satu sumbu Anda akan selalu menjadi waktu.

Data deret waktu ada di mana-mana, karena waktu adalah konstituen dari segala sesuatu yang dapat diamati. Saat dunia kita semakin terinstrumentasi, sensor dan sistem terus-menerus memancarkan aliran data deret waktu tanpa henti. Data tersebut memiliki banyak aplikasi di berbagai industri. Mari kita letakkan ini dalam konteks melalui beberapa contoh.

Time Series Object

Time series object ini adalah urutan angka yang dikumpulkan dari informasi, dan angkanya berurutan.

Year Observation
2007 30
2008 60
2009 90
2010 120
2011 150
2012 180
2013 210
2014 240
2015 270
2016 300
2017 330
2018 360
2019 390
2020 420

Kita pakai object ts() digunakan untuk membuat time series object

dt <- ts(c(30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330,360,390, 420), start=2007) 
dt
## Time Series:
## Start = 2007 
## End = 2020 
## Frequency = 1 
##  [1]  30  60  90 120 150 180 210 240 270 300 330 360 390 420

Lalu kita melihat jika dalam per tahun, maka kita melihat dalam setiap bulan.

y <- ts(dt, start=2020, frequency=12)
y
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2020  30  60  90 120 150 180 210 240 270 300 330 360
## 2021 390 420

untuk menganalisa kita harus mendasarkan dengan fungsi ts()

Time Plots

di sesi ini kita ingin mengamati time series dalam plot, jadi kita memvisulisasikan nya dengan plot. dan kita juga bisa mengambil kesimpulan dari plot yang di visualisasikan dari data kita.

library(fpp)  # Data for "Forecasting: principles and practice"
library (DT)
datatable(melsyd,
          caption = htmltools::tags$caption(
            style = 'caption-side: bottom; text-align: center;',
            htmltools::em('Table 1: Passengers: Melbourne-Sydney')), 
          options = list (dom='t'))
library(ggplot2)
autoplot(melsyd[, "Economy.Class"]) + 
  ggtitle("Figure 1: Economy class passengers: Melbourne-Sydney")+
  xlab ("Year") + 
  ylab ("Thousands")

Dari plot diatas kita melihat bahwa pada tahun 1989 tidak ada penumpang yang menaiki pesawat dan di tahun 1991 adalah penumpang tertinggi pada tahun itu.

setah itu kita akan menggunakan fungsi autoplot() maka secara otomatis menghasilkan plot yang sesuai dari apa pun yang ada di argumen pertama.

autoplot(a10)+
  ggtitle("Figure 2: Antidiabetic drug sales")+
  ylab("$ million")+
  xlab ("Year")

dari plot diatas kita melihat bahwa setiap tahun penghasilan dari penjualan obat terus meningkat, namun terjadi penurunan disebabkan oleh skema subsidi pemerintah yang membuat pasien hemat biaya untuk menimbun obat di akhir tahun.

Time Series Pattern

Time series ini memresprentasikan grafis dari hubungan waktu dengan variabel yang perlu kita ramalkan atau prediksi. ada beberapa pattern dalam time series:

Trend

Biasanya, data deret waktu menunjukkan fluktuasi acak. plot ini dapat menunjukkan pergeseran atau pergerakan bertahap ke nilai yang lebih tinggi atau lebih rendah selama suatu periode. hal tersebut menunjukkan pola tren yang tersedia dalam data. Pada plot sebelumnya telah menunjukan tren data penjualan obat antidiabetes.

Seasonal

Pola musiman dikenali dengan mengamati pola yang berulang selama periode yang berurutan. Musiman adalah jumlah langkah waktu yang diperlukan untuk siklus data penuh, setelah itu siklus berulang sepanjang deret waktu. jadi bisa hitungan hari, bulan, minggu,dll

Cyclic

Pola siklis terjadi jika plot deret waktu menunjukkan urutan titik-titik di atas dan di bawah garis tren yang berlangsung selama lebih dari satu tahun secara bergantian. Berbagai rangkaian waktu ekonomi menunjukkan perilaku siklus dengan pengamatan yang teratur di bawah dan di atas garis tren. Contoh gambar dari Cyclic pattern


  • Penjualan perumahan bulanan (plot pertama) menunjukkan musim yang kuat dalam setiap tahun, serta beberapa perilaku siklus yang kuat dengan jangka waktu sekitar 6-10 tahun. Tidak ada tren yang jelas dalam data selama periode ini.

  • Kontrak treasury bill AS (plot kedua) menunjukkan hasil dari pasar Chicago selama 100 hari perdagangan berturut-turut pada tahun 1981. Di sini tidak ada musim namun tren mengalami penurunan yang jelas.Pada plot ini hanya dalam 100 hari, maka tren tersebut tampaknya menjadi tren.

  • Produksi listrik triwulanan Australia (plot ketiga) menunjukkan tren peningkatan yang kuat, dengan musim yang kuat. Tidak ada bukti perilaku siklik di sini.

  • Perubahan harian pada harga saham penutupan Google (plot keempat) tidak memiliki tren, musiman, atau perilaku siklus. Ada fluktuasi acak yang tampaknya tidak dapat diprediksi, dan tidak ada pola kuat yang akan membantu mengembangkan model peramalan.

Seasonal Plots

Seasonal Plots mirip dengan Time Series Plot biasa, yang berbeda adalah di sumbu x menunjukkan data dari dalam setiap musim. Jenis plot ini memungkinkan pola musiman yang mendasarinya terlihat lebih jelas, dan sangat berguna dalam mengidentifikasi tahun-tahun di mana pola tersebut berubah.

ggseasonplot(a10, year.labels=TRUE, year.labels.left=TRUE)+
  ylab ("$ million")+
  ggtitle("Figure 4: Seasonal plot antidiabetic drug sales")

Dari plot diatas dapat dilihat dengan jelas bahwa terjadi lonjakan penjualan yang besar di bulan Januari setiap tahunnya. Sebenarnya, ini mungkin penjualan pada akhir Desember sebagai persediaan pelanggan sebelum akhir tahun kalender, tetapi penjualan tidak terdaftar di pemerintah sampai satu atau dua minggu kemudian. Grafik juga menunjukkan bahwa ada jumlah penjualan yang sangat kecil di bulan Maret 2008. Sedikitnya jumlah penjualan pada bulan Juni 2008 kemungkinan disebabkan karena belum lengkapnya penghitungan penjualan pada saat pendataan.

Plot diatas terlihat sangat tumpang tindih dan sedikit kurang jelas jika kita ingin melihat lebih spesifik di tahun tertentu.plot selanjutnya lingkaran memungkinkan kita untuk melihat lebih jelas di setiap tahunnya

ggseasonplot (a10, polar=TRUE)+
  ylab ("$ million")+
  ggtitle("Figure 5: Polar seasonal plot 2 antidiabetic drug sales")

Seasonal Subseries Plots

Plot alternatif yang menekankan pola musiman adalah dimana data untuk setiap musim dikumpulkan bersama dalam plot waktu mini yang terpisah. jadi plot ini memvisualisasikan dan mendeteksi musin dan time seriesnya.

ggsubseriesplot(a10)+
  ylab("$ million")+
  ggtitle("Figure 6: Seasonal subseries plot antidiabetic drug sales")

terlihat bahwa garis garis ini membuat kita mudah melihat bahwa ada perubahannya setiap tahun.

Scatterplots

Grafik yang dibahas sejauh ini berguna untuk memvisualisasikan deret waktu individual. Hal ini juga berguna untuk mengeksplorasi hubungan antara deret waktu.

Figure 7 shows two time series: half-hourly electricity demand (in Gigawatts) and temperature (in degrees Celsius), for 2014 in Victoria, Australia. The temperatures are for Melbourne, the largest city in Victoria, while the demand values are for the entire state

library(fpp2)
autoplot(elecdemand[,c("Demand","Temperature")], facets=TRUE)+
  xlab ("Year: 2014") + ylab("") +
  ggtitle("Figure 7: Half-hourly electricity demand ~ Victoria, Australia")

plot diatas terlihat rumit, maka selanjutnya kita akan membuat 2 sumbu garis yaitu demand dan temperature.

qplot (Temperature, Demand, data=as.data.frame(elecdemand)) +
  ylab ("Demand (GW)") + xlab ("Temperature (Celsius)")

Scatterplot matrices

Ketika ada beberapa variabel prediktor potensial, akan berguna untuk memplot setiap variabel terhadap satu sama lain variabel. Perhatikan lima rangkaian waktu yang ditunjukkan di bawah ini, yang menunjukkan jumlah pengunjung triwulanan untuk lima wilayah New South Wales, Australia.

autoplot(visnights[,1:5], facets=TRUE) +
  ylab ("Number of visitor nights each quarter (millions)")

setelah kita melihat setiap hubungan dari kelima time series diatas maka kita membuat matriks scatterplot untuk mengaturnya.

GGally::ggpairs(as.data.frame(visnights[,1:5]))

Untuk setiap panel, variabel pada sumbu vertikal diberikan oleh nama variabel pada baris tersebut, dan variabel pada sumbu horizontal diberikan oleh nama variabel pada kolom tersebut. Ada banyak pilihan yang tersedia untuk menghasilkan plot yang berbeda dalam setiap panel. Dalam versi default, korelasi ditampilkan di bagian kanan atas plot, sedangkan scatterplot ditampilkan di bagian bawah. Pada diagonal ditampilkan plot kepadatan.

Nilai dari matriks scatterplot adalah memungkinkan tampilan cepat dari hubungan antara semua pasangan variabel. Dalam contoh ini, plot kolom kedua menunjukkan ada hubungan positif yang kuat antara pengunjung pantai utara NSW dan pengunjung pantai selatan NSW, tetapi tidak ada hubungan yang terdeteksi antara pengunjung pantai utara NSW dan pengunjung ke pedalaman selatan NSW. Pencilan juga bisa terlihat.

Lag Plots

gambar selanjutnya kita akan melihat scatterplot produksi beer Australia selama triwulanan, dimana sumbu horizontal menunjukan nilai Lag dari time series. setap grafik menunjukan \(y_t\) diplot terhadap \(y_{t-k}\) untuk nilai k yang berbeda.

library(tsibbledata)
library(tsibble)
library(stats)
library(dplyr)
library(feasts)
library(fabletools)
library(lubridate)

recent_production <- aus_production %>% 
  filter (year(Quarter) >= 2000)
recent_production %>%
  gg_lag(Beer, geom= "point")

dilihat dari gambar diatas bahwa ada 4 titik Q1-Q4 yaitu musim dalam setahun, dari tabel-table diatas terlihat bahwa Log 4 dan Log 8 kuat karena datanya menyebar tidak jauh dari garis prediksi. tapi Lag 2 dan Lag 6 terlihat bahwa hubungannya lemah karena dari setiap titik tidak berhubungan satu sama lain.

Autocorrelation

Sama seperti korelasi mengukur sejauh mana hubungan linier antara dua variabel, autokorelasi mengukur hubungan linier antara nilai-nilai tertinggal dari deret waktu.

Ada beberapa koefisien autokorelasi, sesuai dengan setiap panel di plot lag. Misalnya, \(r_1\) mengukur hubungan antara \(y_t\) dan \(y_{t-1},r_2\) mengukur hubungan antara \(y_t\) dan \(y_{t-2}\) dan seterusnya.

nilai rk dapat ditulis sebagai berikut

\[\begin{align} \tag{1} r_k={\sum^T_{t=k+1}(y_t−\bar{y})(y_{t−k}−\bar{y}) \over \sum^T_{t=1}(y_t−\bar{y})^2}, \end{align}\]

dimana \(T\) adalah time series yang panjang

9 autokorelasi

r1 r2 r3 r4 r5 r6 r7 r8 r9
-0.1 02 -0.6 57 -0.0 60 0.86 9 -0.08 9 -0.63 5 -0.05 4 0.832 -0.108

These correspond to the nine scatterplots. autokorelasi diplot untuk menunjukkan fungsi autokorelasi atau ACF.

recent_production %>% ACF (Beer, lag_max = 9)

nilai dalam kolom acf adalah \(r_1 ..., r_9,\) yang sesuai dengan sembilan scatterplot pada Gambar di bawah. Bbiasanya memplot ACF untuk melihat bagaimana korelasi berubah dengan Lag \(k\). Plot kadang-kadang dikenal sebagai correlogram.

recent_production %>% 
  ACF (Beer) %>% 
  autoplot()+labs (title="Australian beer production")

dalam grafik ini:

  • \(r_4\) lebih tinggi daripada lag lainnya. Hal ini disebabkan pola musiman dalam data: puncak cenderung terpisah empat perempat dan palung cenderung terpisah empat perempat.
  • \(r_2\) lebih negatif daripada kelambatan lainnya karena palung cenderung dua perempat di belakang puncak.
  • Garis putus-putus berwarna biru menunjukkan apakah korelasi berbeda nyata dari nol. Ini dijelaskan di bagian berikutnya (White Noise).

Saat data sedang tren dan musiman, Anda melihat kombinasi dari efek ini. Rangkaian permintaan listrik bulanan Australia yang diplot pada Gambar selanjutnya menunjukkan tren dan musiman. ACF-nya ditunjukkan pada Gambar di bawah ini:

aelec <- window(elec, start=1980) 
autoplot (aelec) + xlab ("Year") + ylab ("GWh")

ggAcf(aelec, lag=48)

White Noise

kondisi dimana time series yang tidak menunjukan autokorelasi. contoh:

set.seed (30)
y <- ts(rnorm(50))
autoplot(y)+ ggtitle("White noise")

ggAcf(y)

untuk bagian ini, kita berharap bahwa autokorelasi mendekati nol. dan tidak sama dengan nol karena variansi nya menyebar. kita memperkirakan 95% lonjakan di ACF terletak di dalam \(\pm2/\sqrt{T}\) di mana T adalah panjang deret waktu.umum untuk memplot batas-batas ini pada grafik ACF (garis putus-putus biru di atas). Jika satu atau lebih paku besar berada di luar batas ini, atau jika secara substansial lebih dari 5% paku berada di luar batas ini, maka rangkaian tersebut mungkin bukan white noise.

Dalam contoh ini, T=50 dan batasnya berada di \(\pm 2/\sqrt{50}=\pm 0.28\) Semua koefisien autokorelasi berada dalam batas-batas ini, mengkonfirmasikan bahwa datanya adalah white noise.