DATA

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 (%) Peneliti mengumpulkan data dari 10 mahasiswa sebagai berikut:

PERTANYAAN

  1. Estimasikan model regresi linier berganda menggunakan metode OLS berbasis matriks dan interpretasikan hasilnya?
  2. Hitung Uji F dan uji t secara manual dan interpretasikan hasilnya?
  3. Hitung nilai R² dan Adjusted R² secara manual dan interpretasikan hasilnya?
  4. Bandingkan hasil no 1 s.d 3 dengan fungsi lm.
  5. Prediksikan nilai ujian mahasiswa jika jumlah jam belajar 1 jam/minggu namun kehadirannya 100%?
# --- Persiapan Data ---
y <- c(65, 70, 75, 80, 85, 78, 72, 90, 88, 95)
x1 <- c(2, 3, 4, 5, 6, 5, 3, 7, 6, 8)
x2 <- c(60, 65, 70, 75, 80, 72, 68, 85, 83, 90)

No.1: Estimasi OLS Berbasis Matriks

# Membuat matriks X (tambahkan kolom 1 untuk intercept) dan matriks Y
X <- cbind(1, x1, x2)       # matriks x
Y <- matrix(y, ncol = 1)    # matriks y

# Rumus OLS Matriks: beta = (X'X)^-1 * X'Y
XtX <- t(X) %*% X
XtY <- t(X) %*% Y
beta <- solve(XtX) %*% XtY

cat("--- Hasil Estimasi Parameter (Beta) ---\n")
## --- Hasil Estimasi Parameter (Beta) ---
print(beta)
##          [,1]
##    16.1360113
## x1  1.1698379
## x2  0.7744891

Berdasarkan hasil estimasi menggunakan metode OLS berbasis matriks, didapatkan persamaan regresi sebagai berikut:

\[Y = 16.136 + 1.170X_1 + 0.774X_2\]

1. Konstanta/Intercept (\(\beta_0 = 16.136\))

Artinya, jika variabel Jam Belajar (\(X_1\)) dan Tingkat Kehadiran (\(X_2\)) bernilai nol (mahasiswa tidak belajar dan tidak pernah hadir), maka nilai ujian mahasiswa diprediksi sebesar 16.136.

2. Koefisien Regresi \(X_1\) (\(\beta_1 = 1.170\))

Menunjukkan bahwa setiap penambahan 1 jam belajar per minggu, maka nilai ujian mahasiswa (\(Y\)) akan meningkat sebesar 1.170 poin, dengan asumsi tingkat kehadiran (\(X_2\)) dianggap tetap (konstan). Ini membuktikan adanya pengaruh positif dari durasi belajar terhadap hasil ujian.

3. Koefisien Regresi \(X_2\) (\(\beta_2 = 0.774\))

Menunjukkan bahwa setiap kenaikan 1% tingkat kehadiran, maka nilai ujian mahasiswa (\(Y\)) akan meningkat sebesar 0.774 poin, dengan asumsi jumlah jam belajar (\(X_1\)) dianggap tetap. Kehadiran yang rajin di kelas berkontribusi positif terhadap pencapaian nilai mahasiswa.

No.2: Uji F dan Uji t Secara Manual

# 1. Nilai Prediksi (Y_hat) dan Residual (e)
Y_hat <- X %*% beta      
e <- Y - Y_hat          

# 2. Sum of Squares
SSE <- sum(e^2) 
Y_mean <- mean(y)
SST <- sum((y - Y_mean)^2)
SSR <- SST - SSE

# 3. Hitung Derajat Bebas (df)
k <- 2                            # Jumlah variabel bebas
n <- length(y)
df_reg <- k
df_err <- n - k - 1

— Uji F (Simultan) —

# Uji F
MSR <- SSR / df_reg
MSE <- SSE / df_err

