(I posted this question in http://stackoverflow.com/questions/22781965/interpreting-effect-of-ordered-categorical-predictor without answer... I try here)

Thanks a lot
Marc

My question is very similar to this one (https://stat.ethz.ch/pipermail/r-help/2012-March/305357.html) but I fail to understand it fully. I would like to visualize the effect of an ordered categorical predictor after a glm.

First I generate some dummy data:

## data.frame with continuous values and 6 factors
datagenerate <- data.frame(measure=c(rnorm(20, 10, 2), rnorm(30, 15, 2), rnorm(20, 20, 2), rnorm(20, 25, 2), rnorm(20, 30, 2), rnorm(20, 35, 2)), factor=c(rep("A", 20), rep("B", 30), rep("C", 20), rep("D", 20), rep("E", 20), rep("F", 20)), stringsAsFactors=FALSE)
nbfactors <- length(levels(datagenerate$factor))

Now I apply a glm with an unordered category:

## First factors are unordered
datagenerate$factor <- as.factor(datagenerate$factor)
essaiglm <- glm(measure ~ factor, datagenerate, family=gaussian())
coef_unordered <- coef(summary(essaiglm))[,1]
plot(1:nbfactors, c(0, coef_unordered[2:nbfactors]), type="h", bty="n", las=1,
xlab="Factors", ylab="Effect")

All is ok. But I would like to do the same with ordered category:

## Now factors are ordered
datagenerate$factor <- ordered(datagenerate$factor, levels=c("A", "B", "C", "D", "E", "F"))
essaiglm <- glm(measure ~ factor, datagenerate, family=gaussian())
coef_ordered <- coef(summary(essaiglm))[,1]

## I am not sure about this line. How the ordered factors are coded ?
x <- ((0:(nbfactors-1))-(nbfactors-1)/2)/(nbfactors-1)

y <- x*coef_ordered["factor.L"]+x^2*coef_ordered["factor.Q"]+
x^3*coef_ordered["factor.C"]+x^4*coef_ordered["factor^4"]+
x^5*coef_ordered["factor^5"]
y <- y-min(y)
plot(1:nbfactors, y, type="h", bty="n", las=1, xlab="Factors", ylab="Effect") The result is highly dependent on the coding of the levels. Based on several tries, I propose

x <- ((0:(nbfactors-1))-(nbfactors-1)/2)/(nbfactors-1)
But I am not sure.

If someone has the answer, I will be very grateful.

Thanks a lot

Marc

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to