help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Help on error: can't perform indexing


From: ricardosilva
Subject: Help on error: can't perform indexing
Date: Wed, 14 Feb 2007 13:33:15 -0200


Dear Users,

Runnning the code below, I got the error:

octave.exe:35> prog.m
error: can't perform indexing operations for <unknown type> type

Since I am new in using Octave, I think it is very less informative for me.

Any help?

Thanks, Rick

clear;
#a=xlsread('sabes_oct.txt');
a=randn(106,153);

t=size(a,1);
p=a(:,1);       #(target)
aa=a(:,2:153);    # resto (regressors)
yy=p;
tt=size(yy,1);

lagdepmin=0;

lagmod1min=0;
lagmod2min=0;
lagmod3min=0;

lagdepmax=3;   # lags dependent variable tried
lagmod1max=3;  # lags model tried
lagmod2max=3;
lagmod3max=3;

lagmax=max([lagdepmax lagmod1max lagmod2max lagmod3max]);
for ahfor = 1:3;
    ahmod=1;     # number of periods ahead of model
    pseudo=12;   # number of out-of-sample points
    ychosen=yy(:,1);
    for lagdep=lagdepmin:lagdepmax;
      for lagmod1=lagmod1min:lagmod1max;
        for lagmod2=lagmod2min:lagmod2max;
          for lagmod3=lagmod3min:lagmod3max;
            for i=1:pseudo;
              # prepare model
              aaux=aa(1:tt-i-(ahfor-1),:);
              aaux=aaux-(ones(size(aaux,1),1)*mean(aaux));
              aaux=aaux./(ones(size(aaux,1),1)*std(aaux));
              baux=aaux'*aaux;
              [vetoraux,valoraux]=eig(baux);
              valoraux=diag(valoraux);
              xx1=aaux*vetoraux(:,size(vetoraux,2));
              xx2=aaux*vetoraux(:,size(vetoraux,2)-1);
              xx3=aaux*vetoraux(:,size(vetoraux,2)-2);
              # prepare variables
              yreal=yy(2+lagmax+(ahfor-1)+(ahmod-1):tt+1-i,1);
              yaux=[yy(1+lagmax+(ahmod-1):tt-i-(ahfor-1),1) xx1(1+lagmax+...
              (ahmod-1):tt-i-(ahfor-1),1) xx2(1+lagmax+(ahmod-1):tt-i-...
              (ahfor-1),1) xx3(1+lagmax+(ahmod-1):tt-i-(ahfor-1),1)];
              xaux=ones(tt-i-(ahfor-1)-(ahmod-1)-(1+lagmax)+1,1);
              taux=size(yaux,1);
              for j = 1:lagdep;
                xaux=[xaux yy(1+lagmax-j:tt-i-(ahfor-1)-(ahmod-1)-j,1)];
              endfor;
              for k1=1:lagmod1;
                xaux=[xaux xx1(1+lagmax-k1:tt-i-(ahfor-1)-(ahmod-1)-k1,1)];
              endfor;
              for k2=1:lagmod2;
                xaux=[xaux xx2(1+lagmax-k2:tt-i-(ahfor-1)-(ahmod-1)-k2,1)];
              endfor;
              for k3=1:lagmod3;
                xaux=[xaux xx3(1+lagmax-k3:tt-i-(ahfor-1)-(ahmod-1)-k3,1)];
              endfor;
              beta=(xaux'*xaux)^(-1)*xaux'*yaux;
              % forecast
              for m=1:ahfor;
                aux=1;
                for j=1:lagdep;
                  aux=[aux yaux(taux-(ahmod-1)+m-j,1)];
                endfor;
                for k1=1:lagmod1;
                  aux=[aux yaux(taux-(ahmod-1)+m-k1,2)];
                endfor;
                for k2=1:lagmod2;
                  aux=[aux yaux(taux-(ahmod-1)+m-k2,3)];
                endfor;
                for k3=1:lagmod3;
                  aux=[aux yaux(taux-(ahmod-1)+m-k3,4)];
                endfor;
                xaux=[xaux;aux];
                yaux=[yaux;xaux(taux+m,:)*beta];
              endfor;
              err(i)=yreal(taux)-yaux(taux+ahfor,1);
              endfor;
            sumerr(1+lagdep,1+lagmod1,1+lagmod2,1+lagmod3)=((err*err')/pseudo)^(1/2)*100;
          endfor;
        endfor;
      endfor;
    endfor;
  endfor;
________________________________________
Ricardo Gonçalves Silva, M. Sc.
Apoio aos Processos de Modelagem Matemática
Econometria & Inadimplência
Serasa S.A.
(11) - 6847-8889
address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]