Which programming language is this code in?

Crazy_Eddy

Staff member
Super Mod
Posting this on behalf of a friend.

Any clue what programming language this is? :-/

Code:
@version 3, October 11, 2004.

These routines can be used by and distributed for non-profit academic purposes

without any royalty except that the users must cite:

Bai, Jushan and Pierre Perron (1996): "Estimating and Testing Linear

Models with Multiple Structural Changes," Econometrica, 1998, vol 66, 47-78

and

Bai, J. and P. Perron (2003): "Computation and Analysis of Multiple

Structural Change Models," Journal of Applied Econometrics, 18, 1-22.

For any other commercial use and/or comments,  please contact

Pierre Perron at perron at bu.edu.

Even though we tried to make this program error-free we cannot be held

responsible for any consequences that could result from remaining errors.

Copyright, Pierre Perron (1999, 2004).

@

new;

format /ld 6,4;

output file = real.out reset;   @select your output file@

load yyy[103,1] = real.dat;      @read data@

bigt=103;                        @set effective sample size@

y=yyy[1:103,1];                @set up the data, y is the dependent variable

                                z is the matrix of regressors (bigt,q) whose

                                coefficients are allowed to change, x is a

                                (bigt,p) matrix of regressors with coefficients

                                fixed across regimes. Note: initialize x to

                                something, say 0, even if p = 0.@

z=ones(bigt,1);

x=0;

q=1;                         @number of regressors z@

p=0;                         @number of regressors x@

m=5;                         @maximum number of structural changes allowed@

eps1=.15;                  @Value of the trimming (in percentage) for the construction

                                  and critical values of the supF ype tests (used in the 

                                 supF test, the Dmax, the supF(l+1|l) and the sequential

                                  procedure). If these test are used, h below should be set

                                  at int(eps1*bigt). But if the tests are not required, estimation

                                  can be done with an arbitrary h.

                                  There are five options: eps1 = .05, .10, .15, .20 or .25.

                                  For each option, the maximal value of m above is: 10 for eps1 = .05;

                                  8 for eps1 = .10, 5 for eps1 = .15, 3 for eps1 = .20 and 2 for eps1 = .25.@

h=int(eps1*bigt);                         @minimal length of a segment (h >= q). Note: If

                                  robust=1, h should be set at a larger value.@

/* the following are options if p > 0.

----------------------------------- */

fixb=0;                     @set to 1 if use fixed initial values for beta@

betaini=0;                  @if fixb=1, load the initial value of beta.@

maxi=20;                    @maximum number of iterations for the nonlinear

                             procedure to obtain global minimizers.@

printd=1;                   @set to 1 if want the output from the iterations

                             to be printed.@

eps=0.0001;                 @criterion for the convergence.@

/*--------------------------------- */

robust=1;                   @set to 1 if want to allow for heterogeneity

                             and autocorrelation the in residuals, 0 otherwise.

                             The method used is Andrews(1991) automatic

                             bandwidth with AR(1) approximation and the

                             quadratic quernel. Note: Do not set to 1 if

                             lagged dependent variables are included as

                             regressors.@

prewhit=1;                   @set to 1 if want to apply AR(1) prewhitening

                              prior to estimating the long run covariance

                              matrix@

hetdat=1;              @Option for the construction of the F-tests.

                                Set to 1 if want to allow different moment matrices of the 

                               regressors accross segments. If hetdat = 0, the same

                               moment matrices are assumed for each segment and estimated 

                               from the full sample. It is recommended to set hetdat=1.  If p > 0

                                set hetdat = 1.@

hetvar=1;              @Option for the construction of the F-tests.

                              Set to 1 if want to allow for the variance of the residuals

                              to be different across segments. If hetvar=0, the variance

                               of the residuals is assumed constant across segments

                              and constructed from the full sample. This option is not available 

                              when robust = 1.@

hetomega=1;                @Used in the construction of the confidence

                            intervals for the break dates. If hetomega=0,

                            the long run covariance matrix of zu is assumed

                            identical accross segments (the variance of the

                            errors u if robust = 0).@

hetq=1;                    @Used in the construction of the confidence

                            intervals for the break dates. If hetq=0,

                            the moment matrix of the data is assumed

                            identical accross segments.@

doglobal=1;                 @set to 1 if want to call the procedure

                             to obtain global minimizers.@

dotest=1;                   @set to 1 if want to construct the sup F,

                             UDmax and WDmax tests. doglobal must be set

                             to 1 to run this procedure.@

dospflp1=1;                 @set to 1 if want to construct the sup(l+1|l)

                             tests where under the null the l breaks are

                             obtained using global minimizers. doglobal

                             must be set to 1 to run this procedure.@

doorder=1;                  @set to 1 if want to call the procedure that

                             selects the number of breaks using information

                             criteria. doglobal must be set to 1 to run

                             this procedure.@

dosequa=1;                  @set to 1 if want to estimate the breaks

                             sequentially and estimate the number of

                             breaks using the supF(l+1|l) test.@

dorepart=1;                @set to 1 if want to modify the

                             break dates obtained from the sequential

                             method using the repartition method of

                             Bai (1995), Estimating breaks one at a time.

                             This is needed for the confidence intervals

                             obtained with estim below to be valid.@

estimbic=1;                  @set to 1 if want to estimate the model with

                              the number of breaks selected by BIC.@

estimlwz=0;                  @set to 1 if want to estimate the model with

                              the number of breaks selected by LWZ.@

estimseq=1;                 @set to 1 if want to estimate the model with

                              the number of breaks selected using the

                              sequential procedure.@

estimrep=0;                 @set to 1 if want to esimate the model with

                              the breaks selected using the repartition

                              method.@

estimfix=0;                  @set to 1 if want to estimate the model with

                              a prespecified number of breaks equal to fixn

                              set below.@

fixn=0;

call pbreak(bigt,y,z,q,m,h,eps1,robust,prewhit,hetomega,

hetq,doglobal,dotest,dospflp1,doorder,dosequa,dorepart,estimbic,estimlwz,

estimseq,estimrep,estimfix,fixb,x,q,eps,maxi,fixb,betaini,printd,hetdat,hetvar,fixn);

#include brcode.src            @set the path to where you store the file brcode.src@

end;

Code taken from : Journal of Applied Econometrics Data Archive: Data Directory
 
Don't know why people have become so lazy that they cannot even do a google search. It appears that the more technology is entering our lives, the more lazier we are becoming...

And yes, it is GAUSS.
 
Thanks everyone, turns out it is GAUSS ! :)

I did in fact search quite a bit, but guess I was tackling it the wrong way. Nonetheless a few pointers would definitely be appreciated ;)

Thanks again! :)
 
That header file is proprietary code included with the package where the above code comes from, i.e. its not part of a standard library.

But anyway, that also helped turn up some relevant results :)
 
Back
Top