function [Phat,counts,jumps]=pestimering(x) % [Phat,counts,jumps]=pestimering(x); % Skattar övergångsmatrisen, samt ger frekvenserna for de olika % övergångarna. % Indata: Vektor med processens värden. % Utdata: Estimat av övergangsmatrisen (Phat) % Vektor som anger hur många gånger processen besökt de olika % tillstånden (counts) % Matris som anger hur många hopp som gjorts mellan de olika % tillstånden (jumps) % Anders Svensson 941107 % Finn Lindgren 981110 sparse-trick, ca faktor 20 snabbare än tidigare. % FL 1999-11-24 Vektorisering. b=max(x); % antal tillstand % Använd sparse-tricket för att beräkna % frekvensmatrisen för övergångarna. % (Indexdubletter ger summerade element.) jumps=full(sparse(x(1:end-1),x(2:end),1,b,b)); counts=sum(jumps')'; % Frekvens for tillstånden % Vektoriserad variant: Phat=jumps./(counts*ones(1,b)+~jumps); Phat(~(counts*ones(1,b)))=NaN; %% Loop-variant: %Phat=zeros(b,b); %[S,F]=warning; % Varningsstatus %warning('off') % Stäng av 0/0-varning %for i=1:b % Phat(i,:)=jumps(i,:)/counts(i); % bygger upp estimat (rad for rad) %end %% Återställ varningsstatus %warning(S) %warning(F)