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

st: Generating a bounded AR(1) series for Monte-Carlo Simulation

From   Paddy Carter <>
Subject   st: Generating a bounded AR(1) series for Monte-Carlo Simulation
Date   Sat, 11 Jul 2009 14:02:56 +0100

Dear Statalisters

I have a puzzle, concerning a section of a program intended to generate an AR(1) series for `aid' that is bounded between 0 and 0.3

Prior to this section of the program, I have already generated countries, time (and xtset the data) and a variable `aid' consisting of random draws from a uniform distribution on [0,0.3] - all but the first observation of which for each country, I wish to replace, using the following code:

if year>1 {
        if  L.aid<0  {
           replace aid=const+`rho'*L.aid+rnormal(0.1,0.01)
        else if L.aid>0.3 {
           replace aid=const+`rho'*L.aid+rnormal(-0.1,0.01)
        else {	
	    replace aid=const+`rho'*L.aid+(rnormal()/100)


I expect this code to do the following: whenever aid wanders beyond the bounds 0 and 0.3, the shock in the next period is set to bounce it away from these bounds. Hence I would expect to see observations of aid that do stray beyond 0 and 0.3 but which bounce back in the subsequent period. My puzzle is that when I run this code with large T, the aid series never strays beyond bounds. By my understanding, that shouldn't be happening.

I would actually like to write a program such that aid never strays beyond bounds, but I didn't know how to; I appear to have done so inadvertently, but the fact I don't understand what it's doing makes me fear I've gone totally wrong.

I apologise if I'm missing something obvious; this is my first ever attempt at programming.

This is on Stata/IC 10.1 for Windows

Paddy Carter
Department of Economics
University of Bristol
*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index