Say you run a logistic regression, and you would like to show a graph with the y axis having the probability of the event and the x axis being your predictor. The following shows how you can construct such a graph.
Say that you do a logistic regression and the coefficients are
Constant is -3
x1 is.3
x2 is .1
Also, say the mean of X2 is .5
Say that you want to make a graph of the probability of Y by X1 showing X1 from 1 to 30, and hold all other variables constant at their mean (i.e., X2 would be .5). The following program generates data for X1 from 1 to 30, and computes the predicted value of Y for these values, and then makes a graph of the results.
* create a new data file that just has "x1" in it from 1 to 30 by 1. input program. loop #i = 1 to 30 by 1. compute x1 = #i. end case. end loop. end file. end input program. execute.* fill in logistic equation below . * say equation is -3 + .3*x1 + .1 * x2. * and x2 has a mean of .5. compute ylog = -3 + .3*x1 + .5*.1 . compute py = 1-1/(1 + exp(ylog)) . execute.
* show graph with prob y on y axis, and x1 on x axis. GRAPH /LINE(SIMPLE)=VALUE( py ) BY x1 .
This produces the following graph.
You can make a graph of your own by …
- Change "1 to 30 by 1" to the range of values you want for your predictor.
- Change the "compute ylog =" to have the data from your regression.
Here are examples where we vary the intercept, using -10 then 5 then 0.
* say equation is -10 + .3*x1 + .1 * x2 (x2 has a mean of 5). compute ylog = -10 + .3*x1 + 5*.1 . compute py = 1 – 1/(1 + exp(ylog)) . execute. GRAPH /LINE(SIMPLE)=VALUE( py ) BY x1 .
compute ylog = -5 + .3*x1 + 5*.1 . compute py = 1-1/(1 + exp(ylog)) . execute. GRAPH /LINE(SIMPLE)=VALUE( py ) BY x1 .
compute ylog = 0 + .3*x1 + 5*.1 . compute py = 1-1/(1 + exp(ylog)) . execute. GRAPH /LINE(SIMPLE)=VALUE( py ) BY x1 .
Here are examples showing how the graphs change when the coefficient changes from .05 to .1 to .3 to .5.
compute ylog = -5 + .05*x1 + 5*.1 . compute py = 1-1/(1 + exp(ylog)) . GRAPH /LINE(SIMPLE)=VALUE( py ) BY x1 .
compute ylog = -5 + .1*x1 + 5*.1 . compute py = 1-1/(1 + exp(ylog)) . GRAPH /LINE(SIMPLE)=VALUE( py ) BY x1 .
compute ylog = -5 + .3*x1 + 5*.1 . compute py = 1-1/(1 + exp(ylog)) . GRAPH /LINE(SIMPLE)=VALUE( py ) BY x1 .
compute ylog = -5 + .5*x1 + 5*.1 . compute py = 1-1/(1 + exp(ylog)) . GRAPH /LINE(SIMPLE)=VALUE( py ) BY x1 .