Library:
> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")1 PENDAHULUAN
1.1 ANALISIS REGRESI
Analisis Regresi merupakan alat analisis yang termasuk ke dalam statistika parametrik. Dengan demikian, untuk menggunakan regresi, harus melakukan pengujian asumsi terlebih dauulu. Asumsi yang harus terpenuhi, yaitu:
Kenormalan Residual.
Tidak ada autokorelasi/residual saling bebas.
Homoskedastitas/kehomogenan variansi residual.
Tidak ada multikolinieritas (untuk analisis regresi berganda)
(Utari, 2019)
1.2 UJI ASUMSI KLASIK
Uji asumsi klasik adalah persyaratan statistik yang harus dipenuhi pada analisis regresi linear berganda yang berbasis ordinary least square (OLS). Jadi analisis regresi yang tidak berdasarkan OLS tidak memerlukan persyaratan asumsi klasik, misalnya regresi logistik atau regresi ordinal.
Uji asumsi klasik yang sering digunakan yaitu uji multikolinearitas, uji heteroskedastisitas, uji normalitas, uji autokorelasi dan uji linearitas. Tidak ada ketentuan yang pasti tentang urutan uji mana dulu yang harus dipenuhi. Analisis dapat dilakukan tergantung pada data yang ada. (Uji Asumsi Klasik, 2009)
Uji Normalitas
Uji normalitas digunakan untuk menguji apakah residual dari model regresi yang terbentuk berdistribusi normal atau tidak. Model regresi yang baik yaitu memiliki nilai residual yang berdistribusi normal. Cara untuk mendeteksinya dapat menggunakan grafik Q-Q plot atau melakukan uji Jarque Bera, Shapiro Wilk, dan Kolmogorov Smirnov. Hipotesis yang digunakan sebagai berikut.
H0 : Residual berdistribusi normal
H1 : Residual tidak berdistribusi normal
Dengan kriteria pengujian:
Jika nilai p < α, maka H0 ditolak. Yang berarti bahwa residual tidak berdistribusi normal.
Jika nilai p > α, maka H0 diterima. Yang berarti bahwa residual berdistribusi normal.
Uji Autokorelasi
Autokorelasi merupakan adanya korelasi antara residual pada periode t dengan residual pada periode sebelumnya (t-1). Pelanggaran asumsi ini sering terjadi pada data time series. Uji yang dapat digunakan untuk mendeteksi ada tidaknya autokorelasi adalah uji Durbin Watson. Berikut hipotesis yang digunakan:
\(H0: ρ=0\)
\(H1: ρ≠0\)
Dengan kriteria pengujian: Jika nilai p < α , maka H0 ditolak. Yang berarti terjadi autokorelasi.
Jika nilai p > α , maka H0 diterima.Yang berarti tidak terjadi autokorelasi atau asumsi terpenuhi.
Uji Heteroskedastisitas
Heteroskedastisitas merupakan kondisi terjadinya ketidaksamaan varian dari residual untuk semua pengamatan pada model regresi yang terbentuk. Uji yang dapat mendeteksi asumsi ini yaitu Breusch-Pagan LM test, Glesjer LM test, Harvey-Godfrey LM test, Park test, dan White test. Hipotesis yang digunakan sebagai berikut.
\(H0 : δ2=δ3=⋯=δk=0\)
\(H1\) : paling tidak terdapat satu \(δj≠2,...,p\)
Dengan kriteria pengujian: Jika nilai p < α , maka H0 ditolak. Yang berarti varian residual tidak bersifat homoskedastisitas. Jika nilai p > α , maka H0 diterima.Yang berarti varian residual bersifat homoskedastisitas.
Uji Multikolinearitas
Uji multikolinearitas adalah untuk melihat ada atau tidaknya korelasi yang tinggi antara variabel-variabel bebas dalam suatu model regresi linear berganda. Jika ada korelasi yang tinggi di antara variabel-variabel bebasnya, maka hubungan antara variabel bebas terhadap variabel terikatnya menjadi terganggu. Sebagai ilustrasi, adalah model regresi dengan variabel bebasnya motivasi, kepemimpinan dan kepuasan kerja dengan variabel terikatnya adalah kinerja. Logika sederhananya adalah bahwa model tersebut untuk mencari pengaruh antara motivasi, kepemimpinan dan kepuasan kerja terhadap kinerja. Jadi tidak boleh ada korelasi yang tinggi antara motivasi dengan kepemimpinan, motivasi dengan kepuasan kerja atau antara kepemimpinan dengan kepuasan kerja. Alat statistik yang sering dipergunakan untuk menguji gangguan multikolinearitas adalah dengan variance inflation factor (VIF), korelasi pearson antara variabel-variabel bebas, atau dengan melihat eigenvalues dan condition index (CI). (Huda, 2016)
2 SOURCE CODE
2.1 Library
> # install.packages("nortest")
> # install.packages("lmtest")
> # install.packages("car")2.2 DATA
Data harga minyak kelapa sawit internasional, nilai tukar rupiah terhadap dollar (Rp/USD), harga minyak subsitusi internasional, dan ekspor minyak kelapa sawit Indonesia ke India dari tahun 1990 – 2019.
> #Input data
> # Membuat dataframe
> dataku <- data.frame(
+ Y = c(196.8, 342.3, 363.4, 591.9, 718, 562.3, 812.4, 1709.6, 1075.44, 1028, 1639.1, 1519.8, 1766.6, 2274.3, 2761.6, 2558.3, 2482, 3305.7, 4789.7, 5496.3, 5290.9, 4980, 5253.8, 5634.1, 4867.8, 5737.7, 4019.32, 844.1, 4633.72, 4940.92),
+ X1 = c(239.5, 280.28, 325.33, 312.14, 437.27, 537.62, 467.15, 490.43, 671.08, 377.28, 310.25, 285.67, 390.25, 443.25, 471.33, 422.08, 478.35, 780.25, 638.4, 682.83, 847.3, 1067.5, 898.5, 856.89, 821.43, 622.66, 614.856, 562.4, 685.636, 721.026),
+ X2 = c(1901, 1922, 2062, 2110, 2200, 2308, 2383, 4650, 8025, 7100, 9530, 10400, 8940, 8465, 9290, 9830, 9020, 9419, 10950, 9400, 9083, 8774, 9670, 12189, 12440, 13795, 8911, 2290, 8753, 8674),
+ X3 = c(447.33, 453.83, 428.92, 480.42, 615.58, 625.08, 551.5, 564.75, 625.92, 427.33, 338.08, 354, 454.25, 553.92, 616, 554.92, 598.55, 881.43, 1258.25, 848.68, 1004.6, 1299.33, 1226.25, 1056.67, 909.27, 756.92, 844.772, 750.74, 957.49, 1013.849)
+ )2.3 REGRESI LINIER
> #Analisis Regresi Linier Berganda dengan Perhitungan Manual
> # Menghitung jumlah observasi (n)
> n <- nrow(dataku)
>
> # Matriks desain X
> X <- cbind(1, dataku$X1, dataku$X2, dataku$X3)
>
> # Vektor respons Y
> Y <- dataku$Y
>
> # Menghitung matriks X^T * X
> XtX <- t(X) %*% X
>
> # Menghitung vektor X^T * Y
> XtY <- t(X) %*% Y
>
> # Menghitung matriks invers dari X^T * X
> XtX_inv <- solve(XtX)
>
> # Menghitung vektor koefisien estimasi beta
> beta <- XtX_inv %*% XtY
>
> # Menghitung vektor residual e
> e <- Y - X %*% beta
>
> # Menghitung jumlah derajat kebebasan (df)
> df <- n - length(beta)
>
> # Menghitung variansi residual s^2
> s2 <- sum(e^2) / df
>
> # Menghitung estimasi standar deviasi residual s
> s <- sqrt(s2)
>
> # Menghitung matriks variansi-kovariansi dari beta
> VarBeta <- s2 * XtX_inv
>
> # Menghitung estimasi standar deviasi koefisien
> StdDevBeta <- sqrt(diag(VarBeta))
>
> # Menghitung statistik uji t
> tValue <- beta / StdDevBeta
>
> # Menghitung nilai p
> pValue <- 2 * (1 - pt(abs(tValue), df))
>
> # Membentuk dataframe untuk hasil regresi berganda
> result <- data.frame(
+ Koefisien = c("(Intercept)", "X1", "X2", "X3"),
+ Estimasi = beta,
+ Std.Error = StdDevBeta,
+ tValue = tValue,
+ pValue = pValue
+ )
>
> # Menampilkan hasil regresi berganda
> print(result)
Koefisien Estimasi Std.Error tValue pValue
1 (Intercept) -2357.5443223 364.94691052 -6.45996515 7.596887e-07
2 X1 0.1028032 1.46438958 0.07020206 9.445700e-01
3 X2 0.2824077 0.03940142 7.16744795 1.302271e-07
4 X3 4.0842328 1.09258210 3.73814724 9.219928e-042.4 REGRESI LINIER KE 2
Perlu dilakukan analisis kembali dengan mengurangi variabel dikarenakan ada koefisien yang tidak signifikan
> regresi_berganda2 <- lm(Y~X2+X3,data = dataku)
> summary(regresi_berganda2)
Call:
lm(formula = Y ~ X2 + X3, data = dataku)
Residuals:
Min 1Q Median 3Q Max
-1441.32 -323.29 -73.86 350.50 1665.24
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.354e+03 3.556e+02 -6.621 4.19e-07 ***
X2 2.831e-01 3.729e-02 7.593 3.63e-08 ***
X3 4.152e+00 4.924e-01 8.434 4.80e-09 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 649.6 on 27 degrees of freedom
Multiple R-squared: 0.8976, Adjusted R-squared: 0.89
F-statistic: 118.4 on 2 and 27 DF, p-value: 4.349e-14
>
> # Bentuk manual syntax diatas
> # Menghitung jumlah observasi (n)
> n <- nrow(dataku)
>
> # Matriks desain X
> X <- cbind(1, dataku$X2, dataku$X3)
>
> # Vektor respons Y
> Y <- dataku$Y
>
> # Menghitung matriks X^T * X
> XtX <- t(X) %*% X
>
> # Menghitung vektor X^T * Y
> XtY <- t(X) %*% Y
>
> # Menghitung matriks invers dari X^T * X
> XtX_inv <- solve(XtX)
>
> # Menghitung vektor koefisien estimasi beta
> beta <- XtX_inv %*% XtY
>
> # Menghitung vektor residual e
> e <- Y - X %*% beta
>
> # Menghitung jumlah derajat kebebasan (df)
> df <- n - length(beta)
>
> # Menghitung variansi residual s^2
> s2 <- sum(e^2) / df
>
> # Menghitung estimasi standar deviasi residual s
> s <- sqrt(s2)
>
> # Menghitung matriks variansi-kovariansi dari beta
> VarBeta <- s2 * XtX_inv
>
> # Menghitung estimasi standar deviasi koefisien
> StdDevBeta <- sqrt(diag(VarBeta))
>
> # Menghitung statistik uji t
> tValue <- beta / StdDevBeta
>
> # Menghitung nilai p
> pValue <- 2 * (1 - pt(abs(tValue), df))
>
> # Membentuk dataframe untuk hasil regresi berganda
> result <- data.frame(
+ Koefisien = c("(Intercept)", "X2", "X3"),
+ Estimasi = beta,
+ Std.Error = StdDevBeta,
+ tValue = tValue,
+ pValue = pValue
+ )
>
> # Menampilkan hasil regresi berganda
> print(result)
Koefisien Estimasi Std.Error tValue pValue
1 (Intercept) -2354.4882626 355.60161923 -6.621140 4.191085e-07
2 X2 0.2831395 0.03729074 7.592755 3.625218e-08
3 X3 4.1523700 0.49236049 8.433597 4.796734e-092.5 UJI NORMALITAS RESIDUAL
> #UJI KENORMALAN MENGGUNAKAN KOLMOGOROV SMIRNOV
> # Menginstal dan memuat paket "nortest" jika belum terpasang
> library(nortest)
>
> # Menghitung residual dari regresi berganda
> residuals <- resid(regresi_berganda2)
>
> # Melakukan uji Lilliefors
> lillie.test_result <- lillie.test(residuals)
> lillie.test_result
Lilliefors (Kolmogorov-Smirnov) normality test
data: residuals
D = 0.10991, p-value = 0.46882.6 UJI AUTOKORELASI
> #UJI AUTOKORELASI MENGGUNAKAN DURBIN WATSON
> # Menginstal dan memuat paket "lmtest" jika belum terpasang
> library(lmtest)
>
> # Melakukan uji Durbin Watson
> dw_result <- dwtest(regresi_berganda2)
> dw_result
Durbin-Watson test
data: regresi_berganda2
DW = 1.828, p-value = 0.209
alternative hypothesis: true autocorrelation is greater than 02.7 UJI HETEROKEDASTISITAS
> #UJI HETEROKEDASTISITAS MENGGUNAKAN BREUSCH PAGAN
> bp_result <- bptest(regresi_berganda2, studentize = FALSE, data = dataku)
> bp_result
Breusch-Pagan test
data: regresi_berganda2
BP = 4.1086, df = 2, p-value = 0.12822.8 UJI MULTIKOLINEARITAS
> #UJI MULTIKOLINEARITAS
> # Menginstal dan memuat paket "car" jika belum terpasang
> library(car)
> vif_result <- vif(regresi_berganda2)
> vif_result
X2 X3
1.263836 1.263836 3 HASIL DAN PEMBAHASAN
3.1 REGRESI LINIER
- Model regresi linier: \[ Y=-2357.5443+0.1028X1+0.2824X2+ 4.0842X3 \]
3.2 REGRESI LINIER KE 2
Model regresi linier 2: \[ Y=-2354.4882626+0.2831395X2+4.1523700X3 \]
Uji Simultan F
H0 : Model regresi tidak layak digunakan
H1 : Model regresi layak digunakan
Statistik uji:
\[ p-value=4.349e-14 \]
Titik kritis:
\[ \alpha=0.05 \]
Keputusan: Statistik uji (4.349e-14) < Titik kritis (0.05), maka Tolak H0.
Kesimpulan: Dengan tingkat signifikansi 5% atau tingkat kepercayaan 95% didapatkan keputusan tolak H0 , yang artinya model regresi layak digunakan.
Uji Parsial t
H0 : Koefisien regresi tidak signifikan dalam model
H1 : Koefisien regresi signifikan dalam model
Statistik uji:
\[ p-value Intercept=4.19e-07 \]
\[ p-value β1=3.63e-08 \]
\[ p-value β2=4.80e-09 \]
Titik kritis:
\[ \alpha=0.05 \]
Keputusan: Statistik uji Intercept(β0) (4.19e-07) < Titik kritis (0.05), maka Tolak H0.
Keputusan: Statistik uji β1 (3.63e-08) < Titik kritis (0.05), maka Tolak H0.
Keputusan: Statistik uji β2 (4.80e-09) < Titik kritis (0.05), maka Tolak H0.
Dengan tingkat signifikansi 5% atau tingkat kepercayaan 95% didapatkan keputusan Intercept, β1, β2, tolak H0. Maka dapat disimpulkan data yang Tolak H0 signifikan terhadap model.
Koefisien Determinasi
\[ R^{2}=0.89 \]
Artinya sebesar 89% keragaman Y mampu dijelaskan oleh X dalam model, sedangkan sisanya 11% akan dijelaskan oleh peubah lain diluar model.
##UJI ASUMSI KLASIK
3.3 ASUMSI NORMALITAS RESIDUAL
H0 : Data residual berdistribusi normal
H1 : Data residual tidak berdistribusi normal
Statistik uji:
\[ p-value=0.4688 \]
Titik kritis:
\[ \alpha=0.05 \]
Keputusan: Statistik uji (0.4688) > Titik kritis (0.05), maka Terima H0.
Kesimpulan: Dengan tingkat kepercayaan 95% data yang ada maka keputusan nya adalah terima H0, yang artinya data residual berdistribusi normal dan asumsi terpenuhi.
3.4 ASUMSI AUTOKORELASI
H0 : Tidak terjadi autokorelasi
H1 : Terjadi autokorelasi
Statistik uji:
\[ p-value=0.209 \]
Titik kritis:
\[ \alpha=0.05 \]
Keputusan: Statistik uji (0.209) > Titik kritis (0.05), maka Terima H0.
Kesimpulan: Dengan tingkat kepercayaan 95% maka keputusan nya adalah gagal tolak H0, yang artinya tidak terdapat autokorelasi pada sisaan, dan asumsi terpenuhi.
3.5 ASUMSI HETEROSKEDASTISITAS
H0 : Asumsi kehomogenan ragam sisaan terpenuhi.
H1 : Asumsi kehomogenan ragam sisaan tidak terpenuhi.
Statistik uji:
\[ p-value=0.1282 \]
Titik kritis:
\[ \alpha=0.05 \]
Keputusan: Statistik uji (0.1282) > Titik kritis (0.05), maka Terima H0.
Kesimpulan: Dengan tingkat kepercayaan 95% maka keputusan nya adalah terima H0, yang artinya asumsi kehomogenan ragam sisaan terpenuhi
3.6 ASUMSI MULTIKOLINEARITAS
\[ VIFX2=1.263836 \]
\[ VIFX3=1.263836 \]
Kesimpulan: Dengan tingkat kepercayaan 95% maka keputusan nya adalah gagal tolak H0, yang artinya tidak adanya multikolinearitas, yang artinya asumsi terpenuhi.
4 KESIMPULAN
Berdasarkan dari berbagai hal yang telah praktikan lakukan dan uraian pembahasan, maka pratikan dapat menyimpulkan beberapa hal sebagai berikut :
Dapat diidentifikasi variabel dependen (Y) yaitu Ekspor Minyak Kelapa Sawit Indonesia ke India (Ton), dan variabel independen (X1) Harga Minyak Kelapa Sawit Internasional (USD/Ton), (X2) Nilai Tukar Rupiah Terhadap Dollar (Rp/USD), dan (X3) Harga Minyak Substitusi Internasional (USD/Ton).
Setelah dilakukan analisis regresi berganda didapatkan hasil dari uji F atau uji overall yaitu tolak H0, dan pada uji t atau uji parsial yaitu tolak H0 juga.
Analisis regresi dilakukan dua kali dikarenakan pada analisis pertama didapati koefisien yang tidak signifikan maka dilakukan menggunakan metode backward. Dengan mengurangi variabel yang tidak signfikan tersebut.
5 DAFTAR PUSTAKA
Utari, D. T. (2019). Analisis Regresi Terapan dengan R. Yogyakarta: Universitas Islam Indonesia.
Uji Asumsi Klasik. (2009, 03). Retrieved from Konsultan Statistik: http://www.konsultanstatistik.com/2009/03/uji-asumsi-klasik.html
Huda, F. A. (2016, Desember 15). Uji Asumsi Klasik. Retrieved from fatkhan.web.id: http://fatkhan.web.id/uji-asumsi-klasik/
Program R dan Statistika. (2013, June 19). Retrieved from Dataflow: http://dataflow-stat.blogspot.com/2013/06/program-r-dan-statistika.html