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
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
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.
x <- data.matrix(Data[, c('Ekspor', 'Investasi', 'KonsumsiRT','PengeluaranPemerintah'
, 'KonsumsiLSNirlaba', 'PerubahanInventori')])
head(x)
## Ekspor Investasi KonsumsiRT PengeluaranPemerintah KonsumsiLSNirlaba
## [1,] -2.0281819 -1.0873423 -1.592716 -1.2337839 -1.597920
## [2,] -1.0642573 -1.1552186 -1.494765 -0.4638397 -1.650649
## [3,] -1.0360191 -0.5112191 -1.280280 -0.2598759 -1.215909
## [4,] -0.9440891 -0.0773253 -1.256269 0.8210248 -1.155805
## [5,] -0.6941042 -2.4651573 -1.241837 -1.3698778 -1.213327
## [6,] -0.7551049 -1.4227476 -1.161273 -0.4041975 -1.255363
## PerubahanInventori
## [1,] 1.8044167
## [2,] -0.5542618
## [3,] -0.6801775
## [4,] 0.2835490
## [5,] 0.7105896
## [6,] -0.5591949
y <- Data$PertumbuhanEkonomi
head(y)
## [1] -2.013510 -1.629305 -1.433369 -1.099172 -1.361608 -1.029555
model_coba1 <- lm (y~x)
summary (model_coba1)
##
## Call:
## lm(formula = y ~ x)
##
## 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
## xEkspor 1.779e-01 1.050e-01 1.694 0.103
## xInvestasi 1.279e-02 6.105e-02 0.209 0.836
## xKonsumsiRT 6.743e-01 1.373e-01 4.910 4.7e-05 ***
## xPengeluaranPemerintah 6.195e-02 3.882e-02 1.596 0.123
## xKonsumsiLSNirlaba 1.257e-01 8.376e-02 1.501 0.146
## xPerubahanInventori 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
Principal Component Analysis (PCA) adalah teknik statistik yang digunakan untuk mengurangi dimensi data dengan cara mengubah peubah asli menjadi komponen utama (principal components). Komponen utama ini adalah kombinasi linear dari peubah-peubah asli yang memaksimalkan variasi dalam data. PCA digunakan untuk menemukan pola dalam data dan menyederhanakan kompleksitas tanpa mengorbankan informasi yang signifikan.
Pada bagian ini, kita membentuk komponen utama dengan menggunakan
fungsi prcomp(). Fungsi ini menghasilkan komponen utama
yang digunakan untuk menganalisis data, dengan opsi untuk melakukan
pemusatan data (centering) terlebih dahulu agar setiap peubah memiliki
rata-rata nol. Hasil PCA akan memberikan informasi tentang kontribusi
masing-masing komponen terhadap variasi data.
PCA <- prcomp (x, center=TRUE)
PCA
## Standard deviations (1, .., p=6):
## [1] 1.8690353 1.3082807 0.7028499 0.4720021 0.2440745 0.1369391
##
## Rotation (n x k) = (6 x 6):
## PC1 PC2 PC3 PC4 PC5
## Ekspor 0.4525029 0.3459633 0.28933014 0.30358643 -0.45895418
## Investasi 0.4047524 -0.4055089 -0.26198164 -0.69512370 -0.24542830
## KonsumsiRT 0.4914327 0.2846336 0.04716929 -0.08632002 -0.24244029
## PengeluaranPemerintah 0.3454316 -0.4613700 -0.51105065 0.63461411 0.02176279
## KonsumsiLSNirlaba 0.4850139 0.2825698 -0.03118287 -0.09580862 0.80421094
## PerubahanInventori -0.1880135 0.5849339 -0.76373006 -0.07261422 -0.15205215
## PC6
## Ekspor 0.53761964
## Investasi 0.24427777
## KonsumsiRT -0.78040007
## PengeluaranPemerintah -0.05859433
## KonsumsiLSNirlaba 0.16735868
## PerubahanInventori 0.10405286
summary (PCA)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 1.8690 1.3083 0.70285 0.47200 0.24407 0.13694
## Proportion of Variance 0.5822 0.2853 0.08233 0.03713 0.00993 0.00313
## Cumulative Proportion 0.5822 0.8675 0.94981 0.98695 0.99687 1.00000
Setelah membentuk komponen utama, kita dapat mengakses data komponen
utama yang disimpan dalam objek PCA$x. Data ini berisi skor
komponen utama yang menunjukkan posisi setiap observasi pada dimensi
baru yang dibentuk oleh komponen utama.
DataPCA <- PCA$x
DataPCA
## PC1 PC2 PC3 PC4 PC5 PC6
## [1,] -3.6810312 0.45908133 -1.074811256 -0.48331635 -0.002434856 -0.120426643
## [2,] -2.5403374 -0.90183143 0.636041246 0.51298842 -0.118927658 0.005410556
## [3,] -1.8565097 -1.13707056 0.463985836 0.15231719 0.031264255 0.058227210
## [4,] -1.4061568 -1.19237486 -0.912251757 0.48675944 -0.197915406 0.241905647
## [5,] -3.1174220 1.11085882 0.581637508 0.80536859 0.111022436 -0.055072416
## [6,] -2.1315903 -0.51017446 0.772267916 0.76435776 0.043933787 -0.091845291
## [7,] -1.5114253 -0.86028069 -0.956444346 -0.81627737 -0.286119673 0.037093405
## [8,] 0.5985345 -4.34754496 0.867355882 -1.14827618 0.074086080 0.097479231
## [9,] -1.8450419 0.70348576 -0.080739759 -0.21649078 0.142279081 0.175985995
## [10,] -1.2446417 0.25884687 -0.394433989 0.03096350 0.353513759 0.167331006
## [11,] -1.0290147 -0.05718611 -0.820219266 -0.17028913 0.082763329 -0.057920756
## [12,] 0.2325293 -2.11968866 0.048015380 0.20951082 0.255703472 -0.092948205
## [13,] -1.4158291 1.10135746 0.624568467 0.38804906 0.069926705 0.110031798
## [14,] -1.0283386 0.90395531 0.112222265 0.08494045 -0.028550588 0.172351886
## [15,] -0.3298277 0.19311835 -0.529515058 -0.18200015 0.027013582 -0.008018838
## [16,] 1.0368272 -2.00592908 -0.605602149 0.18344846 0.352699392 -0.112104931
## [17,] -0.9216657 0.91959693 0.480773295 -0.11120661 -0.054045598 -0.097528575
## [18,] -0.6118602 0.84860096 -0.030818578 -0.01476168 -0.061362247 -0.137938458
## [19,] 0.1152724 0.48791206 -0.346245828 -0.44090803 -0.148327669 -0.095532217
## [20,] 1.5757152 -1.58770344 -0.424627021 0.22893625 0.110312418 -0.113312124
## [21,] -0.1764571 0.37669469 1.134402776 -0.36968860 -0.240306766 -0.251356970
## [22,] 0.2403135 0.97039456 -0.252223577 -0.06979643 -0.273382685 -0.124365143
## [23,] 1.3965959 0.01394150 1.010594421 -0.09622133 -0.548523661 0.122511925
## [24,] 1.7939836 -0.18137098 -1.379819985 0.45158769 -0.312973634 0.026507710
## [25,] 0.6804818 1.29595715 0.910010496 -0.68218366 -0.141014170 0.054143672
## [26,] 1.4382197 0.77679739 0.009387808 0.01954433 0.255312191 -0.272068885
## [27,] 1.9922869 1.14389093 -0.205567670 -0.07337409 -0.180239478 0.165314980
## [28,] 3.4287276 -0.70917042 0.632601143 0.83037215 0.149343484 0.208305827
## [29,] 1.5567803 2.28366002 0.424348633 -0.75315368 0.433029250 0.192904413
## [30,] 2.4181735 1.47221164 -0.667671407 -0.12551594 0.526690067 -0.022442580
## [31,] 3.0543904 -0.04956886 0.856175306 0.15034067 -0.018228802 -0.162716844
## [32,] 3.2883175 0.33953278 -0.883396732 0.45397523 -0.406540394 -0.019906386
Di bagian ini, kita fokus pada dua komponen utama pertama, yaitu PC1 dan PC2. Komponen-komponen ini sering kali cukup representatif untuk menggambarkan sebagian besar variasi dalam data, sehingga mempermudah analisis lebih lanjut. Kita memilih PC1 dan PC2 dan mengonversinya menjadi matriks data untuk digunakan dalam analisis berikutnya.
PC12 <- data.matrix(DataPCA[, c('PC1','PC2')])
PC12
## PC1 PC2
## [1,] -3.6810312 0.45908133
## [2,] -2.5403374 -0.90183143
## [3,] -1.8565097 -1.13707056
## [4,] -1.4061568 -1.19237486
## [5,] -3.1174220 1.11085882
## [6,] -2.1315903 -0.51017446
## [7,] -1.5114253 -0.86028069
## [8,] 0.5985345 -4.34754496
## [9,] -1.8450419 0.70348576
## [10,] -1.2446417 0.25884687
## [11,] -1.0290147 -0.05718611
## [12,] 0.2325293 -2.11968866
## [13,] -1.4158291 1.10135746
## [14,] -1.0283386 0.90395531
## [15,] -0.3298277 0.19311835
## [16,] 1.0368272 -2.00592908
## [17,] -0.9216657 0.91959693
## [18,] -0.6118602 0.84860096
## [19,] 0.1152724 0.48791206
## [20,] 1.5757152 -1.58770344
## [21,] -0.1764571 0.37669469
## [22,] 0.2403135 0.97039456
## [23,] 1.3965959 0.01394150
## [24,] 1.7939836 -0.18137098
## [25,] 0.6804818 1.29595715
## [26,] 1.4382197 0.77679739
## [27,] 1.9922869 1.14389093
## [28,] 3.4287276 -0.70917042
## [29,] 1.5567803 2.28366002
## [30,] 2.4181735 1.47221164
## [31,] 3.0543904 -0.04956886
## [32,] 3.2883175 0.33953278
Di sini, kita juga menggabungkan komponen utama PC1 dan PC2 dengan variabel respons y ke dalam dataset baru yang akan digunakan untuk analisis regresi.
Dalam analisis ini, kita membangun model regresi linier dengan
menggunakan komponen utama sebagai peubah prediktor. Model ini dapat
membantu kita memahami hubungan antara komponen utama dan variabel
respons y. Regresi komponen utama sering digunakan untuk
mengatasi multikolinieritas atau untuk mengurangi dimensi data saat
analisis regresi.
Pada bagian ini, kita membangun model regresi linier Model_ARKU dengan menggunakan komponen utama pertama (PC1) dan kedua (PC2) sebagai peubah prediktor, serta mengevaluasi hasil model melalui ringkasan (summary).
Dataku <- as.data.frame(cbind(y,PC12))
Model_ARKU <- lm (y ~ PC1 + PC2, data=Dataku)
summary (Model_ARKU)
##
## Call:
## lm(formula = y ~ PC1 + PC2, data = Dataku)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.30500 -0.09133 0.01607 0.09070 0.31507
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.373e-16 2.524e-02 0.00 1
## PC1 4.969e-01 1.372e-02 36.21 < 2e-16 ***
## PC2 2.629e-01 1.960e-02 13.41 5.81e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1428 on 29 degrees of freedom
## Multiple R-squared: 0.9809, Adjusted R-squared: 0.9796
## F-statistic: 745.6 on 2 and 29 DF, p-value: < 2.2e-16
Fungsi multicollinearity() dari paket performance digunakan untuk mengevaluasi adanya multikolinieritas dalam model, yang dapat memengaruhi kestabilan dan interpretasi koefisien regresi.
library(performance)
# Uji Multikolinieritas
multicollinearity(Model_ARKU)
## # Check for Multicollinearity
##
## Low Correlation
##
## Term VIF VIF CI Increased SE Tolerance
## PC1 1.00 [1.00, 1.00] 1.00 1.00
## PC2 1.00 [1.00, 1.00] 1.00 1.00