如何找到最适合信号的方法

时间:2015-03-12 20:16:22

标签: matlab optimization linear

我有大数据。我在下图中绘制了2个向量,蓝色图表示我的基本事实,而紫色图表是我预测的输出。 我想计算最佳A和C,以便它适合(因为A将控制其伸展,C将控制它的偏移)。

Y_groundTruth = A*(Y_predicted) + C;

enter image description here

我一直试图手动调整它,而另一个已知的事情是拉伸因子(A)也取决于当前值,意味着

当Y_groundTruth介于1000到1400之间时,它将具有一个常量值,类似于800-900,但这会影响我的数据,因此目前它不是优先级。

1 个答案:

答案 0 :(得分:1)

正如评论中所述,ordinary least squares应该能够解决这个问题。

Y_predicted = Y_predicted(:);
Y_groundTruth = Y_groundTruth(:);
X = [Y_predicted,ones(size(Y_predicted))];
coeffs = (X'*X)\(X'*Y_groundTruth);

A = coeffs(1);
C = coeffs(2);

mse = sum((Y_groundTruth - (A*Y_predicted + C)).^2)/length(Y_predicted);