%GMMSTART  Front end for GMM estimation.
%          Gmmstart is a script file which contains the information
%          on the starting parameter vector and data.  It is a 
%          user-supplied routine.  See also GMM, GMMH, GMMHC, UNCMIN.
%

%          Ellen R. McGrattan, 3-27-89
%          Revised, 3-2-90

%          References:
%          ----------
%          [1]  Eichenbaum, Martin S. and Lars P. Hansen, ``Estimating
%               Models with Intertemporal Substitution Using Aggregate
%               Time Series Data,'' NBER Working Paper 2181, 1987.
%          [2]  Eichenbaum, Martin S. and Lars P. Hansen, ``Estimating
%               Models with Intertemporal Substitution Using Aggregate
%               Time Series Data,'' JOURNAL OF BUSINESS AND ECONOMIC
%               STATISTICS, 8:53-70, 1990.
%          [3]  Eichenbaum, Martin S., Lars P. Hansen, and Kenneth Singleton,
%               ``A Time Series Analysis of Representative Agent Models of
%               Consumption and Leisure Choice Under Uncertainty,'' NBER
%               Working Paper No. 1981, 1986.
%          [4]  Hansen, L.P. and K.J. Singleton, "Generalized Instrumental
%               Variables Estimation of Nonlinear Rational Expectations
%               Models," ECONOMETRICA, 50:1269-1286, 1982.
%          [5]  Hansen, Lars P., "Large-sample Moments Properties of
%               Generalized Method of Moments Estimators,'' ECONOMETRICA,
%               50:1029-1054, 1982.
%          [6]  Newey, W.K. and K.D. West, "A Simple, Positive Semi-
%               Definite, Heteroskedasticity and Autocorrelation Consistent
%               Covariance Matrix," ECONOMETRICA, 55:703-708, 1987.

clear

%-------------------------------------------------------------------------
%                             GLOBAL VARIABLES   
%-------------------------------------------------------------------------

global xgmm    zgmm        nobs         qgmm      Wgmm       mgmm     lgmm 
%       |       |           |            |         |          |        |  
%    x data  instrumental  # of         dimen.   weighting  dim. of   # of
%            variables,    observations of z(t)  matrix     function  params  
%            z(t)          t=1,... nobs                     h(.,.)

% the user can add to but should not delete from this list of variables

%-------------------------------------------------------------------------
%                          USER-SUPPLIED VARIABLES
%-------------------------------------------------------------------------

%  User-supplied entries:               Analog in Hansen, Singleton (1982)
%  ---------------------                ----------------------------------
%    1. xgmm:   nobs x k                  1. x:  T x k  = [x(1)',.., x(T)']
%    2. zgmm:   nobs x qgmm               2. z:  T x q  = [z(1)',.., z(T)']
%    3. theta0: lgmm x 1                  3. b0: l x 1
%    4. n:      integer, n>0              4. n:  integer, n>0
%                                       ----------------------------------
%                                       ----------------------------------
%    5. wgt      =  0                     W =  R(0)+sum_{j=1:n-1}(R(j)+R(j)')
%                =  1                       =  R(0)+sum_{j=1:n-1}(1-j/n)* 
%                                                                (R(j)+R(j)') 
%                =  2                       =  W described in Eichenbaum, 
%                                                et.al. (1986) 
%                                              (set nlag >=1)
%    6. restrict =  1                     R-statistic computed (0 otherwise)
%                                           (use GMMHC for moments with 
%                                            restrictions imposed)
%    7. induc: vector of indices          Set if restrict=1; gives indices
%       induc(i)<l, all i                   of theta vector that are not
%                                           constrained in computing R-stat.
%    8. parameters for optimization:
%       See UNCMIN
%
%    NOTE: xgmm and zgmm have same number of rows; thus for any row t
%          of zgmm is the instruments corresponding to the data in
%          xgmm(t,:) 
%

%-------------------------------------------------------------------------
%              Problem: HANSEN/SARGENT LQ economy
%-------------------------------------------------------------------------

% sig = 0:   load hslqtes2   ... which contains xgmm, theta0
% sig < 0:   load hslqtes3   ... which contains xgmm, theta0

load hslqtes3
zgmm     = ones(length(xgmm),1);

rand('normal');
%theta0   = theta0(1:8).*(1+rand(8,1)/50);
thet_orig = [theta0(1:8);-.005];
%theta0    = [theta0(1:8);-.005].*(1+rand(9,1)/100);
theta0     = ones(9,1);
theta0(9)  = .5;
global pshocks
rand('normal')
pshocks  = rand(20*length(xgmm),2);

n        = 1;
wgt      = 0;
nlag     = 0;
restrict = 0;
induc    = 0;

%[theta,jstat,df1,thetac,rstat,df2,se]=mlgmm(theta0,n,wgt,nlag,restrict,induc)
[theta,jstat,df1,thetac,rstat,df2,se]=mlgmmx(theta0,n,wgt,nlag,restrict,induc)

save junk
