Jumat, 27 November 2015

Model Seemingly Unrelated Regression (SUR)

download materi ini versi pdf disini>>>

Ketika kita memiliki beberapa set persaman regresi linier berganda, dimana setiap persamaan menjelaskan tentang fenomena perekonomian. Beberapa persamaan ini dapat kita nyatakan sebagai model persamaan simultan, jika salah satu variabel penjelasnya bersifat dependen (endogenous). Tetapi jika tidak ada variabel dalam sistem persamaan simultan tersebut yang kita anggap sebagai variabel independen, kemungkinan masih ada interaksi antara persamaan individual tersebut jika disturbances atau error memiliki hubungan korelasi antara satu variabel dengan paling tidak beberapa variabel lain. Dengan demikian, persamaan tersebut dapat kita hubungkan secara statistik, walaupun tidak bersifat struktural, melalui sebaran error matriks keragaman kovarian non-diagonal. Kemungkinan tersebut telah dibahas dalam paper seminar Zellner (1962), yang menyoroti persamaan “seemingly unrelated regression” (SURE) untuk menunjukkan fakta bahwa persamaan individual pada kenyataannya saling terkait antara satu dengan yang lainnya, walaupun secara model tidak.
Gabungan antara beberapa set persamaan yang meliputi struktur model SURE, dan bentuk error (disturbances) keragaman matriks kovarian, memberikan informasi tambahan yang lebih luas lagi, dibandingkan jika persamaan individual dihitung secara terpisah. Hal ini menjelaskan kepada kita bahwa menggunakan model secara kolektif dari beberapa persamaan akan memberikan hasil yang optimal ketika kita menarik inferensia mengenai parameter yang digunakan dalam model. Tentunya, hal yang paling relevan dalam bahasan ini adalah ketajaman inferensia akan meningkatkan pengenalan kita terhadap persamaan gabungan yang ditawarkan dalam model SURE. (Srivasta .K, Giles .D, 1987)

Ilustrasi:

Kita akan membahas penerapan model SUR dengan data indikator perekonomian yang terdiri dari 100 pengamatan dalam kuartal yang dimulai pada kuartal I 1989 hingga Kuartal  IV 2013. Beberapa indikator yang kita miliki adalah suku bunga bank sentral (int_rate), tingkat inflasi (inflation), harga minyak mentah dunia (oil_price), produksi total dalam negeri dalam million US$ (prod), jumlah populasi penetap (resdnc), stok uang di bank sentral (money_stock), indeks harga implisit (imp_price), dan nilai ekspor komoditi migas dalam million US$ (export). Kamu bisa download contoh datanya disini>>>
Ilustrasi ini menggunakan bantuan perangkat lunak stata 12.

Tahap impor data,

File > import > excell spreadsheet,

Checklist import first row as variables names > ok,

Sekarang kita bekerja dengan command,

.describe


Lihat storage type data kita tidak mengandung variabel strings,

.list

Data akan dimunculkan dalam output secara lengkap,

Model persamaan yang akan kita gunakan adalah 2, yaitu mengikuti persamaan dasar regresi, model kita akan terdiri dari;
.int_rate = b_0 + b_1*oil_price + b_2*prod + b_3*imp_price + e_int_rate
.inflation = g_0 + g_1*resdnc + g_2*money_stock + g_3*export + e_inflation
Dimana b_0 adalah slope untuk int_rate, b_1, b_2, dan b_3 adalah koefisien regresi variabel int_rate, dan e_int_rate adalah error untuk int_rate.
Sedangkan g_0 adalah slope untuk inflation, g_1, g_2, dan g_3 adalah koefisien regresi variabel inflation, dan e_inflation adalah error untuk inflation.
Matriks dari persamaan untuk koefisien regresi adalah:
β̑sur = (X’V-1X)-1 X’V-1Y
dimana X adalah matriks prediktor, Y adalah vektor dari hasil persamaan, dan V adalah:
V = S IN
Persamaan dari Knocker dimana S adalah matriks kovarian keragaman, dan I adalah matriks identitas n dari jumlah kasus dalam analisis.

