Pada tahap ini seluruh variabel yang dianalisis dikumpulkan dan
dimasukkan ke dalam format yang sesuai untuk dianalisis di R.
Variabel yang dianalisis terdiri dari satu variabel dependen, yaitu
Indeks Pembangunan Manusia (IPM), dan empat variabel independen, yaitu
Angka Harapan Hidup (x1), Harapan Lama Sekolah (x2), Rata-rata Lama
Sekolah (x3), serta Pengeluaran per Kapita (x4).
Data berikut dimasukkan ke dalam R menggunakan
data.frame() agar mudah diolah pada langkah
selanjutnya.
data <- data.frame(
y = c(72.55,74.52,70.97,69.62,72.48,75.16,70.63,72.10,75.96,78.16,
79.30,72.54,78.11,75.53,72.02,71.42,72.53,74.10,77.21,74.32,
74.57,75.67,71.86,74.34,70.73,71.95,68.65,71.70,70.18,82.15,
84.41,85.72,85.24,77.21,77.50),
x1 = c(74.97,74.34,74.19,74.70,75.22,75.64,74.25,74.68,76.44,77.31,
78.01,76.82,77.91,76.18,75.25,74.92,74.98,76.56,77.07,76.21,
75.79,76.15,75.94,74.73,75.01,74.25,74.23,74.25,74.18,77.54,
77.91,78.27,78.23,74.79,75.01),
x2 = c(12.69,13.34,12.03,11.83,13.39,13.55,11.81,12.62,12.67,13.43,
13.92,12.61,13.73,12.93,12.48,12.60,12.30,12.98,13.28,12.86,
13.36,13.06,12.62,13.00,12.17,12.46,12.02,12.96,12.45,14.62,
15.07,15.46,15.57,12.89,13.25),
x3 = c(7.40,7.91,7.36,6.87,7.87,8.65,6.90,7.83,8.17,9.29,
10.01,7.68,9.26,7.88,7.29,7.26,7.73,7.82,9.35,8.27,
8.28,8.16,7.53,7.74,7.08,7.48,6.56,7.36,6.41,11.43,
11.25,11.48,11.05,9.34,9.28),
x4 = c(11868,12960,11343,10595,10176,11584,11980,10926,14195,13513,
12758,10634,12732,13890,11548,10926,11830,11829,12533,11729,
11591,13377,10519,13277,10919,11701,10017,10972,11389,13619,
16291,17096,16990,14547,14358)
)
head(data)
## y x1 x2 x3 x4
## 1 72.55 74.97 12.69 7.40 11868
## 2 74.52 74.34 13.34 7.91 12960
## 3 70.97 74.19 12.03 7.36 11343
## 4 69.62 74.70 11.83 6.87 10595
## 5 72.48 75.22 13.39 7.87 10176
## 6 75.16 75.64 13.55 8.65 11584
Eksplorasi data awal dilakukan untuk memahami karakteristik dasar dari setiap variabel sebelum masuk ke tahap pemodelan regresi. Tahapan ini mencakup pemeriksaan statistik deskriptif, pola hubungan antara variabel dependen dan variabel independen melalui scatterplot, serta analisis korelasi untuk melihat tingkat keeratan hubungan antar-variabel. Melalui eksplorasi ini dapat diketahui apakah data menunjukkan kecenderungan linear, adanya outlier, serta potensi multikolinearitas yang dapat memengaruhi hasil analisis regresi pada tahap berikutnya.
summary(data)
## y x1 x2 x3
## Min. :68.65 Min. :74.18 Min. :11.81 Min. : 6.410
## 1st Qu.:71.91 1st Qu.:74.72 1st Qu.:12.54 1st Qu.: 7.380
## Median :74.32 Median :75.25 Median :12.93 Median : 7.870
## Mean :74.89 Mean :75.77 Mean :13.09 Mean : 8.321
## 3rd Qu.:77.21 3rd Qu.:76.69 3rd Qu.:13.38 3rd Qu.: 9.270
## Max. :85.72 Max. :78.27 Max. :15.57 Max. :11.480
## x4
## Min. :10017
## 1st Qu.:11158
## Median :11830
## Mean :12463
## 3rd Qu.:13445
## Max. :17096
par(mfrow=c(2,2))
# y vs x1
plot(data$x1, data$y,
main="Scatterplot Y vs X1",
xlab="Angka Harapan Hidup (x1)", ylab="IPM (y)",
pch=19, col="steelblue")
abline(lm(y ~ x1, data=data), col="red", lwd=2)
# y vs x2
plot(data$x2, data$y,
main="Scatterplot Y vs X2",
xlab="Harapan Lama Sekolah (x2)", ylab="IPM (y)",
pch=19, col="steelblue")
abline(lm(y ~ x2, data=data), col="red", lwd=2)
# y vs x3
plot(data$x3, data$y,
main="Scatterplot Y vs X3",
xlab="Rata-rata Lama Sekolah (x3)", ylab="IPM(y)",
pch=19, col="steelblue")
abline(lm(y ~ x3, data=data), col="red", lwd=2)
# y vs x4
plot(data$x4, data$y,
main="Scatterplot Y vs X4",
xlab="Pengeluaran per Kapita (x4)", ylab="IPM (y)",
pch=19, col="steelblue")
abline(lm(y ~ x4, data=data), col="red", lwd=2)
par(mfrow=c(1,1))
cor(data)
## y x1 x2 x3 x4
## y 1.0000000 0.8321931 0.9408006 0.9747332 0.8973010
## x1 0.8321931 1.0000000 0.7841912 0.8142769 0.6075231
## x2 0.9408006 0.7841912 1.0000000 0.9195952 0.7727014
## x3 0.9747332 0.8142769 0.9195952 1.0000000 0.8090262
## x4 0.8973010 0.6075231 0.7727014 0.8090262 1.0000000
Uji asumsi regresi dilakukan untuk memastikan bahwa model regresi yang dibangun memenuhi kriteria statistik sehingga hasil analisis dapat diinterpretasikan dengan benar. Asumsi yang diperiksa meliputi: normalitas residual, homoskedastisitas (tidak terjadi heteroskedastisitas), tidak adanya multikolinearitas antarsesama variabel independen, serta tidak adanya autokorelasi pada residual. Jika seluruh asumsi terpenuhi, maka model regresi dinyatakan layak digunakan untuk analisis lebih lanjut.
model <- lm(y ~ x1 + x2 + x3 +x4, data=data)
summary(model)
##
## Call:
## lm(formula = y ~ x1 + x2 + x3 + x4, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.31757 -0.09538 0.00734 0.10454 0.22751
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.0150185 2.2717799 3.088 0.00432 **
## x1 0.4640759 0.0330224 14.053 9.79e-15 ***
## x2 0.9210179 0.0700805 13.142 5.57e-14 ***
## x3 1.3338315 0.0552241 24.153 < 2e-16 ***
## x4 0.0007671 0.0000239 32.101 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1455 on 30 degrees of freedom
## Multiple R-squared: 0.999, Adjusted R-squared: 0.9989
## F-statistic: 7641 on 4 and 30 DF, p-value: < 2.2e-16
library(car)
# Uji Multikolinearitas
vif(model)
## x1 x2 x3 x4
## 3.134733 6.794232 9.264007 3.030677
library(lmtest)
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 2.9885, df = 4, p-value = 0.5598
library(lmtest)
dwtest(model)
##
## Durbin-Watson test
##
## data: model
## DW = 1.8183, p-value = 0.2177
## alternative hypothesis: true autocorrelation is greater than 0
shapiro.test(residuals(model))
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.95594, p-value = 0.1723
Estimasi model adalah tahap untuk menghitung nilai koefisien regresi agar model dapat digunakan memprediksi variabel dependen. Estimasi ini umumnya dilakukan dengan metode Ordinary Least Squares (OLS), yaitu teknik yang paling banyak digunakan dalam analisis regresi karena sederhana dan efisien. Dalam praktiknya, estimasi dapat dilakukan langsung menggunakan fungsi lm() di R, yang secara otomatis menghitung nilai koefisien, residual, dan statistik penting lainnya. Hasil estimasi inilah yang kemudian menjadi dasar untuk uji hipotesis dan evaluasi performa model.
summary(model)$coefficients
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.015018465 2.271780e+00 3.087895 4.315423e-03
## x1 0.464075923 3.302242e-02 14.053357 9.786279e-15
## x2 0.921017907 7.008048e-02 13.142289 5.566566e-14
## x3 1.333831506 5.522414e-02 24.153051 3.242927e-21
## x4 0.000767059 2.389547e-05 32.100598 8.711120e-25
Pengujian hipotesis dilakukan untuk memastikan apakah variabel-variabel independen dalam model memiliki pengaruh yang signifikan terhadap variabel dependen. Pengujian ini mencakup uji F, yang menilai apakah semua variabel independen secara simultan memengaruhi variabel dependen, serta uji t, yang mengevaluasi pengaruh setiap variabel secara individual. Jika nilai p-value dari uji F atau uji t lebih kecil dari tingkat signifikansi (misalnya 0.05), maka dapat disimpulkan bahwa model atau variabel tersebut berpengaruh signifikan. Pengujian ini penting untuk menentukan kelayakan model regresi serta variabel mana yang benar-benar memberikan kontribusi pada perubahan variabel dependen.
anova(model)
## Analysis of Variance Table
##
## Response: y
## Df Sum Sq Mean Sq F value Pr(>F)
## x1 1 448.57 448.57 21186.7 < 2.2e-16 ***
## x2 1 139.72 139.72 6599.3 < 2.2e-16 ***
## x3 1 36.97 36.97 1746.1 < 2.2e-16 ***
## x4 1 21.82 21.82 1030.4 < 2.2e-16 ***
## Residuals 30 0.64 0.02
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(model)
##
## Call:
## lm(formula = y ~ x1 + x2 + x3 + x4, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.31757 -0.09538 0.00734 0.10454 0.22751
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.0150185 2.2717799 3.088 0.00432 **
## x1 0.4640759 0.0330224 14.053 9.79e-15 ***
## x2 0.9210179 0.0700805 13.142 5.57e-14 ***
## x3 1.3338315 0.0552241 24.153 < 2e-16 ***
## x4 0.0007671 0.0000239 32.101 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1455 on 30 degrees of freedom
## Multiple R-squared: 0.999, Adjusted R-squared: 0.9989
## F-statistic: 7641 on 4 and 30 DF, p-value: < 2.2e-16
Evaluasi model dilakukan untuk menilai seberapa baik model regresi yang dibangun mampu menjelaskan variasi pada variabel dependen. Tahapan ini biasanya meliputi pemeriksaan koefisien determinasi (R² dan Adjusted R²) untuk melihat proporsi keragaman data yang dapat dijelaskan oleh model, serta Root Mean Square Error (RMSE) atau ukuran kesalahan lainnya untuk menilai ketepatan prediksi model. Selain itu, residual plot dan grafik diagnostik lainnya digunakan untuk memastikan tidak ada pola tertentu yang tertinggal pada residual. Evaluasi model sangat penting agar model yang digunakan tidak hanya signifikan secara statistik, tetapi juga akurat dan reliabel dalam menggambarkan hubungan antar-variabel.
summary(model)$r.squared
## [1] 0.9990194
summary(model)$adj.r.squared
## [1] 0.9988886
pred <- model$fitted.values
sqrt(mean((data$y - pred)^2))
## [1] 0.1347133
par(mfrow=c(2,2))
plot(model)
par(mfrow=c(1,1))