[問題] 關於灰預測滾動建模已回收

看板MATLAB作者 (草莓蛋炒飯)時間14年前 (2010/05/18 13:49), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
不好意思 我想請問一下 因為我想用四點 五點 六點建模作股價預測 但是由於資料有80筆 那要用四點建模作滾動的話 程式碼要怎麼改呢? 就是要分別將t-4 t-3 t-2 t-1期來預測t期 再將t-3 t-2 t-1 t期預測t+1期 想請教各位大大了 另外附上之前版友幫我修改的程式碼 %function GM11 clc %清空畫面 clear all %清空暫存器 %輸入X0 output_N=3 %輸出幾點 X0=[86.89 102.78 104.93 126.92] %像這個 就是四點 n=size(X0); %查看是幾點建模 %=============== 做一次累加 %求出X1 X1(1)=X0(1); for k=2:1:n(2); X1(k)=X1(k-1)+X0(k); end %=============== 建構B,yn B=ones(k-1,2); % B為(k-1,2) 的矩陣 for i=1:1:n(2)-1; B(i)=-1/2*(X1(i)+X1(i+1)); end yn=X0(2:k)'; %=============== 計算a^ BTB=B'*B; BTB_1=inv(BTB); BTyn=B'*yn; a_=BTB_1*BTyn; a=a_(1) u=a_(2) %=============== 建構方程式 for k=1:1:n(2)-1; X_1(k+1)=X0(1)*exp(-a*k)+u/a*(1-exp(-a*k)); end for k=1:1:n(2)-1; X_0(k+1)=(1-exp(a))*(X0(1)-u/a)*exp(-a*k); end %=============== 預測 for k=n(2):1:n(2)-1+output_N; X_1(k+1)=X0(1)*exp(-a*k)+u/a*(1-exp(-a*k)); X_0(k+1)=X_1(k+1)-X_1(k); end X_01=X_0(k+2-output_N:k+1)'; X_01 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.17.29.245

05/21 20:42, , 1F
可否解釋你建模的數學方法,光我知道的方法就10多種了
05/21 20:42, 1F

05/21 20:42, , 2F
這樣會比較好幫你debug
05/21 20:42, 2F
文章代碼(AID): #1ByYg5N6 (MATLAB)