Berikutnya kita akan run model SUR dengan Stata 12,

.sureg (int_rate oil_price prod imp_price) (inflation resdnc money_stock export), corr



Uji Breusch Pagan seperti yang ditunjukkan dalam output kita digunakan untuk menguji asumsi bahwa error antar persamaan saling terkorelasi, Hipotesis null adalah tidak ada korelasi, sedangkan hipotesis alternatifnya adalah persamaan saling terkorelasi. Untuk dua persamaan dalam model SUR, uji statistik menggunakan metode Langrange Multiplier dengan sebaran chi-square dan derajat bebas M(M-1)/M.

LM = Tr212  ~ χ2(M(M-1)/M),     where  r212 = (s12^)2/(s211^ s222^)

Dimana T adalah ukuran sampel, (s12^)2 adalah kuadrat kovarian sample dari error untuk kedua persamaan, dan s211^  dan s222^ adalah keragaman error sampel untuk dua persamaan. Uji statistik ini dapat disusun kembali untuk lebih dari dua persamaan.
Command corr akan memberikan korelasi residual antara 2 model, sedangkan output uji Breusch-Pagan menunjukkan nilai yang signifikan (0,047), maka kita memiliki cukup bukti untuk menerima H1, dan menolak H0 dimana data saling terkorelasi.

Mendapatkan nilai Matriks Persamaan Koefisien Regresi
.matrix list e(V)


Mendapatkan nilai vektor koefisien (b)
.matrix list e(b)


Menampilkan korelasi antar kovarians matriks korelasi dari model,

.estat vce, corr


download materi ini versi pdf disini>>>

Rabu, 25 November 2015

Uji Chi-Square

Uji Chi-square dilakukan untuk menjelaskan apakah dua variabel  bersifat independen/saling lepas atau tidak. Artinya dua variabel tersebut tidak saling berhubungan, Dalam penelitian sosial biasanya kita tertarik untuk mengetahui karakteristik atau nilai hubungan dua buah variabel atau lebih, tetapi dalam uji chi-square kita hanya mencari apakah kedua atau lebih variabel itu saling independen atau tidak.

Ilustrasi 1:

Kita ingin melihat hubungan independen antara pedagang yang membayar pajak dengan yang tidak membayar pajak di sebuah pasar inpres.


Tax Payee
Ignorant
Total
Wholesaler
42
76
118
Retailer
52
54
106
Total
94
130
224

Langkah pertama kita adalah menentukan Hipotesis untuk pengujian:
Dalam uji chi-square, Hipotesis Null yang diberikan adalah kedua variabel saling lepas atau independen, atau pada kasus di atas berarti bahwa kecenderungan membayar pajak adalah sama antara pedagang besar (wholesaler) dan pedagang eceran (retailer). Hipotesis alternatifnya adalah kecenderungan untuk membayar pajak adalah tidak sama antara pedagang besar (wholesaler) dengan pedagang eceran (retailer).
Hal yang perlu kita ketahui adalah bahwa uji chi-square hanya menguji apakah kedua variabel saling independen atau tidak, ia tidak dapat  menguji karakteristik ataupun nilai antara kedua variabel tersebut.
Langkah kedua kita akan menghitung nilai yang diharapkan (expected value) dari setiap sel pada tabel di atas, Hal ini dapat dilakukan dengan rumus berikut ini:


Dari contoh di atas, maka expected value untuk jumlah pedagang besar (wholesaler) yang memiliki kecenderungan membayar pajak adalah:


Maka berdasarkan perhitungan di atas expected value untuk wholesaler yang membayar pajak adalah 49,5, sedangkan expected value untuk masing-masing sel yang lain adalah:


