我想弄清楚如何將輸入和輸出數據合併到ARX模型中,然後將其應用到BIC(貝葉斯信息標準)公式中。以下是我目前正在使用的代碼:如何將iddata應用於計算?
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
但它不起作用。它不斷給我一個如下所示的錯誤:
「語法」Data {...}「不支持。使用」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
「model = arx(data,[50 9 i])」中的變量「i」;「不設置模型順序。它設置模型中的延遲數量。你想要什麼樣的模型來適合你的數據?您應該檢查工具箱文檔中的「幫助arx」。 – Kavka 2012-03-20 00:56:19
是的,我正在嘗試適合arx模型。是的「我」是爲了延遲。對困惑感到抱歉。評論並不意味着在那裏。我只是試圖找到從1-20範圍延遲的最低值。 – Sam 2012-03-20 14:46:36