# Optimal scaling level for variables categorized from continuous data

A variable was categorized into $$10$$ equally spaced intervals from a continuous variable which was originally in proportion. Now, we have to use this variable in CATREG procedure in SPSS. If we choose the optimal scaling level to be 'ordinal', then quantification for the last seven categories are the same. That means the observations that originally had values ranging from $$0.31$$ to $$1.00$$, now receive the same quantified value after optimal scaling. If we use 'numeric' as the quantification level instead, then different categories receive different quantification (as it should be).

But is using 'numeric' as the optimal scaling level valid here? Although the variable was numeric originally, but later that was transformed to an equally spaced 10-category variable. Note that, using 'nominal' gives quite different quantification, but some of the category quantification is still the same. I guess keeping in mind the nature of the original variable, different categories should not receive the same quantification. Could someone please clarify this?

• What is the stumbling block there for you, I can't get? If you want to use the original variable, use it. If you somehow discretized your variable and don't need it to be transformed nonlinearly then, stick with numeric level transform, while if you want monotonic transform, use (spline) ordinal, and if you accept nonmonotonic nonlinear transform, do (spline) nominal. Sep 4, 2012 at 8:23
• Why did you categorize your variable in the first place? It's almost never a good idea. See The Perils of Categorizing Continuous Variables which I wrote on my blog. @ttnphns makes several good suggestions, as well. Sep 4, 2012 at 10:47
• @PeterFlom Umm...it seems like I am making a lot of mistakes here. Actually I was suggested by one of my seniors to transform the proportion type variables into 10 categories, because these variables range from 0.00 to 1.00 and SPSS categories procedure treats values less than 1 as missing. But it seems like fractional-valued variables can be grouped into seven categories (by default if discretization is unspecified) or differently through discretization. Your write up in the blog was excellent, thank you. Sep 4, 2012 at 13:34
• @ttnphns is right - I am not an SPSS person (I use SAS and R). But why are you using anything called "categories"? Don't group into 10 categories, don't group into 7 categories, don't group at all! Keep your original variable. I am sure that SPSS can deal with values less than 1. Sep 4, 2012 at 21:48
• @Peter, I think Blain has taken liking for nonlinearly "optimally transformed" variables; this procedure needs first to categorize them (e.g. scale into ordinal, before back to quasi-scale). Sep 5, 2012 at 0:28

A variable was categorized into 10 equally spaced intervals from a continuous variable which was originally in proportion. Now, we have to use this variable in CATREG procedure.

No, you don't actually have to bin any continuous variable, and probably shouldn't (see Royston et al., 2006).

As Peter already noted in the comments, there is no need to bin values that are numeric into a categorical response. There are two reasons why this isn't ideal for your scenario. First, this necessarily comes at an information loss, as you squeeze the variance into only ten possible values rather than the full spectrum of values possible, leading to less estimable data. Second, are these categorizations even meaningful? What does Group 1 say about Group 8? In a categorical regression with this many groups, it is hard to determine the value of contrasts created by the CATREG procedure in SPSS, or any categorical regression for that matter.

Here is a simulated example of why this matters in terms of information loss, where the continuous data in $$x$$ is dichotomized into two categories:

#### Simulate Data ####
set.seed(123)
x <- rnorm(100)
y <- rnorm(100,sd=3) + x
cat.x <- ifelse(x < mean(x), 0, 1)
df <- data.frame(x,y,cat.x)

#### Fit Regs ####
fit.num <- lm(y ~ x)
fit.cat <- lm(y ~ cat.x)
summary(fit.num)
summary(fit.cat)

#### Save Plots ####
p1 <- df %>%
ggplot()+
geom_point(aes(x,y))+
theme_bw()+
labs(title="Continuous Data",
subtitle="Beta: .842, SE: .321, P: .01")+
geom_abline(
intercept = coef(fit.num)[1],
slope = coef(fit.num)[2],
color="darkred"
)

p2 <- df %>%
ggplot()+
geom_jitter(
aes(cat.x,y),
width=.01,
height=.01
)+
theme_bw()+
labs(title="Binned Data",
subtitle="Beta: 1.446, SE: .585, P: .02")+
geom_abline(
intercept = coef(fit.cat)[1],
slope = coef(fit.cat)[2],
color="darkred"
)

#### View Together ####
ggpubr::ggarrange(p1,p2)


You can see in the plots below that the binned version comes at an information loss...the standard error is nearly twice what it was and consequently changes the raw beta estimate (now it is a mean contrast between groups) as well as the $$p$$-value (which is obviously affected by the standard error).

It would be better to simply run the regression in SPSS with the numeric data in hand and get more precise estimates, as this will capture more variance in the outcomes anyway.

• Congrats on your $10\rm k.$ Jan 8 at 4:41
• Thanks! You don't have much longer yourself :) Jan 8 at 4:56
• Ah! I wish I could spend more time and contribute more regularly here. (At least I have enough time to clear the queues!) Jan 8 at 5:14