Tax Payee
Ignorant
Total
Wholesaler
42(49,5)
76(68,5)
118
Retailer
52(44,5)
54(61,5)
106
Total
94
130
224

Kemudian kita akan menghitung nilai statistik chi-square dengan formula sebagai berikut:


Kemudian untuk menentukan tingkat signifikansi kita perlu mengetahui derajat bebas (df) uji chi-square sampel independen. Formula untuk derajat bebas adalah sebagai berikut:
df = (jumlah kolom – 1) x (jumlah baris – 1)
df = (2-1) x (2-1) = 1
Berdasarkan tabel chi-square sampel independen (kamu bisa download tabel sebaran chi-square disini>>>), maka pada tingkat signifikansi 0,05 adalah:


Dari perhitungan yang kita peroleh, dapat kita simpulkan bahwa ϰ2hitung > ϰ2tabel (4,13 > 3,84), dengan demikian kita dapat menolak H0 dimana data tidak saling independen pada tingkat signifikansi 95%.

Ilustrasi 2:

Sebuah lembaga keuangan ingin membandingkan, apakah kinerja mereka dalam menawarkan produk perbankan meningkat daripada tahun lalu, mereka kemudian menyusun kategori produk perbankan mereka sebagai berikut:

1 = Tabungan Junior
2 = Tabungan Pensiun
3 = Tabungan Syariah
4 = Asuransi Pendidikan “EduKasi”
5 = Kredit perumahan “Bersahaja”
6 = Kredit Usaha Koperasi “AyoPinjam”

Berikut ini adalah nasabah yang telah menggunakan produk mereka di tahun lalu,

1 = 34
2 = 52
3 = 33
4 = 10
5 = 58
6 = 13

Sedangkan jumlah nasabah yang membeli produk mereka tahun ini adalah sebagai berikut;

1 = 38
2 = 40
3 = 39
4 = 5
5 = 55
6 = 23

Data diatas secara tabulasi dapat disusun seperti berikut ini,

Product
Observed Value
Expected Value
TOTAL
1
38
34
72
2
40
52
92
3
39
33
72
4
5
10
15
5
55
58
113
6
23
13
36
TOTAL
200
200
400

Manajer keuangan lembaga tersebut ingin mengetahui apakah sebaran populasi nasabah tahun ini sama halnya dengan tahun lalu, dengan demikian Hipotesis yang disusun adalah sebagai berikut;

H0 ; Tidak terdapat perubahan nyata antara sebaran populasi nasabah tahun ini dengan sebaran populasi nasabah tahun lalu.
H1 ;  Terdapat perbedaan nyata antara sebaran populasi nasabah tahun ini dengan sebaran populasi nasabah tahun lalu.

Dalam menyelesaian masalah ini kita dapat melakukan uji chi-square dengan command chitesti Nick Cox yang sudah tersedia dalam stata 12,
Impor data kita ke dalam stata, tampilannya seperti berikut ini:
Lihat data kita yang sudah terinput,


.list


Jika commandnya tidak berjalan, kita harus instal terlebih dahulu dari www.stata.com dengan cara mengetikkan command,

.findit chitesti



Setelah installation complete, kamu bisa jalankan command untuk pengujian chi-square

.chitesti 38 40 39 5 55 23 \ 34 52 33 10 58 13, sep(6)


Atau tanpa kamu menginput nilainya dengan command,

.chitest observed expected, sep(6)

Maka outputnya akan sama saja.
Dari nilai Pearson chi-square yang kita peroleh adalah 14,68 dan nilai signifikansi 0,012, dengan demikian model yang kita peroleh cukup baik (0,012 < 0,05) dengan tingkat signifikansi 95%. Dengan demikian kita telah memiliki cukup bukti untuk menerima H0, dimana tidak terdapat perbedaan antara sebaran populasi nasabah kini dan satu tahun yang lalu.(yoso)
download materi uji chi-square versi pdf di bawah ini.