F_hitung <- MSR / MSE
F_tabel <- qf(0.05, k, (n - k - 1), lower.tail = FALSE)
p_value <- pf(F_hitung, k, (n - k - 1), lower.tail = FALSE)

cat("Hasil Perhitungan Uji F:\n")
## Hasil Perhitungan Uji F:
cat("F hitung:", F_hitung, "\n")
## F hitung: 5172.116
cat("F-Tabel  :", F_tabel, "\n")
## F-Tabel  : 4.737414
cat("p-value :", p_value, "\n")
## p-value : 8.042129e-12

Uji F digunakan untuk mengetahui apakah Jam Belajar (\(X_1\)) dan Kehadiran (\(X_2\)) secara bersama-sama berpengaruh terhadap Nilai Ujian (\(Y\)). Berdasarkan hasil perhitungan diperoleh:

  • F hitung = 5172.116
  • F tabel = 4.737
  • p-value = 8.042 × 10⁻¹²

Karena \(F_{hitung} > F_{tabel}\) (\(5172.116 > 4.737\)) dan \(p\text{-value} < 0.05\), maka Tolak \(H_0\). Artinya, secara simultan (bersama-sama), jumlah jam belajar dan tingkat kehadiran berpengaruh signifikan terhadap nilai ujian mahasiswa.

— Uji t (Parsial) —

# Standard Error of Coefficients
var_beta <- MSE * solve(XtX)
se_beta <- sqrt(diag(var_beta))

t_hitung <- beta / se_beta
t_tabel <- qt(0.975, n - k - 1)
p_val <- 2 * pt(abs(t_hitung), df_err, lower.tail = FALSE)

t_result <- data.frame(Estimasi = beta, SE = se_beta, t_stat = t_hitung, p_val = p_val)
print(t_result)
##      Estimasi         SE    t_stat        p_val
##    16.1360113 2.83677490  5.688154 7.444177e-04
## x1  1.1698379 0.27843551  4.201468 4.028204e-03
## x2  0.7744891 0.05571759 13.900261 2.357834e-06

Uji t bertujuan untuk mengetahui apakah masing-masing variabel independen secara individu berpengaruh signifikan terhadap variabel dependen (Nilai Ujian).Dengan tingkat kepercayaan 95% (\(\alpha = 0.05\)) dan derajat bebas (\(df = 7\)), nilai t-tabel adalah sekitar 2.365.

1. Intercept (β₀)

  • t-hitung: \(5.688\)
  • p-value: \(0.000744\) (di bawah \(0.05\))

Kesimpulan: Tolak \(H_0\). Ini menunjukkan bahwa konstanta (\(16.136\)) berpengaruh signifikan terhadap model. Artinya, secara statistik terdapat nilai dasar ujian yang nyata bagi mahasiswa meskipun variabel jam belajar dan kehadiran bernilai nol.

2. Variabel Jam Belajar (\(X_1\))

  • t-hitung: \(4.201\)
  • p-value: \(0.0040\)

Kesimpulan: Karena \(t_{hitung} (4.201) > t_{tabel} (2.365)\) dan \(p\text{-value} (0.0040) < 0.05\), maka H0 ditolak. Artinya, Jumlah Jam Belajar berpengaruh signifikan secara positif terhadap Nilai Ujian mahasiswa. Setiap penambahan jam belajar akan memberikan kontribusi nyata pada peningkatan nilai.

3. Variabel Tingkat Kehadiran (\(X_2\))

  • t-hitung: \(13.900\)
  • p-value: \(0.00000236\)

Kesimpulan: Karena \(t_{hitung} (13.900) > t_{tabel} (2.365)\) dan \(p\text{-value}\) yang sangat kecil (\(< 0.05\)), maka H0 ditolak. Artinya, Tingkat Kehadiran berpengaruh sangat signifikan terhadap Nilai Ujian mahasiswa. Variabel kehadiran memiliki pengaruh yang lebih kuat dibandingkan jam belajar dalam model ini.

No.3: Menghitung R2 dan Adjusted R2

