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?

6 visualizaciones (últimos 30 días)
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?

Respuesta aceptada

Amal Raj
Amal Raj el 9 de Feb. de 2023
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 comentarios
Torsten
Torsten el 9 de Feb. de 2023
Editada: Torsten el 9 de Feb. de 2023
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.
奥 刘
奥 刘 el 10 de Feb. de 2023
@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!

Iniciar sesión para comentar.

Más respuestas (1)

Torsten
Torsten el 9 de Feb. de 2023
a = (c.'*b)/(b.'*b)
where b and c are your column vectors.

Categorías

Más información sobre Descriptive Statistics en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by