# quantiles and cut by value range differences

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")

• 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? May 19, 2021 at 4:18
• @BruceET I added the R code, and some explanation :) ! May 19, 2021 at 4:26

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


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

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


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