全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Gauss专版
3513 2
2012-05-18
论坛的高手们,小弟请教一个gauss的问题。
我现在想利用一个gauss代码来检验我的一个时政问题,而且已经有相关的代码了,但gauss实在没有接触过,请求有没有人能够教我怎么运用下面这个代码呢?这个代码编写的依据是LEE & Strazicich(2004)的允许结构突变的稳定性检验,我想用这个方法来检验自己的时间序列,本人的时间序列也很简单,不是面板,就是一个53个观察值单一时间序列,问下谁能帮我运用一下呢,告诉我怎么做。
代码附件传不来:
@  Written/Modified by: Junsoo Lee   Disclaimer: This code is provided gratis without any guarantees                or warrantees.  Proprietary modifications of this code                            are not permitted.@/* LM test using one break.  See also, SP.g,  LS_two.g, panel_sp.g (no break), panel_one.g (one break), panel_tw.g (two breaks)  Lee and Strazicich (2004) Minimum LM unit root test with one structural break.Reference paper: Lee, Junsoo, and Mark C. Strazicich, 2004, Manuscript,Department of Economics, Appalachian State University.  See also: Lee, Junsoo, and Mark C. Strazicich, 2003,"Minimum Lagrange Multiplier Unit Root Test with Two Structural Breaks."The Review of Economics and Statistics, 85(4): 1082-1089.program: LS_ONE.gNotes:To correct for serial correlations by including k first differenced lagged (augmented) terms,the program first determines the optimal lag length (k) at each possiblebreak point.  The optimal lag length is determined by a general to specific procedure.Starting with the maximum number of lags, maxk, the t-statistic on the maximum lagged termis examined to see if significant at the asymptotic 10% level.  If not, the maximum lagged term is dropped and the test is repeated until the maximum lagged term is significant, or no lags are found (see, for example, Ng and Perron, 1995).  Once the optimal lag length at each break point is determined, the program searches for the break point where the unit root t-test statistic is minimized.Model 1 includes one structural change in the intercept or level of the time series.Model 2 includes one structural change in the intercept and trend slope.To run the program below, you must name the output file, choose the maximum lag length k (8 in the example below), enter the number of observations in each time series (51 in the example below),enter the number of time series tested (43 in the example below), enter the name of thedata source file, and give each time series a name. */@ ================================================================ @  output file = "LS_one_gdp.out" reset; "SP-LM t-stat with the data-dependent choice of # lags ";@ ================================================================ @/* Options  */ maxk = 8;     @ # maximum augmentation lags allowed for @ T1_end = .1;   T2_end = .9;     @ End points (10% of both ends are not considered) @ crit_t = 1.645;     @ critical value of the t-stat for lag determination @ n = 50;     @ # of observations @ y = cumsumc(rndn(n,1));     @ Or, Read the dat file here.        ->  load y[n,1] = data.txt;  @     ""; "";         format /rd/m1 4,0;     "Date                     : ";; tt=date; tt[1:3]'; "";     "max p                    : " maxk;     format /rd/m1 4,1;@ ==== DATA ====================================================== @/*   load data[45,20] = c:\work\hyster\unemp2.txt;     "Data: Unemp2.txt";     let name =     Year Australia Austria Belgium Canada Denmark Finland     France Germany Ireland Italy Japan Netherlands Norway     Newzealand Spain Sweden Switzerland UK USA;     jjj = 2;     do while jjj <= 20;     y = data[.,jjj];     @ Due to missing observations @     if jjj == 16;  y = y[2:rows(data)];  endif;     if jjj == 20;  y = y[2:rows(data)];  endif;     if jjj == 11;  y = y[1:rows(data)-1];  endif;     if jjj == 14;  y = y[1:rows(data)-1];  endif;     if jjj == 18;  y = y[1:rows(data)-1];  endif;     if jjj == 19;  y = y[2:rows(data)-1];  endif;     format /m1/rd 20,0 ;     ""; "";     "|========>  ";;     "Series (not logged) : "  $name[jjj,1];   "";      n = rows(y);      format /m1/rd 5,0;     "# of obs = " n;*/@ ================================================================ @   load data[38,21] = gdp.txt;   npanel = 20;      @ # of panels @     let name =        Year  Australia  Austria  Belgium  Canada  Denmark  Finland  France        Germany  Greece  Iceland  Ireland  Italy  Japan  Netherlands  Norway        Spain  Sweden  Switzerland  UK  USA;    data = ln(data); Timedum = 0; Do while Timedum <= 1;     "";"";"";     "=======================================";     " Time Dummy (1=yes, 0=no) : " timedum;     "=======================================";    jjj = 2;    do while jjj <= cols(data);    y = data[.,jjj];    format /m1/rd 20,0 ;    ""; "";    "|========>  ";;    "Series          : "  $name[jjj];   "";     n = rows(y);     format /m1/rd 5,0;    "# of obs = " n;     if cols(data) == npanel;  mmm = jjj;           fstcol = 0;     elseif cols(data) == npanel+1;  mmm = jjj-1;   fstcol = 1;     else; "Error in # of panels !!!";  stop;  endif;     format /m1/rd 6,4;     "Panel # = ";; mmm;  "";             @ To control cross-country time effect @              if timedum == 1;             if fstcol == 0;                 newdata = data - meanc(data');             else;                 tt1 = meanc(data[.,2:cols(data)]');                 newdata = data[.,2:cols(data)] - tt1;             endif;             y = newdata[.,mmm];         endif;    @ ================================================================ @/* End of Options */ @ imodel  1 = Crash model (dummy on the intercepts)           2 = Breaking trend (dummy on the trend)   @ imodel=1; do while imodel <= 2; @ once for each model for the panel test @    cls;    "---------------------------------------------------";    "Lee and Strazicich Min LM t-stat with ONE break ";    "Model = " imodel;    T = n;    T1 = round(T1_end * rows(y));    T2 = round(T2_end * rows(y));    if T1 < maxk+2; T1 = maxk + 3;  endif;      @ any big value @        minlm = 1000;    lmestd1 = zeros(T,1);    lmtd1 = zeros(T,1);     lmlm1 = zeros(T,1);    lmtk1 = zeros(T,1);     lmoptk1 = zeros(T,1);  ii = T1;  Do while ii <= T2;      output off;      format /rd/m1 5,0;      Estconf = ii;      locate 5,1; Estconf';     lmtk = zeros(maxk+1,1);     lmlm = zeros(maxk+1,1);     lmestd = zeros(maxk+1,1);     lmtd = zeros(maxk+1,1);     kk = 0;  @ lag @     do while kk <= maxk;     If imodel == 1;       {lmtstat, lmed, lmtd0, lmres, lmbeta, lmtval, lmsig} =           nLMk(y, EstConf,kk,0);     Endif;     If imodel == 2;       {lmtstat, lmed, lmtd0, lmres, lmbeta, lmtval, lmsig} =           nLMCk(y, EstConf,kk,0);     Endif;     lmlm[kk+1] = lmtstat;     if kk > 0; lmtk[kk] = lmtval[kk+1];  endif;       @ t-stat of the coeff. of the last augmented term @    kk = kk + 1;    endo;      jj = maxk;  isw = 0;      do while isw ne 1;        if (abs(lmtk[jj]) > crit_t) or (jj == 0);           lmoptk = jj;  isw = 1;        endif;        jj = jj - 1;      endo;      tt = lmoptk+1;      lm_k = lmlm[tt];      if lm_k < minlm;         minlm = lm_k;         lmtb = Estconf;         lmk = lmoptk;         format /rd/m1 5,0;         locate 9,10;         "Updated break = ";; Estconf;; "   lag = ";; lmk;       endif;  ii = ii + 1; Endo;    output on;    optb = lmtb; optk = lmk;    format /rd/m1 10,4;    "----------------------------------------------------"; "";    "Model  (1=A, 2=C)      = " imodel;    If imodel == 1;       {lmtstat, lmed, lmtd0, lmres, lmbeta, lmtval, lmsig} =           nLMk(y, optb, optk, 0);    Endif;    If imodel == 2;       {lmtstat, lmed, lmtd0, lmres, lmbeta, lmtval, lmsig} =           nLMCk(y, optb, optk, 0);    Endif;      panel_t[mmm] = lmtstat;      panel_k[mmm] = optk;      panel_b[mmm] = optb;     "";     "Min. test statistic    = "  lmtstat;     "Estimated break point  = "  optb;     "Selected lag           = "  optk;     "";     "Est. coeff. of dummy   = "  lmed;     "Its t-stat             = "  lmtd0;     "Standard error ..      = "  lmsig;     @"Standardized dummy     = "  lmed / lmsig;@     if imodel == 1;      ""; "Coeff and t-stat";      "Z(t) = [S(t-1), (lags..omitted), 1, B1(t)] ";     endif;     if imodel == 2;      ""; "Coeff and t-stat";      "Z(t) = [S(t-1), (lags..omitted), 1, B1(t), D1(t)] ";     endif;     tt1 = lmbeta[1] | lmbeta[2+optk:rows(lmbeta)];     tt2 = lmtval[1] | lmtval[2+optk:rows(lmtval)];     tt3 = tt1 ~ tt2;     tt3; "";下面的应该不用改了,长度有限。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-5-18 19:32:20
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-18 14:41:22
用这一程序做面板的检验怎么修改程序,求!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群