How to find the variable that minimize the root mean squared error between a known vetor and the multiplication of this variable and an another known vector?

7 次查看(过去 30 天)
Supposing that I have a variable , and two known vectors , where N is a known number. I want to find the a that minimizes the root mean squared error between and . Is there any neat apprach to implement it?

采纳的回答

Amal Raj
Amal Raj 2023-2-9
Hi 奥 刘,
You can use linear regression to find a.
Please refer this example below:
N = 100; % Example value for N
x = linspace(0, 10, N)'; % Known vector x
y = sin(x) + 0.1 * randn(N, 1); % Known vector y
X = [ones(N, 1) x]; % Design matrix
a = X \ y; % Solve for a using least squares
y_pred = X * a; % Calculate predicted values of y
rmse = sqrt(mean((y - y_pred) .^ 2)); % Calculate RMSE
  3 个评论
Torsten
Torsten 2023-2-9
编辑:Torsten 2023-2-9
You mustn't include the constant term in the calculation of the regression coefficients because you are to regress
y = a*x
not
y = a*x + b
The results for "a" will differ for the two cases.
奥 刘
奥 刘 2023-2-10
@Torsten Yes, that's right. I think @Amal Raj just gave me an example but didn't mean that I should include the constant. Anyway, thanks for reminding me!

请先登录,再进行评论。

更多回答(1 个)

Torsten
Torsten 2023-2-9
a = (c.'*b)/(b.'*b)
where b and c are your column vectors.

类别

Help CenterFile Exchange 中查找有关 Descriptive Statistics 的更多信息

标签

产品


版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by