Thanks to Ulrich, Nick and all the others who answered my question, I
think I met the challenge...
Antoine
For anyone interrested, here is the code:
/*----------------------------*/
clear
set scheme s2mono
webuse nlswork.dta, clear
g wage=exp(ln_wage)
su wage, de
drop if wage>r(p99)
gen t=(year)
g ti=t
g ti2=t^2
g ti3=t^3
qreg wage ti ti2 ti3
est store med
qreg wage ti ti2 ti3 , quantile(.95)
est store p95
qreg wage ti ti2 ti3 , quantile(.05)
est store p5
drop ti ti2 ti3
g ti=t+runiform()
g ti2=ti^2
g ti3=ti^3
est restore med
predict med
predict resmed, resid
est restore p95
predict q95
predict resq95, resid
est restore p5
predict q5
predict resq5, resid
by t, sort: egen pct25 = pctile(resmed), p(25)
by t, sort: egen pct50 = pctile(resmed), p(50)
by t, sort: egen pct75 = pctile(resmed), p(75)
egen ufence = adju(resmed), by(t)
egen lfence = adjl(resmed), by(t)
reg resq5 ti ti2 ti3
predict resq5hat
reg resq95 ti ti2 ti3
predict resq95hat
sum wage, meanonly
gen wageclass = autocode(wage,32,r(min),r(max))
by t wageclass, sort: gen wageperc = _N/r(N)
// rescale wageperc
sum wageperc, meanonly
replace wageperc = wageperc/r(max) * .90
gen lower = t
gen upper = t + wageperc
preserve
bysort t wageclass : keep if runiform()<0.05 | _n==1
levelsof wageclass, local(K)
local width = (`:word 2 of `K'' - `:word 1 of `K'')
twoway ///
|| rbar lower upper wageclass, graphregion(color(white)) ///
fcolor(gs15) barwidth(`width') horizontal xlabel(68(5)88) ///
|| line med q95 q5 ti, sort lpattern(solid..) lcolor(black..) ///
legend(off) xtitle(year) saving(b, replace) nodraw
twoway ///
rspike ufence pct75 t , color(black) ///
|| rspike lfence pct25 t , color(black) ///
|| rcap ufence ufence t , color(black) ///
|| rcap lfence lfence t , color(black) ///
|| rbar pct25 pct50 t, barwidth(.5) fcolor(gs15) lcolor(black) ///
|| rbar pct50 pct75 t, barwidth(.5) fcolor(gs15) lcolor(black) ///
|| line resq5hat resq95hat ti , sort lpattern(solid..) ///
lcolor(black..) graphregion(color(white)) ///
legend(off) xlabel(68(5)88 , nolabel notick) ///
fysize(20) saving(b2, replace) nodraw
graph combine b2.gph b.gph, graphregion(color(white)) col(1)
restore
/*----------------------------*/
*
* 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/