⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adf.m

📁 计量工具箱
💻 M
字号:
function results =  adf(x,p,l)% PURPOSE: carry out DF tests on a time-series vector%---------------------------------------------------% USAGE: results = adf(x,p,nlag)% where:      x = a time-series vector%             p = order of time polynomial in the null-hypothesis%                 p = -1, no deterministic part%                 p =  0, for constant term%                 p =  1, for constant plus time-trend%                 p >  1, for higher order polynomial%         nlags = # of lagged changes of x included           %---------------------------------------------------% RETURNS: a results structure%         results.meth  = 'adf'%         results.alpha = estimate of the autoregressive parameter%         results.adf   = ADF t-statistic%         results.crit = (6 x 1) vector of critical values%                        [1% 5% 10% 90% 95% 99%] quintiles    %         results.nlag = nlag   %---------------------------------------------------% SEE ALSO: prt_coint()%--------------------------------------------------- % References: Said and Dickey (1984) 'Testing for Unit Roots in% Autoregressive Moving Average Models of Unknown Order', % Biometrika, Volume 71, pp. 599-607.% written by:% James P. LeSage, Dept of Economics% University of Toledo% 2801 W. Bancroft St,% Toledo, OH 43606% jlesage@spatial-econometrics.com% Modeled after a similar Gauss routine by% Sam Ouliaris, in a package called COINT% error checking on inputsif (nargin ~= 3) error('Wrong # of arguments to adf');end;if (p < -1) error('p less than -1 in adf');elseif (cols(x) > 1) error('adf cannot handle a matrix -- only vectors');end;nobs = rows(x);if ((nobs - 2*l)+1 < 1) error('nlags too large in adf, negative dof');end;dep = trimr(x,1,0);ch = tdiff(x,1);ch = trimr(ch,1,0);% Gerard van den Hout suggested the fix below% Erasmus University Rotterdam.% The Netherlands.k = 0 ;z = [];while (k < l);    k = k+1;    z = [z lag(ch,k)];end;z = trimr(z,k,0);dep = trimr(dep,k,0);if (p > -1) z = [z ptrend(p,rows(z))];end;     b       = inv(z'*z)*(z'*dep);     % res     = dep - z*b ;     % BUG fix suggested by % Nick Firoozye% Sanford C. Bernstein, Inc     res = detrend(dep,0) - detrend(z,0)*b;      so      = (res'*res)/(rows(dep)-cols(z));     var_cov = so*inv(z'*z) ;          results.nlag = l;     results.alpha = b(1,1);     results.adf = (b(1,1)-1)/sqrt(var_cov(1,1));     results.crit = ztcrit(nobs,p);     results.meth = 'adf';     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -