Azzera filtri
Azzera filtri

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 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

Amal Raj
Amal Raj il 9 Feb 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 Commenti
Torsten
Torsten il 9 Feb 2023
Modificato: Torsten il 9 Feb 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.
奥 刘
奥 刘 il 10 Feb 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!

Accedi per commentare.

Più risposte (1)

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

Categorie

Scopri di più su Descriptive Statistics in Help Center e File Exchange

Tag

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by