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

📄 cadf.m

📁 计量工具箱
💻 M
字号:
function results = cadf(y,x,p,l)% PURPOSE: compute augmented Dickey-Fuller statistic for residuals%          from a cointegrating regression, allowing for deterministic%          polynomial trends% ------------------------------------------------------------% USAGE: results = cadf(y,x,p,nlag)% where: y = dependent variable time-series vector%        x = explanatory variables matrix%             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%     nlag = # of lagged changes of the residuals to include in regression% ------------------------------------------------------------% RETURNS: results structure%          results.meth  = 'cadf'%          results.alpha = autoregressive parameter estimate%          results.adf   = ADF t-statistic%          results.crit  =  (6 x 1) vector of critical values%                        [1% 5% 10% 90% 95% 99%] quintiles   %          results.nvar  = cols(x)%          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     if (p < -1);        error('p cannot be < -1 in cadf');     end;     nobs    = rows(x);     if (nobs - (2*l) + 1 < 1);     error('nlags is too large in cadf; negative degrees of freedom');     end;         y       = detrend(y,p);     x       = detrend(x,p);     b = inv(x'*x)*x'*y;     r       = y - x*b;     dep     = tdiff(r,1);     dep = trimr(dep,1,0);     k       = 0     ;     z       = trimr(lag(r,1),1,0) ;     k = k + 1 ;     while (k <= l)           z = [z lag(dep,k)];           k = k + 1 ;          end;              z       = trimr(z,l,0) ;     dep     = trimr(dep,l,0) ;          beta    = detrend(z,0)\detrend(dep,0) ;     % res     = dep - z*beta ;     % BUG fix suggested by % Nick Firoozye% Sanford C. Bernstein, Inc% 767 Fifth Avenue, #21-49% New York, NY 10153     res = detrend(dep,0)- detrend(z,0)*beta;      so      = (res'*res)/(rows(dep)-cols(z));     var_cov = so*inv(z'*z) ;          results.alpha = beta(1,1);     results.adf = beta(1,1)/sqrt(var_cov(1,1));     results.crit = rztcrit(nobs,cols(x),p);     results.nlag = l;     results.nvar = cols(x);     results.meth = 'cadf';     

⌨️ 快捷键说明

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