R/ridgereg.R

Defines functions coef.ridgereg predict.ridgereg print.ridgereg ridgereg ridgereg

Documented in ridgereg

#' @author mahnaz
#' @description Ridge regression
#' @details Computations using least squares
#' @export ridgereg
#' @param formula 
#' @param data 
#' @param lambda 

ridgereg <- function(formula, data, lambda){
  x <- model.matrix(formula,data)
  y <- as.matrix( data[all.vars(formula)[1]])
  betahat_ridge <- solve(t(x)%*%x+lambda*diag(ncol(x)))%*%(t(x)%*%y)
  betahat_ridge1 <- t(betahat_ridge)
  row.names(betahat_ridge1) <- ""
  colnames(betahat_ridge1) <- c("","Speciesversicolor","Speciesvirginica")
  yhat <- x%*% betahat_ridge
  yhat1 <- t(yhat)
  row.names(yhat1) <- ""
  obj_result <- list(coefficients = betahat_ridge1,fitted.values = yhat1,call=match.call())
  class(obj_result) <- "ridgereg"
  return(obj_result)
  
}
#mod_object <- ridgereg(Petal.Length~Species, data = iris,lambda = 1)

ridgereg <- function(formula, data, lambda){
  x <- model.matrix(formula,data)
  y <-as.matrix( data[all.vars(formula)[1]])
  QRy <- t(x)%*%y
  QR <- qr(crossprod(x)+lambda*diag(ncol(x)))
  betahat_ridge <- qr.solve(QR, QRy)
  betahat_ridge1 <- t(betahat_ridge)
  row.names(betahat_ridge1) <- ""
  colnames(betahat_ridge1) <- c("","Speciesversicolor","Speciesvirginica")
  yhat <- t(x%*% betahat_ridge)
  row.names(yhat) <- ""
  result <- list(coefficients = betahat_ridge1,fitted.values = yhat,call=match.call())
  class(result) <- "ridgereg"
  return(result)
  
}
#mod_object <- ridgereg(Petal.Length~Species, data = iris,lambda = 1)


print.ridgereg <- function(obj){
  cat("Call:\n")
  print(obj$call)
  cat("\nCoefficient: \n")
  print(obj$coefficients)
}
#print(mod_object)
predict.ridgereg <- function(obj){
  print(obj$fitted.values)
}
#predict(mod_object)

coef.ridgereg <- function(obj){
  print(obj$coefficient)
}
#coef(mod_object)
mahnazmohammadzamani/ridgereg documentation built on Dec. 21, 2021, 1:43 p.m.