Documentation of partial_autocorr


Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)


Function Synopsis

[alpha, Alpha] = partial_autocorr(x, nest);

Help text


  alpha = partial_autocorr(x, lags);

  Inputs:
  x is the time series
  lags is 0:length(x) unless otherwise specified
      (I suggest lags = [0:20], or this will take a while)

  Outputs:
  alpha is the partial autocorrelation vector
   

Listing of function partial_autocorr

function [alpha, Alpha] = partial_autocorr(x, nest);

if ~all([length(size(x))==2 , ismember(1, size(x))]);
  error('x must be a vector');
end

if nargin == 1;
  nest = (length(x));
end

nest = nest(nest >= 0);
nest = length(nest)-1;

x = x(:);
ntim = length(x);

fi = repmat(NaN, [nest+1 1]);
for i = 1:(nest+1); 
  %  size(x(1:(end-i+1)))
  %  size(x((1+i-1):end))
  fi(i) = x(1:(end-i+1))'*x((1+i-1):end)/(ntim-i);
end

alph = zeros(nest);
alph(1,1) = fi(2)/fi(1);

for i = 2:nest;
alph(i,i) = fi(i+1)/fi(1) - alph(i-1,1:(i-1))*fi((i):-1:2)/fi(1);   
alph(i,i) = alph(i,i)/(1-alph(i-1,((i-1):-1:1))*fi((i):-1:2)/fi(1));
for j = 1:(i-1);
alph(i,j) = alph(i-1,j)-alph(i,i)*alph(i-1,i-j);
end; end;

alpha = [1 diag(alph)'];
if nargout == 2;
  Alpha = alph;
end