Pertemuan 6
Metodologi penelitian
OLS dan asumsinya.
mengoperasikan R melalui RStudio.
Berbagai jenis data: cross-section, time series.
Mudah-mudahan mahasiswa sudah mulai latihan-latihan dengan R.
Diharapkan saat ini sudah bisa menggunakan R script.
File yang muncul di folder yang belakangnya ada .R-nya.
Setelah UTS kita akan bahas lebih jauh tentang RStudio.
Diharapkan mahasiswa sudah memahami konsep working directory dan packages.
R packages adalah beberapa fungsi ketengan atau fungsi yang bisa didownload untuk melakukan fungsi ekstra di R.
install.packages('NAMA PACKAGE')
adalah command yang kita gunakan untuk install pertama kali.
Kita memanggil packages tersebut dengan library('NAMA PACKAGE')
setiap memulai sesi R.
install.packages perlu internet tapi library tidak perlu.
sejauh ini kita baru install “readxl” dan “tidyverse”. Hari ini kita akan perlu package baru namanya “dynlm” dan “urca”.
Baik dengan menggunakan R Script maupun menggunakan Console langsung, anda akan dikasih warning kalau ada masalah / error.
Beberapa warnings yang sering terjadi minggu lalu:
read_excel()
tidak dipahami oleh R karena belum run library("readxl")
.
library()
gagal karena belum install_packages()
.
Garis miring untuk set_wd()
belum diganti dari ke /.
set_wd()
-nya masih di folder “metopel” belum di folder “latihan”
Anda bisa menyelesaikan masalah-masalah tersebut dengan melihat warning-nya.
Di sini pentingnya pengetahuan bahasa inggris dan kemampuan problem solving.
Warnings biasanya disampaikan dalam bahasa inggris (tidak hanya R, aplikasi lain juga sama)
Banyak hal di R itu bisa digoogle, tapi enakan pakai bahasa inggris.
Menemukan cara menyelesaikan suatu masalah membutuhkan kemampuan menganalisis masalahnya ada dan solusinya bagaimana.
Adalah data yang bentuknya serial waktu.
ada antara data 1 dan data lainnya (untuk individu yang sama) punya urutan kronologis.
Grafik time series sangant powerful.
Main feature (or bug) in time series data:
Autocorrelation: di mana data kemarin dapat menjelaskan (sebagian) apa yang akan terjadi besok: \(Y_t=\beta_0+\beta_1 Y_{t-1}+\mu_t\)
Moving average: di mana error di masa lalu ada hubungannya dengan Y saat ini.
Autocorrelation diberi simbol AR(p) di mana dalam kurung diisi dengan “lag”.
Misalnya, AR(2) (atau kita sebut AR dengan p=2) berarti punya spek:
\[ Y_t=\alpha + \beta_1 Y_{t-1} + \beta_2 Y_{t-2} + \mu_t \]
Moving average pada intinya adalah kondisi di mana error term di masa lalu berpengaruh di saat ini.
MA(2) (atau MA dengan q=2) berarti:
\[ Y_t=\alpha + \beta_1 Y_{t-1}+\mu_t + \gamma_1 \mu_{t-1} + \gamma_2 \mu_{t-2} \]
Kita bisa menggabungkan konsep AR dan MA menjadi ARMA(p,q).
Misalnya ARMA(2,2) atau ARMA dengan p=2 dan q=2:
\[ Y_t=\alpha + \beta_1Y_{t-1} + \beta_2Y_{t-2} + \gamma_1 \mu_{t-1} + \gamma_2 \mu_{t-2} + \mu_t \]
Autocorrelation pada intinya adalah melihat hubungan variabel dengan dirinya sendiri di masa lalu.
Intinya, untuk menggunakan metode ARMA, kita perlu memastikan bahwa data kita stasioner.
Stasioner disebut juga dengan mean-reverting:
jika datanya ada gerakan naik, dia akan segera kembali ke nilai rata-rata tidak lama dari situ.
akibatnya data yang stasioner adalah data yang tidak ada tren.
cara membuat stasioner? Apa yang disebut first difference.
load packages dulu
Jangan lupa di-set_wd()
dulu ya.
semua regresi berbasis autoregression perlu cek stasionaritas.
Meski dengan mata bisa kita cek, tapi kita dapat menggunakan metode Augmented Dickey-Fuller (ADF) untuk lebih pastinya.
Autoregression perlu melakukan uji stasioneritas dulu dengan metode bernama Augmented Dickey-Fuller (ADF).
Kita akan coba pakai data nilai tukar IDR/USD di sini
dat<-na.omit(read_excel("latihan5a.xlsx")) # NA omit fungsinya menghilangkan data yg missing/kosong (NA)
summary(ur.df(dat$xr))
###############################################
# Augmented Dickey-Fuller Test Unit Root Test #
###############################################
Test regression none
Call:
lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
Residuals:
Min 1Q Median 3Q Max
-941.04 -137.07 -19.66 140.18 2201.33
Coefficients:
Estimate Std. Error t value Pr(>|t|)
z.lag.1 0.001682 0.002819 0.596 0.552
z.diff.lag -0.161288 0.105730 -1.525 0.131
Residual standard error: 374.4 on 88 degrees of freedom
Multiple R-squared: 0.02832, Adjusted R-squared: 0.006234
F-statistic: 1.282 on 2 and 88 DF, p-value: 0.2825
Value of test-statistic is: 0.5965
Critical values for test statistics:
1pct 5pct 10pct
tau1 -2.6 -1.95 -1.61
###############################################
# Augmented Dickey-Fuller Test Unit Root Test #
###############################################
Test regression none
Call:
lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
Residuals:
Min 1Q Median 3Q Max
-804.90 -123.13 2.25 146.01 2195.31
Coefficients:
Estimate Std. Error t value Pr(>|t|)
z.lag.1 -1.3621 0.1593 -8.550 3.46e-13 ***
z.diff.lag 0.1785 0.1049 1.701 0.0925 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 369.1 on 88 degrees of freedom
Multiple R-squared: 0.5901, Adjusted R-squared: 0.5808
F-statistic: 63.34 on 2 and 88 DF, p-value: < 2.2e-16
Value of test-statistic is: -8.5498
Critical values for test statistics:
1pct 5pct 10pct
tau1 -2.6 -1.95 -1.61
Dapat dilihat bahwa untuk critical value 1%, difference nilai tukar ternyata stasioner sementara nilai tukarnya tidak.
Jika data kita stasioner di first difference (atau setelah dilakukan perubahan selisih sebanyak 1x), kita katakan I=1.
ARIMA(p,I,q) adalah konsem stasioneritas digabung dengan ARMA.
Sekarang kita akan coba forecast dengan ARIMA untuk data nilai tukar.
di package “forecast”, kita dapat menggunakan fungsi auto.arima()
untuk dapat spesifikasi terbaik.
Sudah dihitung di difference ke berapa stasionernya. Bener-bener tinggal pake.
dapat kita lihat di layar sebelumnya bahwa spesifikasi yang dipilih oleh auto.arima()
adalah ARIMA(1,1,1)
Kita dapat mencoba model kita sendiri dengan fungsi Arima()
(huruf A yg di depan kapital ya).
auto.arima()
memilihkan model dengan AICc paling kecil. Karena itu anda akan melihat AICc yang lebih besar di model selain ARIMA(1,1,1)
Untuk cek residual, kita menggunakan fungsi checkresiduals
yang sudah built-in di dalam paket “forecast”
Yang perlu diperhatikan adalah plot ACF-nya harus di dalam titik-titik biru (yang artinya dapat dikatakan sebagai random / white noise).
Juga perlu diperhatikan distribusinya, yang seharusnya berbentuk distribusi normal / student-t / lonceng.
ARIMA dengan lag 1 sepertinya tidak terlalu informatif.
Bagaimanapun juga, forecasting sesuatu memang merupakan hal yang sulit.
Fenomena-fenomena kejut seringkali lebih penting daripada forecasting.
bagi yang tertarik forecasting dapat membaca lebih jauh di sini
rekomended paling tidak bab 1, 2 dan 8.