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.
PERTANYAAN
# Input Data
Y <- matrix(c(65, 70, 75, 80, 85, 78, 72, 90, 88, 95), ncol = 1)
X1 <- c(2, 3, 4, 5, 6, 5, 3, 7, 6, 8) # Jumlah jam belajar (jam/minggu)
X2 <- c(60, 65, 70, 75, 80, 72, 68, 85, 83, 90) # Tingkat kehadiran (%)
# Matriks X dengan kolom intercept
X <- cbind(1, X1, X2)
n <- nrow(X) # jumlah observasi = 10
k <- 2 # jumlah variabel independen
Rumus: β̂ = (X’X)^{-1} X’Y
beta_hat <- solve(t(X) %*% X) %*% t(X) %*% Y
rownames(beta_hat) <- c("Intercept (β0)", "X1 - Jam Belajar (β1)", "X2 - Kehadiran (β2)")
print(beta_hat)
## [,1]
## Intercept (β0) 16.1360113
## X1 - Jam Belajar (β1) 1.1698379
## X2 - Kehadiran (β2) 0.7744891
Model Regresi:
Y = 16.1360 + 1.1698X1 + 0.7745X2
Dengan:
Y = Nilai ujian mahasiswa
X₁ = Jam Belajar
X₂ = Kehadiran
Interpretasi Koefisien
Intercept (β₀) = 16.1360
Ini adalah nilai yang didapat jika jam belajar (X1) = 0 dan kehadiran (X2) = 0, maka nilai ujian mahasiswa (Y) diprediksi sebesar 16.1360
Jam Belajar (β₁) = 1.1698
Setiap kenaikan 1 jam belajar (X1), dengan kehadiran konstan (X2), maka nilai ujian mahasiswa (Y) akan naik sebesar 1.1698 poin
Kehadiran (β₂) = 0.7745
Setiap kenaikan 1 satuan kehadiran (X2), dengan jam belajar tetap (X1), maka nilai ujian mahasiswa (Y) akan naik sebesar 0.7745 poin
# --- Komponen Sum of Squares
## prediksi
Y_hat <- X %*% beta_hat
## residual
e <- Y - Y_hat
## rata-rata Y
Y_mean <- mean(Y)
## Total Sum of Squares
SST <- sum((Y - Y_mean)^2)
## Error Sum of Squares
SSE <- sum(e^2)
## Regression Sum of Squares
SSR <- SST - SSE
## Mean Square Regression
MSR <- SSR / k
## Mean Square Error
MSE <- SSE / (n - k - 1)
# --- Uji F
F_hitung <- MSR / MSE
F_tabel <- qf(0.95, df1 = k, df2 = n - k - 1) # α = 0.05
cat("F-hitung:", F_hitung, "\n")
## F-hitung: 5172.116
cat("F-tabel :", F_tabel, "\n")
## F-tabel : 4.737414
Interpretasi
Karena F-hitung (5172.116) > F-tabel (4.737414), maka H₀ ditolak
Artinya Jam Belajar (X1) dan Kehadiran (X2) secara simultan / bersama-sama berpengaruh signifikan terhadap Y
# --- Uji T
var_beta <- MSE * solve(t(X) %*% X)
se_beta <- sqrt(diag(var_beta))
t_hitung <- beta_hat / se_beta
t_tabel <- qt(0.975, df = n - k - 1)
p_value <- 2 * pt(-abs(t_hitung), df = n - k - 1)
hasil_t <- data.frame(
t_hitung = t_hitung,
t_tabel = t_tabel,
p_value = p_value
)
print(hasil_t)
## t_hitung t_tabel p_value
## Intercept (β0) 5.688154 2.364624 7.444177e-04
## X1 - Jam Belajar (β1) 4.201468 2.364624 4.028204e-03
## X2 - Kehadiran (β2) 13.900261 2.364624 2.357834e-06
Interpretasi
t-hitung = 5.688154
t-tabel = 2.364624
p-value = 0.000744
Keputusan:
Karena t-hitung (5.688154) > t-tabel (2.364624) dan p-value (0.000744) < 0.05, maka intercept signifikan
t-hitung = 4.201468
t-tabel = 2.364624
p-value = 0.004028
Keputusan:
Karena t-hitung (4.201468) > t-tabel (2.364624) dan p-value (0.004028) < 0.05, maka H₀ ditolak
Artinya Jam Belajar secara parsial berpengaruh signifikan terhadap variabel Y.
Setiap kenaikan 1 jam belajar, maka nilai Y meningkat sebesar 1.1698, dengan asumsi variabel lain tetap.
t-hitung = 13.900261
t-tabel = 2.364624
p-value = 0.00000236
Keputusan:
Karena t-hitung(13.900261) > t-tabel (2.364624) dan p-value (0.00000236) < 0.05, maka H₀ ditolak
Artinya Kehadiran secara parsial berpengaruh signifikan terhadap variabel Y.
Setiap kenaikan 1 satuan kehadiran, maka nilai Y meningkat sebesar 0.7745, dengan asumsi variabel lain tetap.
R2 <- SSR / SST
Adj_R2 <- 1 - ((SSE / (n - k - 1)) / (SST / (n - 1)))
cat("R²:", R2, "\n")
## R²: 0.9993238
cat("Adjusted R²:", Adj_R2, "\n")
## Adjusted R²: 0.9991305
Interpretasi
R² = 0.9993238
Adjusted R² = 0.9991305
Nilai R² sebesar 0,9993 dan Adjusted R² sebesar 0,9991 menunjukkan bahwa variabel Jam Belajar (X1) dan Kehadiran (X2) mampu menjelaskan variasi pada variabel Y sebesar 99,91%, sedangkan sisanya sebesar 0,09% dijelaskan oleh variabel lain di luar model
model <- lm(Y ~ X1 + X2)
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
Interpretasi
Hasil perhitungan manual metode OLS menunjukkan nilai yang sama dengan output fungsi lm() pada R, baik untuk koefisien regresi, uji t, uji F, maupun koefisien determinasi, sehingga perhitungan manual dinyatakan sesuai dengan hasil fungsi lm.
X1 = 1 jam/minggu, X2 = 100% kehadiran
x_baru <- matrix(c(1, 1, 100), nrow = 1)
y_prediksi <- x_baru %*% beta_hat
cat("Prediksi nilai ujian (X1=1, X2=100):", y_prediksi, "\n")
## Prediksi nilai ujian (X1=1, X2=100): 94.75476
Interpretasi
Berdasarkan hasil prediksi model regresi, jika Jam Belajar (X1) = 1 dan Kehadiran (X2) = 100, maka nilai Y yang diprediksi adalah 94,75