Pada bagian ini, kita menggunakan fungsi read_excel()
dari paket readxl untuk memasukkan data dari file Excel ke
dalam R. Data yang dimasukkan akan diperiksa dengan fungsi
str() untuk melihat struktur data dan dim()
untuk mengecek dimensi dataset yang dimuat. Hal ini penting untuk
memastikan bahwa data yang digunakan dalam analisis regresi sudah
terimpor dengan benar. Peubah yang digunakan adalah sebagai berikut:
\(Y\) = Pertumbuhan Ekonomi
\(X_1\) = Ekspor
\(X_2\) = Investasi
\(X_3\) = Konsumsi Lembaga Sosial Nirlaba
\(X_4\) = Konsumsi Rumah Tangga
\(X_5\) = Pengeluaran Pemerintah
\(X_6\) = Perubahan Inventori
library(readxl) #Memasukkan Data ke R (Excel)
Data <- read_excel("D:/Pertumbuhan Ekonomi SS - 3.xlsx", sheet = "Sheet1")
as.data.frame(Data)
## PertumbuhanEkonomi Ekspor Investasi KonsumsiLSNirlaba KonsumsiRT
## 1 24407.10 15443.83 6070.14 123.15 11919.53
## 2 25835.93 18961.48 5996.57 121.72 12057.78
## 3 26564.60 19064.53 6694.59 133.51 12360.51
## 4 27807.45 19400.01 7164.88 135.14 12394.40
## 5 26831.47 20312.28 4576.75 133.58 12414.77
## 6 28066.35 20089.67 5706.60 132.44 12528.48
## 7 28260.83 17901.09 7936.27 136.87 12866.39
## 8 28607.48 18055.58 10047.08 145.35 12901.03
## 9 29267.50 20468.57 6324.85 152.14 12948.86
## 10 29932.46 20470.82 6627.83 160.82 13072.90
## 11 30164.96 19766.90 7146.25 155.19 13432.43
## 12 30626.52 20225.28 8018.24 157.87 13469.81
## 13 30676.87 23085.90 5684.30 156.79 13477.12
## 14 31217.95 22886.98 6357.61 159.73 13634.46
## 15 31509.67 21722.74 7297.29 165.10 14002.85
## 16 31632.92 20778.02 8495.45 171.97 14020.96
## 17 31779.84 22767.92 6375.99 159.67 14069.16
## 18 32345.92 22689.53 6606.96 163.04 14256.73
## 19 32757.23 22858.57 7529.49 169.51 14630.15
## 20 33618.14 22840.99 8526.54 176.70 14653.54
## 21 33109.12 23727.00 6959.50 160.67 14676.13
## 22 33721.56 24337.50 7091.61 170.95 14946.31
## 23 34301.23 27288.60 7819.14 172.95 15273.60
## 24 35369.80 25198.34 8257.28 181.98 15270.03
## 25 34640.01 26152.61 7285.04 183.54 15292.48
## 26 35338.86 25271.13 7380.88 195.63 15687.74
## 27 35902.43 27907.24 7825.32 198.64 15883.81
## 28 37087.00 29358.29 8274.75 207.66 15921.27
## 29 36263.42 27566.04 7310.77 216.38 15924.14
## 30 37055.64 26926.97 7800.59 221.85 16251.61
## 31 37525.67 28608.31 8215.83 204.03 16490.36
## 32 38419.88 28916.06 8553.74 202.95 16631.70
## PengeluaranPemerintah PerubahanInventori
## 1 1388.04 1617.14
## 2 2083.34 -242.78
## 3 2267.53 -342.07
## 4 3243.64 417.87
## 5 1265.14 754.61
## 6 2137.20 -246.67
## 7 2355.18 681.65
## 8 3438.23 -2357.23
## 9 1540.24 850.70
## 10 2203.98 705.31
## 11 2490.68 809.50
## 12 3565.75 -897.09
## 13 1531.38 514.47
## 14 1792.01 708.80
## 15 2459.89 657.67
## 16 4058.88 -581.94
## 17 1550.05 470.39
## 18 1969.64 691.85
## 19 2244.14 645.95
## 20 3990.58 -551.56
## 21 1563.40 -259.63
## 22 2250.48 784.71
## 23 2393.26 -533.63
## 24 4025.44 689.47
## 25 1357.97 203.52
## 26 2653.49 279.64
## 27 2687.63 589.70
## 28 4043.09 -1070.49
## 29 1407.21 768.28
## 30 2890.90 859.11
## 31 3174.94 -816.81
## 32 4047.44 416.50
str(Data)
## tibble [32 × 7] (S3: tbl_df/tbl/data.frame)
## $ PertumbuhanEkonomi : num [1:32] 24407 25836 26565 27807 26831 ...
## $ Ekspor : num [1:32] 15444 18961 19065 19400 20312 ...
## $ Investasi : num [1:32] 6070 5997 6695 7165 4577 ...
## $ KonsumsiLSNirlaba : num [1:32] 123 122 134 135 134 ...
## $ KonsumsiRT : num [1:32] 11920 12058 12361 12394 12415 ...
## $ PengeluaranPemerintah: num [1:32] 1388 2083 2268 3244 1265 ...
## $ PerubahanInventori : num [1:32] 1617 -243 -342 418 755 ...
dim(Data)
## [1] 32 7
Bagian ini bertujuan untuk membuat grafik scatter plot yang menunjukkan hubungan antara peubah respons (dalam hal ini PertumbuhanEkonomi) dengan beberapa peubah penjelas (seperti Ekspor, Investasi, KonsumsiRT, dll). Visualisasi ini membantu untuk melihat pola atau tren awal antara peubah tersebut sebelum melakukan analisis lebih lanjut.
plot (Data$Ekspor, Data$PertumbuhanEkonomi)
plot (Data$Investasi, Data$PertumbuhanEkonomi)
plot (Data$KonsumsiRT, Data$PertumbuhanEkonomi)
plot (Data$PengeluaranPemerintah, Data$PertumbuhanEkonomi)
plot (Data$KonsumsiLSNirlaba, Data$PertumbuhanEkonomi)
plot (Data$PerubahanInventori, Data$PertumbuhanEkonomi)
Pada tahap ini, data distandarisasi menggunakan fungsi
scale() untuk mengubah setiap peubah ke dalam skala yang
sama, yaitu rata-rata 0 dan standar deviasi 1. Standarisasi penting
dilakukan terutama jika data memiliki skala yang sangat berbeda-beda,
agar tidak ada peubah yang dominan dalam model analisis.
Data <- as.data.frame(scale(Data))
Data
## PertumbuhanEkonomi Ekspor Investasi KonsumsiLSNirlaba KonsumsiRT
## 1 -2.01351024 -2.028181931 -1.08734228 -1.59791967 -1.59271589
## 2 -1.62930451 -1.064257350 -1.15521863 -1.65064899 -1.49476539
## 3 -1.43336854 -1.036019058 -0.51121909 -1.21590864 -1.28028036
## 4 -1.09917197 -0.944089099 -0.07732530 -1.15580459 -1.25626920
## 5 -1.36160844 -0.694104172 -2.46515734 -1.21332749 -1.24183700
## 6 -1.02955496 -0.755104912 -1.42274756 -1.25536345 -1.16127316
## 7 -0.97726020 -1.354830882 0.63436606 -1.09201318 -0.92186300
## 8 -0.88404763 -1.312496736 2.58181836 -0.77932462 -0.89732047
## 9 -0.70657133 -0.651276781 -0.85234454 -0.52895252 -0.86343278
## 10 -0.52776668 -0.650660225 -0.57281247 -0.20888923 -0.77555010
## 11 -0.46524852 -0.843552011 -0.09451351 -0.41648789 -0.52082212
## 12 -0.34113718 -0.717944361 0.70999232 -0.31766650 -0.49433829
## 13 -0.32759830 0.065937474 -1.44332174 -0.35749005 -0.48915913
## 14 -0.18210441 0.011428390 -0.82211987 -0.24908151 -0.37768332
## 15 -0.10366226 -0.307602654 0.04483736 -0.05107001 -0.11667800
## 16 -0.07052091 -0.566479697 1.15027056 0.20225198 -0.10384701
## 17 -0.03101481 -0.021197044 -0.80516232 -0.25129393 -0.06969718
## 18 0.12120147 -0.042677876 -0.59206732 -0.12702973 0.06319667
## 19 0.23180081 0.003643336 0.25906717 0.11154279 0.32776576
## 20 0.46329549 -0.001174027 1.17895447 0.37666435 0.34433764
## 21 0.32642239 0.241615000 -0.26681074 -0.21442028 0.36034271
## 22 0.49110465 0.408907356 -0.14492486 0.16464085 0.55176598
## 23 0.64697521 1.217582987 0.52630086 0.23838815 0.78365183
## 24 0.93430871 0.644799169 0.93053277 0.57135722 0.78112248
## 25 0.73807158 0.906293152 0.03353540 0.62888012 0.79702836
## 26 0.92598908 0.664745460 0.12195824 1.07468256 1.07707115
## 27 1.07753043 1.387105908 0.53200259 1.18567225 1.21598728
## 28 1.39605578 1.784730107 0.94665075 1.51827258 1.24252779
## 29 1.17459896 1.293608525 0.05727413 1.83981082 1.24456119
## 30 1.38762323 1.118487270 0.50918647 2.04150969 1.47657458
## 31 1.51401210 1.579216722 0.89229063 1.38442123 1.64572960
## 32 1.75446100 1.663547963 1.20404944 1.34459769 1.74586938
## PengeluaranPemerintah PerubahanInventori
## 1 -1.23378386 1.8044167
## 2 -0.46383967 -0.5542618
## 3 -0.25987589 -0.6801775
## 4 0.82102476 0.2835490
## 5 -1.36987784 0.7105896
## 6 -0.40419751 -0.5591949
## 7 -0.16281619 0.6180646
## 8 1.03650504 -3.2357254
## 9 -1.06524438 0.8324472
## 10 -0.33024832 0.6480692
## 11 -0.01276954 0.7801990
## 12 1.17771500 -1.3840324
## 13 -1.07505554 0.4060534
## 14 -0.78644551 0.6524951
## 15 -0.04686501 0.5876540
## 16 1.72378515 -0.9843714
## 17 -1.05438122 0.3501528
## 18 -0.58974598 0.6309998
## 19 -0.28577693 0.5727912
## 20 1.64815278 -0.9458446
## 21 -1.03959803 -0.5756303
## 22 -0.27875630 0.7487613
## 23 -0.12064810 -0.9231065
## 24 1.68675519 0.6279816
## 25 -1.26708204 0.0117186
## 26 0.16751899 0.1082510
## 27 0.20532410 0.5014571
## 28 1.70630001 -1.6039315
## 29 -1.21255586 0.7279254
## 30 0.43041623 0.8431125
## 31 0.74494945 -1.2822244
## 32 1.71111701 0.2818116
Bagian ini melakukan uji korelasi antara peubah respons
(PertumbuhanEkonomi) dengan setiap peubah penjelas. Fungsi
cor.test() digunakan untuk menguji apakah terdapat hubungan
linear yang signifikan antara peubah-peubah tersebut, yang bisa menjadi
indikasi penting dalam pemodelan regresi.
cor.test (Data$Ekspor, Data$PertumbuhanEkonomi)
##
## Pearson's product-moment correlation
##
## data: Data$Ekspor and Data$PertumbuhanEkonomi
## t = 16.13, df = 30, p-value = 2.504e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.8930807 0.9739998
## sample estimates:
## cor
## 0.9468991
cor.test (Data$Investasi, Data$PertumbuhanEkonomi)
##
## Pearson's product-moment correlation
##
## data: Data$Investasi and Data$PertumbuhanEkonomi
## t = 3.2815, df = 30, p-value = 0.002622
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.2013304 0.7315395
## sample estimates:
## cor
## 0.5139441
cor.test (Data$KonsumsiRT, Data$PertumbuhanEkonomi)
##
## Pearson's product-moment correlation
##
## data: Data$KonsumsiRT and Data$PertumbuhanEkonomi
## t = 38.1, df = 30, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.9790429 0.9950731
## sample estimates:
## cor
## 0.9898244
cor.test (Data$PengeluaranPemerintah, Data$PertumbuhanEkonomi)
##
## Pearson's product-moment correlation
##
## data: Data$PengeluaranPemerintah and Data$PertumbuhanEkonomi
## t = 2.2883, df = 30, p-value = 0.02934
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.04251973 0.64719554
## sample estimates:
## cor
## 0.3854982
cor.test (Data$KonsumsiLSNirlaba, Data$PertumbuhanEkonomi)
##
## Pearson's product-moment correlation
##
## data: Data$KonsumsiLSNirlaba and Data$PertumbuhanEkonomi
## t = 18.759, df = 30, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.9187501 0.9804427
## sample estimates:
## cor
## 0.9599212
cor.test (Data$PerubahanInventori, Data$PertumbuhanEkonomi)
##
## Pearson's product-moment correlation
##
## data: Data$PerubahanInventori and Data$PertumbuhanEkonomi
## t = -0.41622, df = 30, p-value = 0.6802
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.4135402 0.2803281
## sample estimates:
## cor
## -0.0757725
Korelasi antar peubah penjelas dilakukan untuk mengetahui apakah ada hubungan linear antar peubah penjelas yang digunakan dalam model. Pengujian ini penting untuk mendeteksi kemungkinan multikolinearitas, di mana peubah-peubah penjelas saling berkorelasi tinggi, yang dapat mempengaruhi stabilitas estimasi regresi.
cor(as.matrix(Data[,c("Ekspor","Investasi", "KonsumsiRT","PengeluaranPemerintah",
"KonsumsiLSNirlaba","PerubahanInventori")]))
## Ekspor Investasi KonsumsiRT PengeluaranPemerintah
## Ekspor 1.00000000 0.3243939 0.94503037 0.2415247
## Investasi 0.32439394 1.0000000 0.50452374 0.7759085
## KonsumsiRT 0.94503037 0.5045237 1.00000000 0.3446699
## PengeluaranPemerintah 0.24152468 0.7759085 0.34466994 1.0000000
## KonsumsiLSNirlaba 0.90275993 0.4975288 0.95734578 0.3573088
## PerubahanInventori -0.05969282 -0.5590342 -0.05352549 -0.5065535
## KonsumsiLSNirlaba PerubahanInventori
## Ekspor 0.90275993 -0.05969282
## Investasi 0.49752881 -0.55903416
## KonsumsiRT 0.95734578 -0.05352549
## PengeluaranPemerintah 0.35730882 -0.50655352
## KonsumsiLSNirlaba 1.00000000 -0.02929299
## PerubahanInventori -0.02929299 1.00000000
Pada bagian ini, dilakukan analisis regresi berganda menggunakan
fungsi lm() untuk membangun model regresi dengan
PertumbuhanEkonomi sebagai peubah respons dan beberapa peubah penjelas.
Hasil model akan diperiksa melalui fungsi summary() untuk
menilai seberapa baik model dalam menjelaskan variasi dalam peubah
respons.
Model_ARLB <- lm (PertumbuhanEkonomi ~ Ekspor + Investasi + KonsumsiRT + PengeluaranPemerintah
+ KonsumsiLSNirlaba + PerubahanInventori, data=Data)
summary (Model_ARLB)
##
## Call:
## lm(formula = PertumbuhanEkonomi ~ Ekspor + Investasi + KonsumsiRT +
## PengeluaranPemerintah + KonsumsiLSNirlaba + PerubahanInventori,
## data = Data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.31133 -0.07305 0.01199 0.09625 0.15641
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.284e-16 2.331e-02 0.000 1.000
## Ekspor 1.779e-01 1.050e-01 1.694 0.103
## Investasi 1.279e-02 6.105e-02 0.209 0.836
## KonsumsiRT 6.743e-01 1.373e-01 4.910 4.7e-05 ***
## PengeluaranPemerintah 6.195e-02 3.882e-02 1.596 0.123
## KonsumsiLSNirlaba 1.257e-01 8.376e-02 1.501 0.146
## PerubahanInventori 1.315e-02 3.654e-02 0.360 0.722
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1319 on 25 degrees of freedom
## Multiple R-squared: 0.986, Adjusted R-squared: 0.9826
## F-statistic: 293 on 6 and 25 DF, p-value: < 2.2e-16
Uji asumsi klasik dilakukan untuk memastikan bahwa model regresi
memenuhi asumsi dasar yang diperlukan untuk menghasilkan estimasi yang
valid. Pada bagian ini, kita menggunakan paket performance
untuk memeriksa beberapa asumsi klasik seperti normalitas,
heteroskedastisitas, autokorelasi, dan multikolinearitas.
library(performance)
Uji normalitas dilakukan untuk memeriksa apakah residual dari model
regresi mengikuti distribusi normal. Hal ini penting untuk validitas uji
t dan uji F dalam regresi linier. Fungsi check_normality()
digunakan untuk melakukan uji ini secara otomatis.
check_normality(Model_ARLB)
## OK: residuals appear as normally distributed (p = 0.074).
Uji heteroskedastisitas bertujuan untuk memeriksa apakah varians
residual model regresi konstan (homoskedastisitas) atau berubah-ubah
(heteroskedastisitas). Jika heteroskedastisitas terjadi, model regresi
mungkin tidak efisien, dan estimasi koefisien bisa menjadi bias. Fungsi
check_heteroscedasticity() digunakan untuk mengidentifikasi
masalah ini.
check_heteroscedasticity(Model_ARLB)
## Warning: Heteroscedasticity (non-constant error variance) detected (p = 0.021).
Uji autokorelasi digunakan untuk memeriksa apakah residual dari model
regresi saling berkorelasi. Jika ada autokorelasi, model mungkin tidak
valid karena residual yang saling bergantung menunjukkan bahwa model
tidak dapat menangkap beberapa pola dalam data. Fungsi
check_autocorrelation() digunakan untuk memeriksa adanya
autokorelasi.
check_autocorrelation(Model_ARLB)
## Warning: Autocorrelated residuals detected (p < .001).
Uji multikolinearitas penting untuk mengidentifikasi apakah terdapat
korelasi tinggi antar peubah penjelas, yang bisa menyebabkan kesulitan
dalam mengestimasi koefisien regresi. Fungsi
multicollinearity() digunakan untuk memeriksa masalah ini
dalam model regresi.
multicollinearity(Model_ARLB)
## # Check for Multicollinearity
##
## Low Correlation
##
## Term VIF VIF 95% CI Increased SE Tolerance
## PengeluaranPemerintah 2.69 [ 1.88, 4.21] 1.64 0.37
## PerubahanInventori 2.38 [ 1.70, 3.72] 1.54 0.42
## Tolerance 95% CI
## [0.24, 0.53]
## [0.27, 0.59]
##
## Moderate Correlation
##
## Term VIF VIF 95% CI Increased SE Tolerance Tolerance 95% CI
## Investasi 6.64 [ 4.28, 10.70] 2.58 0.15 [0.09, 0.23]
##
## High Correlation
##
## Term VIF VIF 95% CI Increased SE Tolerance Tolerance 95% CI
## Ekspor 19.66 [12.20, 32.09] 4.43 0.05 [0.03, 0.08]
## KonsumsiRT 33.62 [20.69, 55.04] 5.80 0.03 [0.02, 0.05]
## KonsumsiLSNirlaba 12.51 [ 7.85, 20.33] 3.54 0.08 [0.05, 0.13]
Bagian ini bertujuan untuk mengevaluasi kinerja model regresi dengan
menggunakan fungsi model_performance(). Fungsi ini
memberikan berbagai metrik evaluasi seperti R-squared, RMSE, dan
lainnya, untuk menilai seberapa baik model dalam memprediksi data yang
ada.
model_performance(Model_ARLB,metrics = "all")
## # Indices of model performance
##
## AIC | AICc | BIC | R2 | R2 (adj.) | RMSE | Sigma
## ---------------------------------------------------------------
## -30.749 | -24.488 | -19.023 | 0.986 | 0.983 | 0.117 | 0.132