Я пытаюсь выяснить, как объединить входные и выходные данные в модель ARX, а затем применить их в формуле BIC (Байесовский информационный критерий).Ниже приведен код, над которым я сейчас работаю:
for i=1:30; %% Set Model Order
data=iddata(output,input,1);
model = arx(data,[8 9 i]);
yp = predict(model,data);
ye = regress(data,yp{1,1}(1:4018,1));
M(i) = var(yp);
BIC(i)=(N+i*(log(N)-1))/(N-i)*log(M(i));
end
Но он не работает.Он продолжает выдавать ошибку, похожую на приведенную ниже:
"Синтаксис" Данные {...} "не поддерживается. Используйте команду" getexp "для извлечения отдельных экспериментов из объекта IDDATA".Я не понял, что это значит.Может кто-нибудь объяснить мне, и где я могу сделать ошибку в своем куске кода?
Обновление: я пытался сделать что-то вроде ниже, пока нет ошибки.Но тогда график для этого BIC будет всегда прямой.Что-то не так с моей частью регрессии?как мне поступить для регрессии?
N=length(rainfall_model);
for i=1:20; % Set Model Order
data=iddata(rainfall_model,tmax_model,1);
%d1 = getexp(data,1);
model = arx(data,[50 9 i]);
yp=predict(model,data);
y = yp.y ;
d1 = data.y ;
ye = (d1).^2 - (y).^2;
M(i)= mse(ye);
BIC(i)=(N+i*(log(N)-1))/(N-i)*log(M(i));
end