Membuat Fungsi untuk menghitung nilai dugaan koefisien regresi berganda dengan rumus β^​=(X′X)−1X′y

hitung_beta <- function(X, y) {
  # Pastikan package MASS sudah terinstall dan dimuat
  if (!requireNamespace("MASS", quietly = TRUE)) {
    install.packages("MASS")
  }
  library(MASS)

  # Tambahkan intercept jika belum ada
  if (!all(X[,1] == 1)) {
    X <- cbind(1, X)
  }

  # Hitung beta menggunakan generalized inverse
  beta <- ginv(t(X) %*% X) %*% t(X) %*% y
  return(beta)
}

Contoh

# Data contoh
X <- matrix(c(1, 2, 3, 4, 5, 6), ncol=2) # 3 observasi, 2 variabel independen
y <- c(7, 8, 9) # variabel dependen

# Hitung beta
hitung_beta(X, y)
## Warning: package 'MASS' was built under R version 4.4.3
##            [,1]
## [1,]  0.8181818
## [2,] -0.7272727
## [3,]  1.7272727

Misalkan model regresinya:

y^=β0+β1X1+β2X2

Berdasarkan output:

y^=0.8182−0.7273X1+1.7273X2

Artinya:

  • Intercept (0.8182): Ketika X1=0 dan X2=0, maka nilai prediksi y^ adalah sekitar 0.818.

  • Koefisien X1 (-0.7273): Setiap kenaikan 1 unit pada X1​, dengan X2​ tetap, akan menurunkan y^ ​ sebesar 0.7273.

  • Koefisien X2 (1.7273): Setiap kenaikan 1 unit pada X2​, dengan X1​ tetap, akan meningkatkan y^ ​ sebesar 1.7273.