Pertemuan 7
Metodologi penelitian
Kita sudah membahas data cross-section (bermacam-macam individu, 1 waktu) dan data time series (waktunya banyak tapi hanya track 1 individu).
Hari ini, terakhir untuk teknik regresi:
ARIMA mengandalkan dirinya sendiri untuk melakukan forecasting.
Variabelnya wajib stasioner.
Kadang, variabel lain berpengaruh.
Auto-Regressive Distributed Lag (ARDL) adalah teknik yang dapat digunakan untuk variabel yang tidak stasioner.
Year | dfx | dintx | dintm | dfm |
---|---|---|---|---|
2003 | 10.896412 | 0.0500818 | 4.6196749 | 10.2886476 |
2004 | 17.994859 | 8.1004623 | 22.2809224 | 4.5621342 |
2005 | 13.059927 | 21.3223886 | 0.1154420 | 27.5454781 |
2006 | 4.775585 | 16.6351330 | 15.5633093 | 11.0021932 |
2007 | 13.760250 | 6.9471833 | 29.8450919 | 46.7816336 |
2008 | 39.250887 | 22.3266729 | 24.2666596 | -0.9850059 |
2009 | -5.752603 | -13.9194517 | -4.3477099 | -32.3349982 |
2010 | 21.346530 | 17.6138311 | 24.0407582 | 57.0574829 |
2011 | 26.441703 | 23.1888490 | 32.9344025 | 39.7050239 |
2012 | 12.655575 | -1.4123671 | 0.8063468 | -24.6361762 |
2013 | 2.061233 | 3.8540891 | 6.3265299 | -14.3296342 |
2014 | 8.000635 | 4.8610764 | 2.0021351 | 10.7923660 |
2015 | -5.933598 | -10.4340099 | -15.6392075 | -15.9141368 |
2016 | 9.268460 | -2.6999715 | 4.9617711 | 24.5924641 |
2017 | 15.933077 | 2.3822400 | 9.6017083 | -5.0539172 |
2018 | 8.303599 | 11.4652328 | 7.2771690 | 38.3701686 |
2019 | 5.036703 | -5.6808978 | -3.0303300 | -20.1233512 |
2020 | 8.118241 | 0.1562093 | -0.8437596 | -8.3524315 |
Data di atas adalah data ekspor dan impor barang yang terkait dengan industri makanan dan minuman.
first difference dari log.
ekspor produk final (dfx), ekspor bahan baku (dintx), impor produk final (dfm) dan impor bahan baku (dintm).
Data ini merupakan salah satu data yang digunakan dalam penelitian Amanta & Gupta (2021).
$best_model
Time series regression with "ts" data:
Start = 6, End = 18
Call:
dynlm::dynlm(formula = full_formula, data = data, start = start,
end = end)
Coefficients:
(Intercept) L(dfx, 1) L(dfx, 2) dintm L(dintm, 1) L(dintm, 2)
18.15225 -1.12334 -0.09227 1.40227 1.10408 0.21935
L(dintm, 3) L(dintm, 4) L(dintm, 5) dfm L(dfm, 1) L(dfm, 2)
-0.17569 -0.27523 -0.02996 -0.39218 -0.35428 -0.26001
L(dfm, 3) L(dfm, 4)
-0.29253 NA
$best_order
[1] 2 5 4
$top_orders
dfx dintm dfm AIC
1 2 5 4 -Inf
2 2 5 3 -Inf
3 3 4 4 -Inf
4 3 5 4 -Inf
5 3 4 5 -Inf
6 4 4 4 -Inf
7 4 3 4 -Inf
8 4 4 3 -Inf
9 5 5 5 -Inf
10 1 5 1 67.35304
11 1 5 2 67.41105
12 1 5 0 68.15778
13 1 4 0 94.27907
14 2 4 4 96.05126
15 2 4 3 96.10150
16 3 4 3 97.09513
17 2 3 3 103.92932
18 2 3 2 104.08403
19 1 3 0 104.34781
20 3 3 3 105.92228
urutan lag-nya sesuai urutan di formula.
auto ARDL melakukan iterasi beberapa kali untuk spesifikasi berbeda-beda, seperti ARIMA.
Namun dapat kita lihat, jika seriesnya terlalu pendek, iterasinya kurang.
Kita gunakan lag 1,5,1
Time series regression with "ts" data:
Start = 6, End = 18
Call:
dynlm::dynlm(formula = full_formula, data = data, start = start,
end = end)
Residuals:
6 7 8 9 10 11 12 13
1.01171 1.92348 0.09148 0.03605 -0.26695 -2.80836 -0.43339 -0.67969
14 15 16 17 18
2.34811 -1.30404 -1.33239 -0.18529 1.59928
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.80452 1.85996 6.347 0.00791 **
L(dfx, 1) -0.70474 0.19279 -3.656 0.03536 *
dintm 0.95659 0.14091 6.789 0.00653 **
L(dintm, 1) 0.53084 0.25741 2.062 0.13121
L(dintm, 2) -0.06674 0.11616 -0.575 0.60583
L(dintm, 3) -0.22959 0.07768 -2.955 0.05976 .
L(dintm, 4) 0.05078 0.09313 0.545 0.62349
L(dintm, 5) -0.02473 0.08458 -0.292 0.78908
dfm -0.17023 0.06618 -2.572 0.08233 .
L(dfm, 1) -0.06507 0.07656 -0.850 0.45782
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.882 on 3 degrees of freedom
Multiple R-squared: 0.9867, Adjusted R-squared: 0.947
F-statistic: 24.82 on 9 and 3 DF, p-value: 0.01151
dapat kita lihat bahwa di industri makanan, pertumbuhan impor bahan baku secara signifikan meningkatkan pertumbuhan ekspor barang jadi.
AR-based regression membutuhkan series yang panjang.
Hari ini kita belajar gabungan cross-section & time series: data panel.
Punya informasi dari variasi individu dan variasi waktu.
Punya masalah keduanya: heteroskedastis dan autokorelasi.
Secara umum, manfaatnya lebih besar daripada masalahnya.
Secara umum, ada 2 struktur data panel yang mungkin akan anda sering dapatkan.
wide: jika bentuk datanya melebar ke samping, antara waktunya atau variabel individunya yang ke samping.
long: jika nama individu dan tahunnya sama-sama jadi variabel sendiri, dan datanya jadi panjang ke bawah.
Umumnya, data wide lebih enak dilihat jika variabelnya cuma 1, tapi data long lebih mudah digunakan.
\[ Y_{it}=\beta_0 + \beta_1 X_{it} + \mu_{it} \]
Di contoh wide barusan, kita bisa lihat bahwa yg \(i\) adalah yang ke bawah, sementara yang \(t\) adalah yang ke samping. Variabelnya sendiri adalah si angka PDB per kapita.
Di contoh long, \(i=\) country, \(t=\)year, dan variabelnya sendiri adalah kolom \(PDBperkapita\)
Di R (maupun aplikasi lainnya), biasanya kita lebih sering menggunakan long.
lebih mudah jika \(i\) dan \(t\)-nya ada nama kolomnya.
Kita biasanya akan punya lebih dari 1 variabel.
Di package “tidyverse”, ada command yang namanya pivot_longer()
yang dapat kita gunakan untuk mengubah data wide jadi data long.
Untuk regresi panel data maupun membuat grafik, kita akan selalu menggunakan format data long.
Data hari ini didownload dari World Bank
Semuanya berbentuk wide, jadi saya long-in dulu. Sumber data lain biasanya sudah otomatis long.
library("tidyverse") # untuk command pivot_longer()
library("readxl") # untuk command read_excel()
library("writexl") # untuk command write_xlsx()
dat<-read_excel("wide.xlsx")
dat2<-pivot_longer(data=dat,cols=!country, names_to="year",values_to="PDBperkapita")
# tanda seru (!) di depan country maksudnya mau bilang "kecuali country, semua dibuat long"
write_xlsx(dat2,"long.xlsx")
“latihan7.xlsx” adalah file excel yang berisi PDB per kapita, ekspor, dan impor dalam Dolar AS.
ada 5 negara dan range tahun 1967-2021.
dengan kata lain, \(i=\)negara dan \(t=\)tahun.
Datanya bersumber dari World Bank, tapi sudah dibuat jadi long.
# A tibble: 275 × 8
country year import export PDBperkapita LM LX LP
<chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 China 1967 2169144528. 2388496222. 96.6 9.34 9.38 1.98
2 China 1968 2067592818. 2339751401. 91.5 9.32 9.37 1.96
3 China 1969 1917296287. 2429116906. 100. 9.28 9.39 2.00
4 China 1970 2278820375. 2307254854. 113. 9.36 9.36 2.05
5 China 1971 2128523844. 2782516858. 119. 9.33 9.44 2.07
6 China 1972 2850652532. 3692485858. 132. 9.45 9.57 2.12
7 China 1973 5207600281. 5876143561. 157. 9.72 9.77 2.20
8 China 1974 7791148277. 7107893127. 160. 9.89 9.85 2.20
9 China 1975 7925583396. 7688998817. 178. 9.90 9.89 2.25
10 China 1976 6660142165. 6943442876. 165. 9.82 9.84 2.22
# … with 265 more rows
# ℹ Use `print(n = ...)` to see more rows
dat<-read_excel("latihan7.xlsx")
dat$year<-as.Date(dat$year,"%Y") # mengubah year dari chr ke tss
dat
# A tibble: 275 × 8
country year import export PDBperkapita LM LX LP
<chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 China 1967-10-25 2169144528. 2388496222. 96.6 9.34 9.38 1.98
2 China 1968-10-25 2067592818. 2339751401. 91.5 9.32 9.37 1.96
3 China 1969-10-25 1917296287. 2429116906. 100. 9.28 9.39 2.00
4 China 1970-10-25 2278820375. 2307254854. 113. 9.36 9.36 2.05
5 China 1971-10-25 2128523844. 2782516858. 119. 9.33 9.44 2.07
6 China 1972-10-25 2850652532. 3692485858. 132. 9.45 9.57 2.12
7 China 1973-10-25 5207600281. 5876143561. 157. 9.72 9.77 2.20
8 China 1974-10-25 7791148277. 7107893127. 160. 9.89 9.85 2.20
9 China 1975-10-25 7925583396. 7688998817. 178. 9.90 9.89 2.25
10 China 1976-10-25 6660142165. 6943442876. 165. 9.82 9.84 2.22
# … with 265 more rows
# ℹ Use `print(n = ...)` to see more rows
Sebelum melakukan regresi panel, pastikan bentuk datanya long.
Kita dapat melakukan regresi biasa menggunakan lm()
.
disebut juga pooled OLS / pooling.
kita anggap setiap negara tidak ada perbedaan, setiap tahun tidak ada perbedaan.
keunggulan panel di sini hanya memberikan kita data yang lebih banyak.
Namun keuntungan panel adalah kita dapat melakukan regresi untuk masing-masing \(i\).
Regresi ini disebut Fixed effect regression:
\[ Y_{it}=\alpha_i + \beta_1 X_{1,it} + \mu_{it} \]
di mana \(\alpha_i\) adalah time-invariant intercept untuk masing-masing \(i\).
Call:
lm(formula = LP ~ LX + LM, data = dat)
Residuals:
Min 1Q Median 3Q Max
-0.62866 -0.30020 -0.05561 0.30624 0.61548
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.6581 0.2763 -9.621 < 2e-16 ***
LX 1.6596 0.2970 5.588 5.57e-08 ***
LM -1.1280 0.3055 -3.693 0.000268 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.3387 on 272 degrees of freedom
Multiple R-squared: 0.6745, Adjusted R-squared: 0.6721
F-statistic: 281.8 on 2 and 272 DF, p-value: < 2.2e-16
Oneway (individual) effect Within Model
Call:
plm(formula = LP ~ LX + LM, data = dat, index = c("country",
"year"))
Balanced Panel: n = 5, T = 55, N = 275
Residuals:
Min. 1st Qu. Median 3rd Qu. Max.
-0.2927413 -0.0698830 -0.0083758 0.0690985 0.2647296
Coefficients:
Estimate Std. Error t-value Pr(>|t|)
LX 0.22639 0.11310 2.0016 0.0463390 *
LM 0.40069 0.11619 3.4485 0.0006544 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Total Sum of Squares: 73.938
Residual Sum of Squares: 3.008
R-Squared: 0.95932
Adj. R-Squared: 0.95841
F-statistic: 3159.79 on 2 and 268 DF, p-value: < 2.22e-16
Jika memang tiap negara sama, maka hasil dari fixed effect = pooling.
dari contoh sebelumnya, kita bisa lihat bahwa betanya beda.
Tapi jelas dari residuals bahwa masih ada hal yang perlu kita kontrol.
Berbagai metode kualitatif:
regresi multivariat: nominal, log-log, dan dummy.
ARIMA dan ARDL.
Regresi panel: Pooled dan fixed effect.
Teknik-teknik cukup oke untuk ditunjukkan ke orang lain.
Anda harus paham kekurangan metode-metode ini.
Tujuan penelitian: melihat hubungan \(X\) dan \(Y\)
Grafik \(X\) dan \(Y\): scatterplot atau line.
Regresi
plot error terhadap \(X\) dan \(Y\)
Diskusi hasil dan keterbatasan
Kita akan membahas praktis penulis (less teori, more praktik)
Sangat penting untuk membuat framework penulisan.
Sumber data sekunder yang sering dipakai dan bagaimana mendownloadnya.
Visualisasi dengan ggplot.
Membuat daftar pustaka.
UTS akan berlangsung selama 2 jam.
Close everything kecuali:
kalkulator (bukan handphone/smartphone).
1 lembar A4 bolak balik, bebas diisi apa saja.
Tidak akan disuruh regresi, tapi mungkin akan disuruh menerjemahkan tabel regresi.