RMSE between original and predicted values.

Hi,
If I have thousand samples of my signal in a vector form like 1*1000, and I will predict my signal at each iteration that results into 1*1000 also. Then In this case, how will I find the RMSE of my model?
Many Thanks

 Accepted Answer

Please see my Comment replying to your Comment.

8 Comments

Thank you very much Sir again for your kind help.
As always, my pleasure!
MAT-Magic
MAT-Magic on 19 Jan 2020
Edited: MAT-Magic on 19 Jan 2020
@ Star Strider, writing below code in for loop for RMSE. Is it correct way? waiting for your reply. Thanks
close all; clear all; clc;
v1 = [0.3 0.6 0.9];
v2 = [0.8 0.9 0.7];
for k = 1:length(v1)
y = v1-v2;
y1 = y.^2;
sumy1 = sum(y1);
end
RMSE = sqrt(sumy1/numel(v1));
It is correct, however you can write it much more simply:
v1 = [0.3 0.6 0.9];
v2 = [0.8 0.9 0.7];
RMSE = sqrt(mean((v1-v2).^2))
producing:
RMSE =
0.355902608401044
Remembering that ‘RMSE’ means the ‘root of the mean of the squares’.
Thanks. But actually, I am accumulating the error inside the loop, so after that, I can take the mean and square root outside the loop to get RMSE of my model.
The RMSE calculation remains the same. You need to take the diferences, square them, accumulate them, take the mean, and the the square root of that.
OK. Thanks alot
As always, my pleasure!

Sign in to comment.

More Answers (1)

Without any other information, the maximum likelihood prediction for every element would be the mean of the entire signal. But it seems you'd rather have the rms, so you'd have
RMSE = rms(yourVector)
predictionVector = RMSE * ones(length(yourVector));

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Tags

Community Treasure Hunt

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

Start Hunting!