download link

Kamis, 12 November 2015

Pemodelan ARIMA Non-Seasonal

download materi ini versi pdf disini>>>

ARIMA adalah kependekan dari model autoregressive integrated moving average. ARIMA univariat (vektor tunggal) merupakan teknik peramalan yang memprediksi nilai masa depan dari serangkaian kejadian berdasarkan data yang tersedia. Untuk peramalan jangka pendek, ARIMA memerlukan paling tidak 40 bagian data historis. ARIMA akan optimal apabila data kita stabil atau konsisten dengan jumlah pencilan (outliers) yang kecil.
ARIMA juga dikenal sebagai metodologi Box-Jenkins (sesuai nama penulisnya), ARIMA unggul dalam teknik pemulusan eksponensial ketika data tersedia dalam jangka panjang dan korelasi antar pengamatan di masa lampau dalam kondisi stabil. Jika data tersedia dalam jangka pendek atau terlalu bergejolak (volatil), maka metode smoothing akan lebih unggul.
Langkah pertama dalam teknik pemodelan ARIMA adalah memeriksa stasioneritas data (kamu bisa pelajari tentang stasioneritas disini >>>). Implikasinya adalah pada rangkaian kejadian yang bersifat konstan sepanjang waktu. Jika data mengandung trend, sebagaimana yang biasanya terdapat pada ranah ekonomi dan bisnis, maka data kita tidak stasioner. Data harus menunjukkan keragaman yang konstan dalam fluktuasinya sepanjang waktu. Hal ini dapat kita lihat pada rangkaian data yang mengandung komponen musiman tinggi dan tingkat pertumbuhan yang terlalu cepat. Pada kasus tersebut, turun naiknya komponen musiman akan menjadi tidak terkendali tanpa adanya kondisi stasioneritas.
Metodologi Box-Jenkins atau model ARIMA memungkinkan kita untuk memadukan kompone autoregressif dan moving average secara bersamaan. Model ini mengacu pada “mixed model”. Walaupun metode ini cukup kompleks untuk peramalan, struktur model kita dapat menyusun simulasi rangkaian data dengan lebih baik dan tentunya akan menghasilkan peramalan yang lebih akurat. Model asli peramalan hanya mengandung komponen autoregresif atau moving average saja, tetapi ARIMA memadukan keduanya.
Untuk kamu yang belum mengerti komponen autoregresif (AR) bisa baca kembali disini>>>
Sedangkan bahasan tentang moving average (MA) bisa baca kembali disini >>>
Model yang dikembangkan dengan metode ARIMA biasanya kita sebut dengan model ARIMA karena merupakan kombinasi antara komponen autoregresif (AR) dan moving average (MA). Dengan metode ini, kita akan lakukan proses differencing dan perataan bergerak (MA) secara berulang-ulang hingga kita memperoleh hasil peramalan. ARIMA model biasanya dinyatakan dengan ARIMA(p,d,q) yang merepresentasikan order dari komponen autoregresif (p), jumlah differencing (d), dan istilah untuk tingkatan perataan bergerak (moving average). Misalnya ARIMA (2,2,1) berarti kita menjalankan proses dengan model autoregresif tingkat kedua dengan moving average tingkat kedua dimana rangkaian datanya telah diberikan diferensiasi satu kali untuk memperoleh kondisi stasioneritas.

Jika kita memiliki persamaan model autoregressive moving average tingkat pertama, maka ARIMA akan menghitung parameter dengan model persamaan struktural:

yt = xtβ + µt

Maka dengan ARMA(1, 1) menjadi

yt = α + ρyt−1 + θεt−1 + εt

dimana:
ρ          = parameter autokorelasi tingkat pertama
θ          = parameter rata-rata bergerak tingkat pertama
εt            = white noise disturbance

Secara lengkap modelnya dapat diformulasikan sebagai berikut:


