【问题标题】:multidimensional linear regression for y = A *x + By = A *x + B 的多维线性回归
【发布时间】:2019-05-15 17:12:02
【问题描述】:

在给定一组 y 和 x 值的情况下,是否有任何标准方法/函数可以解决这个问题?

对于一维变量 y 和 x 似乎有,但对于 N 维变量 y 和 x,我们将有 A 一个 NxN 矩阵和 B 一个 Nx1 向量。

我见过的唯一解决方案假设 y 是一维的,这显然没有帮助。

目前我唯一的解决方案是进行 N^2 线性多项式拟合以获得形式的系数集

y(j) = a_jk x(k) + b_jk

然后通过取b_jk的平均值得到一个向量B。我不相信这是解决问题的最佳方案。

【问题讨论】:

  • 你的意思是多元线性回归
  • 我不确定我是否这样做,这似乎仅适用于标量 y。 en.wikipedia.org/wiki/General_linear_model 似乎是我要问的。
  • 一个 ND 变量是一个多维系统。在坐标中,[x y z] 是 3 维世界中的 N 维变量。它们是 3 个相互独立的 1D 变量,因此每个变量都有一个维度。
  • 我不确定我是否理解这个问题。你在找这个吗? mathworks.com/help/matlab/ref/mldivide.html
  • 从您的问题来看,多元回归是您正在寻找的(正如安德所说)。您描述的一维案例只是常规回归,但您的结果 Y 也可以采用矩阵形式,因此是多维的。有很多方法可以解决这个问题。虽然如果你提供一个具体的例子会有所帮助,因为它并不完全清楚在这种情况下你所说的多维是什么意思

标签: matlab matrix multidimensional-array regression


【解决方案1】:

Cris Luengo,在 cmets 中确实是正确的。函数mldivide 兼作最小二乘求解器

如果 A 是 m ~= n 的 m×n 矩形矩阵,B 是 m 行的矩阵,则 A\B 返回方程组 A*x= B 的最小二乘解/p>

所以如果你有等式

y == A * x + B

那么你首先要从两边减去B,然后再应用mldivide,就像

xhat = A\(y-B);

【讨论】:

  • 我认为你没有理解这个问题,x 和 y 是我拥有的东西,我想将 A 和 B 拟合到等式中。
【解决方案2】:

一种方法是使用最小二乘法找到 A 和 B 以最小化

Q = Sum{ (A*x[i]+B - y[i])'*(A*x[i] + B - y[i])}

(这里 ' 表示转置,我假设你有向量 x[0]..x[N-1] 和 y[0]..y[N-1])

虽然您可以使用标准线性最小二乘求解器做到这一点,但还有另一种方法:

计算 x 的平均 xbar 和 y 的平均 ybar,即

xbar = Sum{ x[i]}/N
ybar = Sum{ y[i]}/N

计算以下矩阵

C = Sum{ (x[i]-xbar)*(x[i]-xbar)'}
D = Sum{ (y[i]-ybar)*(x[i]-xbar)'}

计算 A 和 B

A = D*inv(C)
B = A*xbar-ybar

请注意,我们只能在 C 可逆的情况下计算 A。这意味着 x[] 向量必须跨越它们所在的空间。如果它们不跨越,则 A 不是唯一确定的。

上述方法解决问题的证据并不那么有启发性;如果你想看,请告诉我。

【讨论】:

  • 这是正确答案,抱歉这么久才回复。
猜你喜欢
  • 1970-01-01
  • 2020-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 2021-10-28
  • 2012-01-28
  • 2023-03-27
相关资源
最近更新 更多