# RegAssure

The RegAssure package is designed to simplify and enhance the process of validating regression model assumptions in R. It provides a comprehensive set of tools for evaluating key assumptions such as linearity, homoscedasticity, independence, normality, and collinearity, contributing to the reliability of analytical results.

## Installation

You can easily install RegAssure from GitHub using the devtools package:

# install.packages("devtools")
devtools::install_github("nrubiog/RegAssure")

## Example: Linear Regression

Here’s a basic example showcasing how RegAssure can be used to enhance linear regression analysis:

# Install the package
# devtools::install_github("nrubiog/RegAssure")

library(RegAssure)

# Create a regression model
lm_model <- lm(mpg ~ wt + hp, data = mtcars)

# Check assumptions
check_lm_assumptions(lm_model)
#>
#> The assumption tests have been completed and the results are available in a list. Enjoy it :)
#> Las pruebas de supuestos han sido completadas y los resultados están disponibles en una lista. Disfrútalo :)
#> \$Linearity
#> [1] 1.075529e-16
#>
#> \$Homoscedasticity
#>
#>  studentized Breusch-Pagan test
#>
#> data:  model
#> BP = 0.88072, df = 2, p-value = 0.6438
#>
#>
#> \$Independence
#>
#>  Durbin-Watson test
#>
#> data:  model
#> DW = 1.3624, p-value = 0.04123
#> alternative hypothesis: true autocorrelation is not 0
#>
#>
#> \$Normality
#>
#>  Shapiro-Wilk normality test
#>
#> data:  model\$residuals
#> W = 0.92792, p-value = 0.03427
#>
#>
#> \$Multicollinearity
#>       wt       hp
#> 1.766625 1.766625

## Example: Logistic Regression

Here’s an additional example demonstrating the use of RegAssure with logistic regression:

library(RegAssure)
library(titanic)

titanic <- titanic_train

# Create a binary logistic regression model
logit_model <- glm(Survived ~ Pclass + Sex, data = titanic, family = "binomial")

# Check assumptions for binary logistic regression
check_logit(logit_model, data = titanic, tipo_modelo = "binario", vars_numericas = "Pclass", y = "Survived")
#> logit_model has no missing values.
#>
#> Tests performed for binary/binomial model.
#> Warning in check_logit(logit_model, data = titanic, tipo_modelo = "binario", : Box-Tidwell Test cannot be done.
#> Warning in check_logit(logit_model, data = titanic, tipo_modelo = "binario", : Variance Inflation Factor Test cannot be done.
#>
#> The assumption tests have been completed and the results are available in a list. Enjoy it :)
#> Las pruebas de supuestos han sido completadas y los resultados están disponibles en una lista. Disfrútalo :)
#> \$model_type
#> [1] "binary/binomial"
#>
#> \$Confusion
#>         Predicciones
#> Variable   0   1
#>        0 468  81
#>        1 109 233
#>
#> \$ROC
#>
#> Call:
#> roc.default(response = new_data[[y]], predictor = pred_logit,     smooth = TRUE, auc = TRUE, ci = TRUE, ret = TRUE)
#>
#> Data: pred_logit in 549 controls (new_data[[y]] 0) < 342 cases (new_data[[y]] 1).
#> Smoothing: binormal
#> Area under the curve: 0.8453
#> 95% CI: 0.8115-0.8729 (2000 stratified bootstrap replicates)

## Example: storing data

Here’s an example of how to use the get_predict() function to compare real and predicted values from a model:

library(RegAssure)

# Create a regression model
lm_model <- lm(mpg ~ wt + hp, data = mtcars)

# Get predictions and compare with real values
predictions <- get_predict(lm_model, mtcars, mtcars\$mpg, n = 3)

# Print the results
print(predictions[1:7,])
#>                   reales predichos  Error
#> Mazda RX4           21.0    23.572 -2.572
#> Mazda RX4 Wag       21.0    22.583 -1.583
#> Datsun 710          22.8    25.276 -2.476
#> Hornet 4 Drive      21.4    21.265  0.135
#> Hornet Sportabout   18.7    18.327  0.373
#> Valiant             18.1    20.474 -2.374
#> Duster 360          14.3    15.599 -1.299