I am working on a credit scorecard model based on Logistic Regression, with output being the odds of default. There are multiple variables used, all categorical in nature. Even if there are numerical variables, we use binning to convert it to a categorical variable. The final output is later scaled to arrive at a figure which is easily understandable. Now, with that transformation, we calculate individual sub-scores for each variable then add all of them to get the credit score for an observation. To make sure that the individual sub-scores are all non-negative, I have been told to adjust all the weights of the Logistic Regression model based on the following logic:

Say there are three categories for a variable, each category will get assigned certain weights, say b1, b2, b3, we then transform each of the weights by subtracting the minimum of the three weights, so b1 will be changed to b1-minimum(b1, b2, b3).

So my question is this correct way to make sure that all the sub-scores are positive?


I am giving an example of sub-score calculation for one variable called TENOR

Variable Category Coefficient Adjusted Coefficient Score
TENOR (35, Inf] -0.568920702 0 62
TENOR (-Inf,35] 0 0.568920702 55

The Score is derived as the sum of an offset value and (multiplier * Adjusted Coefficient).

The values of multiplier and the offset depends on how we would like the scores to be interpreted as, for example, a decrease of 15 in score should double the odds of default.

  • 1
    $\begingroup$ I have to admit, I have a hard time understanding your question, sorry. Maybe you could edit it to include an example. Do I understand correctly that you are trying to add up odds? Why do you want weights to be nonnegative? Finally, binning a continuous variable is not very good practice (but that decision may already be taken). $\endgroup$ Jul 22, 2022 at 9:45
  • 1
    $\begingroup$ The predicted odds of default will never be less than zero, no matter the coefficients in your logistic regression. // I second the notion that binning a continuous variable needlessly destroys information, though I concede that there could be political (and even technical) reasons why this is the way your project has to proceed. $\endgroup$
    – Dave
    Jul 22, 2022 at 11:23
  • $\begingroup$ Yeah, I understand that the predicted odds would never be less than zero, it's the individual contribution from each variable we are supposed to make positive. I have given an example of a variable above, there are nine other variables. Elaborating further on the edit, say a customer has a TENOR of 88, then the contribution of TENOR to the final credit score of that customer would be 62. $\endgroup$
    – Dr. Dre
    Jul 22, 2022 at 11:30

1 Answer 1


What you are doing is equivalent to re-defining the reference level of each categorical predictor to be the level providing the lowest (or highest, I can't quite tell from the question) odds of default. In principle there's nothing wrong with that. I assume that the multiplier is the same for all coefficients, just to put them into numerical values that seem more "easily understandable."

What bothers me is that when you re-define the reference levels you also change the intercept of your model, the baseline log-odds when all predictors are at reference values. From your description, an "offset" defined from your original model, if based on the intercept, thus would not carry over to your re-defined predictor codings.

To avoid such potential problems, I'd suggest first choosing all the reference levels to be what you now know to be the levels associated with the lowest (or highest) odds of default, then re-run the model to make sure that your intercept (and anything calculated from it) is correct. Predictions from both original models will be the same, but the coefficients from the re-run model will now be in the forms that you want.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.