【发布时间】:2018-12-04 10:05:04
【问题描述】:
为了提供一个最小的例子(我想在许多应用程序中使用这个解决方案),我在 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
这个问题不同,因为它使用回归函数(昨天的简单平均值),而且回答者提供了很多细节和实际有效的解决方案。
【问题讨论】:
-
顺便说一句,这不是您的型号规格。不要将它们更改为零,因为 0 是一个数字,是数据并且会对最终结果产生影响。如果将其设为零,则表示您正在更改测量值,这与将其更改为 pi、1000 或 -4 没有任何不同。零只是另一个数字,而不是缺少数据的占位符。我不知道你在哪里看到过变为零是可能的,但这是非常错误的。
-
有人在另一个问题中提出了建议,但我同意将其更改为零是完全错误的。
-
重复您昨天提出的问题:Dealing with NaN in matlab, simple tasks。编辑问题以增加清晰度,不要再问了。接受的答案与该问题上的my comment基本完全相同
-
@Wolfie 你是对的。我建议反过来说,因为OP基本上想问他们在这里问了什么,他们昨天还不够清楚
-
我不相信我明确说过要问另一个问题,我的意思是你应该改进现有的问题。不用担心,你肯定写了一个更好的问题,很高兴它产生了一个更好的答案!
标签: matlab