Ich brauche eine Schätzungsprozedur für n
Zeitreihe (n
Vektoren von T
Beobachtungen). Ich habe die Formel, um meine Variable zu bewerten (mit einer for-Schleife), aber ich muss diese n
mal wiederholen (die Anzahl der Vektoren).Doppel für Schleife MATLAB
h0 = var(residuals);
ht=zeros(T,n); ht(T,1)=h0;
for i=2:T
ht(i) = theta(1) + theta(2)*residuals(i-1)^2 + theta(3)*ht(i-1);
end
Also diese Schleife berechnet ht
für alle Beobachtungen in Serie, aber ich brauche eine andere für Schleife, die mir diese Formel für alle der Serie zu verwenden, hilft.
Edit: Dies ist, was ich auf der Grundlage der unten Antwort getan haben:
function ht = VarEQ(theta,residuals)
[T,n] = size(residuals)
for k=1:n
h0 = var(residuals(:,k));
ht=zeros(T,n); ht(1,k)=h0;
for i=2:T
ht(i,k) = theta(1,k) + theta(2,k)*residuals(i-1,k)^2 + theta(3,k)*ht(i-1,k);
end
end
end
Aktuelles Problem: Jetzt ht
ist alle Spalten von Null und nur die letzte Spalte der korrekten Werte .
Variables
var
ist ein 1xN Zeilenvektor der Varianzen. Mit k
möchte ich nur den Skalar für jeden Rest.
theta
ist eine 3xn-Matrix von Parametern.
residuals
ist eine Txn-Matrix.
Woher kommt das 'n'? – Adriaan
n und T sind [T, n] = Größe (Residuen) –