This function performs Reject Inference using the Fuzzy Augmentation technique. Note that this technique has no theoretical foundation and should produce (under the identifiability assumption) the same parameters' estimates than the financed clients scorecard.

fuzzy_augmentation(xf, xnf, yf)



The matrix of financed clients' characteristics to be used in the scorecard.


The matrix of not financed clients' characteristics to be used in the scorecard (must be the same in the same order as xf!).


The matrix of financed clients' labels


List containing the model using financed clients only and the model produced using the Fuzzy Augmentation method.


This function performs the Fuzzy Augmentation method on the data. When provided with labeled observations \((x^\ell,y)\), it first fits the logistic regression model \(p_\theta\) of \(x^\ell\) on \(y\), then labels the unlabelled samples \(x^{u}\) with the predicted probabilities of \(p_\theta\), i.e. \(\hat{y}^{u} = p_\theta(y|x^{u})\) then refits a logistic regression model \(p_\eta\) on the whole sample.


Enea, M. (2015), speedglm: Fitting Linear and Generalized Linear Models to Large Data Sets, Ehrhardt, A., Biernacki, C., Vandewalle, V., Heinrich, P. and Beben, S. (2018), Reject Inference Methods in Credit Scoring: a rational review,

See also

glm, speedglm


Adrien Ehrhardt


# We simulate data from financed clients df <- generate_data(n = 100, d = 2) xf <- df[, -ncol(df)] yf <- df$y # We simulate data from not financed clients (MCAR mechanism) xnf <- generate_data(n = 100, d = 2)[, -ncol(df)] fuzzy_augmentation(xf, xnf, yf)
#> Warning: non-integer #successes in a binomial glm!
#> Generalized Linear Model of class 'speedglm': #> #> Call: speedglm::speedglm(formula = labels ~ ., data = df[, -which(names(df) %in% c("acc"))], family = stats::binomial(link = "logit")) #> #> Coefficients: #> (Intercept) x.x.1 x.x.2 #> 0.340 -0.439 1.467 #>