Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Nick Cox <njcoxstata@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: plotting a regression function with time-dummies indicating structural breaks |

Date |
Tue, 3 May 2011 11:10:00 +0100 |

For what you want, -twoway function- is not especially helpful. Do something more like this. clear set obs 20 gen int TIME = _n + 1990 * create dummies gen byte d1 = TIME > 1995 gen byte d2 = TIME > 2005 tsset TIME * set coefficients scalar b_0 = 100 scalar b_1 = 2 scalar b_2 = 10000 scalar b_3 = -5 scalar b_4 = 20 * generate the time series set seed 1 gen u = rnormal(0,2) gen y = b_0 + b_1*TIME + b_2*d1 + b_3*d1*TIME + b_4*d2 + u gen y2 = b_0 + b_1*TIME + b_2*d1 + b_3*d1*TIME + b_4*d2 tw tsline y y2, legend(order(1 "tsline" 2 "function")) On Tue, May 3, 2011 at 10:53 AM, Oliver Jones <ojones@wiwi.uni-bielefeld.de> wrote: > Hi Nick, > here is some example I just made up, that shows what I mean by "range > problem" > > ************* begin example **************** > clear > set obs 20 > > gen int TIME = _n + 1990 > > * create dummies > gen byte d1 = 0 > replace d1 = 1 if TIME > 1995 > gen byte d2 = 0 > replace d2 = 1 if TIME > 2005 > > tsset TIME > > * set coefficients > scalar b_0 = 100 > scalar b_1 = 2 > scalar b_2 = 10000 > scalar b_3 = -5 > scalar b_4 = 20 > > * generate the time series > set seed 1 > gen u = rnormal(0,2) > gen y = b_0 + b_1*TIME + b_2*d1 + b_3*d1*TIME + b_4*d2 + u > > tw /// > (tsline y) /// > (function y = b_0 + b_1*x + b_2*d1 + b_3*d1*x + b_4*d2, /// > range(1991 2010)), /// > legend(order(1 "tsline" 2 "function")) > > ************* end example **************** > > I hope the resulting plot shows what I mean. > > Best > Oliver > > > Am 03.05.2011 11:29, schrieb Nick Cox: >> >> This is presumably a family of four curves given by a range on TIME_t >> and Dummy_1 = 0, 1 and Dummy_2 = 0,1. >> >> -twoway function- will take care of TIME_t = x but it is completely >> dumb about the dummies. My guess is that it will use Dummy_1[1] and >> Dummy_2[1] and give you just one of the four depending on values in >> the first observation. >> >> You will need to call -function- four times, but you don't need to >> type the code four times. >> >> Something like this: >> >> forval a = 0/1 { >> forval b = 0/1 { >> local fcall `fcall' (function y = b_0 + b_1*x + `a'*(b_2 + >> b_3*x) + b_4*`b', /// >> range(TIME_t)) >> } >> } >> >> twoway (tsline y) `fcall' , legend(order(2 "0 0" 3 "0 1" 4 "1 0" 5 "1 1")) >> >> I am assuming that this is generic code or that you have scalars b_0 .. >> b_4. >> >> By the way, the -generate- line is irrelevant. -twoway function- works >> with a generic x. >> >> On Tue, May 3, 2011 at 10:10 AM, Oliver Jones >> <ojones@wiwi.uni-bielefeld.de> wrote: >> >>> I wonder if there is an easy way to plot a regression of the form: >>> >>> y_t = b_0 + b_1*TIME_t + Dummy_1*(b_2 + b_3*TIME_t) + b_4*Dummy_2 >>> >>> So far I tried: >>> gen x = TIME_t >>> twoway /// >>> (tsline y) /// >>> (function y = b_0 + b_1*x + Dummy_1*(b_2 + b_3*x) + b_4*Dummy_2, >>> /// >>> range(`first_year' `last_year')) >>> >>> I seem to have a problem with the range, because the resulting graph just >>> covers one third of the graph. But the shape seems to look ok, just >>> compressed. >>> >>> Hopefully there is a nice way of plotting such stuff without the >>> -function- >>> command or some one has a hint regarding the range problem. * * 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/

**References**:**st: plotting a regression function with time-dummies indicating structural breaks***From:*Oliver Jones <ojones@wiwi.uni-bielefeld.de>

**Re: st: plotting a regression function with time-dummies indicating structural breaks***From:*Nick Cox <njcoxstata@gmail.com>

**Re: st: plotting a regression function with time-dummies indicating structural breaks***From:*Oliver Jones <ojones@wiwi.uni-bielefeld.de>

- Prev by Date:
**Re: st: plotting a regression function with time-dummies indicating structural breaks** - Next by Date:
**Re: st: plotting a regression function with time-dummies indicating structural breaks** - Previous by thread:
**Re: st: plotting a regression function with time-dummies indicating structural breaks** - Next by thread:
**Re: st: plotting a regression function with time-dummies indicating structural breaks** - Index(es):