# calculating rmse between observations and estimates of different size

17 Ansichten (letzte 30 Tage)
Sergio am 3 Sep. 2013
I would like to calculate rmse between observations and estimates of different size. This are two timeseries, one 84084x1 and the second is 315360x1.
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Thomas am 3 Sep. 2013
Your data sets (data and estimate) have different sizes. Do you have NaN's in your estimates or are you taking multiple estimates/observations?
You might want to equalize the size of the dataset (by removing the unwanted observations) and then finding the rmse
rmse=sqrt(sum((data(:)-estimate(:)).^2)/numel(data));
##### 3 Kommentare1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
Thomas am 3 Sep. 2013
You could try interp1 (nearest neighbor interpolation) or something similar http://www.mathworks.com/help/matlab/ref/interp1.html
Thomas am 3 Sep. 2013
Bearbeitet: Thomas am 3 Sep. 2013
I just realized that you have a time series and if you have the finance toolbox you can use the fillts command http://www.mathworks.com/help/finance/fillts.html

Melden Sie sich an, um zu kommentieren.

### Weitere Antworten (1)

Youssef Khmou am 3 Sep. 2013
Bearbeitet: Youssef Khmou am 3 Sep. 2013
You can padd the small vector with zero or Interpolate as mentioned by @Thomas :
% Given your vectors r1 r2
r1=randn(315360,1);
r2=randn(84084,1);
N1=length(r1);
N2=length(r2);
Ratio=floor(N1/N2);
r22=interp(r2,Ratio);
Diff=N1-length(r22);
r22=[r22;zeros(Diff,1)];
plot(r1), hold on, plot(r22,'r'),
RMSE=sqrt(mean(((r22-r1).^2)))
You can also use the functions downsample or upsample
##### 2 KommentareKeine anzeigenKeine ausblenden
Sergio am 3 Sep. 2013
Hi Youssef,
I tried your code but it gives me error:
Error using horzcat Dimensions of matrices being concatenated are not consistent.
Error in usgs (line 107) r22=[r22 zeros(1,Diff)];
Thanks though. It has potential
Youssef Khmou am 3 Sep. 2013
Bearbeitet: Youssef Khmou am 3 Sep. 2013
Sergio, transpose vectors r1=r1'; r2=r2' or try again the edited code .

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Time Series finden Sie in Help Center und File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by