# Koefisien Determinasi (R^2)
R2 <- SSR / SST

# Adjusted R^2
Adj_R2 <- 1 - ((SSE / (n - k - 1)) / (SST / (n - 1)))

cat("\n\n--- Koefisien Determinasi ---")
## 
## 
## --- Koefisien Determinasi ---
cat("\nR-Squared (R2)         :", R2)
## 
## R-Squared (R2)         : 0.9993238
cat("\nAdjusted R-Squared     :", Adj_R2)
## 
## Adjusted R-Squared     : 0.9991305

R-Squared (\(R^2 = 0.9993\)):

Nilai \(R^2\) sebesar 0.9993 (atau 99.93%) menunjukkan bahwa variasi Nilai Ujian (\(Y\)) dapat dijelaskan dengan sangat baik oleh variabel Jam Belajar (\(X_1\)) dan Tingkat Kehadiran (\(X_2\)) secara bersama-sama. Hanya sebesar 0.07% sisanya yang diprediksi dipengaruhi oleh faktor-faktor lain di luar model ini.

Adjusted R-Squared (\(0.9991\)):

Nilai Adjusted \(R^2\) sebesar 0.9991 (atau 99.91%) merupakan nilai yang telah disesuaikan dengan jumlah variabel independen dan ukuran sampel. Karena nilainya tetap sangat tinggi dan hampir sama dengan \(R^2\), ini menunjukkan bahwa model yang digunakan sangat efisien dan kedua variabel independen (\(X_1\) dan \(X_2\)) benar-benar memberikan kontribusi yang nyata dalam memprediksi nilai ujian.

No.4: Perbandingan dengan Fungsi lm()

# Membuat model regresi menggunakan fungsi lm
model_r <- lm(y ~ x1 + x2)
summary_model <- summary(model_r)

cat("--- Output Fungsi lm() ---\n")
## --- Output Fungsi lm() ---
print(summary_model)
## 
## 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
# --- Perbandingan Hasil ---

# Membandingkan Koefisien
cat("\n--- Perbandingan Koefisien ---")
## 
## --- Perbandingan Koefisien ---
cat("\nManual (Matriks):\n")
## 
## Manual (Matriks):
print(as.vector(beta))
## [1] 16.1360113  1.1698379  0.7744891
cat("\nFungsi lm():\n")
## 
## Fungsi lm():
print(coef(model_r))
## (Intercept)          x1          x2 
##  16.1360113   1.1698379   0.7744891
# Membandingkan R-Squared
cat("\n--- Perbandingan R-Squared ---")
## 
## --- Perbandingan R-Squared ---
cat("\nManual  :", R2)
## 
## Manual  : 0.9993238
cat("\nlm()    :", summary_model$r.squared)
## 
## lm()    : 0.9993238
# Membandingkan F-Statistic
cat("\n--- Perbandingan F-Statistic ---")
## 
## --- Perbandingan F-Statistic ---
cat("\nManual  :", F_hitung)
## 
## Manual  : 5172.116
cat("\nlm()    :", summary_model$fstatistic[1])
## 
## lm()    : 5172.116

Berdasarkan hasil pengujian di atas, perbandingan antara perhitungan manual (metode matriks) dengan fungsi bawaan R (lm) adalah sebagai berikut:

1. Koefisien Regresi (\(\beta\))

Nilai estimasi untuk Intercept (\(16.136\)), koefisien \(X_1\) (\(1.169\)), dan koefisien \(X_2\) (\(0.774\)) pada perhitungan matriks identik (sama persis) dengan output fungsi lm(). Hal ini memvalidasi bahwa estimasi OLS berbasis matriks yang dilakukan di nomor 1 sudah benar.

2. Statistik Uji (\(t\) dan \(F\))

