Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: Quadratic term in ZIP model
From
Maarten buis <[email protected]>
To
[email protected]
Subject
Re: st: Quadratic term in ZIP model
Date
Mon, 18 Oct 2010 09:20:09 +0100 (BST)
--- On Sat, 16/10/10, Asaduzzaman Khan wrote:
> I've fitted a zero-inflated Poisson (ZIP) model where I had
> to include a significant quadratic term (e.g. age, age^2) to
> have a better fit. Can anyone help me with the
> interpretation of the overall effect of age on the counts?
The very fact that you included a quadratic term means that
there no longer is one effect of age but that the effect of
age differs depending on how old one is. As a consequence it
is hard to imagine how to define an "overall effect". I would
just graph the effect of age. Alternatively, I would represent
age as linear splines, see -help mkspline- if age is only of
secondary importance so I would not want to spent an entire
graph on it. That way you can interpret directly interpet
the parameters.
In the example below I show one way of graphing a model with
a quadratic term. Below that I show the alternative with linear
splines. The latter would be interpreted as follows: below
mathnce score of 50 you would expect a 10 point increase in
mathnce to result in a decrease of the expected count by a
factor of 0.95 (i.e. (1 - 0.95)*100% = -5%), while above a
mathnce score of 50 you would expect a 10 point increase in
mathnce to result in in increase in the expected count by a
factor of 1.07 (i.e. 7%).
*--------------------- begin example ----------------------------
use http://www.ats.ucla.edu/stat/stata/notes/lahigh, clear
zip daysabs i.gender i.biling mathnce langnce, inflate(i.school)
est store lin
zip daysabs i.gender i.biling c.mathnce##c.mathnce langnce, inflate(i.school)
est store quad
preserve
// fix the other variables at meaningful values
replace gender = 2
replace biling = 0
sum langnce if e(sample), meanonly
replace langnce = r(mean)
replace school = 1
// keep only one observation per unique value of mathnce
// this will make the resulting graph smaller in terms of memory
bys mathnce : keep if _n == 1
// predict the expected counts
est restore lin
predict n_lin
est restore quad
predict n_quad
// graph the expected counts
twoway line n_lin n_quad mathnce, sort ///
legend(order( 1 "linear" ///
2 "quadratic"))
restore
// alternatively use linear splines
// make the unit a bit bigger for ease of interpretation
replace mathnce = mathnce / 10
mkspline math1 5 math2 = mathnce
zip daysabs i.gender i.biling math1 math2 langnce, inflate(i.school) irr
*----------------------- end example -----------------------------------
(For more on examples I sent to the Statalist see:
http://www.maartenbuis.nl/example_faq )
Hope this helps,
Maarten
--------------------------
Maarten L. Buis
Institut fuer Soziologie
Universitaet Tuebingen
Wilhelmstrasse 36
72074 Tuebingen
Germany
http://www.maartenbuis.nl
--------------------------
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/