Konfidenzintervall von RMSE


20

Ich habe eine Stichprobe von Datenpunkten aus einer Population entnommen . Jeder dieser Punkte hat einen wahren Wert (bekannt aus der Grundwahrheit) und einen geschätzten Wert. Ich berechne dann den Fehler für jeden abgetasteten Punkt und berechne dann den RMSE der Probe.n

Wie kann ich dann basierend auf der Stichprobengröße eine Art Konfidenzintervall um diesen RMSE ableiten ?n

Wenn ich den Mittelwert anstelle des RMSE verwenden würde, hätte ich kein Problem damit, da ich die Standardgleichung verwenden kann

m=Zσn

aber ich weiß nicht, ob dies für RMSE und nicht für den Mittelwert gilt. Kann ich das irgendwie anpassen?

(Ich habe diese Frage gesehen , habe aber keine Probleme damit, ob meine Bevölkerung normalverteilt ist. Darum geht es in der Antwort dort.)


Was rechnen Sie konkret, wenn Sie "den RMSE der Stichprobe berechnen"? Ist es der RMSE der wahren Werte, der geschätzten Werte oder ihrer Unterschiede?
Whuber

2
Ich berechne den RMSE der Differenzen, dh die Quadratwurzel des Mittelwerts der quadrierten Differenzen zwischen dem wahren und dem geschätzten Wert.
robintw

Wenn Sie die "Grundwahrheit" kennen (obwohl ich nicht sicher bin, was das eigentlich bedeutet), warum brauchen Sie dann die Unsicherheit in RMSE? Versuchen Sie, eine Schlussfolgerung über Fälle zu ziehen, in denen Sie nicht die fundamentale Wahrheit haben? Ist das ein Kalibrierungsproblem?
Glen_b

@ Glen_b: Ja, genau das versuchen wir zu tun. Wir haben nicht die Grundwahrheit für die gesamte Bevölkerung, nur für die Stichprobe. Wir berechnen dann einen RMSE für die Stichprobe und möchten die Konfidenzintervalle dafür haben, da wir diese Stichprobe verwenden, um den RMSE der Grundgesamtheit abzuleiten.
robintw

1
Mögliches Duplikat von SE von RMSE in R
Curious

Antworten:


15

Mit einer ähnlichen Begründung wie hier kann ich unter bestimmten Umständen eine Antwort auf Ihre Frage geben.

Let Ihr wahrer Wert für die seine i t h Datenpunkt und x i den geschätzten Wert. Wenn wir davon ausgehen, dass die Unterschiede zwischen den geschätzten und wahren Werten habenxiithx^i

  1. Mittelwert Null (dh die x i verteilt werden um x i )x^ixi

  2. einer Normalverteilung folgen

  3. und alle haben die gleiche Standardabweichung σ

Zusamenfassend:

x^ixiN(0,σ2),

dann willst du wirklich ein Konfidenzintervall für .σ

Wenn die obigen Annahmen zutreffen, gilt folgt einerχ 2 n- Verteilung mitn(nichtn-1) Freiheitsgraden. Das heisst

nRMSE2σ2=n1ni(xi^xi)2σ2
χn2nn1

P(χα2,n2nRMSE2σ2χ1α2,n2)=1αP(nRMSE2χ1α2,n2σ2nRMSE2χα2,n2)=1αP(nχ1α2,n2RMSEσnχα2,n2RMSE)=1α.

[nχ1α2,n2RMSE,nχα2,n2RMSE]

Hier ist ein Python-Programm, das Ihre Situation simuliert

from scipy import stats
from numpy import *
s = 3
n=10
c1,c2 = stats.chi2.ppf([0.025,1-0.025],n)
y = zeros(50000)
for i in range(len(y)):
    y[i] =sqrt( mean((random.randn(n)*s)**2))

print "1-alpha=%.2f" % (mean( (sqrt(n/c2)*y < s) & (sqrt(n/c1)*y > s)),)

Hoffentlich hilft das.

If you are not sure whether the assumptions apply or if you want to compare what I wrote to a different method, you could always try bootstrapping.


1
I think you are wrong - he wants CI for RMSE, not σ. And I want it too :)
Curious

1
I don't think I am wrong. Just think about it like this: The MSE is actually the sample variance since MSE=σ^2=1ni=1n(xix^i)2. The only difference is that you divide by n and not n1 since you are not subtracting the sample mean here. The RMSE would then correspond to σ. Therefore, the population RMSE is σ and you want a CI for that. That's what I derived. Otherwise I must completely misunderstand your problem.
fabee

10

The reasoning in the answer by fabee seems correct if applied to the STDE (standard deviation of the error), not the RMSE. Using similar nomenclature, i=1,,n is an index representing each record of data, xi is the true value and x^i is a measurement or prediction.

The error ϵi, BIAS, MSE (mean squared error) and RMSE are given by:

ϵi=x^ixi,BIAS=ϵ¯=1ni=1nϵi,MSE=ϵ2¯=1ni=1nϵi2,RMSE=MSE.

Agreeing on these definitions, the BIAS corresponds to the sample mean of ϵ, but MSE is not the biased sample variance. Instead:

STDE2=(ϵϵ¯)2¯=1ni=1n(ϵiϵ¯)2,
or, if both BIAS and RMSE were computed,
STDE2=(ϵϵ¯)2¯=ϵ2¯ϵ¯2=RMSE2BIAS2.
Note that the biased sample variance is being used instead of the unbiased, to keep consistency with the previous definitions given for the MSE and RMSE.

Thus, in my opinion the confidence intervals established by fabee refer to the sample standard deviation of ϵ, STDE. Similarly, confidence intervals may be established for the BIAS based on the z-score (or t-score if n<30) and STDE/n.


2
You are right, but missed a part of my answer. I basically assumed that BIAS=0 (see assumption 1). In that case, RMSE2=STDE2 as you derived. Since both RMSE2 and BIAS2 are χ2 and there exists a close form solution for the sum of two χ2 RVs, you can probably derive a close form confidence interval for the case when assumption 1 is dropped. If you do that and update your answer, I'll definitely upvote it.
fabee

0

Following Faaber 1999, the uncertainty of RMSE is given as

σ(RMSE^)/RMSE=12n
where n is the number of datapoints.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.