Pengantar Model Linier

Analisis Regresi Linier Berganda

Seorang peneliti ingin menganalisis faktor-faktor yang mempengaruhi nilai ujian mahasiswa (Y). Diduga bahwa nilai ujian dipengaruhi oleh:

  • X1 = jumlah jam belajar (jam/minggu)
  • X2 = tingkat kehadiran
  • Y = Nilai ujian

Sebelum melakukan analisis, data terlebih dahulu di input ke dalam R sebagai langkah awal pengolahan data.

#input data
Y  <- c(65,70,75,80,85,78,72,90,88,95)  #nilai ujian
X1 <- c(2,3,4,5,6,5,3,7,6,8)            #jumlah jam belajar
X2 <- c(60,65,70,75,80,72,68,85,83,90)  #tingkat kehadiran
n <- length(Y)
n
## [1] 10
data <- data.frame(Y, X1, X2)
data 
##     Y X1 X2
## 1  65  2 60
## 2  70  3 65
## 3  75  4 70
## 4  80  5 75
## 5  85  6 80
## 6  78  5 72
## 7  72  3 68
## 8  90  7 85
## 9  88  6 83
## 10 95  8 90

Selanjutnya, dilakukan analisis untuk menjawab soal nomor 1, yaitu mengestimasi model regresi linier berganda menggunakan metode OLS berbaris matriks.

# 1. Estimasi Model Menggunakan Metode OLS Berbaris Matrix
# Matrix X (ditambah kolom 1 untuk intercept) dan vektor y
X_mat <- cbind(1, X1, X2)  
Y_mat <- as.matrix(Y)

# Hitung beta
beta_hat <- solve(t(X_mat) %*% X_mat) %*% t(X_mat) %*% Y_mat
print(beta_hat)
##          [,1]
##    16.1360113
## X1  1.1698379
## X2  0.7744891

Interpretasi: Berdasarkan hasil perhitungan parameter menggunakan metode Ordinary Least Square (OLS) berbaris matrix, diperoleh nilai koefisien regresi (\(\hat{\beta}\)) yang terdiri dari intercept dan koefisien masing-masing variabel independen. Model regresi linier berganda yang dihasilkan adalah

\(\hat{Y} = \hat{\beta}_0 + \hat{\beta}_1 X_1 + \hat{\beta}_2 X_2\)

Dimana hasil yang didapatkan dari model tersebut adalah \(\hat{Y} = 16.136 + 1.170 X_1 + 0.774 X_2\). Nilai konstanta (intercept) sebesar 16.136 menunjukkan bahwa jika seorang mahasiswa tidak belajar sama sekali (\(X_1 = 0\)) dan tidak memiliki presentasi kehadiran (\(X_2 = 0\)), maka nilai ujian diprediksi masih tetap sebesar 16.136 poin. Kemudian koefisien regresi untuk variabel jumlah jam belajar (\(X_1\)) adalah 1.170, yang berarti setiap penambahan satu jam belajar dalam seminggu akan berkontribusi terhadap peningkatan nilai ujian mahasiswa sebesar 1.170 poin, dengan asumsi tingkat kehadiran tetap konstan. Selanjutnya untuk variabel tingkat kehadiran (\(X_2\)) mempunyai koefisien sebesar 0.774, yang menunjukkan bahwa setiap kenaikan 1% dalam tingkat kehadiran akan meningkatkan nilai ujian sebesar 0.774 poin, dengan asumsi jumlah belajar tidak berubah. Jadi dapat disimpulkan bahwa secara keseluruhan, kedua variabel ini menunjukkan pengaruh positif terhadap nilai ujian mahasiswa.

Setelah diperoleh model regresi linier berganda pada soal nomor 1, selanjutnya dilakukan pengujian untuk menjawab soal nomor 2, yaitu uji F (untuk melihat apakah variabel independen secara bersama-sama berpengaruh terhadap variabel independen) serta uji t (untuk melihat pengaruh masing-masing variabel secara individu).

# 2. Hitung Uji F dan Uji t secara manual
# Prediksi dan Residual
Y_pred <- X_mat %*% beta_hat
e <- Y_mat - Y_pred

# SSE, SSR, SST
SSE <- sum(e^2)
SSR <- sum((Y_pred - mean(Y))^2)
SST <- sum((Y - mean(Y))^2)

# Derajat Bebas (df)
df_total <- n - 1
df_reg <- 2   # jumlah variabel independen
df_err <- n - 3

# Uji F (Simultan)
MSE <- SSE / df_err
MSR <- SSR / df_reg
F_hitung <- MSR / MSE
p_val_F <- pf(F_hitung, df_reg, df_err, lower.tail = FALSE)
p_val_F
## [1] 8.042129e-12
# Uji t (Parsial)
var_cov_beta <- MSE * solve(t(X_mat) %*% X_mat)
se_beta <- sqrt(diag(var_cov_beta))
t_hitung <- beta_hat / se_beta
p_val_t <- 2 * pt(abs(t_hitung), df_err, lower.tail = FALSE)
p_val_t
##            [,1]
##    7.444177e-04
## X1 4.028204e-03
## X2 2.357834e-06

Interpretasi:

  • Berdasarkan hasil perhitungan uji F secara manual, diperoleh nilai p-value nya yaitu 0,00000000000804, artinya p-value < 0,05, sehingga (\(H_0\) ditolak). Ini menunjukkan bahwa secara simultan, variabel jumlah jam belajar (\(X_1\)) dan tingkat kehadiran (\(X_2\)) berpengaruh signifikansi terhadap nilai ujian mahasiswa (Y).
  • Berdasarkan hasil perhitungan uji t secara manual, diperoleh nilai sebesar 0.0007444 < 0.05 sehingga (\(H_0\) ditolak). Artinya, intercept siginifikan dalam model, yang menunjukkan bahwa nilai konstanta memiliki pengaruh terhadap nilai ujian saat variabel independen bernilai 0. Selanjutnya diperoleh hasil (\(X_1\)) nilai p-value sebesar 0.004028 < 0.05 sehingga (\(H_0\) ditolak). Artinya secara individu variabel jam belajar berpengaruh signifikan terhadap nilai ujian mahasiswa. Semakin tinggi jam belajar, maka nilai ujian cenderung meningkat. Kemudian diperoleh hasil (\(X_2\)) nilai p-value sebesar 0.00000236 sehingga (\(H_0\) ditolak). Artinya secara individu variabel tingkat kehadiran berpengaruh signifikan terhadap nilai ujian. Semakin tinggi tingkat kehadiran, maka nilai ujian cenderung meningkat. Berdasarkan hasil uji F dan uji t yang dihitung secara manual, dapat disimpulkan bahwa variabel jumlah jam belajar dan tingkat kehadiran secara simultan maupun individu berpengaruh signifikan terhadap nilai ujian mahasiswa.

Setelah menghitung uji F dan uji t, selanjutnya menghitung koefisien determinasi \(R^2\) dan \(Adjusted\ R^2\) untuk mengetahu seberapa besar variabel independen dalam menjelaskan variasi variabel dependen.

#3. Hitung nilai R^2 dan Adjusted R^2 secara manual
R_sq <- SSR / SST
R_sq_adj <- 1 - ((1 - R_sq) * (n - 1) / (n - 2 - 1))

cat("R-Squared:", R_sq, "\nAdjusted R-Squared:", R_sq_adj)
## R-Squared: 0.9993238 
## Adjusted R-Squared: 0.9991305

Interpretasi:

  • Berdasarkan hasil koefisien determinasi (\(R^2\)) yang dilakukan secara manual didapatkan hasil nya sebesar 00.9993238, artinya sekitar 99,93% variasi pada variabel dependen (Y) dapat dijelaskan oleh variabel independen yaitu (\(X_1\)) dan (\(X_2\)) dalam model regresi. Sedangkan sisanya sebesar 0.07% dijelaskan oleh faktor lain diluar model.
  • Berdasarkan hasil Adjusted (\(R^2\)) yang dilakukan secara manual didapatkan hasinya sebesar 0.9991305, artinya setelah melakukan penyesuaian untuk jumlah variabel bebas, model masih mampu menjelaskan sekitar 99.91% variasi pada variabel dependen. Ini menunjukkan bahwa model yang dibangun sangat baik dan tidak mengalami masalah overfitting yang siginfikan.

Setelah menyelesaikan perhitungan secara manual di nomor 1 sampai dengan nomor 3, langkah berikutnya adalah melakukan estimasi model regresi linier berganda dengan menggunakan fungsi lm() di R. Tujuannya yaitu untuk membandingkan hasil manual yang didapat dengan hasil yang dihasilkan oleh fungsi bawaan di R.

# 4. Bandingkan Hasil no 1 s.d 3 engan Fungsi lm
# Menggunakan fungsi bawaan R
model_lm <- lm(Y ~ X1 + X2)
summary(model_lm)
## 
## Call:
## lm(formula = Y ~ X1 + X2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.31078 -0.14588 -0.05074  0.04440  0.56237 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 16.13601    2.83677   5.688 0.000744 ***
## X1           1.16984    0.27844   4.201 0.004028 ** 
## X2           0.77449    0.05572  13.900 2.36e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2834 on 7 degrees of freedom
## Multiple R-squared:  0.9993, Adjusted R-squared:  0.9991 
## F-statistic:  5172 on 2 and 7 DF,  p-value: 8.042e-12

Interpretasi: Berdasarkan analisis yang telah dilakukan, baik secara perhitungan manual maupun menggunakan fungsi lm() pada R, didapatkan model regresi linier berganda yang signifikan. Hasil uji F menunjukkan bahwa variabel independen secara simultan berpengaruh signifikan terhadap variabel dependen, sedangkan hasil uji t menunjukkan bahwa setiap variabel independen juga berpengaruh signifikan secara parsial. Kemudian nilai koefisien determinasi (\(R^2\)) dan Adjusted \(R^2\) yang mendekati 1, menunjukkan bahwa model memiliki kemampuan yang sangat baik dalam menjelaskan variasi variabel independen. Hadil yang diperoleh dari fungsi lm() ini juga konsisten dengan perhitungan manual, sehingga bisa disinpulkan bahwa model regresi yang telah dibangun adalah valid dan dapat dipakai untuk analisis lebih lanjut.

Selanjutnya langkah terakhir yaitu dilakukan prediksi terhadap nilai ujian mahasiswa dengan mensubstitusikan nilai variabel independen yang telah ditentukan ke dalam model.

# 5. Prediksikan Nilai Ujian Mahasiswa
X_new <- c(1, 1, 100)    #Intercept=1, X1=1, X2=100
prediksi_nilai <- sum(X_new * beta_hat)
cat("Prediksi nilai ujian:", prediksi_nilai)
## Prediksi nilai ujian: 94.75476

Interpretasi: Berdasarkan hasil perhitungan, di dapatkan nilai prediksi sebesar 94.75476. Hasil ini menunjukkan bahwa jika seorang mahasiswa memiliki jumlah jam belajar sebanyak 1 jam setiap minggu dan tingkat kehadiran sebesar 100%, maka nilai ujian yang diperkirakan adalah 94.75476.