|
|
|
||||
|
|
|||||
use http://www.ats.ucla.edu/stat/stata/notes/hsb2, clear gen y = (write>60) gen readmath = read*math logit y read math readmath socst, nologLogistic regression Number of obs = 200 LR chi2(4) = 66.80 Prob > chi2 = 0.0000 Log likelihood = -77.953857 Pseudo R2 = 0.3000 ------------------------------------------------------------------------------ y | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- read | .4342068 .1961643 2.21 0.027 .0497319 .8186817 math | .5104622 .2011857 2.54 0.011 .1161455 .904779 readmath | -.0068144 .0033337 -2.04 0.041 -.0133484 -.0002805 socst | .0309685 .0271748 1.14 0.254 -.0222931 .08423 _cons | -34.09125 11.73402 -2.91 0.004 -57.08951 -11.09299 ------------------------------------------------------------------------------
How do we visualize this model? One way to do is to first center the covariates and one of the predictor variable that interacts with the other predictor variable.
sum socst gen csocst = socst-r(mean) sum read gen cread = read-r(mean) gen creadmath = math*cread
Now we can rerun the model using these variables. Notice that the model is still the same model but parameterized differently.
logit y cread math creadmath csocst, nolog
Logistic regression Number of obs = 200
LR chi2(4) = 66.80
Prob > chi2 = 0.0000
Log likelihood = -77.953858 Pseudo R2 = 0.3000
------------------------------------------------------------------------------
y | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
cread | .4342067 .1961642 2.21 0.027 .0497319 .8186816
math | .1545453 .0390626 3.96 0.000 .077984 .2311067
creadmath | -.0068144 .0033337 -2.04 0.041 -.0133484 -.0002805
csocst | .0309685 .0271748 1.14 0.254 -.0222931 .08423
_cons | -9.789728 2.191172 -4.47 0.000 -14.08435 -5.49511
------------------------------------------------------------------------------
Since cread is a continuous variable, we will have to slice it and see the snapshot at each slice. We will slice it at cread = 0 (corresponding to read equal to its mean), cread = 10 (corresponding to read equal to one standard deviation above the mean) and cread = -10 (corresponding to one standard deviation below the mean).
gen y1 = _b[cread]*(-10) + _b[math]*math + _b[creadmath]*(-10)*math + _b[_cons] gen y2 = _b[cread]*(0) + _b[math]*math + _b[creadmath]*(0)*math + _b[_cons] gen y3 = _b[cread]*(10) + _b[math]*math + _b[creadmath]*(10)*math + _b[_cons] sort math twoway (line y1 math) (line y2 math) (line y3 math), name(logit, replace)gen p1 = exp(y1)/(1+exp(y1)) gen p2 = exp(y2)/(1+exp(y2)) gen p3 = exp(y3)/(1+exp(y3))twoway (line p1 math) (line p2 math) (line p3 math), name(prob, replace)
UCLA Researchers are invited to our Statistical Consulting Services
We recommend others to our list of Other Resources for Statistical Computing Help
These pages are Copyrighted (c) by UCLA Academic Technology Services