簡體   English   中英

MATLAB時間序列回歸,處理NaN

[英]MATLAB time-series regression, dealing with NaNs

為了提供一個最小的示例(我想在眾多應用程序中使用此解決方案),我使用了MATLAB中的regress函數。

我在MATLAB中擁有的數據是(每月)時間序列,但是某些序列開始時缺少一些數據點。

示例數據

假設Y是任意回歸模型中的因變量,我想運行10個回歸模型,

$$ Y_t = \\ alpha + X_ {i,t-1} $$

因此,我想運行9個模型,其中Y是因變量,每個模型的解釋變量從$ X_2 $變為$ X_10 $。

明確地說,我想運行9個模型(見圖),

方程式

我遇到的問題是,我希望使用Y(即data(:,1) )和X2(即data(:,2))的第一個模型使用前1000個觀測值,但是對於X3,有988個觀測值,因此在進行回歸時,我想對Y和X3使用988個觀測值。

在其他問題中,人們建議將NaN更改為0,但這是不可能的。 編輯(顯然可以更改為零,但是對於我的模型規范來說這是不可能的)。

%Data
data = rand(1000,10); %add NaNs randomly at the start of the series. 

%Regression
for ii = 2:10
b = regress(data(:,1),data(:,ii))
end

這個問題是不同的,因為它使用了回歸函數(昨天是簡單的均值),回答者也提供了很多細節和實際可行的解決方案。

只需選擇非NaN

%Data
data = rand(1000,10); %add NaNs randomly at the start of the series. 

%Regression
for ii = 2:10
   notnans=~isnan(data(:,ii)); % assuming data(:,1) has no NaNs
   b = regress(data(notnans,1),data(notnans,ii))
end

暫無
暫無

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

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