normalit<-function(m){
(m - min(m))/(max(m)-min(m))
}
#'multi_linear_analyzer
#' @description t.b.d
#' @author Farid Azouaou
#' @param tisefka input data
#' @param target_variable target_variable
#' @param date_var date_var
#' @export
multi_linear_analyzer <- function(tisefka = NULL, target_variable = NULL, date_var = "date"){
rf_formula <- as.formula(paste0(target_variable, "~ . "))
rf_model <- tisefka%>%
dplyr::select(-!!date_var)%>%
randomForest::randomForest(formula= rf_formula, data = ., na.action=na.fail)
# stats::glm(formula = glm_formula, data = .)
return(rf_model)
}
#' correlation_calculator
#' @description calculate numeric matrix correlation
#' @param tisefka input data
#' @param date_var date_var
#' @export
correlation_calculator <- function(tisefka = NULL,generate_chart = TRUE, date_var = "date"){
corr_results <- list()
corr_results$correlation <- tisefka%>%
dplyr::select(-!!date_var)%>%
cor()
if(generate_chart == TRUE){
corr_results$corr_chart <- plotly::plot_ly(x = colnames(corr_results$correlation),y = rownames(corr_results$correlation),
z = corr_results$correlation , type = "heatmap",colors = colorRamp(c("maroon","orange" ,"grey", "lightblue","navy"))
)%>%
plotly::colorbar(limits = c(-1,1))
}
return(corr_results)
}
#' multi_linear_displayer
#' @description display multivariate linear impact
#' @param liner_mod linear model
#' @export
multi_linear_displayer <- function(lin_mod = NULL, target_variable = NULL){
contribution_res <- list()
if("randomForest" %in% class(lin_mod)){
contribution <-data.frame(variables = rownames(lin_mod$importance), contribution = lin_mod$importance[,1])%>%
dplyr::mutate(contribution = normalit(contribution))
}
contribution_res$contribution <- contribution
contribution_res$contribution_chart <- contribution%>%
plotly::plot_ly(data = . , type ="bar", x = ~variables, y = ~ contribution, color = ~variables)%>%
plotly::layout(title= "Interdependencies and potential contribution" )
return(contribution_res)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.