SPSS has an optimal binning function that helps categorizing into meaningful intervals continuous predictors when a binary response variable exists. I was looking for an equivalent function in R but I'm not finding any. I'm not sure that using bins derived by CART or CTREE could be equivalent.

  • 8
    $\begingroup$ In practice very, very few people know both SPSS and R in any depth. I think you would need to be much more precise what this "optimal binning" is to get an answer. That aside, binning a continuous predictor is widely deprecated as very poor statistical practice, in my view fairly. biostat.mc.vanderbilt.edu/wiki/Main/CatContinuous is a good introduction. In addition, "optimal binning" (not your name, presumably) is a loaded term! $\endgroup$
    – Nick Cox
    Oct 14, 2014 at 10:13
  • 5
    $\begingroup$ See also e.g. stats.stackexchange.com/questions/68834/… in this forum. $\endgroup$
    – Nick Cox
    Oct 14, 2014 at 10:35
  • $\begingroup$ I agree that restricted cubic splines or non parametric smoothers takes better into account non - linearity. Nevertheless the algorithm that this analysis will derive cannot make use of such smoothers. $\endgroup$ Oct 14, 2014 at 15:05
  • $\begingroup$ There is a cut function and in documentation of ?hist you can find info about algorithms that choose "optimal" number of bins for histogram. See also stats.stackexchange.com/questions/163778/… $\endgroup$
    – Tim
    Oct 17, 2015 at 7:57

2 Answers 2


You can test the discretization package and the cutPoints function : http://cran.r-project.org/web/packages/discretization/discretization.pdf.


There is now a package call "smbinning" that longs for Optimal Binning for Scoring Modeling since early 2015. It gives you the optimal cut point for a numeric variable, more precisely, optimizing the information value. It is able to handle categorical variable and missing value as well.

For example:

smbinning(df, y , x, p = 0.05)
  • df <- Data frame
  • y <- Binary dependent variable
  • x <- numeric independent variable
  • p <- Percentage of records per bin

It returns a list that contains the information value, Information value table and others. you may find detail in the documentation at CRAN or http://www.scoringmodeling.com/

  • 3
    $\begingroup$ To be honest not the biggest fan of the smbinning package. I haven't coded anything better but the coding in the package feels "amateurish", and it fails in many of the test cases I tried. I don't recommend smbinning at v0.2. $\endgroup$
    – xiaodai
    Nov 24, 2015 at 2:51

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.