yt=c+ϕ1yt1++ϕpytp+θ1et1++θqetq+et,

dimana:

dimana y′t adalah diferensiasi pada komponen (bisa lebih dari satu kali diferensiasi). variabel prediktor dapat berupa nilai lag yt dan lag error. Kita kenal model ini dengan model ARIMA(p,d,q), p adalah order autoregresif (AR); d adalah diferensiasi, dan q adalah order moving average (MA).

Ilustrasi:
Kita memiliki data kuartal indeks volume perdagangan merchandise Uni Eropa (EU) selama 11 tahun yang dimulai dari 2005q1 – 2015q2, data diambil dari www.wto.org. Untuk contoh data bisa kamu ambil disini >>>
Model Arima yang kita gunakan adalah model sederhana melalui differencing, komponen autoregresif dan moving average dengan spesifikasi model (1, 1, 1). Kita akan menyusun model Arima dengan bantuan software stata 12, sebagai berikut.

1. Tahap input/ekspor data,
Bagi yang belum mengetahui cara input data ke dalam software stata kita tidak akan menjelaskan lagi, kamu bisa lihat di bahasan ini >>>
2.    Menyatakan tipe data (time series) dengan komponen waktu ke dalam stata,
Kita memasukkan jumlah pengamatan, kemudian menjelaskan format data ke dalam stata,

.set obs 42
.generate date = tq(2005q1) + _n-1

Command tq menyatakan format dalam kuartal, sedangka _n-1 menyatakan penambahan pengamatan sebanyak 1 periode ke depan, kita akan lihat kembali struktur waktunya, misalnya 1 – 10 periode,

.list date in 1/10

Dengan demikian periode waktu telah kita dapatkan dalam format quarterly, tetapi tipe data masih dalam bentuk string yang tidak dikenali oleh command stata, maka kita akan format data kita menjadi bentuk time series atau float dengan fungsi %tq,

.format %tq date

Bagaimana jika data kamu dalam bentuk tahunan, bulanan, semester, atau format lain? coba lihat beberapa format di bawah ini yang bisa kamu gunakan;
  • Untuk data tahunan (misalnya dimulai dari tahun 1969); 
.generate date = y(1969) + _n-1 
.format %ty date
.tsset date
  • Untuk data semester (misalnya dimulai dari 1969h2), h menyatakan half a year,
.generate date = h(1969h2) + _n-1
.format %th date
.tsset date
  • Untuk data bulanan (misalnya dimulai dari 1969m1), m menyatakan month,
.generate date = m(1969m1) + _n-1
.format %tm date
.tsset date
  • Untuk data mingguan (misalnya dimulai dari 1969w3), w menyatakan week,
.generate date = w(1969w3) + _n-1
.format %tw date
.tsset date
  • Untuk data harian (misalnya dimulai dari 4may2002),
.generate date = d(4may2002) + _n-1
.format %td date
.tsset date

Nah, untuk komponen waktu kalender dalam stata saya kira sudah jelas, tinggal diikutin aja.

2. Kita kembali kepada ilustrasi kita, lihat kembali storage type atau tipe datanya,

.describe

Nah, komponen waktu period telah berubah menjadi float (lihat storage type),
Kemudian kita nyatakan tipe data (time series) ke dalam stata, ini hanya dapat dilakukan setelah komponen waktu dibaca sebagai variabel selain string oleh stata,

.tsset date

3. Tahap Plot data untuk melihat stasioneritas,

.tsline indices

