regresiberganda <- function(X, y) {
# Mencari X transpose
Xtranspose <- t(X)
# X transpose dikali X
XX <- Xtranspose %*% X
# X transpose dikali y
Xy <- Xtranspose %*% y
# invers dari X transpose dikali X
XXinverse <- solve(XX)
# mencari koefisien regresi
beta_hat <- XXinverse %*% Xy
# Mengembalikan nilai koefisien regresi
return(beta_hat)
}
# Contoh pengaplikasian fungsi di atas
X <- cbind(1, c(2, 3, 4, 5)) # Matriks variabel bebas (X0 dan x1)
y <- c(25, 45, 65, 85) # Vektor variabel tak bebas (y)
koefisien <- regresiberganda(X, y)
print(koefisien)
## [,1]
## [1,] -15
## [2,] 20
# Penggunaan Fungsi Jika Mengunakan Bilangan Acak
set.seed(123)
n_obs <- 100
n_vars <- 3
X <- cbind(1, matrix(rnorm(n_obs * n_vars), nrow = n_obs))
# Menghasilkan vektor koefisien acak untuk variabel independen
true_coefficients <- matrix(rnorm(n_vars + 1), ncol = 1)
# Membangun vektor variabel tak bebas y berdasarkan matriks X dan koefisien acak
y <- X %*% true_coefficients + rnorm(n_obs)
# Memanggil fungsi regresiberganda untuk menghitung koefisien regresi
koefisien <- regresiberganda(X, y)
print(koefisien)
## [,1]
## [1,] -0.7137446
## [2,] -0.7850047
## [3,] -0.8780735
## [4,] -1.1584714