1. Tahap Pengumpulan Data

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

2. Eksplorasi Data

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.

Statistik Deskriptif

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

Scatterplot antara variabel dependen (Y) dan setiap variabel independen (X)

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))

Korelasi

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

3. Uji Asumsi klasik

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.

Membentuk Model

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

Uji Multikolinearitas (VIF)

library(car)

# Uji Multikolinearitas
vif(model)
##       x1       x2       x3       x4 
## 3.134733 6.794232 9.264007 3.030677

Uji Heteroskedastisitas (Breusch-Pagan Test)

library(lmtest)
bptest(model)
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 2.9885, df = 4, p-value = 0.5598

Uji Autokorelasi (Durbin-Watson)

library(lmtest)
dwtest(model)
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 1.8183, p-value = 0.2177
## alternative hypothesis: true autocorrelation is greater than 0

Uji Normalitas Residual (Shapiro-Wilk)

shapiro.test(residuals(model))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(model)
## W = 0.95594, p-value = 0.1723

4. Estimasi Model

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

5. Pengujian Hipotesis

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.

Uji Signifikansi Simultan (Uji F)

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

Uji Parsial (Uji t)

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

6. Evaluasi Model

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.

R-Square

summary(model)$r.squared
## [1] 0.9990194
summary(model)$adj.r.squared
## [1] 0.9988886

RMSE

pred <- model$fitted.values
sqrt(mean((data$y - pred)^2))
## [1] 0.1347133

Plot Diagnostik

par(mfrow=c(2,2))
plot(model)

par(mfrow=c(1,1))