| Title: | Fuzzy Linear Squares Estimation with Explicit Formula (FLEX) |
|---|---|
| Description: | The FLEX method, developed by Yoon and Choi (2013) <doi:10.1007/978-3-642-33042-1_21>, performs least squares estimation for fuzzy predictors and outcomes, generating crisp regression coefficients by minimizing the distance between observed and predicted outcomes. It also provides functions for fuzzifying data and inference tasks, including significance testing, fit indices, and confidence interval estimation. |
| Authors: | Chaewon Lee [aut, cre], Jin Hee Yoon [ctb] |
| Maintainer: | Chaewon Lee <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.0 |
| Built: | 2026-06-01 09:08:04 UTC |
| Source: | https://github.com/cran/flex |
A generic function to retrieve coefficients from model objects.
coefficients(object, ...)coefficients(object, ...)
object |
The model object from which to extract coefficients. |
... |
Additional arguments (ignored). |
A data frame of coefficients and related statistics.
# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract coefficients coefficients(object)# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract coefficients coefficients(object)
Accessor for Coefficients
## S3 method for class 'fuzzy_lm' coefficients(object, ...)## S3 method for class 'fuzzy_lm' coefficients(object, ...)
object |
An object of class |
... |
Additional arguments (ignored). |
A data frame of coefficients and statistics.
# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract coefficients coefficients(object)# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract coefficients coefficients(object)
Compute confidence intervals for regression coefficients
compute_ci(beta_hat, se_beta, df, alpha = 0.05)compute_ci(beta_hat, se_beta, df, alpha = 0.05)
beta_hat |
Numeric vector. Estimated regression coefficients. |
se_beta |
Numeric vector. Standard errors of coefficients. |
df |
Integer. Degrees of freedom. |
alpha |
Numeric. Significance level (default: 0.05). |
A list containing lower and upper bounds of confidence intervals.
beta_hat <- c(0.5, 1.2) # Example regression coefficients se_beta <- c(0.1, 0.2) # Example standard errors df <- 30 # Example degrees of freedom ci <- compute_ci(beta_hat, se_beta, df) print(ci)beta_hat <- c(0.5, 1.2) # Example regression coefficients se_beta <- c(0.1, 0.2) # Example standard errors df <- 30 # Example degrees of freedom ci <- compute_ci(beta_hat, se_beta, df) print(ci)
Compute p-values for regression coefficients
compute_p_values(t_values, df)compute_p_values(t_values, df)
t_values |
Numeric vector. T-values for regression coefficients. |
df |
Integer. Degrees of freedom. |
Numeric vector of p-values for each coefficient.
t_values <- c(2.5, 3.0) # Example t-values df <- 30 # Example degrees of freedom p_values <- compute_p_values(t_values, df) print(p_values)t_values <- c(2.5, 3.0) # Example t-values df <- 30 # Example degrees of freedom p_values <- compute_p_values(t_values, df) print(p_values)
Compute Predictions from Fuzzy Linear Model
compute_pred(object, X_fuzzy)compute_pred(object, X_fuzzy)
object |
List. Result of fuzzy least squares regression containing |
X_fuzzy |
List. Fuzzified predictor variables. |
A list of fuzzy predictions.
# Example setup X_fuzzy <- list( list(list(l = 1, x = 2, r = 3), list(l = 4, x = 5, r = 6)), list(list(l = 2, x = 3, r = 4), list(l = 5, x = 6, r = 7)) ) beta_hat <- c(0.5, 1.2, -0.8) # Example regression coefficients object <- list(beta_hat = beta_hat) # Compute predictions predictions <- compute_pred(object, X_fuzzy) print(head(predictions, 6))# Example setup X_fuzzy <- list( list(list(l = 1, x = 2, r = 3), list(l = 4, x = 5, r = 6)), list(list(l = 2, x = 3, r = 4), list(l = 5, x = 6, r = 7)) ) beta_hat <- c(0.5, 1.2, -0.8) # Example regression coefficients object <- list(beta_hat = beta_hat) # Compute predictions predictions <- compute_pred(object, X_fuzzy) print(head(predictions, 6))
Compute Residuals for Fuzzy Linear Model
compute_res(Y_fuzzy, Y_pred)compute_res(Y_fuzzy, Y_pred)
Y_fuzzy |
List. Fuzzified observed response variables. |
Y_pred |
List. Fuzzified predicted response variables. |
A list of fuzzy residuals.
# Example setup Y_fuzzy <- list( list(l = 2, x = 3, r = 4), list(l = 5, x = 6, r = 7) ) Y_pred <- list( list(l = 1.5, x = 2.5, r = 3.5), list(l = 4.5, x = 5.5, r = 6.5) ) # Compute residuals residuals <- compute_res(Y_fuzzy, Y_pred) print(head(residuals, 6))# Example setup Y_fuzzy <- list( list(l = 2, x = 3, r = 4), list(l = 5, x = 6, r = 7) ) Y_pred <- list( list(l = 1.5, x = 2.5, r = 3.5), list(l = 4.5, x = 5.5, r = 6.5) ) # Compute residuals residuals <- compute_res(Y_fuzzy, Y_pred) print(head(residuals, 6))
Compute t-values for regression coefficients
compute_t_values(beta_hat, Y_fuzzy, Y_pred, XtX_inv)compute_t_values(beta_hat, Y_fuzzy, Y_pred, XtX_inv)
beta_hat |
Numeric vector. Estimated regression coefficients. |
Y_fuzzy |
List. Observed fuzzy responses. |
Y_pred |
List. Predicted fuzzy responses. |
XtX_inv |
Matrix. Inverse of the XtX matrix. |
Numeric vector of t-values for the regression coefficients.
# Example setup beta_hat <- c(0.5, 1.2) # Example regression coefficients Y_fuzzy <- list( list(l = 2.1, x = 2.3, r = 2.5), list(l = 3.1, x = 3.3, r = 3.5), list(l = 4.1, x = 4.3, r = 4.5) ) # Example fuzzy response Y_pred <- list( list(l = 2.0, x = 2.2, r = 2.4), list(l = 3.0, x = 3.2, r = 3.4), list(l = 4.0, x = 4.2, r = 4.4) ) # Example predicted values XtX_inv <- matrix(c(0.1, 0.2, 0.2, 0.4), ncol = 2) # Example XtX_inv matrix t_values <- compute_t_values(beta_hat, Y_fuzzy, Y_pred, XtX_inv) print(t_values)# Example setup beta_hat <- c(0.5, 1.2) # Example regression coefficients Y_fuzzy <- list( list(l = 2.1, x = 2.3, r = 2.5), list(l = 3.1, x = 3.3, r = 3.5), list(l = 4.1, x = 4.3, r = 4.5) ) # Example fuzzy response Y_pred <- list( list(l = 2.0, x = 2.2, r = 2.4), list(l = 3.0, x = 3.2, r = 3.4), list(l = 4.0, x = 4.2, r = 4.4) ) # Example predicted values XtX_inv <- matrix(c(0.1, 0.2, 0.2, 0.4), ncol = 2) # Example XtX_inv matrix t_values <- compute_t_values(beta_hat, Y_fuzzy, Y_pred, XtX_inv) print(t_values)
Converts a numeric matrix into a list of triangular fuzzy numbers.
fuzzify_crisp_matrix(crisp_matrix, spread = 1)fuzzify_crisp_matrix(crisp_matrix, spread = 1)
crisp_matrix |
Numeric matrix to be fuzzified. |
spread |
Numeric. The spread for fuzzification (default is 1). |
A list of lists representing rows of triangular fuzzy numbers.
set.seed(123) matrix <- matrix(runif(9, 5, 15), nrow = 3, ncol = 3) fuzzify_crisp_matrix(matrix, spread = 1.5)set.seed(123) matrix <- matrix(runif(9, 5, 15), nrow = 3, ncol = 3) fuzzify_crisp_matrix(matrix, spread = 1.5)
Converts a crisp value into a triangular fuzzy number with a specified spread.
fuzzify_crisp_value(crisp_value, spread = 1)fuzzify_crisp_value(crisp_value, spread = 1)
crisp_value |
Numeric. The crisp value to be fuzzified. |
spread |
Numeric. The spread for fuzzification (default is 1). |
A list representing the triangular fuzzy number with components l, x, and r.
fuzzify_crisp_value(10, spread = 2)fuzzify_crisp_value(10, spread = 2)
Converts a numeric vector into a list of fuzzified values using a triangular fuzzy membership function.
fuzzify_crisp_vector(crisp_vector, spread = 1, var_name = "Outcome")fuzzify_crisp_vector(crisp_vector, spread = 1, var_name = "Outcome")
crisp_vector |
A numeric vector to be fuzzified. |
spread |
A non-negative numeric value specifying the spread for the fuzzy membership function. |
var_name |
Optional. A character string specifying a common name for all fuzzified values. Default is |
A list of fuzzified values, where each value is represented as a list with components l, x, and r.
crisp_vector <- c(10, 20, 30) fuzzify_crisp_vector(crisp_vector, spread = 1, var_name = "Variable")crisp_vector <- c(10, 20, 30) fuzzify_crisp_vector(crisp_vector, spread = 1, var_name = "Variable")
Performs the addition of two triangular fuzzy numbers.
fuzzy_add(X, Y)fuzzy_add(X, Y)
X |
List. First triangular fuzzy number with components |
Y |
List. Second triangular fuzzy number with components |
A list representing the sum of the two fuzzy numbers.
X <- list(l = 1, x = 2, r = 3) Y <- list(l = 2, x = 3, r = 4) fuzzy_add(X, Y)X <- list(l = 1, x = 2, r = 3) Y <- list(l = 2, x = 3, r = 4) fuzzy_add(X, Y)
Scales a triangular fuzzy number by a crisp scalar.
fuzzy_crisp_mult(scalar, fuzzy_num)fuzzy_crisp_mult(scalar, fuzzy_num)
scalar |
Numeric. The scalar to multiply with the fuzzy number. |
fuzzy_num |
List. A triangular fuzzy number with components |
A list representing the scaled fuzzy number.
scalar <- 3 fuzzy_num <- list(l = 1, x = 2, r = 3) fuzzy_crisp_mult(scalar, fuzzy_num)scalar <- 3 fuzzy_num <- list(l = 1, x = 2, r = 3) fuzzy_crisp_mult(scalar, fuzzy_num)
Calculates the squared distance between two triangular fuzzy numbers using Diamond's metric.
fuzzy_d_squared(X, Y)fuzzy_d_squared(X, Y)
X |
List. First triangular fuzzy number. |
Y |
List. Second triangular fuzzy number. |
Numeric. The squared distance between X and Y.
X <- list(l = 1, x = 2, r = 3) Y <- list(l = 2, x = 3, r = 4) fuzzy_d_squared(X, Y)X <- list(l = 1, x = 2, r = 3) Y <- list(l = 2, x = 3, r = 4) fuzzy_d_squared(X, Y)
Fits a fuzzy linear regression model given fuzzified predictors and response variables.
fuzzy_lm(X_fuzzy, Y_fuzzy, p, X_crisp = NULL)fuzzy_lm(X_fuzzy, Y_fuzzy, p, X_crisp = NULL)
X_fuzzy |
A list of fuzzified predictor values. |
Y_fuzzy |
A list of fuzzified response values. |
p |
An integer specifying the number of predictors. |
X_crisp |
Optional. The original crisp predictor matrix or data frame. Used to retrieve variable names. Default is |
A list object of class fuzzy_lm containing:
Coefficients |
A data frame with estimated coefficients, standard errors, t-values, p-values, and significance stars. |
Residuals |
The residuals from the fitted model. |
Predictions |
The predicted fuzzified response values. |
RSS |
The residual sum of squares. |
R_squared |
The coefficient of determination (R-squared). |
Sigma_squared |
The estimated variance of the residuals. |
Degrees_of_Freedom |
The degrees of freedom for the model. |
# Simulate complex data for fuzzy linear regression set.seed(123) # Generate a dataset with 100 observations and 4 predictors n <- 100 X_crisp <- data.frame( Age = round(runif(n, 20, 70)), # Random ages between 20 and 70 Income = round(runif(n, 20000, 120000)), # Random incomes between 20k and 120k Education = round(runif(n, 10, 20)), # Random years of education between 10 and 20 Experience = round(runif(n, 1, 40)) # Random years of work experience between 1 and 40 ) # Define true coefficients beta <- c(5.0, 1.2, -0.5, 0.8, 0.05) # Intercept and coefficients for the predictors # Generate the crisp response variable with noise Y_crisp <- round(beta[1] + as.matrix(X_crisp) %*% beta[-1] + rnorm(n, mean = 0, sd = 50)) # Fuzzify the predictor and response variables X_fuzzy <- fuzzify_crisp_matrix(as.matrix(X_crisp), spread = 10) # Larger spread for predictors Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 20) # Larger spread for responses # Fit the fuzzy linear model object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 4, X_crisp = X_crisp) # Print the coefficients print("Fuzzy Linear Model Coefficients:") print(object$Coefficients) # Example residuals and predictions print("Example Residuals:") print(head(object$Residuals, 6)) print("Example Predictions:") print(head(object$Predictions, 6))# Simulate complex data for fuzzy linear regression set.seed(123) # Generate a dataset with 100 observations and 4 predictors n <- 100 X_crisp <- data.frame( Age = round(runif(n, 20, 70)), # Random ages between 20 and 70 Income = round(runif(n, 20000, 120000)), # Random incomes between 20k and 120k Education = round(runif(n, 10, 20)), # Random years of education between 10 and 20 Experience = round(runif(n, 1, 40)) # Random years of work experience between 1 and 40 ) # Define true coefficients beta <- c(5.0, 1.2, -0.5, 0.8, 0.05) # Intercept and coefficients for the predictors # Generate the crisp response variable with noise Y_crisp <- round(beta[1] + as.matrix(X_crisp) %*% beta[-1] + rnorm(n, mean = 0, sd = 50)) # Fuzzify the predictor and response variables X_fuzzy <- fuzzify_crisp_matrix(as.matrix(X_crisp), spread = 10) # Larger spread for predictors Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 20) # Larger spread for responses # Fit the fuzzy linear model object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 4, X_crisp = X_crisp) # Print the coefficients print("Fuzzy Linear Model Coefficients:") print(object$Coefficients) # Example residuals and predictions print("Example Residuals:") print(head(object$Residuals, 6)) print("Example Predictions:") print(head(object$Predictions, 6))
Computes the scalar product of two triangular fuzzy numbers.
fuzzy_mults(X, Y)fuzzy_mults(X, Y)
X |
List. First triangular fuzzy number with components |
Y |
List. Second triangular fuzzy number with components |
A scalar representing the sum of the product of the corresponding components.
X <- list(l = 1, x = 2, r = 3) Y <- list(l = 2, x = 3, r = 4) fuzzy_mults(X, Y)X <- list(l = 1, x = 2, r = 3) Y <- list(l = 2, x = 3, r = 4) fuzzy_mults(X, Y)
This is a generic plot function that dispatches to specific plot methods
based on the class of the object provided. It is used to create plots for objects
such as fuzzy_lm.
plot(object, ...)plot(object, ...)
object |
The object to be plotted. |
... |
Additional arguments passed to specific plot methods. |
Depends on the class of object. Typically, a plot or visualization is returned.
# Example with fuzzy_lm: set.seed(123) x_crisp <- seq(4, 12, length.out = 20) beta <- 1.5 intercept <- 2 y_crisp <- intercept + beta * x_crisp + rnorm(length(x_crisp), mean = 0, sd = 0.5) # Fuzzify data spread_x <- 0.5 spread_y <- 1.0 X_fuzzy <- fuzzify_crisp_matrix(matrix(x_crisp, ncol = 1), spread = spread_x) Y_fuzzy <- fuzzify_crisp_vector(y_crisp, spread = spread_y) # Fit fuzzy regression model object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 1) # Plot plot(object, X_fuzzy = X_fuzzy, Y_fuzzy = Y_fuzzy)# Example with fuzzy_lm: set.seed(123) x_crisp <- seq(4, 12, length.out = 20) beta <- 1.5 intercept <- 2 y_crisp <- intercept + beta * x_crisp + rnorm(length(x_crisp), mean = 0, sd = 0.5) # Fuzzify data spread_x <- 0.5 spread_y <- 1.0 X_fuzzy <- fuzzify_crisp_matrix(matrix(x_crisp, ncol = 1), spread = spread_x) Y_fuzzy <- fuzzify_crisp_vector(y_crisp, spread = spread_y) # Fit fuzzy regression model object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 1) # Plot plot(object, X_fuzzy = X_fuzzy, Y_fuzzy = Y_fuzzy)
Visualizes the results of a fuzzy regression model. For simple regression (1 predictor), it generates a 2D plot with fuzzy intervals and regression lines. For multiple regression (2 predictors), it generates a 3D plot with cubes representing fuzzy intervals and a regression plane.
## S3 method for class 'fuzzy_lm' plot(object, ...)## S3 method for class 'fuzzy_lm' plot(object, ...)
object |
An object of class |
... |
Additional arguments passed to the method, including:
|
A ggplot2 object for simple regression or a plotly object for multiple regression.
# Example 1: Simple Regression # See above for setup example # Example 2: Multiple Regression set.seed(123) n <- 100 x1_crisp <- runif(n, 5, 15) x2_crisp <- runif(n, 10, 20) beta <- c(3, 1.5, -0.8) y_crisp <- beta[1] + beta[2] * x1_crisp + beta[3] * x2_crisp + rnorm(n, mean = 0, sd = 2) X_fuzzy <- fuzzify_crisp_matrix(cbind(x1_crisp, x2_crisp), spread = 0.5) Y_fuzzy <- fuzzify_crisp_vector(y_crisp, spread = 1.0) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 2) plot(object, X_fuzzy = X_fuzzy, Y_fuzzy = Y_fuzzy)# Example 1: Simple Regression # See above for setup example # Example 2: Multiple Regression set.seed(123) n <- 100 x1_crisp <- runif(n, 5, 15) x2_crisp <- runif(n, 10, 20) beta <- c(3, 1.5, -0.8) y_crisp <- beta[1] + beta[2] * x1_crisp + beta[3] * x2_crisp + rnorm(n, mean = 0, sd = 2) X_fuzzy <- fuzzify_crisp_matrix(cbind(x1_crisp, x2_crisp), spread = 0.5) Y_fuzzy <- fuzzify_crisp_vector(y_crisp, spread = 1.0) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 2) plot(object, X_fuzzy = X_fuzzy, Y_fuzzy = Y_fuzzy)
Define generic for predictions
predictions(object, ...)predictions(object, ...)
object |
An object of class |
... |
Additional arguments (currently ignored). |
A list of fuzzy predictions.
# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract predictions head(predictions(object))# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract predictions head(predictions(object))
Accessor for Predictions
## S3 method for class 'fuzzy_lm' predictions(object, ...)## S3 method for class 'fuzzy_lm' predictions(object, ...)
object |
An object of class |
... |
Additional arguments (currently ignored). |
A list of fuzzy predictions.
# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract predictions head(predictions(object))# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract predictions head(predictions(object))
A generic function to retrieve residuals from model objects.
residuals(object, ...)residuals(object, ...)
object |
The model object from which to extract residuals. |
... |
Additional arguments (ignored). |
A list of fuzzy residuals.
# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract residuals head(residuals(object))# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract residuals head(residuals(object))
Accessor for Residuals
## S3 method for class 'fuzzy_lm' residuals(object, ...)## S3 method for class 'fuzzy_lm' residuals(object, ...)
object |
An object of class |
... |
Additional arguments (currently ignored). |
A list of fuzzy residuals.
# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract residuals head(residuals(object))# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Extract residuals head(residuals(object))
Summary for Fuzzy Linear Regression
## S3 method for class 'fuzzy_lm' summary(object, ...)## S3 method for class 'fuzzy_lm' summary(object, ...)
object |
An object of class |
... |
Additional arguments (currently ignored). |
Prints a summary of the fuzzy linear regression results.
# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Summarize the model summary(object)# Simulate data and fit a fuzzy linear model set.seed(123) X_crisp <- matrix(round(runif(300, 2, 10)), nrow = 100, ncol = 3) beta <- c(1.5, -0.8, 2.0) Y_crisp <- round(X_crisp %*% beta + rnorm(100, mean = 0, sd = 1)) X_fuzzy <- fuzzify_crisp_matrix(X_crisp, spread = 1) Y_fuzzy <- fuzzify_crisp_vector(Y_crisp, spread = 1) object <- fuzzy_lm(X_fuzzy, Y_fuzzy, p = 3) # Summarize the model summary(object)