I have built a logistic regression model which takes a dataframe of dummy values as an input and produces binary classification (0 for accept, 1 for default). I have already split all variables into ranges and calculated logistic regression coefficients for each of these ranges.

Here is the sample of what my input looks like:

(pictures are taken from this article) enter image description here

And coefficients for these inputs (which are taken from the coefficients of logistic regression model):

enter image description here

I want to convert these values into scores, but I am not sure how to accomplish this. I saw some texts and questions here that mention PDO and linear scaling. But I cant figure out how to actually produce score values.

Any help would be appreciated


2 Answers 2


I have a lot of experience with credit scorecard models.

In response to the above comment, it is common to bin continuous variables in credit scoring models (scorecards) to improve usability and interpretation, e.g. a person with income > 100k is assigned 10 scorecard points, which you then aggregate across all predictor vairables to get the final score.

Regarding transforming variable coefficients to scores, you need to change the structure of your logistic regression model. Follow the steps below:

  1. Instead of using dummy variables for your variable categories, use a single categorical variable, but instead of the category values (Grade A,B,C etc.) substitute in the Weight of Evidence (WoE) of the category. You will then have numeric values as your categories (i.e. separate WoE values per category). WoE transformed variables are industry practice when it comes to building logistic regression scorecards.

  2. Run your regression on your bad flag = 1 on the WoE transformed categorical variables. These variables are treated as continous numeric variables rather than categorical variables (e.g. in SAS you no longer need the CLASS statement on PROC LOGISTIC).

  3. Define what your overall scorecard parameters are, e.g. base score = 500, base odds = 1:1, points to double the odds (PDO) = 20.

  4. Derive the intercept score based on your logistic regression output: intercept score = base score + PDO/LN(2) * Intercept coefficient - 1. You'll use this value to sum up all the variable category points (+ intercept score) to get your final scorecard score.

  5. For each of the categories in a given variables, calculate the category score: category score = category coefficient * category WoE * -1 * PDO/LN(2)

  6. For a given account or customer, sum up the different variable scores to get your final scorecard score.

  7. As a sense check, take your account level logistic regression output which will be a probability of default between 0 and 1 and apply the following formula:

Scorecard score = Base Score - (PDO/LN(2)) * LN(Base Odds) + (PDO/LN(2)) * LN(P(Good)/P(Bad))

This should match the score derived from adding up the individual variable categories per account.

Good luck!

  • $\begingroup$ I've been able to make sense of the whole thing since making this post. Your answer is pretty much the exact method I used. $\endgroup$
    – Ach113
    Jan 25 at 3:22
  • 1
    $\begingroup$ Glad to hear. Scorecards have been done to death and there are very standardised approaches to building them. The problem is, not a lot of this information is available online/outside of the industry, so places like this are very helpful. $\endgroup$
    – Mat_CR
    Jan 25 at 10:48
  • $\begingroup$ Do these steps hold when doing LASSO logistic regression? $\endgroup$ Jun 23 at 8:29

You need to take some course in logistic regression and not only follow tutorials as the one you linked. Several points:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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