Dari plot data dapat kita lihat dinamika data terjadi penurunan signifikan pada sekitar 2008q4 hingga 2009q1, hal ini mungkin dikarenakan faktor ekonomi atau resesi dunia yang mempengaruhi perdagangan UE. Data kita asumsikan tidak mengandung gejala yang tidak biasa, oleh karena itu transformasi tidak diperlukan.
Dari plot yang kita peroleh, data masih belum stasioner. Dinamika perubahan data seketika terjadi dalam jangka pendek, dan seketika perubahan terjadi dalam jangka panjang, kita tidak menemukan adanya trend dalam data. Dengan demikian kita perlu melakukan diferensiasi tingkat pertama (first order differencing).
Kita akan generate variabel baru dengan nama indices_d1 yang berarti dilakukan diferensiasi terhadap data pada order ke-1. Mari kita lakukan seasonally adjusment dengan diferensiasi tingkat pertama,

.generate indices_seasonald1 = d.indices
.tsline indices_seasonald1



Kita telah memperoleh variabel baru yaitu indices_seasonal d1 dengan first order differencing (seasonald2), data telah stasioner dengan diferensiasi tanpa ada kecenderungan trend jangka panjang walaupun masih terdapat penurunan signifikan pada 2008q4.

Menentukan AR dan MA
Berikutnya kita akan menentukan komponen autoregresif dan moving average berdasarkan korelogram autokorelasi (ACF) dan autokorelasi parsial (PACF),

.ac indices_seasonald1, lags(18)



.pac indices_seasonald1, lags(18)


Dapat kita lihat dari plot PACF untuk variabel first order differencing, indices_seasonald1 menunjukkan spike pada lag ke-1, ini adalah kondisi autokorelasi positif atau underdifferenced. Kita dapat mempertimbangkan untuk menambahkan AR(1) ke dalam model. Dengan demikian model pertama kita adalah ARIMA(1,1,0), dimana model mengandung order pertama autoregresif, diferensiasi tingkat pertama, dan tanpa pengurangan diferensiasi atau moving average.
Kita juga dapat memperimbangkan penambahan moving average ke dalam model, ketika plot ACF menunjukkan spike pada lag ke-1, dengan demikian model alternatif kita adalah ARIMA(1,1,1), dimana model mengandung order pertama autoregresif, diferensiasi tingkat pertama, dan moving average order ke-2.
Alternatif berikutnya kita akan mencoba model ARIMA(2,1,1) untuk perbandingan pemilihan model, Berikutnya kita akan membandingkan model dengan akaike information criteria (AIC) dan bayesian information criteria (BIC), dimana semakin kecil nilai AIC dan BIC, maka model semakin baik.

1. Model ARIMA(1,1,0)

.arima indices_seasonald1, arima(1,1,0)



kita lihat nilai AIC dan BIC,

.estat ic

2. Model ARIMA(2,1,0)

.arima indices_seasonald1, arima(2,1,0)



.estat ic

3. Model ARIMA(1,1,1)

.arima indices_seasonald1, arima(1,1,1)



.estat ic

Dari ketiga model, kita ketahui bahwa model yang terbaik adalah ARIMA(1,1,1), degan nilai AIC dan BIC paling kecil yaitu 199,9 dan 204,9. Dengan demikian model kita terdiri atas komponen autoregresif kelas pertama (AR1), diferensiasi tingkat pertama (d1), dan moving average tingkat pertama (MA1), maka model ARIMA(1,1,1) akan kita terapkan dalam peramalan.

Dari model yang kita peroleh yaitu ARIMA(1,1,1,), kita dapat memprediksi nilai beberapa kuartal ke depan. Misalnya dari model kita ingin membuar peramalan hingga tahun 2020 kuartal pertama, kita jalankan model terlebih dahulu,

.arima D.indices, arima(1,1,1)

Setelah itu dari model ARIMA kita akan melakukan prediksi,

.predict arima

Setelah memperoleh nilai prediksi, kita akan coba plot terhadap variabel diferensiasi kita yaitu indices_seasonald1, mari kita lihat pola prediksi dari model dengan grafik,

.tsline arima D.indices



Dari Grafik dapat kita lihat kemampuan model ARIMA(1,1,1) dalam memprediksi pola musiman indices_seasonald1

download materi ini versi pdf disini>>>