# Regresi untuk Penanganan Multikolinieritas (PCA)
setwd("C:/Users/ASUS/Documents/SEMESTER 5/Data Mining/materi UAS")
# ============================================================================#
# Analisis Regresi Linier Berganda
#install.packages("readxl")
library(readxl) #Memasukkan Data ke R (Excel)
Data <- read_excel("Pertumbuhan Ekonomi SS.xlsx", sheet = "Sheet1")
View(Data)
str(Data)
## tibble [32 × 5] (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 ...
## $ KonsumsiRT : num [1:32] 11920 12058 12361 12394 12415 ...
## $ PengeluaranPemerintah: num [1:32] 1388 2083 2268 3244 1265 ...
dim(Data)
## [1] 32 5
#Histogram Peubah Respons dan Peubah Penjelas
#install.packages("RColorBrewer")
library(RColorBrewer) #Warna Histogram
#install.packages("RColorBrewer")
library(RColorBrewer) #Warna Histogram
display.brewer.all()
hist(Data$PertumbuhanEkonomi, las=1, breaks=8,
main = "Histogram Pertumbuhan Ekonomi",
xlab = "Miliar",
ylab = "Frekuensi",
border = "black",
col = brewer.pal(n = 10, name = "RdBu"))
hist(Data$Ekspor, las=1, breaks=8,
main = "Histogram Ekspor",
xlab = "Miliar",
ylab = "Frekuensi",
border = "black",
col = brewer.pal(n = 10, name = "Set3"))
hist(Data$Investasi, las=1, breaks=8,
main = "Histogram Investasi",
xlab = "Miliar",
ylab = "Frekuensi",
border = "black",
col = brewer.pal(n = 10, name = "Paired"))
hist(Data$KonsumsiRT, las=1, breaks=8,
main = "Histogram Konsumsi Rumah Tangga",
xlab = "Miliar",
ylab = "Frekuensi",
border = "black",
col = brewer.pal(n = 10, name = "RdBu"))
hist(Data$PengeluaranPemerintah, las=1, breaks=8,
main = "Histogram Pengeluaran Pemerintah",
xlab = "Miliar",
ylab = "Frekuensi",
border = "black",
col = brewer.pal(n = 10, name = "PRGn"))
boxplot(Data, las=1,
ylab="Miliar", xlab="Peubah",
main = "Boxplot Peubah Respons dan Peubah Penjelas")
Berdasarkan Gambar 1, terlihat bahwa berdasarkan histogram dan boxplot
setiap peubah menyebar secara normal dan tidak memiliki outliers
(pencilan). Hal ini merupakan deteksi awal bahwa data dapat digunakan
tanpa melakukan transformasi data. Berdasarkan pada Table 2, secara
rata-rata, dan median bahwa aktivitas perekonomian terbanyak adalah
kegiatan ekspor. Hal ini menujukkan bahwa sebagian besar kegiatan
perkekonomian adalah ekspor. Berdasarkan Gambar 2, terlihat bahwa
berdasarkan plot antara pertumbuhan ekonomi dan peubah penjelas, peubah
ekspor dan konsumsi rumah tangga memiliki hubungan yang kuat terhadap
pertumbuhan ekonomi. Peubah investasi dan pengeluaran pemerintah belum
menunjukkan hubungan yang kuat, sehingga masih membutuhkan uji korelasi
secara numerik. ## Plot Peubah Respons dengan Peubah Penjelas
plot(Data$Ekspor, Data$PertumbuhanEkonomi, type="p",
main = "Plot antara Pertumbuhan Ekonomi dan Ekspor (Miliar)")
plot(Data$Investasi, Data$PertumbuhanEkonomi, type="p",
main = "Plot antara Pertumbuhan Ekonomi dan Investasi (Miliar)")
plot(Data$KonsumsiRT, Data$PertumbuhanEkonomi, type="p",
main = "Plot antara Pertumbuhan Ekonomi dan Konsumsi Rumah Tangga (Miliar)")
plot(Data$PengeluaranPemerintah, Data$PertumbuhanEkonomi, type="p",
main = "Plot antara Pertumbuhan Ekonomi dan Pengeluaran Pemerintah (Miliar)")
summary(Data)
## PertumbuhanEkonomi Ekspor Investasi KonsumsiRT
## Min. :24407 Min. :15444 Min. : 4577 Min. :11920
## 1st Qu.:29102 1st Qu.:20191 1st Qu.: 6549 1st Qu.:12937
## Median :31706 Median :22804 Median : 7291 Median :14045
## Mean :31895 Mean :22845 Mean : 7249 Mean :14168
## 3rd Qu.:34815 3rd Qu.:25492 3rd Qu.: 7957 3rd Qu.:15278
## Max. :38420 Max. :29358 Max. :10047 Max. :16632
## PengeluaranPemerintah
## Min. :1265
## 1st Qu.:1735
## Median :2311
## Mean :2502
## 3rd Qu.:3192
## Max. :4059
cor(Data)
## PertumbuhanEkonomi Ekspor Investasi KonsumsiRT
## PertumbuhanEkonomi 1.0000000 0.9468991 0.5139441 0.9898244
## Ekspor 0.9468991 1.0000000 0.3243939 0.9450304
## Investasi 0.5139441 0.3243939 1.0000000 0.5045237
## KonsumsiRT 0.9898244 0.9450304 0.5045237 1.0000000
## PengeluaranPemerintah 0.3854982 0.2415247 0.7759085 0.3446699
## PengeluaranPemerintah
## PertumbuhanEkonomi 0.3854982
## Ekspor 0.2415247
## Investasi 0.7759085
## KonsumsiRT 0.3446699
## PengeluaranPemerintah 1.0000000
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
Sudah cukup bukti untuk mengatakan bahwa terdapat hubungan yang sangat kuat signifikan.
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
Sudah cukup bukti untuk mengatakan bahwa terdapat hubungan yang cukup kuat signifikan
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
Sudah cukup bukti untuk mengatakan bahwa terdapat hubungan yang sangat kuat signifikan
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
Sudah cukup bukti untuk mengatakan bahwa terdapat hubungan yang lemah signifikan
Berdasarkan hasil nilai korelasi pada tabel 3, hubungan antara peubah pertumbuhan ekonomi dengan 4 peubah lainnya secara berturut-turut adalah Konsumsi Rumah Tangga, Ekspor, Investasi, dan Pengeluaran Pemerintah yaitu 0,9898, 0,9469, 0,5139, dan 0,3855. Nilai ini sebagai deteksi awal bahwa seharusnya semua peubah penjelas memiliki pengaruh yang positif terhadap pertumbuhan ekonomi. Selanjutnya, dilakukan analisis regresi linier berganda dan analisis regresi komponen utama, untuk melihat pengaruh peubah penjelas terhadap peubah respons. ## Korelasi Antar Peubah Penjelas
cor(as.matrix(Data[,c("Ekspor","Investasi", "KonsumsiRT","PengeluaranPemerintah")]))
## Ekspor Investasi KonsumsiRT PengeluaranPemerintah
## Ekspor 1.0000000 0.3243939 0.9450304 0.2415247
## Investasi 0.3243939 1.0000000 0.5045237 0.7759085
## KonsumsiRT 0.9450304 0.5045237 1.0000000 0.3446699
## PengeluaranPemerintah 0.2415247 0.7759085 0.3446699 1.0000000
Dapat dilihat korelasi antar peubah penjelas, hal ini dilakukan untuk mengetahui apakah terjadi korelasi tinggi antar peubah penjelas. Berdasarkan hasil yang didapat bahwa terjadi korelasi tinggi antar peubah penjelas yaitu antara peubah ekspor dan konsumsi rumah tangga dan antara peubah investasi dan pengeluaran pemerintah. ## Analisis Regresi Berganda
Model_ARLB <- lm (PertumbuhanEkonomi ~ Ekspor + Investasi + KonsumsiRT + PengeluaranPemerintah, data=Data)
summary (Model_ARLB)
##
## Call:
## lm(formula = PertumbuhanEkonomi ~ Ekspor + Investasi + KonsumsiRT +
## PengeluaranPemerintah, data = Data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1152.85 -204.86 50.33 316.81 858.18
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.990e+03 1.312e+03 -2.279 0.0308 *
## Ekspor 1.594e-01 9.108e-02 1.750 0.0914 .
## Investasi -9.160e-03 1.668e-01 -0.055 0.9566
## KonsumsiRT 2.161e+00 2.589e-01 8.347 5.89e-09 ***
## PengeluaranPemerintah 2.763e-01 1.612e-01 1.714 0.0980 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 496.4 on 27 degrees of freedom
## Multiple R-squared: 0.9845, Adjusted R-squared: 0.9822
## F-statistic: 428.3 on 4 and 27 DF, p-value: < 2.2e-16
model yang terbentuk antara Pertumbuhan Ekonomi dengan 4 peubah lainnya, diperoleh model Y = −2.989,7480 +0,1594X1–0,0092X2 + 2,1610X3 +0,2763X4
Nilai ini bermakna bahwa setiap peningkatan satu miliar Ekspor, Investasi, Konsumsi Rumah Tangga, dan Pengeluaran Pemerintah akan meningkatkan rata-rata Pertumbuhan Ekonomi sebesar 0,1594 , –0,0092 , 2,1610, dan 0,2763 (miliar). Berdasarkan hasil analisis, terdapat peubah penjelas yang memiliki pengaruh negatif adalah peubah Investasi yaitu –0,0092. Hasil analisis regresi linier berganda tidak sejalan dengan hasil korelasi antara peubah respons dengan peubah penjelas. ## Uji Asumsi Klasik
#install.packages("performance")
library(performance)
# Uji Normalitas
check_normality(Model_ARLB)
## OK: residuals appear as normally distributed (p = 0.255).
# Uji Heteroskedastisitas
check_heteroscedasticity(Model_ARLB)
## Warning: Heteroscedasticity (non-constant error variance) detected (p = 0.010).
multicollinearity(Model_ARLB)
## # Check for Multicollinearity
##
## Low Correlation
##
## Term VIF VIF 95% CI Increased SE Tolerance
## Investasi 4.11 [ 2.67, 6.82] 2.03 0.24
## PengeluaranPemerintah 2.67 [ 1.83, 4.36] 1.63 0.38
## Tolerance 95% CI
## [0.15, 0.38]
## [0.23, 0.55]
##
## High Correlation
##
## Term VIF VIF 95% CI Increased SE Tolerance Tolerance 95% CI
## Ekspor 13.90 [ 8.37, 23.57] 3.73 0.07 [0.04, 0.12]
## KonsumsiRT 16.80 [10.07, 28.55] 4.10 0.06 [0.04, 0.10]
model 1 yang telah dilakukan memiliki nilai VIF > 10 dan Tolerance < 0,1 pada peubah ekspor dan konsumsi rumah tangga. Peubah yang memiliki nilai VIF > 10 dan Tolerance < 0,1 mengakibatkan pelanggaran asumsi pada data tersebut, maka disimpulkan bahwa terjadi masalah multikolinearitas. ## Uji Autokorelasi
# Uji Autokorelasi
check_autocorrelation(Model_ARLB)
## Warning: Autocorrelated residuals detected (p = 0.002).
model_performance(Model_ARLB,metrics = "all")
## # Indices of model performance
##
## AIC | AICc | BIC | R2 | R2 (adj.) | RMSE | Sigma
## -------------------------------------------------------------------
## 494.643 | 498.003 | 503.438 | 0.984 | 0.982 | 455.939 | 496.364
nilai adjusted R2 adalah 0,982 atau 98,20%, artinya sebesar 98,20% keragaman dari peubah pertumbuhan ekonomi dapat dijelaskan oleh peubah penjelas yang terdapat dalam model tersebut. Sisanya sebesar 1,80% dijelaskan oleh peubah lainnya yang tidak termasuk ke dalam model regresi. Beberapa ukuran nilai lainnya akan digunakan dalam penentuan model terbaik. ## Hasil Prediksi Model (y_dugaARLB)
y_dugaARLB <- predict(Model_ARLB)
y_dugaARLB
## 1 2 3 4 5 6 7 8
## 25559.95 26612.30 27327.46 27719.54 27386.12 27826.94 28248.08 28627.45
## 9 10 11 12 13 14 15 16
## 28625.26 29074.28 29813.50 30256.38 30187.60 30561.75 31348.18 31667.47
## 17 18 19 20 21 22 23 24
## 31415.20 31921.87 32823.21 33344.30 32878.19 33748.02 34958.60 35064.54
## 25 26 27 28 29 30 31 32
## 34537.17 35607.88 36457.24 37139.89 36140.98 37152.21 38010.90 38603.36
cor.test (Data$PertumbuhanEkonomi, y_dugaARLB)
##
## Pearson's product-moment correlation
##
## data: Data$PertumbuhanEkonomi and y_dugaARLB
## t = 43.63, df = 30, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.9839397 0.9962314
## sample estimates:
## cor
## 0.9922119
# ============================================================================#
x <- data.matrix(Data[, c('Ekspor', 'Investasi', 'KonsumsiRT','PengeluaranPemerintah')])
head(x)
## Ekspor Investasi KonsumsiRT PengeluaranPemerintah
## [1,] 15443.83 6070.14 11919.53 1388.04
## [2,] 18961.48 5996.57 12057.78 2083.34
## [3,] 19064.53 6694.59 12360.51 2267.53
## [4,] 19400.01 7164.88 12394.40 3243.64
## [5,] 20312.28 4576.75 12414.77 1265.14
## [6,] 20089.67 5706.60 12528.48 2137.20
y <- Data$PertumbuhanEkonomi
head(y)
## [1] 24407.10 25835.93 26564.60 27807.45 26831.47 28066.35
model_coba <- lm (y~x)
summary (model_coba)
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1152.85 -204.86 50.33 316.81 858.18
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.990e+03 1.312e+03 -2.279 0.0308 *
## xEkspor 1.594e-01 9.108e-02 1.750 0.0914 .
## xInvestasi -9.160e-03 1.668e-01 -0.055 0.9566
## xKonsumsiRT 2.161e+00 2.589e-01 8.347 5.89e-09 ***
## xPengeluaranPemerintah 2.763e-01 1.612e-01 1.714 0.0980 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 496.4 on 27 degrees of freedom
## Multiple R-squared: 0.9845, Adjusted R-squared: 0.9822
## F-statistic: 428.3 on 4 and 27 DF, p-value: < 2.2e-16
PCA <- prcomp (x, center=TRUE)
PCA
## Standard deviations (1, .., p=4):
## [1] 3916.7451 1273.6103 500.4547 293.9267
##
## Rotation (n x k) = (4 x 4):
## PC1 PC2 PC3 PC4
## Ekspor 0.92927908 0.1862035 0.1671404 0.2717218
## Investasi 0.10668145 -0.7563804 -0.4698159 0.4424712
## KonsumsiRT 0.34723229 -0.1483787 -0.4463423 -0.8112904
## PengeluaranPemerintah 0.06700139 -0.6092625 0.7430449 -0.2686902
terdapat 4 komponen utama yang terbentuk dengan koefisien masing masing yaitu positif dan negatif. Koefiiesn tersebut digunakan untuk menghitung skor komponen utama sebagai lanjutan dari analisis regresi komponen utama.
summary (PCA)
## Importance of components:
## PC1 PC2 PC3 PC4
## Standard deviation 3916.7451 1.274e+03 500.45472 293.92666
## Proportion of Variance 0.8868 9.376e-02 0.01448 0.00499
## Cumulative Proportion 0.8868 9.805e-01 0.99501 1.00000
memiliki nilai Cumulative Proportion untuk PC1 sebesar 88,68%, sehingga dapat disimpulkan bahwa komponen utama yang terbentuk adalah 1 komponen utama (PC1). Selanjutnya, komponen tersebut dapat digunakan untuk analisis lanjutan yaitu Analisis Regresi Komponen Utama.
DataPCA <- PCA$x
View(DataPCA)
PC1 <- data.matrix(DataPCA[, c('PC1')])
head(PC1)
## [,1]
## [1,] -7858.967
## [2,] -4503.346
## [3,] -4215.660
## [4,] -3776.565
## [5,] -3330.407
## [6,] -3318.826
#PC2 <- data.matrix(DataPCA[, c('PC2')])
#head(PC2)
# Analisis Regresi Komponen Utama
Model_ARKU <- lm (y ~ PC1)
summary (Model_ARKU)
##
## Call:
## lm(formula = y ~ PC1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2012.7 -668.1 232.3 864.5 1355.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.190e+04 1.757e+02 181.6 <2e-16 ***
## PC1 9.161e-01 4.557e-02 20.1 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 993.7 on 30 degrees of freedom
## Multiple R-squared: 0.9309, Adjusted R-squared: 0.9286
## F-statistic: 404.2 on 1 and 30 DF, p-value: < 2.2e-16
# Package "performance"
#install.packages("performance")
library(performance)
# Uji Normalitas
check_normality(Model_ARKU)
## OK: residuals appear as normally distributed (p = 0.051).
check_heteroscedasticity(Model_ARKU)
## OK: Error variance appears to be homoscedastic (p = 0.402).
multicollinearity(Model_ARKU)
## Not enough model terms in the conditional part of the model to check for
## multicollinearity.
## NULL
# Uji Autokorelasi
check_autocorrelation(Model_ARKU)
## OK: Residuals appear to be independent and not autocorrelated (p = 0.080).
# Cek Performa/Kinerja Model
model_performance(Model_ARKU,metrics = "all")
## # Indices of model performance
##
## AIC | AICc | BIC | R2 | R2 (adj.) | RMSE | Sigma
## -------------------------------------------------------------------
## 536.442 | 537.299 | 540.839 | 0.931 | 0.929 | 962.190 | 993.746
# Hasil Prediksi Model (y_dugaARLB)
y_dugaARKU <- predict(Model_ARKU)
y_dugaARKU
## 1 2 3 4 5 6 7 8
## 24695.58 27769.67 28033.22 28435.47 28844.20 28854.80 27330.41 27745.72
## 9 10 11 12 13 14 15 16
## 29334.87 29446.59 29029.97 29583.29 31667.93 31630.44 30889.32 30306.07
## 17 18 19 20 21 22 23 24
## 31654.30 31695.56 32065.26 32262.37 32721.70 33382.46 36078.74 34441.15
## 25 26 27 28 29 30 31 32
## 35001.92 34466.13 36818.18 38192.51 36411.66 36110.72 37676.03 38069.56
cor.test (y, y_dugaARKU)
##
## Pearson's product-moment correlation
##
## data: y and y_dugaARKU
## t = 20.104, df = 30, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.9285209 0.9828608
## sample estimates:
## cor
## 0.9648317