【问题标题】:Matlab multivarible regresison with time dependent variables具有时间相关变量的Matlab多变量回归
【发布时间】:2015-05-05 17:43:26
【问题描述】:

我正在尝试开发一些代码来发现使用辅助数据源来提高最终产品的可预测性的意义。我在 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 中的示例,但仍然感到困惑。

【问题讨论】:

    标签: matlab regression multivariate-testing


    【解决方案1】:

    您可以使用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
    

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

    【讨论】:

    • 感谢您的想法。我已经尝试过了,但是有一个问题是 sol 比需要的要大得多。此方法为索引 t 的每个值生成 a-e 值,而我只希望为所有 t 值提供 a-e 的一个解决方案。这就是为什么我沿着回归线思考的原因。 sol 是 (3t+1,i) 的矩阵,而不是 (5,i) 的矩阵,这正是我所追求的。我希望这是有道理的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 2020-05-20
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多