簡體   English   中英

在MATLAB R2015b中使用神經網絡預測財務時間序列(實際輸出與預測輸出之間的延遲)

[英]Using neural network to predict a financial time series in MATLAB R2015b (lag between real output and predicted output)

假設DD是一個時間序列數據(一列和X行)。 我從數據末尾分離出11個樣本作為樣本外樣本,並通過MATLAB訓練神經網絡。 在訓練,測試和驗證數據中,神經網絡的性能很好(fit app神經網絡的默認屬性: fitnet )。

for ii = 31 : (numel(DD)-1)
    D_0(ii-30,1) = DD(ii-0);
    D_1(ii-30,1) = DD(ii-1);
    D_2(ii-30,1) = DD(ii-2);
    D_3(ii-30,1) = DD(ii-3);
    D_4(ii-30,1) = DD(ii-4);
    D_5(ii-30,1) = DD(ii-5);
    D_6(ii-30,1) = DD(ii-6);
    D_7(ii-30,1) = DD(ii-7);
    D_14(ii-30,1) = DD(ii-14);
    D_30(ii-30,1) = DD(ii-30);

    D_plus_1(ii-30,1) = DD(ii+1);
end

x = [D_0  D_1  D_2  D_3  D_4  D_5  D_6  D_7 D_14 D_30]';
t = D_plus_1';


%% Out-of-sample data

x_oos = x(:,end-10:end);
t_oos = t(:,end-10:end);

x(:,end-10:end) = [];
t(:,end-10:end) = [];

    hiddenLayerSize = 5;
    trainFcn = 'trainlm';  % Levenberg-Marquardt backpropagation.

    net = fitnet(hiddenLayerSize,trainFcn);

    net.input.processFcns = {'removeconstantrows','mapminmax'};
    net.output.processFcns = {'removeconstantrows','mapminmax'};

    net.divideFcn = 'dividerand';  % Divide data randomly
    net.divideMode = 'sample';  % Divide up every sample
    net.divideParam.trainRatio = 70/100;
    net.divideParam.valRatio = 15/100;
    net.divideParam.testRatio = 15/100;

    % Choose a Performance Function
    % For a list of all performance functions type: help nnperformance
    net.performFcn = 'mse';  % Mean Squared Error
    [net,tr] = train(net,x,t);

x是神經網絡的輸入, t是神經網絡的輸出(目標)。 訓練后,我使用此代碼來預測樣本數據的結果:

y_Out = net(x_oos);

這是樣本外數據的實際輸出與預測輸出之間的比較:

在此處輸入圖片說明

但是我認為兩個輸出之間存在滯后。 現在,只需一步就可以檢查它:

在此處輸入圖片說明

為什么我們在樣本外數據中有這種行為? 我檢查了樣本外的不同時間長度,並且我們有相同的行為(一步滯后)。 這是數據行為嗎?

PS。

所有數據( x變量作為訓練網絡的輸入,並與t變量進行比較)作為訓練神經網絡的輸入:

在此處輸入圖片說明 輸入的所有數據之間存在延遲! 神經網絡訓練有這種數據滯后! 這是一個錯誤嗎? 這是近兩年的每日時間序列,沒有任何丟失的數據。

您的網絡沒有問題。 發生的事情是您的網絡正在退化為一個幼稚的預測器(查找它)。 即:它無法解決您的輸入和輸出之間的關系...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM