# RMSE - Root mean square Error

3,434 views (last 30 days)

Show older comments

[EDIT: 20110610 00:17 CDT - reformat - WDR]

So i was looking online how to check the RMSE of a line. found many option, but I am stumble about something,

Dates - a Vector

Scores - a Vector

is this formula is the same as RMSE=sqrt(sum(Dates-Scores).^2)./Dates

or did I messed up with something?

##### 0 Comments

### Accepted Answer

John D'Errico
on 10 Jun 2011

Yes, it is different. The Root Mean Squared Error is exactly what it says.

(y - yhat) % Errors

(y - yhat).^2 % Squared Error

mean((y - yhat).^2) % Mean Squared Error

RMSE = sqrt(mean((y - yhat).^2)); % Root Mean Squared Error

What you have written is different, in that you have divided by dates, effectively normalizing the result. Also, there is no mean, only a sum. The difference is that a mean divides by the number of elements. It is an average.

sqrt(sum(Dates-Scores).^2)./Dates

Thus, you have written what could be described as a "normalized sum of the squared errors", but it is NOT an RMSE. Perhaps a Normalized SSE.

##### 8 Comments

line hammer
on 8 Jun 2021

Root Mean Squared Error using Python sklearn Library

Mean Squared Error ( MSE ) is defined as Mean or Average of the square of the difference between actual and estimated values. This means that MSE is calculated by the square of the difference between the predicted and actual target variables, divided by the number of data points. It is always non–negative values and close to zero are better.

Root Mean Squared Error is the square root of Mean Squared Error (MSE). This is the same as Mean Squared Error (MSE) but the root of the value is considered while determining the accuracy of the model.

import numpy as np

import sklearn.metrics as metrics

actual = np.array([56,45,68,49,26,40,52,38,30,48])

predicted = np.array([58,42,65,47,29,46,50,33,31,47])

mse_sk = metrics.mean_squared_error(actual, predicted)

rmse_sk = np.sqrt(mse)

print("Root Mean Square Error :", rmse_sk)

### More Answers (6)

Image Analyst
on 9 Jan 2016

If you have the Image Processing Toolbox, you can use immse():

rmse = sqrt(immse(scores, dates));

##### 5 Comments

Image Analyst
on 28 May 2021

ziad zaid
on 4 Jun 2017

##### 1 Comment

Image Analyst
on 4 Jun 2017

Siddhant Gupta
on 3 Jul 2018

if true

% code

end

y=[1 2 3]

yhat=[4 5 6]

(y - yhat)

(y - yhat).^2

mean((y - yhat).^2)

RMSE = sqrt(mean((y - yhat).^2));

RMSE

##### 2 Comments

Image Analyst
on 29 Jul 2019

Sadiq Akbar
on 22 Oct 2019

If I have 100 vectors of error and each error vector has got four elements, then how can we we find its MSE, RMSE and any other performance metric? e.g. If I have my desired vector as u=[0.5 1 0.6981 0.7854] and I have estimated vectors like as: Est1=[0.499 0.99 0.689 0.779], Est2=[0.500 1.002 0.699 0.77], Est3=[0.489 0.989 0.698 0.787],---Est100=[---],

Then Error1=u-Est1; Error2=u-Est2 and so on up to Error100=u-Est100. Now how can we find the MSE, RMSE and tell me others as well that are used to indicate the perofrmance of the algorithm. please tell me in the form of easy code.

Regards,

Sadiq Akbar

##### 0 Comments

Yella
on 10 Jun 2011

Root mean square error is difference of squares of output an input. Let say x is a 1xN input and y is a 1xN output. square error is like (y(i) - x(i))^2. Mean square error is 1/N(square error). and its obvious RMSE=sqrt(MSE).

ur code is right. But how r dates and scores related?

##### 1 Comment

Enne Hekma
on 9 Jan 2016

Edited: Walter Roberson
on 9 Jan 2016

RMSE= sqrt(MSE) = sqrt( 1/length(y)* sum( (y-yhat).^2 )) = sqrt( mean(y-yhat).^2 )

However, he divided after the square root.

Kardelen Darilmaz
on 10 Jun 2021

load accidents

x = hwydata(:,14); %Population of states

y = hwydata(:,4); %Accidents per state

format long

b1 = x\y

yCalc1 = b1*x;

scatter(x,y)

hold on

plot(x,yCalc1)

xlabel('Population of state')

ylabel('Fatal traffic accidents per state')

title('Linear Regression Relation Between Accidents & Population')

grid on

X = [ones(length(x),1) x];

b = X\y

yCalc2 = X*b;

plot(x,yCalc2,'--')

legend('Data','Slope','Slope & Intercept','Location','best');

Rsq1 = 1 - sum((y - yCalc1).^2)/sum((y - mean(y)).^2)

Rsq2 = 1 - sum((y - yCalc2).^2)/sum((y - mean(y)).^2)

I also want to add MSE and RMSE calculations to this code. Can you help me?*

##### 4 Comments

### See Also

### Community Treasure Hunt

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

Start Hunting!