RMSE plot of Monte Carlo simulation

Hello
I would like your help for this problem that has been bothering me for quite some time.
So, I want to plot the Monte Carlo Simulation of the Root Mean Square Error (RMSE) between a parameter and an estimated parameter
I've written the attached code which was easy enough but the problem is that the plot seems off. From what I know RMSE is supposed to decrease with the number of simulations not oscillate like this.
What I am doing wrong ? And what to do to have a correct plot ?
Thanks in advance
Here's the code :
param = 1 ;
paramest = 1.2 ;
N = 1000;
for n = 1:N
y = param*rand(1,N);
yest = paramest*rand(1,N);
RMSE(n) = sqrt(mean((y - yest).^2));
end
plot(RMSE)

3 Comments

There is no simulation in your code...you are creating two sets of random numbers and finding the RMSE, offcourse you will end up with the same plot what you got.
oh ok. Then I must have misunderstood MC simulation... I thought it was supposed to give the response of a given model in regards to random inputs.
So , I generated "N" random inputs and I wanted to find an output for each input before calculating the RMSE of all the outputs.
So what am I missing ?
Thanks for the reply
You are missng the exact problem definition.

Sign in to comment.

 Accepted Answer

RMSE is not supposed to decrease with the number of iterations, but it should stabilize.
Your plot oscillates because each point is based on a single estimate--the one generated at each value of n--nothing is being computed cumulatively across iterations. Try changing the end of your script to this:
cumRMSE = cumsum(RMSE) ./ [1:N];
plot(cumRMSE)

1 Comment

Thank you very much my good sir, you saved my life. =)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!