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)
}
# 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.