0

我正在尝试开发一些代码来发现使用辅助数据源来提高最终产品的可预测性的意义。我在 matlab 中准备好数据,这是我首选的分析程序。

我正在尝试解决以下等式。

P(t,i) = a(i) + b(i)*Z(t,i) + c(i)*Y(t,i) + d(i)*X(t,i) + e( i)*W(i)

其中,P、Z、Y、X、W 是已知的,t 和 i 是索引,我希望找到 a、b、c、d 和 e 的值,以最小化 P 的现有值与预测值之间的差异P。

t = 1:20 和 i ~ 1:250000

最终,我会将 e(i) 的值设置为零,然后在使用随机数流进行测试之前,看看我通过添加额外变量获得了多少改进。

如果需要更多详细信息,我会尽力提供,非常感谢。

我尝试了下面建议的方法,但是因为我的 Z、Y 和 X 值是矩阵,所以输出矩阵 sol 是 t 的宽度的 3 倍 + e 的一个元素。我进一步阅读并认为该方法应该是广义线性模型或面板回归模型之一,但我不确定如何设置。我已经重读了几次 mathworks 中的示例,但仍然感到困惑。

4

1 回答 1

0

您可以使用 计算系数mldivide,其中 MATLAB 将为您提供超定系统的最小二乘解。如果我正确理解了这个问题,你想计算每个 的系数i,所以你必须遍历i

在代码中,它看起来像这样(未经测试):

for i=1:250000
  M = [ones(size(P(:,i))), Z(:,i), Y(:,i), X(:,i), W(:,i)];
  sol = M\P(:,i);

  a(i) = sol(1);
  b(i) = sol(2);
  c(i) = sol(3);
  d(i) = sol(4);
  e(i) = sol(5);
end

您可以在文档中找到更多信息。

于 2015-04-29T13:41:06.593 回答