Pelatihan Komputasi dengan Stata Benedict J. Yappy1 Departemen Ilmu Ekonomi Universitas Indonesia 1 1 [email protected] – penyusun.‡ Pendahuluan Dokumen ini adalah bahan yang digunakan dalam pelatihan penggunaan Stata untuk melakukan analisis ekonometrika sederhana. Modul ini mencakup deskripsi ringkas fungsi yang akan digunakan dalam software, perintah yang digunakan, serta contoh hasil yang diperoleh (bilamana perlu). Dalam paragraf uraian, perintah/command Stata dapat dikenali dengan format ini, dengan ringkasan perintah baru ditulis di sebelah kanan dan bagian perintah yang diubah sesuai penggunaan dicetak miring. Contoh output Stata dapat dikenali seperti startscreen Stata berikut: Bagi pengguna, perintah help berguna untuk melihat bagaimana suatu command digunakan, dan opsi perintah apa saja yang tersedia, terutama bila fungsi yang ingin digunakan sudah diketahui. Caranya adalah mengetik help command (yep, it includes help help!). Informasi lebih lengkap terkait perintah yang diperkenalkan dalam modul dapat diakses dengan perintah ini. Modul ini mencakup seluruh silabus pelatihan yang hendak disampaikan. Dengan kata lain, pembaca dapat menguasai materi yang disampaikan dalam pelatihan dengan membaca dan mereplikasi langkah yang ada dalam modul ini. Pembaca dipersilahkan mengakses materi di http://benconomy.wordpress.com/tutoring, tanpa mengubah isinya. ‡ Powered by LATEX 2ε with XƎLATEX using TEXstudio and Stata. 1 help Daftar Isi Daftar Isi 1 Pendahuluan 1 2 Manajemen Data 2.1 Penggunaan Stata . . . . . . . . . . 2.1.1 Bekerja dengan Stata . . . . . 2.1.2 Working Directory . . . . . . 2.1.3 Sumber Data . . . . . . . . . 2.1.4 Menyimpan Dataset, Perintah 2.2 Bekerja dengan Data . . . . . . . . . 2.2.1 Manajemen variabel . . . . . 2.2.2 Perintah generate . . . . . . 2.2.3 Perintah drop . . . . . . . . . 2.2.4 Struktur Data . . . . . . . . . 2.2.5 Bekerja dengan timevar . . . 2.2.6 Peubah untuk varlist . . . 2.2.7 Label . . . . . . . . . . . . . 2.2.8 Perintah encode dan recode 2.2.9 Perintah reshape . . . . . . . 2.2.10 Operator if, in dan by . . . 2.2.11 Perintah count dan list . . . . . . . . . . . . . . . . . . . 4 4 4 4 5 5 6 7 7 7 8 8 9 10 11 11 14 14 3 Analisis Deskriptif 3.1 Statistik deskriptif . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Grafik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 15 16 4 Analisis Regresi OLS 4.1 Review . . . . . . . . . . . . . . . 4.1.1 Metode OLS . . . . . . . 4.1.2 Asumsi OLS . . . . . . . 4.1.3 Pengujian Hipotesis . . . 4.2 Regresi OLS dengan Stata . . . . 4.3 Penanganan Pelanggaran Asumsi 4.3.1 Heteroskedasitas . . . . . 4.3.2 Autokorelasi . . . . . . . . 4.3.3 Multikolinearitas . . . . . 4.4 Instrumental Variables . . . . . . 4.5 Specification Test . . . . . . . . . 4.6 Setelah estimasi… . . . . . . . . . 4.6.1 Perintah predict . . . . . 20 20 20 22 23 24 25 25 26 27 28 29 30 30 benconomy.wordpress.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dan Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Daftar Isi 4.6.2 Perintah estimates . . . . . . . . . . . . . . . . . . . . . . benconomy.wordpress.com 30 3 2 2 Manajemen Data Manajemen Data 2.1 2.1.1 Penggunaan Stata Bekerja dengan Stata Stata adalah sebuah program statistik yang dapat dikatakan sangat lengkap dari segi kemampuan fungsi statistik yang dapat ditanganinya, yang menjadikan Stata salah satu program paling populer yang digunakan oleh peneliti-peneliti dari berbagai kalangan. Secara garis besar, cara bekerja dalam Stata adalah melalui command line, di mana perintah diketikkan ke dalam panel command (dapat diaktifkan dengan shortcut Ctrl+1). Walau demikian, Stata memiliki cukup banyak dialog box untuk banyak perintahnya, yang menambah fleksibilitas program Stata. Bila berada dalam panel command, kita dapat scroll command-command sebelumnya dengan Page-up/down, untuk memudahkan mengulangi perintah yang pernah dipanggil. Opsi untuk masing-masing perintah biasanya ditambahkan setelah tanda koma , (hanya ada satu tanda koma diperbolehkan untuk setiap perintah). Selain panel Command, terdapat juga beberapa panel lain: , 1. Results (Ctrl+2) yang melaporkan hasil dari perintah yang dijalankan. 2. Review (Ctrl+3) yang mendaftarkan perintah-perintah yang telah dijalankan sebelumnya. 3. Variables (Ctrl+4) yang mendaftarkan variabel-variabel yang sedang ada dalam dataset/memory. 4. Properties (Ctrl+5) yang memberi keterangan tentang variabel yang dipilih. 2.1.2 Working Directory Di sebelah kiri bawah tampilan window Stata, akan dituliskan working directory Stata. Working directory adalah folder di mana Stata “bekerja”, yaitu tempat di mana Stata akan menyimpan atau mengakses file secara default. Ada baiknya working directory di set ke directory di mana dataset dan file lain terkait pekerjaan tersebut disimpan. Seperti di banyak program lain, untuk mengubah working directory, ketikkan cd new_path ke dalam panel command. File yang ada dalam working directory dapat langsung diakses menggunakan file_name (contohnya dataset.dta), sedangkan yang berada di luar working directory hanya dapat diakses menggunakan file path lengkap (contohnya ”D:\Data\Dataset.dta”). Dengan kata lain, memindahkan file-file yang digunakan dalam Stata ke dalam working directory akan membantu untuk mengakses file-file tersebut nanntinya. benconomy.wordpress.com 4 cd 2 Manajemen Data Penggunaan nama file dalam Stata perlu menggunakan tanda petik ”. . .” untuk nama file yang mengandung karakter spasi. 2.1.3 Sumber Data Data yang akan dianalisis menggunakan Stata dapat berasal dari tiga sumber: 1. File database Stata yang telah disimpan sebelumnya, yang memiliki extension .dta. Cara membuka dapat dengan menggunakan command line use file_name.dta dialog box (File > Open ; Ctrl+O). 2. Copy-paste dari program database lain, seperti Microsoft Excel. Pertama, copy data dari program lain tersebut. Kembali di Stata, ketik edit di panel Command untuk membuka data editor.. Data dapat langsung di-paste (Ctrl+V) ke Stata. Untuk menampilkan dataset tanpa melakukan edit (dan mencegah edit yang tidak disengaja), gunakan perintah browse. use edit browse Bila data yang di-copy termasuk nama varibel di baris pertama, pilih “Treat first row as variable names”. Bila hanya data yang di-copy, pilih “Treat first row as data” — Stata akan memberi nama untuk masing-masing variabel (var1, var2, dst). Data yang di-copy dapat berupa data dengan banyak variabel sekaligus (multi-column) maupun satu per satu — variabel baru dapat ditambahkan melalui copy-paste. 3. Membuka file database yang dibuat di program lain. Cara paling mudah melakukan impor database adalah dengan menggunakan opsi di dalam File > Import. Selain menggunakan database yang telah ada seperti dalam ketiga sumber di atas, Stata juga menyediakan file-file contoh database .dta yang siap digunakan dalam setiap instalasi Stata. Untuk melihat daftar file tersebut, ketik sysuse dir dalam panel command, dimana file yang ingin dibuka dapat digunakan dengan perintah sysuse file_name. Stata juga dapat membuka file .dta di internet secara langsung dengan menggunakan perintah webuse URL. 2.1.4 sysuse webuse Menyimpan Dataset, Perintah dan Output Stata Dataset Hasil data yang sudah diolah dengan Stata dapat disimpan dengan perintah save file_name. Bila nama file dataset yang hendak disimpan sudah ada, kita perlu menambahkan opsi replace ke dalam perintah (save file_name, replace). Fungsi Save dan Save As seperti di program lain dapat diakses dengan shortcut Ctrl+S dan Ctrl+Shift+S. benconomy.wordpress.com 5 save 2 Manajemen Data Perintah dan do-file “History” perintah-perintah yang dijalankan dalam satu sesi Stata akan dimasukkan dalam panel Review. Kita dapat menyeleksi perintah yang kita inginkan dari panel Review dan mengeditnya dalam do-file editor di Stata. Do-file adalah file text standar dengan extension .do (dapat dibuka/diedit dalam text editor seperti Notepad). File .do ini menjadi daftar perintah yang dapat dijalankan atau diedit oleh Stata. Untuk menjalankan do-file yang sudah disimpan, gunakan perintah do file_name untuk menjalankan do-file seperti biasa, dan perintah run file_name untuk menjalankan tanpa laporan dalam panel Results. Untuk mengedit do-file yang telah disimpan sebelumnya, gunakan perintah doedit file_name. Menyimpan daftar perintah yang dijalankan oleh Stata sangat penting untuk memastikan bahwa perintah yang diberikan tercatat, sehinnga dapat dipertanggungjawabkan dan direplikasi. Penyimpanan daftar perintah tersebut dengan mudah dilakukan dengan do-file Stata. Selain itu, eksekusi do maupun run akan berhenti bila terdapat kesalahan dalam data/command, sehingga sangat berguna untuk melakukan hal-hal yang sifatnya berulang. Output (Results) dalam panel Results dapat disimpan dengan memulai log-file .smcl. Detail perintah untuk manajemen log-file sebagai berikut: • log using file_name: Menyimpan log ke dalam file dengan menggunakan file_name.smcl. Log ini dapat dibuka oleh Stata. • log off: Menghentikan penyimpanan log secara sementara. • log on: Melanjutkan kembali penyimpanan log yang sudah di off sebelumnya. • log close: Menyelesaikan penyimpanan log. Selain dengan menyimpan log, output stata dapat dicopy-paste ke program lain. Untuk meng-copy, highlight area output yang akan di-copy, dan klik kanan. Copy biasa (Ctrl+C) akan menghasilkan teks, copy as table akan menghasilkan tabel dengan karakter tabulator (untuk program spreadsheet seperti Excel), dan copy picture menghasilkan gambar dan mempertahankan tampilan dalam Stata. 2.2 Bekerja dengan Data Sebagai program statistik, Stata memiliki kemampuan operasi variabel yang cukup luas dan menyeluruh. Pada bagian ini diuraikan bagaimana cara bekerja dengan variabel yang paling umum dipakai. Opsi yang tersedia di Stata lebih luas dari benconomy.wordpress.com 6 do | run doedit log 2 Manajemen Data uraian dalam modul ini, sehingga dianjurkan untuk melihat help untuk masingmasing perintah. 2.2.1 Manajemen variabel Jenis Variabel Pada dasarnya terdapat dua jenis variabel di Stata, yaitu string (dapat bernilai huruf) dan variabel numerik. Data string tidak dapat digunakan dalam perintah perhitungan/statistik dalam Stata. Terdapat beberapa jenis variabel numerik.* Untuk mengubah format penyimpanan variabel, gunakan perintah recast type varlist dimana type adalah tipe variabel. Variabel string tidak dapat diubah menjadi angka. Untuk melihat daftar dan jenis variabel dalam dataset yang dibuka, gunakan perintah describe. Order Urutan variabel yang ada dalam Stata dapat diubah dengan menggunakan perintah order varlist, di mana variabel varlist tersebut akan dipindahkan menjadi variabel pertama. Tambahkan opsi last untuk memindahkan ke variabel terakhir; before(varname) dan after(varname) untuk memindahkan sebelum atau setelah varname. 2.2.2 describe order Perintah generate Seperti namanya, perintah generate varname=expression berguna untuk menciptakan variabel baru. Expression yang dimaksud dapat berupa operasi hitung, variabel lain ataupun pembuatan angka random oleh Stata. Operasi yang didukung dapat dilihat dalam menu help functions. Beberapa ekspresi yang umum digunakan yaitu +, -, /, *, exp() dan log(). Bila variabel yang diciptakan digunakan untuk menggantikan (overwrite) variabel yang sudah ada, maka perintah replace dapat digunakan untuk menggantikan generate. Selain perintah generate, Stata juga memiliki perintah egen. Perintah egen dapat melakukan semua operasi yang dapat dilakukan oleh generate, ditambah beberapa fungsi lainnya, seperti mengisi dengan pola, statistik variabel, dan lainnya (lihat di help egen). 2.2.3 recast generate replace egen Perintah drop Perintah drop varlist berguna untuk membuang variabel-variabel (varlist) yang diinginkan. ‘Lawan’ dari perintah drop adalah keep varlist, di mana variabelvariabel lain selain varlist akan dibuang. * Perbedaan jenis variabel dapat mempengaruhi derajat keakurasian, namun berguna untuk menghemat tempat penyimpanan dan waktu kalkulasi (dibahas dalam help data_type). benconomy.wordpress.com 7 drop keep 2 2.2.4 Manajemen Data Struktur Data Terdapat tiga jenis cara penanganan dataset (umum) oleh Stata: 1. Cross section. Struktur data ini adalah struktur data yang dasar di Stata. Tidak ada unsur waktu dalam variabel ini. Untuk kembali ke struktur data Cross Section, setting tsset atau xtreg perlu di-clear dengan menambahkan opsi clear ke perintah tsset atau xtset. 2. Time Series. Struktur data time series mengikuti satu sampel dalam beberapa periode waktu. Untuk menyatakan struktur data sebagai time series, digunakan perintah tsset timevar, unitoptions. timevar di Stata bernilai 0 untuk (awal) tahun 1960, dan dihitung ke depan atau belakang sebesar unitoptions (clocktime, daily, weekly, monthly, quarterly, halfyearly, yearly, generic). Bila perubahan tidak berjalan sebesar 1 unit, tambahkan opsi delta(#). 3. Panel. Struktur data panel mengikuti lebih dari satu sampel selama lebih dari satu periode. Untuk menyatakan data sebagai data panel, gunakan perintah xtset panelvar timevar, unitoptions. Panelvar adalah ID untuk masingmasing unit sampel yang diobservasi. 2.2.5 Bekerja dengan timevar Seperti yang ditulis di atas, timevar yang digunakan untuk identifikasi waktu harus berada dalam format numerik, dengan spesifikasi SIF (Stata internal form) berupa berapa unit setelah (sebelum) tahun 1 Januari 1960 00:00.00. Format ini tidak selalu mudah untuk diperoleh, karena data yang diperoleh berada dalam format HRF (human readable form). Untuk mengubahnya ke dalam format SIF yang dapat di-tsset, kita dapat menggunakan perhitungan manual untuk selisih dari awal tahun 1960 tersebut, namun cara ini dapat dikatakan tidak praktis. Stata menyediakan konversi antar SIF dan HRF sebagai berikut. 1. Pastikan variabel waktu HRF (tiwevar_str) telah memiliki format penamaan dan frekuensi yang konsisten. Contohnya, untuk data kuartal, data harus konsisten suati format (seperti 1960Q1, 1960Q2 dst dan tidak berubah menjadi 1970M3, 1970M6 dst). 2. Pelajari format data waktu untuk membentuk mask yang akan dikenali Stata. Stata akan menggunakan tanda baca (. , - ␣) untuk memisahkan antar komponen waktu, Stata tidak mengenali elemen lain selain waktu (unsur tersebut tidak diikutkan dalam mask dengan karakter #. Beberapa contoh untuk tanggal 16 Oktober 1992: benconomy.wordpress.com 8 tsset xtset 2 Manajemen Data • Oct 16, 1992 akan memiliki mask MDY • Friday, Oct 16, 1992 akan memiliki mask #MDY • 16 Oct 1992 akan memiliki mask DMY • 161092 akan memiliki mask DM19Y (19Y untuk 2 digit pertama angka tahun, untuk format tahun 2 digit) • 1992W42 akan memiliki mask YW (mingguan) • 1992M10 akan memiliki mask YM (bulanan) • 1992Q3 akan memiliki mask YQ (kuartalan) • 1992S2 akan memiliki mask YH (semesteran) 3. Ciptakan variabel baru timevar untuk konversi ke dalam bentuk SIF. Format perintahnya adalah generate timevar = function(timevar_str,mask). Variabel baru timevar sudah dapat digunakan untuk tsset. Supaya variabel waktu tersebut tampil dalam format yang dapat dibaca, perlu dilakukan format dengan perintah format timevar %fmt. Aplikasinya: generate timevar = date(timevar_str, "DMY"), format timevar %td dan tsset timevar, daily) untuk data harian generate timevar = weekly(timevar_str, "YW"), format timevar %tw dan tsset timevar, weekly) untuk data mingguan generate timevar = monthly(timevar_str, "YM"), format timevar %tm dan tsset timevar, monthly) untuk data bulanan generate timevar = quarterly(timevar_str, "YQ"), format timevar %tq dan tsset timevar, quarterly) untuk data kuartalan generate timevar = halfyearly(timevar_str, "YH"), format timevar %th dan tsset timevar, halfyearly) untuk data semesteran 2.2.6 Peubah untuk varlist Wildcards Sebagian besar perintah Stata lainnya juga dapat menggunakan wildcard untuk varlist. Beberapa wildcard tersebut: • * — digunakan sebagai substitusi satu atau lebih karakter. Contohnya, Ind* akan masuk untuk Indonesia dan India; *Inc akan masuk untuk Stata Inc dan Microsoft Inc. • ? — digunakan untuk substitusi satu karakter. Contohnya, p?p? akan masuk untuk papa maupun popo. benconomy.wordpress.com 9 format 2 Manajemen Data • ̃ — digunakan sebagai substitusi di tengah. Contohnya, pan~an akan masuk untuk panduan dan panutan. • _all — digunakan sebagai substitusi untuk semua variabel. Operator Terdapat dua jenis operator dalam operasi variabel Stata, yaitu operator jenis data dan operator waktu (kedua jenis operator ini dapat dikombinasikan). Operator-operator ini ditambahkan dengan tanda titik sebelum nama variabel (contohnya, Li.varname). Berikut adalah uraian operator tersebut. • i — Operator ini menyatakan bahwa variabel diperlakukan sebagai variabel faktor/kualitatif. Penggunaan operator ini memudahkan pekerjaan, karena tidak perlu lagi menciptatkan dummy untuk variabel-variabel kualitatif. • c — Operator ini menyatakan bahwa variabel diperlakukan sebagai variabel continuous, yaitu berisi nilai. • # — Operator ini adalah perintah untuk membuat interaksi antar variabel. Contohnya, var1#var2. • L — Operator ini berguna untuk mengambil mengambil nilai sebelumnya (lag) dari variabel. Lag dapat dispesifikasikan dengan angka (L3) ataupun kombinasi huruf (LLL). • F — Operator ini berguna untuk mengambil mengambil nilai berikutnya (forward) dari variabel. Forward dapat dispesifikasikan dengan angka (F3) ataupun kombinasi huruf (FFF). • D — Operator ini berguna untuk perubahan nilai (difference) dari variabel. Difference orde lebih tinggi dapat dispesifikasikan dengan angka (D2) ataupun kombinasi huruf (DD). 2.2.7 Label Label dalam Stata berguna untuk membantu pengguna. Contohnya, nama variabel dalam Stata tidak dapat mengandung karakter spasi. Berikut ini dibahas penggunaan label yang ada dalam stata. label data "label" memberikan keterangan label untuk keseluruhan dataset. label variable varname "label" memberikan keterangan label untuk suatu variabel, yang muncul dalam panel variabel maupun perintah describe. label define labelname # "label" mendefinisikan sebuah label untuk memberi label keterangan untuk masing-masing nilai angka (#), yang dapat digunakan untuk variabel numerik. Fitur ini berguna terutama untuk variabel kualitatif. Satu benconomy.wordpress.com 10 label 2 Manajemen Data angka # mendapat satu label, sehingga ulangi bagian # "label" untuk masingmasing label dalam sate set labelname. Tambahkan salah satu dari opsi add (hanya menambah label baru), modify (mengubah label yang sudah ada), dan replace (mendefinisikan ulang labelname) bila labelname sudah ada sebelumnya. label values varlist "labelname" meng-assign sate set value label (labelname) yang sudah ada (di-define)ke suatu variabel (varlist). label dir memperlihatkan daftar value label yang ada. label list varname memperlihatkan daftar value label beserta nilai-nilai dan label keterangan masing-masing. 2.2.8 Perintah encode dan recode Stata tidak dapat melakukan perhitungan statistik untuk variabel dengan format string, sehingga variabel kualitatif (seperti nama negara) perlu dikonversi menjadi numerik (diberi nomor ID). Untuk melakukannya, terdapat command encode varname, generate newvar. Selain menciptakan angka-angka untuk masingmasing string, perintah encode juga membuat dan meng-assign value label dengan labelname yang sama dengan newvar. Untuk mengubah angka yang sudah ada, digunakan perintah recode varname, generate newvar . Ilustrasi dari perintahperintah tersebut adalah sebagai berikut: negara_str Data teks Indonesia China Jepang Korea Inggris Jerman Prancis Amerika Serikat encode negara_num No Label 1 Indonesia 2 China 3 Jepang 4 Korea 5 Inggris 6 Jerman 7 Prancis 8 Amerika Serikat recode No 1 1 1 1 2 2 2 3 benua Label Asia Asia Asia Asia Eropa Eropa Eropa Amerika Untuk transformasi di atas, kedua perintah yang digunakan adalah: encode negara_str, generate(negara_num) recode negara_num (1 2 3 4 = 1 "Asia") (5/7 = 2 "Eropa") (8 = 3 "Amerika"), generate (benua) 2.2.9 Perintah reshape Dataset yang diperoleh untuk analisis dapat berbentuk “long” ataupun “wide”. Untuk mengilustrasikannya, berikut adalah beberapa bentuk yang berbeda untuk dataset yang sama. benconomy.wordpress.com 11 encode recode country variable data97 data98 China gdp 7.9e+12 8.4e+12 China investment 2.6e+12 2.9e+12 China savings 3.3e+12 3.4e+12 Indonesia gdp 6.3e+14 9.6e+14 Indonesia investment 1.8e+14 2.4e+14 Indonesia savings 1.8e+14 2.1e+14 UK gdp 8.4e+11 8.8e+11 UK investment 1.4e+11 1.6e+11 UK savings 1.4e+11 1.5e+11 Country, variable (long), time (wide) country time gdp investment savings China 1997 7.9e+12 2.6e+12 3.3e+12 China 1998 8.4e+12 2.9e+12 3.4e+12 China 1999 9.0e+12 3.1e+12 3.4e+12 Indonesia 1997 6.3e+14 1.8e+14 1.8e+14 Indonesia 1998 9.6e+14 2.4e+14 2.1e+14 Indonesia 1999 1.1e+15 2.2e+14 1.5e+14 UK 1997 8.4e+11 1.4e+11 1.4e+11 UK 1998 8.8e+11 1.6e+11 1.5e+11 UK 1999 9.3e+11 1.6e+11 1.4e+11 Country, time (long), variable (wide) country time variable data China 1997 gdp 7.90E+12 China 1997 investment 2.60E+12 China 1997 savings 3.30E+12 China 1998 gdp 8.40E+12 China 1998 investment 2.90E+12 China 1998 savings 3.40E+12 China 1999 gdp 9.00E+12 China 1999 investment 3.10E+12 China 1999 savings 3.40E+12 Indonesia 1997 gdp 6.30E+14 Indonesia 1997 investment 1.80E+14 Indonesia 1997 savings 1.80E+14 Indonesia 1998 gdp 9.60E+14 Indonesia 1998 investment 2.40E+14 Indonesia 1998 savings 2.10E+14 Indonesia 1999 gdp 1.10E+15 Indonesia 1999 investment 2.20E+14 Indonesia 1999 savings 1.50E+14 UK 1997 gdp 8.40E+11 UK 1997 investment 1.40E+11 UK 1997 savings 1.40E+11 UK 1998 gdp 8.80E+11 UK 1998 investment 1.60E+11 UK 1998 savings 1.50E+11 UK 1999 gdp 9.30E+11 UK 1999 investment 1.60E+11 UK 1999 savings 1.40E+11 Country, time, variable (long) Manajemen Data data99 9.0e+12 3.1e+12 3.4e+12 1.1e+15 2.2e+14 1.5e+14 9.3e+11 1.6e+11 1.4e+11 2 Untuk melakukan konversi antar ketiga bentuk tersebut, digunakan perintah benconomy.wordpress.com 12 2 Manajemen Data reshape. Sebelumnya, beberapa hal perlu diketahui terlebih dahulu. Pertama, dimensi sekarang dari dataset (apakah wide atau long). Kedua bagaimana dataset akan dibentuk (dimensi wide dan long yang diinginkan). Ketiga, memastikan bahwa dataset memenuhi syarat untuk dilakukan reshape: (1) Terdapat stubnames yang menghubungkan data-data wide j, yang dalam contoh di atas adalah awalan data (data97, data98, dst). (2) Tidak terdapat lebih dari satu nilai untuk satu kolom xij . Sintaks dan penjelasan perintah reshape adalah sebagai berikut: reshape wide|long stubname, i(i_var) j(j_var) string • wide|long — Bentuk yang dituju setelah melakukan perintah, apakah wide atau long. Perlu diketahui bahwa dapat dilakukan beberapa perintah reshape, untuk menyesuaikan dengan struktur data. Dalam contoh tadi, reshape wide dapat dilakukan sekali lagi untuk membuat country, variable dan/atau time semuanya sebagai variabel wide (j). • stubnames — Nama variabel (untuk reshape long) atau bagian umum dari nama variabel (reshape wide). Penambahan memberikan informasi di mana nama variabel baru ditempatkan. Contoh dalam dataset tadi, (data) dapat digunakan untuk data97, data 98 dst. Reshape tidak dapat digunakan tanpa stubnames, contohnya untuk variabel gdp, investment dst (rename menjadi datagdp, datainvestment). • i(i_var) — Variabel-variabel yang berada dalam bentuk long, yang mengidentifikasikan observasi secara unik. • j(j_var) — Variabel lama yang akan di-expand (reshape wide), atau variabel baru yang akan diciptakan sebagai identifier (reshape long). Berikut opsi j untuk contoh tadi. Untuk reshape long, berikan nama variabel baru (country, time, atau variable). Untuk reshape wide, berikan nama variabel lama yang akan di expand (country, time, atau variable). • string — Tambahkan opsi string bila j_var berisi huruf. Dalam contoh tadi, tambahkan opsi string bila j_var adalah country atau variable yang adalah data string. Jangan tambahkan opsi string bila j_var adalah time yang adalah data numerik. Perhatikan, untuk reshape wide, isi variabel yang akan dikonversi menjadi long adalah karakter huruf atau _ (tidak boleh mengandung karakter non-huruf seperti spasi dan titik). Perubahan dataset oleh perintah reshape dapat di “undo”: Setelah reshape long, perintah reshape wide (tanpa argumen/opsi) akan mengembalikan dataset seperti sebelum reshape long tadi dilakukan; demikian juga sebaliknya. Periksa kembali dataset setelah reshape untuk memastikan dataset seperti yang diinginkan, sebelum melakukan kalkulasi statistik atau save dataset. benconomy.wordpress.com 13 reshape 2 2.2.10 Manajemen Data Operator if, in dan by Akhiran if expression berguna untuk membuat Stata melakukan perintah hanya pada observasi yang memenuhi kriteria (expression) yang dibuat dalam if. Berbagai operator dapat digunakan untuk expression, seperti >, >=, <, <= dan == (gunakan dua (bukan satu!) tanda sama dengan). if dapat digunakan pada sebagian besar perintah Stata. Tambahkan if expression pada akhir perintah yang diinginkan. if Akhiran in obsno — Berguna untuk membuant Stata melakukan perintah hanya pada nomor observasi yang dispesifikasikan (obsno). Nomor observasi 1 2 3 4 juga dapat dinyatakan dengan 1/4 dan 1 2/4. in dapat digunakan pada sebagian besar perintah Stata. Tambahkan in obsno pada akhir perintah yang diinginkan. if Awalan by (varlist): — Berguna untuk membuat Stata melakukan perintah secara berkelompok (berulang) dengan variabel dalam varlist. by memerlukan dataset untuk diurutkan (sort) sesuai dengan varlist (sort varlist). Tambahkan by(varlist): sebelum mengetikkan perintah yang diinginkan. Awalan bysort digunakan dengan cara yang sama dengan awalan by. Perbedaannya, bysort termasuk perintah sort, sehingga dataset akan diurutkan sesuai dengan varlist terlebih dahulu. by 2.2.11 sort bysort Perintah count dan list Perintah count berguna untuk menghitung dan menampilkan jumlah observasi yang memenuhi kriteria. Kriteria yang dimaksud dapat dispesifikasikan dengan operator if, in ataupun by. Eksekusi count sangat cepat dibandingkan dengan perintah statistik lainnya, sehingga perintah ini biasanya digunakan untuk mengecek suatu dataset (terutama dengan menggunakan do-file). Perintah list varlist berguna untuk menampilkan nama variabel dalam varlist dan nilai-nilainya. Perintah list sering digunakan dengan operator if, in atau by.Sama seperti count, eksekusi perintah list sangat cepat dan biasanya digunakan untuk mengecek suatu dataset. Di samping itu, penggunaan list biasanya dapat mendeteksi kesalahan data secara lebih mudah dibandingkan edit ataupun browse. benconomy.wordpress.com 14 count list 3 3 3.1 Analisis Deskriptif Analisis Deskriptif Statistik deskriptif Tabel statistik deskriptif membantu menampilkan isi dari variabel secara ringkas dengan berbagai statistik. Semua tabel statistik berikut dapat digunakan dengan opsi if, in maupun by. Perintah summarize varlist berguna untuk menampilkan statistik deskriptif seperti mean (rata-rata), median, dan data terkecil (min) dan terbesar (max) untuk suatu variabel secara keseluruhan. Bila tidak terdapat varlist, perintah ini akan menampilkan statistik deskriptif untuk seluruh variabel. Tambahkan opsi detail untuk mendapatkan statistik deskriptif yang lebih detail. Perintah tabulate varname1 varname2 berguna untuk membuat tabulasi (perhitungan seberapa banyak suatu variabel muncul) dalam satu atau lebih variabel. Bila hanya satu variabel yang ditabulasi, maka cukup menggunakan varname1. Tambahkan varname2 bila menggunakan tabulasi dua variabel. Beberapa opsi yang tersedia untuk tabulasi dua variabel adalah column, row dan cell yang membuat tabulasi menampilkan frekuensi relatif (persentasi) dari nilai suatu nilai dibandingkan masing-masing keseluruhan kolom, baris dan total. Perintah table “menggabungkan” kekuatan dari summarize dan tabulate, di mana tabulasi (maksimal 4) statistik deskriptif dapat ditampilkan untuk dua atau lebih variabel. Sintaks perintah table adalah sebagai berikut: table varname(s), contents(clist) varnames adalah variabel-variabel yang akan ditabulasi. Variabel pertama akan menjadi variabel yang ditampilkan sebagai baris (i); sedangkan variabel kedua menjadi variabel kolom j. Variabel ketiga dan seterusnya akan menjadi superkolom (kolom dalam kolom). clist adalah jenis statistik yang akan ditampilkan untuk masing-masing nilai. clist dapat menampilkan freq (frekuensi) ataupun statistik lainnya: mean, sd, max, min, median, sum (spesifikasikan variabel yang hendak dideskripsikan setelah opsi ini). by(varlist) Penambahan opsi ini akan membuat super-row (baris dalam baris) dengan variabel varlist (maksimum 4 level). benconomy.wordpress.com 15 summarize tabulate table 3 3.2 Analisis Deskriptif Grafik Stata memiliki kemampuan grafis yang cukup komprehensif. Selain melalui perintah, menu untuk grafik tersedia dalam menu Graphics dengan dialog box yang cukup membantu proses pembuatan grafik yang diinginkan. Untuk memudahkan, perintah grafik akan diperkenalkan menggunakan contoh. Perintah histogram varname berguna untuk membuat diagram batang. Tambahkan opsi normal untuk menambahkan grafik distribusi normal. Contoh perintah yang dapat dijalankan: sysuse citytemp histogram tempjuly histogram tempjuly, normal Dalam kedua contoh tersebut, Stata akan menampilkan jumlah dan lebar diagram batang secara otomatis. Untuk mengubah jumlah tersebut, gunakan opsi bin(#) dan width(arg1#). Untuk diagram batang tampilan jumlah frekuensi dan persentase, tambahkan opsi frequency dan percentage. Bila ingin menggunakan satu diagram batang untuk setiap nilai, tambahkan opsi discrete. Perintah twoway (plot) berguna untuk membuat grafik antar variabel. Bila lebih dari satu plot, tanda kurung () untuk menandai masing-masing plot. Elemen definisi (plot) adalah sebagai berikut: jenis plot — Dua pilihan yang sering digunakan adalah scatter, dan line. Selain plot data langsung, dapat juga ditambahkan plot trend/regresi, yaitu lfit (linear fit) qfit (quadratic fit). Pilihan lfitci dan qfitci menampilkan confidence interval yang dapat diset dengan tambahan opsi grafis level(#). Perlu diperhatikan bahwa jenis plot tertentu dapat memiliki sintaks yang berbeda dengan yang dibahas di sini (contohnya rarea). varlist y — Dapat terdapat lebih dari satu variabel y untuk satu definisi plot (diplot masing-masing). varname x — Hanya terdapat satu variabel x untuk satu definisi plot. opsi — Plot dapat menggunakan beberapa skala y maupun x, yang dispesifikasikan dengan yaxis(#) dan xaxis(#). Terdapat banyak opsi lain yang tergantung pada jenis plot. Contohnya, kita dapat menspesifikasikan jenis marker untuk scatter (lihat help marker_options) dan garis (lihat help line_options) untuk line. Perintah histogram dan twoway yang diperkenalkan di atas adalah “singkatan” dari perintah graph Stata, di mana sintaks lengkap adalah graph twoway. Khusus scatter dan line, sintaks twoway dapat dihilangkan (contohnya, line varname). benconomy.wordpress.com 16 histogram twoway 3 Analisis Deskriptif 0 5,000 Price 10,000 15,000 Hasil dari perintah grafik Stata dapat disimpan ke dalam file grafis untuk digunakan dalam program lainnya. Perintah untuk mengekspor grafik yang sedang terbuka tersebut adalah graph export filename.ext. .ext diperlukan untuk menspesifikasikan tipe file yang diekspor, seperti .pdf, .wmf, .eps dan .png. Berikut adalah beberapa contoh perintah penggunaan grafik twoway dengan menggunakan dataset bawaan Stata. sysuse auto twoway scatter price mpg 10 20 30 40 Mileage (mpg) 0 5,000 10,000 15,000 twoway (scatter price mpg) (lfit price mpg) 10 20 30 40 Mileage (mpg) Price benconomy.wordpress.com Fitted values 17 3 Analisis Deskriptif 0 10 5,000 Mileage (mpg) 20 30 10,000 Price 40 15,000 twoway (scatter mpg weight) (scatter price weight, yaxis(2)) 2,000 3,000 Weight (lbs.) Mileage (mpg) 4,000 5,000 Price 1000 1100 Closing price 1200 1300 1400 sysuse sp500 twoway line close date 01jan2001 01apr2001 01jul2001 Date 01oct2001 01jan2002 01oct2001 01jan2002 1000 Closing price 1100 1200 1300 1400 twoway line close date, yscale(log) 01jan2001 benconomy.wordpress.com 01apr2001 01jul2001 Date 18 3 Analisis Deskriptif 1280 10,000 15,000 Volume (thousands) Opening price/Closing price 1320 1340 1360 1300 20,000 1380 twoway (rarea open close date in 1/30) (connected volume date in 1/60,yaxis (2)) 01jan2001 01feb2001 01mar2001 01apr2001 Date Opening price/Closing price Volume (thousands) 1000 1100 1200 1300 1400 twoway (qfitci close date, level(90)) (line close date) 15000 15100 15200 Date 90% CI Closing price 15300 15400 Fitted values 0 .05 Density .1 .15 sysuse citytemp histogram tempjuly, normal 60 benconomy.wordpress.com 70 80 Average July temperature 90 100 19 4 Analisis Regresi OLS 4 Analisis Regresi OLS 4.1 4.1.1 Review Metode OLS Metode regresi OLS (Ordinary Least Squares) adalah salah satu pendekatan untuk melakukan estimasi parameter yang menentukan nilai variabel independen. OLS termasuk keluarga estimasi “method of moments”, di mana salah satu ‘momen’ dari sampel digunakan untuk mengestimasi parameter populasi. Metode regresi dimulai dari mengspesifikasikan fungsi regresi populasi; yi = β0 + β1 xi + εi (1) E(ε) = E (y − β0 − β1 x) = 0 (2) dengan asumsi dan asumsi yang mengikutinya; Cov(x, ε) = E(xε) = E [x (y − β0 − β1 x)] = 0 (3) Dalam pendekatan method of moments, kita menggunakan nilai (rata-rata) sampel untuk mengestimasi nilai populasi, sehingga persamaan (2) dan (3) menjadi: n −1 n ∑ (yi − β0 − β1 xi ) = 0 (4) [xi (yi − β0 − β1 xi )] = 0 (5) i=1 dan n −1 n ∑ i=1 ∑ Dengan menggunakan sifat operator dan memindahkan ruas, persamaan (4) dapat ditulis ulang menjadi: β̂0 = ȳ − β̂1 x̄ (6) Dengan memindahkan (6) ke persamaan (5) dan menghilangkan n−1 yang tidak mempengaruhi hasilnya, kita dapat memperoleh: n −1 n [ )] ( ( ) ∑ xi yi − ȳ − β̂1 x̄ + β1 xi = 0 (7) i=1 Atur ulang persamaan tersebut, kita memperoleh: n ∑ i=1 benconomy.wordpress.com xi (yi − ȳ) = β̂1 n ∑ xi (xi − x̄) i=1 20 4 Analisis Regresi OLS Dengan menyusun ulang† ; n ∑ β̂1 = i=1 n ∑ n ∑ xi (yi − ȳ) = xi (xi − x̄) i=1 i=1 (xi − x̄) (yi − ȳ) n ∑ = (xi − x̄) 2 Cov(x, y) Var(x) (8) i=1 Dalam kasus multivariabel, maka lebih dari satu variabel independen masuk dalam persamaan (1): yi = β0 + β1 x1i + β2 x2i + · · · + βj xji + εi Persamaan di atas dapat ditulis dalam bentuk matriks: y1 β0 (1) β1 x11 β2 x12 . . . βj x1j ε1 y2 β0 (1) β1 x21 β2 x22 . . . βj x2j ε2 + . .. = .. .. .. . . .. .. . . .. . . yn β0 (1) β1 xn1 β2 xn2 . . . βj xnj εn (9) y = Xβ + ε Vektor parameter β yang diestimasi adalah vektor yang akan meminimumkan jumlah kuadrat error ε′ ε. Berikut vektor vektor parameter sampel b yang meminimumkan error kuadrat sampel e′ e: Min e′ e = (y − Xb)′ (y − Xb) = y′ y − b′ X′ y − y′ Xb + b′ X′ Xb = y′ y − 2y′ Xb + b′ X′ Xb (10) Keadaan yang meminimumkan error‡ adalah: ∂e′ e = −2X′ y + 2X′ Xb = 0 ∂b 2X′ y = 2X′ Xb −1 b = (X′ X) (X′ y) (11) † Penurunan yang diuraikan di sini mengikuti method of moments. Penurunan yang diuraikan di sini mengikuti metode Least Squares, yang identik dengan estimator method of moments (dan juga maximum likelihood) ‡ benconomy.wordpress.com 21 4 Analisis Regresi OLS 4.1.2 Asumsi OLS Dalam regresi, parameter estimasi perlu memenuhi kriteria yang sering disingkat BLUE, yaitu Best (parameter estimasi meminimumkan varians (kuadrat) error), Linear (persamaan yang diestimasi bersifat linear), Unbiased (parameter estimasi tidak bias) dan Estimator (parameter adalah estimator yang baik untuk parameter populasi). Estimator yang tidak bias dan konsisten berarti parameter sesuai dengan parameter populasi dan semakin dekat dengan parameter populasi ketika sampel ditambah (plim β̂ = β) Berikut rangkuman definisi yang lebih formal dari asumsi OLS: OLS 1 Parameter bersifat linear. yi = β0 + β1 x1 + · · · + βj xj Dengan kata lain, parameter model populasi tidak dapat bersifat bersifat non-linear, seperti xβ1 1 atau β1 x1 β2 x2 . OLS 2 Random Sampling Data yang diambil adalah sampel yang diambil secara random dari populasi yang hendak dipelajari. OLS 3 Corr(x1 , x2 , . . . , xj ) ̸= ±1 Tidak adanya multikolinearitas sempurna antara variabel independen. OLS 4 Variasi dalam sampel. Nilai sampel tidak konstan (hanya satu nilai) untuk satu variabel. Asumsi ini adalah implikasi asumsi sebelumnya. OLS 5 E(ε|x) = 0 (zero conditional mean) Nilai error yang diekspektasikan bernilai 0 untuk semua nilai x. Implikasinya adalah (1) korelasi x dan ε adalah 0 dan (2) E(y|x) = ŷ. Asumsi ini adalah dasar pendekatan method of moments yang digunakan dalam persamaan (2) dan (3). OLS 6 Corr(εi , εj ) = 0 Tidak ada korelasi antar error dalam seluruh sampel. OLS 7 Var(εi ) = σ 2 Varians error tidak berubah/konstan untuk semua nilai xj . benconomy.wordpress.com 22 4 Analisis Regresi OLS Data/model yang tidak memenuhi asumsi tersebut akan mengakibatkan parameter yang diestimasi tidak memenuhi kriteria BLUE. Karena itu, dibutuhkan (1) teknik deteksi pelanggaran asumsi tersebut untuk mengetahui adanya estimasi yang tidak konsisten dan (2) teknik estimasi yang mampu mengkoreksi pelanggaran yang terjadi untuk menghasilkan estimasi yang tetap konsisten dan efisien. Teknik-teknik lain yang menggunakan metode least square ada untuk mengatasi adanya pelanggaran asumsi OLS tersebut. 4.1.3 Pengujian Hipotesis Sebagai bagian dari teknik statistik, ekonometrika tidak lepas dari pengujian hipotesis. Pengujian statistik selalu menyajikan dua hipotesis yang bersifat eksklusif dan lengkap: H0 : a H1 : ∼ a Pada umumnya, peneliti “ingin” menolak H0 . Perhitungan yang dilakukan akan menghasilkan suatu ukuran tes (test statistic), seperti nilai z atau t. Statistik ini digunakan untuk melihat apakah peneliti akan menolak H0 (menerima H1 ) atau gagal menolak (menerima) H0 . Dalam pengujian statistik yang melibatkan proses inference, selalu terdapat dua kemungkinan kesalahan: Type 1 error Menolak H0 ketika H0 benar (disebut juga false positive). Contohnya: (1) Mendiagnosa orang sehat mengalami infeksi; (2) Membuang produk yang sebenarnya memenuhi standar kualitas. Type 2 error Menerima H0 ketika H0 tidak benar (disebut juga false negative). Contohnya: (1) Mendiagnosa orang sakit tidak mengalami infeksi; (2) Menerima/meluluskan produk yang sebenarnya tidak memenuhi standar kualitas. Nilai berbagai statistik pengujian dapat digunakan untuk menghitung p-value, yang dapat dikatakan mengukur kemungkinan terjadinya Type 1 error. Dalam ekonometrika, pengujian yang sering dilakukan adalah melihat apakah suatu model/ variabel independen signifikan menjelaskan variabel dependen. Jadi, dalam pengujian signifikansi, p-value mengukur peluang menyatakan bahwa model/variabel independen tersebut tidak signifikan ketika model/variabel independen tersebut signifikan. p-value dapat langsung dibandingkan dengan confidence interval (yang seyogianya telah ditetapkan secara a-priori) untuk memutuskan apakah suatu model/variabel independen signifikan (H1 ) atau tidak signifikan (H0 ). benconomy.wordpress.com 23 4 Analisis Regresi OLS 4.2 Regresi OLS dengan Stata Dapat dikatakan seperti “Swiss Army Knife” pemodelan, regresi OLS digunakan secara paling luas dan menjadi alat paling mendasar dalam berbagai aplikasi pemodelan ekonomi. Sintaks perintah regresi OLS di Stata adalah sebagai berikut: regress depvarname indepvarlist Perhatikan bahwa variabel yang pertama disebut adalah (satu) variabel independen (y), sedangkan variabel-variabel yang disebut berikutnya adalah variabelvariabel independent (x1 , x2 , . . . , xj ) dalam model persamaan yang hendak diestimasi. Berikut adalah contoh perintah dan output regresi dalam Stata dan panduan interpretasinya. A – Bagian ini adalah global test untuk signifikansi model (apakah variasi dalam model dapat menjelaskan variasi dalam variabel dependen - joint test). Dua statistik yang dilaporkan adalah statistik F dan p-value-nya. B – Bagian ini melaporkan goodness of fit dari model, yaitu berapa “persen” variasi dalam variabel dependen dapat dijelaskan oleh model, yaitu R2 dan 2 2 Radj . Radj mengkoreksi bias positif pada R2 akibat penambahan variabel independen. C – Konstanta (β0 ). Stata dapat mencegah adanya konstanta, dengan cara menambahkan opsi noconstant (tidak dianjurkan karena akan membuat estimator menjadi tidak konsisten). D – Koefisien parameter estimasi βj untuk masing-masing variabel independen xj . Bagian ini dapat diinterpretasikan: “Bertambahnya 1 unit weight menyebabkan kenaikan 5.774712 dalam price”. benconomy.wordpress.com 24 regress 4 Analisis Regresi OLS E – Standar error parameter estimasi sd(βj ). F – Statistik t untuk masing-masing variabel independen. Statistik t dihitung dari βj /sd(βj ). G – p-value untuk menguji signifikansi masing-masing variabel. H – Range masing-masing parameter estimasi dalam rentang confidence interval. Level yang dilaporkan dapat diatur dengan menambahkan opsi level() 4.3 4.3.1 Penanganan Pelanggaran Asumsi Heteroskedasitas Heteroskedasitas adalah keadaan ketika varians error berubah seiring perubahan nilai variabel independen xj . Heteroskedasitas umumnya tidak menyebabkan indikator menjadi bias, namun menyebabkan kesalahan dalam perhitungan standar error, yang menurunkan efisiensi model. Deteksi Terdapat dua metode statistik untuk mendeteksi heteroskedasitas setelah suatu model regresi diestimasi: Breuch-Pagan Tes ini melakukan regresi OLS dengan ε2 sebagai variabel dependen dan fitted values model sebagai variabel independen. Untuk menggunakan seluruh variabel independen dari model utama sebagai variabel independen, tambahkan opsi rhs. Metode ini mampu mendeteksi heteroskedasitas yang bersifat linear. Perintah untuk melakukan BP-test adalah estat hettest. Hasil yang dilaporkan adalah LM test-statistic yang mengikuti distribusi χ2 dan p-valuenya. White Tes ini melakukan regresi OLS dengan varepsilon2 sebagai variabel dependen dan seluruh variabel independen, kuadrat dan hasil perkaliannya dari model utama sebagai variabel independen. Dengan demikian, metode ini mampu mendeteksi heteroskedasitas dalam bentuk yang lebih kompleks. Perintah untuk melakukan White test adalah estat imtest, white. Hasil yang dilaporkan termasuk LM test-statistic yang mengikuti distribusi χ2 dan p-valuenya. Metode grafis untuk mendeteksi heteroskedasitas adalah dengan melakukan plot error (variabel y) dan salah satu variabel independen (variabel x), yang dapat dilakukan dengan perintah rvpplot varname. benconomy.wordpress.com 25 hettest imtest rvpplot 4 Analisis Regresi OLS Koreksi Terdapat dua metode statistik untuk menangani heteroskedasitas. weight Penggunaan weights (timbangan) untuk “menormalkan” efek variabel yang “menyebabkan” heteroskedasitas. Contohnya, varians error adalah linear dari suatu variabel (Var(ε) = σ 2 = αx2 ), sehingga perlu timbangan 1/x22 menghilangkan korelasi antara x2 dengan ε. Untuk menggunakan koreksi ini, tambahkan [aweight=varlist] di akhir command, sebelum tanda koma. Perintah untuk contoh sebulumnya: gen invdepvar2sq=1/depvar2ˆ2 regress indepvar depvar1 depvar2 [aweight=invdepvar2sq] aweight robust Tambahkan opsi robust setelah perintah estimasi untuk menggunakan standard error yang mampu menangani adanya heteroskedasitas (heteroskedascity robust). Contoh: regress indepvar depvar1 depvar2, robust robust Kedua metode tersebut dapat dikombinasikan. Bila variabel yang menyebabkan heteroskedasitas tersebut diketahui, variabel tersebut dapat ditransformasikan bila dimungkinkan oleh teori yang mendasari spesifikasi model. 4.3.2 Autokorelasi Autokorelasi adalah adanya hubungan antara error satu observasi dengan error observasi lainnya. Autokorelasi umumnya lebih umum terjadi pada data time series, di mana terjadi antara error suatu periode (εt ) dengan error periode lainnya (εt−1 , εt2 , . . .). Autokorelasi dapat menyebabkan parameter estimasi menjadi bias, sehingga harus ditangani. Deteksi Untuk mendeteksi adanya autokorelasi secara grafis, Stata menyediakan tiga perintah: corrgram varname ac varname (grafik autokorelasi) pac varname (grafik autokorelasi parsial) Tambahkan opsi lags(#) untuk menampilkan autokorelasi sebanyak # lag. Terdapat dua metode statistik untuk mendeteksi adanya autokorelasi. corrgram ac pac Durbin-Watson Pengujian Durbin-Watson hanya dapat mendeteksi autokorelasi dengan lag 1 error (εt−1 ). Statistik Durbin Watson berada di antara 0-4. Nilai dekat 0 mengindikasikan autokorelasi positif, sedangkan nilai dekat 4 mengindikasikan autokorelasi negatif. Dengan demikian, nilai dekat 2 mengindikasikan tidak adanya autokorelasi. Perintah untuk menampilkan statistik Durbin-Watson di Stata adalah estat dwatson. Pengembangan uji benconomy.wordpress.com 26 dwatson 4 Analisis Regresi OLS Durbin menghasilkan estat durbinalt yang memungkinkan uji hipotesis. Tambahkan opsi lags(numlist) untuk menspesifikasikan lag autokorelasi yang diuji. Breuch-Godfrey Tes Breuch-Godfrey dilakukan dengan melakukan regresi error terhadap error lag periode yang dispesifikasikan. Perintah untuk BG test di Stata adalah sebagai berikut: estat bgodfrey, lags(numlist) di mana numlist adalah lag-lag yang ingin diuji (dapat lebih dari satu). Pengujian sebanyak lebih dari 1 lag periode dilakukan secara terpisah. durbinalt bgodfrey Koreksi Koreksi untuk masalah autokorelasi sebaiknya dilakukan mengubah spesifikasi model, atau menggunakan metode time series (bukan hanya OLS), seperti penambahan lag variabel dependen ke dalam model (model AR). Walau demikian, terdapat dua metode OLS yang mampu menangani autokorelasi. Pertama, menggunakan transformasi Cochrane-Orkutt dengan perintah sebagai berikut: prais depvar indepvarlist, corc Perintah ini memiliki berbagai opsi dan pendekatan lain untuk menangani autokorelasi yang dapat dieksplorasi lebih lanjut. Kedua, menggunakan standar error Newey-West yang robust terhadap autokorelasi (dan heteroskedasitas) dengan perintah sebagai berikut: newey depvar indepvarlist, lag(#) Perintah ini memungkinkan penanganan lags dengan order yang lebih tinggi. Lags maksimum yang digunakan dalam model dapat dispesifikasikan menggunakan opsi lags(#) 4.3.3 prais newey Multikolinearitas Multikolinearitas adalah adanya kombinasi linear korelasi antara variabel-variabel independen, yang menyebabkan adanya korelasi. Kolinearitas antara dua variabel independen dapat dilihat secara grafis dengan menggunakan perintah graph matrix varlist. Dalam Stata, statistik untuk mendeteksi multikolinearitas dapat ditampilkan dengan perintah estat vif. Nilai Mean VIF yang lebih dari 10 dapat dikatakan mengindikasikan adanya kolinearitas. Namun, tidak terdapat batasan yang definitif mengenai statistik ini untuk menguji hipotesis secara statistik. Secara matematis, tidak mungkin melakukan estimasi OLS bila terdapat satu variabel independen yang adalah gabungan dari satu atau lebih variabel independen lain. Dalam sebagian besar kasus, multikolinearitas umumnya tidak menyebabkan masalah estimasi. Bahkan, sulit untuk menemukan variabel-variabel independen benconomy.wordpress.com 27 vif 4 Analisis Regresi OLS yang tidak berkorelasi (terutama untuk data time series). Multikolinearitas mulai menjadi masalah bila terdapat variabel yang ‘benar-benar’ bergerak bersama (korelasi >90%). Hal ini dapat menyebabkan variabel-variabel yang mengalami kolinearitas secara bersama-sama tidak signifikan, sedangkan sebenarnya berpengaruh terhadap variabel dependen (signifikan secara joint test). Kolinearitas akan hilang dengan mengeluarkan variabel yang ber-kolinear dari model. Namun, hal tersebut dapat menyebabkan omitted variabel bias yang serius. Tidak terdapat metode yang definitif untuk menangani multikolinearitas, sehingga menjadi kebijakan peneliti untuk memutuskan variabel yang tetap dimasukkan dalam model bilamana terjadi multikolinearitas. 4.4 Instrumental Variables Penggunakan Instrumental Variables (berikutnya disebut IV) dalam regresi adalah salah satu teknik untuk menangani pelanggaran asumsi adanya korelasi antara satu atau lebih variabel independen dengan error term ε. Dimulai dari spesifikasi persamaan utama; yi = β0 + β1 x1i + · · · + βj xji + βk xki + · · · + βm xmi + εi di mana variabel-variabel βk xki + · · · + βm xmi berkorelasi dengan error; Corr ((xk , . . . , xm ) , εi ) ̸= 0 Pelanggaran ini akan menyebabkan estimator yang bias dan tidak konsisten. Pengujian dapat dilakukan dengan cara regresi dengan menggunakan error dari model utama sebagai variabel dependen. Untuk mengatasi masalah bias yang ditimbulkan, diperlukan adanya variabel z1 , z2 , . . . , zv yang berkorelasi dengan variabel yang bermasalah dan tidak berkorelasi dengan error untuk dijadikan IV untuk variabel yang bermasalah tersebut. Dengan demikian, variabel independen dalam model tidak lagi berkorelasi dengan error, sehingga dapat dihasilkan parameter yang konsisten. Perintah untuk menerapkan regresi dengan IV adalah: ivregress method depvar indepvarlist (indepvarlist2 = ivvarlist) method adalah cara melakukan estimasi dengan IV. 3 metode yang dapat dipilih adalah 2SLS, liml dan gmm. depvar adalah variabel independen yang diestimasi. indepvarlist adalah variabel-variabel independen yang tidak mengalami masalah korelasi dengan error. benconomy.wordpress.com 28 ivregress 4 Analisis Regresi OLS indepvarlist2 adalah variabel-variabel independen yang mengalami masalah korelasi dengan error, sehingga dicarikan variabel instrumen. ivvarlist adalah variabel-variabel yang dijadikan Instrumental Variable. 4.5 Specification Test Pengujian spesifikasi adalah salah satu topik paling penting dalam pemodelan, di mana spesifikasi persamaan regresi diuji untuk mendapatkan fungsi regresi populasi yang sedekat mungkin dengan fungsi “asli”. Teori yang dipelajari melalui pemodelan sering memberi usul mengenai bentuk persamaan model secara a priori, yang tidak selalu didukung dengan temuan parameter estimasi. Hal ini membuat pengujian spesifikasi menjadi penting: Data dapat mengusulkan temuan yang berbeda dengan teori, atau memperlihatkan bahwa teori tersebut benar atau tidak. Mendapat “informasi” yang tepat dari data adalah tujuan dari pengujian spesifikasi: Apakah suatu variabel signifikan dalam model, bagaimana seharusnya suatu variabel dispesifikasikan dalam model (linear, logaritma, dlsb.), dan apakah perlu ditambahkan variabel independen lainnya ke dalam model. Dua hal perlu diperhatikan dalam pengujian spesifikasi. Pertama, adanya variabel yang redundant atau tidak signifikan tidak akan parameter estimasi menjadi bias, namun akan mengurangi degrees of freedom dan efisiensi model. Kedua, adanya variabel yang signifikan namun tidak dimasukkan dalam suatu model akan membuat parameter menjadi bias. Bias memiliki pengaruh yang lebih merusak dibandingkan inefisiensi. Hal ini menunjukkan pentingnya pengujian spesifikasi yang dilakukan secara benar. Metode formal uji spesifikasi cukup luas, termasuk pengujian manual seperti dalam metode Mizon dan Richard (1986)§ atau Davidson MacKinnon “J Test” (1981)¶ untuk non-nested model dan metode Ramsey Regression Error Specification Test (RESET)‖ . Stata memiliki command untuk melakukan pengujian Ramsey RESET, dengan perintah sebagai berikut: estat ovtest § Masukkan berbagai bentuk spesifikasi fungsional dari variabel yang sama ke dalam model, dan uji menggunakan Wald test apakah koefisien untuk masing-masing kelompok spesifikasi apakah koefisionnya sama dengan 0. ¶ Untuk mempelajari bentuk fungsional spesifikasi A dan B, lakukan estimasi untuk kedua persamaan tersebut, dan diambil error masing-masing persamaan. Ambil persamaan dari satu model (misal model A) dan masukkan ke model satunya (Model B) sebagai variabel independen. Lakukan regresi model satunya tersebut dengan error. Bila koefision error model A dalam model B tersebut tidak signifikan, model A telah dispesifikasikan dengan benar. Prosedur yang sama dilakukan untuk model B. ‖ Mengambil polinomial dari fitted values dan memasukkannya ke dalam model utama. Bila polinomial model utama signifikan, maka model tersebut mengandung omitted variables. benconomy.wordpress.com 29 ovtest 4 Analisis Regresi OLS ovtest adalah singkatan untuk ommited variable test. Perintah ini dapat dilakukan setelah estimasi OLS. Bila kita ingin menggunakan polinomial dari variabel independen (bukan hanya fitted values variabel dependen), tambahkan opsi rhs. 4.6 4.6.1 Setelah estimasi… Perintah predict Perintah predict berguna untuk membuat prediksi dari estimasi yang telah dilakukan, baik prediksi fitted values, residual, dan lainnya. Berikut sintaks perintah tersebut. predict varname, options Hasil perintah tersebut dimasukkan dalam variabel baru (varname) yang dispesifikasikan. Nilai yang dapat diprediksi dispesifikasikan dalam options: predict xb Analogis dengan Xβ, yaitu prediksi linear/fitted values dari model. residuals Error εi hasil regresi. rstd Nilai standardized dari error. stdp Standar error nilai fitted values. stdf Standar error nilai forecast (nilai baru). stdr Standar error nilai error. 4.6.2 Perintah estimates Perintah estimates berguna untuk menyimpan, mengelola dan mengakses hasil estimasi yang telah dilakukan sebelumnya. Dengan adanya fitur ini, kita tidak perlu menyimpan log-file Stata (.smcl) hanya untuk menyimpan hasil estimasi (lihat opsi save). Di samping itu, perintah ini juga menyimpan lebih banyak detail yang tidak ditampilkan dalam tabel laporan estimasi. Berikut adalah beberapa penggunaan perintah tersebut. estimates store modelname — menyimpan hasil regresi ke dalam memori (hilang bila Stata dimatikan) dengan nama modelname. Untuk mengakses/mengaktifkan kembali hasil estimasi yang telah di-store, gunakan perintah estimates restore modelname. estimates save filename — menyimpan hasil regresi dengan nama filename ke hard-disk. Untuk mengakses kembali hasil estimasi yang telah di-save, gunakan perintah estimates use filename. benconomy.wordpress.com 30 estimates 4 Analisis Regresi OLS estimates replay modelnamelist — menampilkan kembali laporan/tabel estimasi untuk hasil model-model dalam memori. Untuk menampilkan kembali perintah regresi yang dilakukan dalam suatu model yang disimpan, gunakan perintah estimates describe modelname (hanya satu model). estimates table modelnamelist, options — menampilkan satu atau lebih hasil estimasi dalam suatu tabel secara vertikal, yang (terutama) berguna untuk memilih model. Opsi yang dapat digunakan adalah: • Menampilkan beberapa statistik sekaligus untuk satu model, atau menggunakan ‘bintang’ (*) untuk menandai variabel yang signifikan. Bila kita ingin menampilkan beberapa statistik sekaligus, tambahkan statistik yang diinginkan secara langsung: b (koefisien estimasi), se (standard error koefisien estimasi), t (statistik t terkait) dan p (p-value). Bila kita ingin menggunakan ‘bintang’ tambahkan opsi star(#1 #2 #3), di mana #1 adalah angka untuk mendapat 1 bintang, #2 adalah angka untuk mendapat 2 bintang, dan seterusnya. • Menampilkan statistik goodness of fit model. Statistik yang dapat ditampilkan dimasukkan dalam stat(list), di mana list dapat berupa r2 (R2 ), r2_a (adjusted R2 ) ll (likelihood ratio), N (jumlah sampel), df_r (degress of freedom model), AIC dan BIC. Untuk menunjukkan bagaimana menggunakan estimates digunakan, beberapa baris perintah berikut ini dapat menampilkan contohnya. sysuse auto, clear regress pr mp re tr estimates store model1 regress pr mp re estimates store model2 estimates table model1 model2, b se p stats(r2 r2_a df_r) estimates table model1 model2, star(0.05 0.01 0.001) estimates describe model1 estimates describe model2 estimates replay model1 model2 Alternatif perintah estimates table yang memiliki kemampuan menampilkan beberapa statistik sekaligus dan bintang secara bersamaan, kontrol hasil tampilan lebih baik serta ekspor hasil ke program lain (seperti LATEX) adalah paket estout. Gunakan perintah ssc install estout, replace untuk meng-install paket ini ke dalam Stata (dibutuhkan koneksi internet untuk download paket). benconomy.wordpress.com 31