Nilai \(F_{hitung}\) sebesar 5172.116 dan nilai \(t_{hitung}\) untuk masing-masing variabel menunjukkan angka yang sama antara hitungan manual di nomor 2 dengan ringkasan (summary) model lm. Keduanya menunjukkan tingkat signifikan yang sangat tinggi (\(p < 0.05\)).

3. Koefisien Determinasi (\(R^2\) dan Adjusted \(R^2\))

Nilai \(R^2\) sebesar 0.9993 dan Adjusted \(R^2\) sebesar 0.9991 dari hasil manual di nomor 3 terbukti akurat karena sama dengan hasil otomatis dari fungsi lm.

Kesimpulan: Metode manual berbasis matriks memberikan hasil yang sangat akurat dan konsisten dengan fungsi standar R. Hal ini memberikan keyakinan bahwa model yang dibangun sangat stabil dan dapat diandalkan untuk melakukan prediksi.

No.5: Prediksi Nilai Ujian

# Data baru yang akan diprediksi
x1_baru <- 1
x2_baru <- 100

# 1. Cara Manual (Menggunakan koefisien beta dari nomor 1)
y_pred_manual <- beta[1] + (beta[2] * x1_baru) + (beta[3] * x2_baru)

# 2. Cara Fungsi predict() (Menggunakan model dari nomor 4)
data_baru <- data.frame(x1 = 1, x2 = 100)
y_pred_r <- predict(model_r, newdata = data_baru)

cat("Hasil Prediksi:\n")
## Hasil Prediksi:
round(y_pred_manual, 2)
## [1] 94.75
round(y_pred_r, 2)
##     1 
## 94.75

Berdasarkan model regresi yang telah diestimasi, didapatkan persamaan regresi sebagai berikut:

\[Y = 16.136 + 1.170X_1 + 0.774X_2\]

Hasil prediksi menunjukkan bahwa mahasiswa dengan jumlah jam belajar 1 jam per minggu dan tingkat kehadiran 100% memiliki nilai ujian yang diperkirakan sebesar 94.75. Nilai prediksi yang diperoleh secara manual dan menggunakan fungsi predict() di R menunjukkan hasil yang sama, sehingga model yang digunakan telah konsisten dan valid.

KESIMPULAN AKHIR

Berdasarkan seluruh tahapan analisis regresi linier berganda yang telah dilakukan terhadap faktor-faktor yang mempengaruhi nilai ujian mahasiswa, dapat disimpulkan beberapa poin utama sebagai berikut:

  1. Model regresi yang terbentuk (\(Y = 16.136 + 1.170X_1 + 0.774X_2\)) memiliki tingkat akurasi yang luar biasa dengan nilai \(R^2\) sebesar 99.93%. Hal ini menunjukkan bahwa variasi nilai ujian hampir seluruhnya dipengaruhi oleh jam belajar dan kehadiran dalam data ini.

  2. Hasil perhitungan manual menggunakan metode matriks terbukti identik (100% sama) dengan hasil fungsi otomatis lm() di R. Ini memvalidasi bahwa seluruh tahapan estimasi parameter, uji statistik (F dan t), serta koefisien determinasi telah dilakukan dengan benar.

  3. Baik jumlah jam belajar maupun tingkat kehadiran terbukti memiliki pengaruh yang signifikan dan positif terhadap nilai ujian, baik secara simultan (bersama-sama) maupun secara parsial (individu).

  4. Meskipun kedua variabel berpengaruh, variabel Tingkat Kehadiran (\(X_2\)) memiliki nilai signifikansi (t-stat) yang jauh lebih kuat dibandingkan jam belajar. Hal ini dipertegas pada hasil prediksi, di mana mahasiswa dengan kehadiran 100% tetap diprediksi mendapatkan nilai sangat tinggi (94.75) meskipun jam belajarnya minim.

“Untuk mendapatkan nilai ujian yang maksimal, mahasiswa sangat disarankan untuk menjaga tingkat kehadiran tetap tinggi di samping menambah jam belajar mandiri secara rutin.”