1
votes

I'm trying to store a series of scalars along the coefficients of a bootstrapped regression model. The code below looks like the example from the Stata [P]rogramming manual for postfile, which is apparently intended for use with such procedures.

The problem is with the // commented lines, which fail to work. More specifically, the problem seems to be that the syntax below worked in Stata 8 but fails to work in Stata 9+ after some change in the bootstrap procedure.

cap pr drop bsreg
pr de bsreg
    reg mpg weight gear_ratio

    predict yhat
    qui sum yhat

//  sca mu = r(mean)
//  post sim (mu)
end

sysuse auto, clear

postfile sim mu using results , replace

    bootstrap, cluster(foreign) reps(5) seed(6112): bsreg

postclose sim

use results, clear

Adding version 8 to the code did not solve the issue. Would anyone know what is wrong with this procedure, and how to fix it for execution in Stata 9+? The problem has been raised in the past and more recently, but without finding an answer.

Sorry for the long description, it's a long problem.

I've presented the issue as if it's a programming one because I'm using this code to replicate some health inequalities research. It's necessary to bootstrap the entire procedure, not just the reg model. I have some quibbles with the methodology, but nothing that would stop me from replicating the analysis.

1
Note that for least squares, which is not your real concern, the mean of the predictions is the sample mean. - Steve Samuels

1 Answers

0
votes

Adding noisily to the bootstrap showed a problem with the predict command. Here's a fix using a tempvar macro.

cap pr drop bsreg
pr de bsreg
    reg mpg weight gear_ratio

    tempvar yhat
    predict `yhat'
    qui sum `yhat'

    sca mu = r(mean)
    post sim (mu)
end

sysuse auto, clear

postfile sim mu using results , replace

    bootstrap, cluster(foreign) reps(5) seed(6112): bsreg

postclose sim

use results, clear