Let's assume we have 6 companies with these returns:

10%, 8%, 7%, 7%, 1%, -5% 

If I want to cut them by terciles, the grouping will be:

G1: 10%, 8%
G2: 7%, 7%
G3: -5%, 1% 

If I want to cut them by the range of all the values into 3 groups, the grouping will be:

G1 (10% to 5%): 10%, 8%, 7%, 7%
G2 (5% to 0%) : 1%
G3 (0% to -5%): -5% 

As you can see above, the second case splits the groups by the range of each group, where the range of each group is the same and is given by the number of breaks I want to do. To give another example: If the maximum return is 20% and the minimum is 0%, and I want four groups, the ranges would be (0-5%, 5-10%, 10-15%, 15-20%) no matter how many observations fit in each group.

My question is: How it's called the second process? In r I use the function cut(). Maybe it's a silly question, but I'm looking for the formal name of that process as I'm looking to understand what are the differences and possible implications when using one or another method to get conclusions from the data. For example, I don't have 6 companies, I actually have near 2k, and I'm trying to classify their returns by certain conditions given the distribution of their returns. However, I'm facing the problem above. So, to be specific:

What are the statistical biases when using percentiles/quantiles vs the "cut() method" to classify groups (or returns in this case)? Is it plain wrong classifying them by "the cut() method"?

R code used (the "cut method"):

cut(vector_of_returns, breaks=3, labels=c("Bad news", "Neutral","Good news")
  • $\begingroup$ Various statistical programs have slightly different ways of defining quantiles, so the exact answer will depend on the details of the definition you use. Not sure I know what you mean by :,,,cut them by the range of all the values into 3 groups,". Can you explain in more detail and/or give R code you used? $\endgroup$
    – BruceET
    May 19, 2021 at 4:18
  • 1
    $\begingroup$ @BruceET I added the R code, and some explanation :) ! $\endgroup$
    – Chris
    May 19, 2021 at 4:26

1 Answer 1


Using quantiles $0, 1/3, 2.3, 1,$ I get the same grouping as you do.

x = c(10,8,7,7,1,-5)
quantile(x, c(0, 1/3, 2/3, 1))
       0% 33.33333% 66.66667%      100% 
-5.000000  5.000000  7.333333 10.000000 

So the three sets are $\{-5\%,1\%\},$ $\{7\%,7\%\}.$ and $\{8\%,10\%\},$ as you say.

Your second process looks like binning for a histogram, splitting a 15.3-unit span (including values from $-5$ to $10)$ into three intervals with boundaries at $-5.1, 0, 5.1, 10,2.$

x = c(10,8,7,7,1,-5)
cut = c(-5.1, 0, 5.1, 10.2)
hist(x, prob=T, br=cut, col="skyblue2")
 rug(x)  # puts tick marks along horiz axis

enter image description here

Or if you want 'frequencies' on the vertical axis:

hist(x, prob=F, br=cut, col="skyblue2")
 abline(h=1:4, col="darkgreen")

enter image description here

Neither histogram is exactly 'standard', but just showing possibilities.


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.