Effacer les filtres
Effacer les filtres

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 vues (au cours des 30 derniers jours)
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?

Réponse acceptée

Amal Raj
Amal Raj le 9 Fév 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 commentaires
Torsten
Torsten le 9 Fév 2023
Modifié(e) : Torsten le 9 Fév 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.
奥 刘
奥 刘 le 10 Fév 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!

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten
Torsten le 9 Fév 2023
a = (c.'*b)/(b.'*b)
where b and c are your column vectors.

Catégories

En savoir plus sur Descriptive Statistics dans Help Center et File Exchange

Tags

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by