# How to interpret regression coefficients in logistic regression?

I have run the following logistic regression:

glm(formula = DecisionasReceiver ~ L1 + L2 + L3,
family = binomial("logit"), data = lue)


where L1 L2 and L3 code for differences in condition of no.GREEN. L1: 1,-1,0,0 : is there a difference in DecisionasReceiver as no.GREEN changes from 1 to 2?

L2: 0,1,-1,0: is there a difference in DecisionasReceiver as no.GREEN changes from 2 to 3?

L2: 0,0,1,-1: is there a difference in DecisionasReceiver as no.GREEN changes from 3 to 4?

And I'm running this regression both for the cases where MessageReceived is BLUE and for MessageReceived RED.

I have the following output:

   Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept)  -0.9535     0.3659  -2.606  0.00916 **
L1            2.2753     0.5406   4.209 2.56e-05 ***
L2            3.1234     0.7318   4.268 1.97e-05 ***
L3            1.9369     0.8134   2.381  0.01726 *


Looking at my graph it seems strange that the coefficients are positive and that the intercept is -0.953. How exactly should I interpret these results in the light of the graph?

http://dl.dropbox.com/u/22681355/graph.png

• The y-axis on your graphs is labeled "mean probability". The use of "mean" is unclear there. It should probably be "Predicted Probability". – Frank Harrell Aug 20 '11 at 15:29
• @Frank Harrell it is the average number of people guessing RED. its from 0 to 1 with 1 indicating RED and 0 indicating BLUE – upabove Aug 20 '11 at 17:21
• In that case maybe the terminology is "Proportion"? – Frank Harrell Aug 20 '11 at 17:26
• @Frank Harrell yes then call it proportion. Any suggestions about the question? – upabove Aug 20 '11 at 17:28
• I think the graph tells much of the story except for not having confidence bands. My R rms package may help in getting contrasts of interest in an intuitive non-error-prone way. Here are examples: oga-lab.net/RGM2/func.php?rd_id=rms:contrast – Frank Harrell Aug 20 '11 at 17:36

I completly changed my answer as a result of a long conversation with Daniel. I'll try to provide some background information so interested readers can understand my answer.

As I understand the question, Daniel is trying to assess the effect of no.Green on the probability of subjects choosing red in an experiment. no.Green is the number of balls (1, 2, 3 or 4). And the experiment was conducted under several conditions, nameley: under no.Red equals to 5, 7 and 9; and under condition in which message is blue and message is red. So, we have a total of 4 * 3 * 2 = 24 conditions (4 conditions from no.Green, 3 conditions from no.Red and 2 conditions from message blue or red).

One single regression with all interactions terms is quite complex to interpret. However, his main task is fairly simple, namely: to show that no.green has an effect on the probability of choosing red. So, my sugestion is to run a separece regression for message == blue and message == red condition, and also a separate regression for each no.red condition. Moreover, I'll simplify thing by assuming that no.Green is continous (it seems to be possible treat it as continous, or at least an interval variable). In R, for the message == blue case, just do this:

fit.1 = glm(DecisionasReceiver ~ no.GREEN, family=binomial, data=subset(lue, messagereceived=="blue" & no.RED==5) )



Now, in order to properly asses the effect of no.green, you have to take in consideration the uncertainty of estimates. Looking to standard errors, you will see that no.green is significant. However, looking only for standard errors does not allow you to proper understadn the range of uncertainty. Say, for instance, that you are interested to know how less likely to choose red are subjects (under condition no.red ==5) with no.green == 2 compared with subjects with no.green == 1. To answer this type of question, it's better, I think to look at predicted probability, but taking into consideration the uncertainty on estimates. To do this, i'll use the "sim" function, of arm package.

require(arm)
n.sims = 1000
sim.1 = sim(fit.1, n.sims)
ylab="Probability of Choosing Red", xlab="Number of Green",
main="Effect of Green under no.Red equals 5"))
for (s in 1:100)