Khoảng tin cậy của RMSE


20

Tôi đã lấy một mẫu gồm điểm dữ liệu từ dân số. Mỗi điểm này có một giá trị thực (được biết từ sự thật mặt đất) và giá trị ước tính. Sau đó tôi tính sai số cho từng điểm được lấy mẫu và sau đó tính RMSE của mẫu.n

Làm thế nào tôi có thể suy ra một số khoảng tin cậy xung quanh RMSE này, dựa trên cỡ mẫu ?n

Nếu tôi đang sử dụng giá trị trung bình, thay vì RMSE, thì tôi sẽ không gặp vấn đề gì khi làm điều này vì tôi có thể sử dụng phương trình chuẩn

m=Zσn

nhưng tôi không biết liệu điều này có hợp lệ với RMSE hơn là trung bình không. Có một số cách mà tôi có thể thích nghi này?

(Tôi đã thấy câu hỏi này , nhưng tôi không có vấn đề gì về việc dân số của tôi có được phân phối bình thường hay không, đó là câu trả lời ở đó)


Cụ thể bạn đang tính toán gì khi bạn "tính RMSE của mẫu"? Đây có phải là RMSE của các giá trị thực, của các giá trị ước tính hay sự khác biệt của chúng không?
whuber

2
Tôi đang tính RMSE về sự khác biệt, nghĩa là tính căn bậc hai của giá trị trung bình của chênh lệch bình phương giữa giá trị thực và giá trị ước tính.
robintw

Nếu bạn biết "sự thật nền tảng" (mặc dù tôi không chắc điều đó thực sự có nghĩa là gì), tại sao bạn lại cần sự không chắc chắn trong RMSE? Bạn đang cố gắng xây dựng một số loại suy luận về các trường hợp mà bạn không có sự thật cơ bản? Đây có phải là một vấn đề hiệu chuẩn?
Glen_b -Reinstate Monica

@Glen_b: Yup, đó chính xác là những gì chúng tôi đang cố gắng làm. Chúng tôi không có sự thật nền tảng cho toàn bộ dân số, chỉ cho mẫu. Sau đó, chúng tôi đang tính toán RMSE cho mẫu và chúng tôi muốn có khoảng tin cậy về điều này vì chúng tôi đang sử dụng mẫu này để suy ra RMSE của dân số.
robintw

1
Bản sao có thể có của SE của RMSE trong R
Curious

Câu trả lời:


15

Với một lý do tương tự như ở đây , tôi có thể có thể đưa ra câu trả lời cho câu hỏi của bạn trong những điều kiện nhất định.

Hãy là giá trị thực của bạn cho i t h điểm dữ liệu và x i giá trị ước tính. Nếu chúng ta giả định rằng sự khác biệt giữa các giá trị ước tính và giá trị thực cóxiithx^i

  1. zero bình (tức là x i được phân phối trên toàn x i )x^ixi

  2. theo một phân phối bình thường

  3. và tất cả đều có cùng một độ lệch chuẩn σ

Nói ngắn gọn:

x^ixiN(0,σ2),

sau đó bạn thực sự muốn có một khoảng tin cậy cho .σ

Nếu các giả định trên giữ đúng sau mộtχ 2 n phân phối vớin(khôngn-1) bậc tự do. Điều này có nghĩa là

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α.

Therefore,

[nχ1α2,n2RMSE,nχα2,n2RMSE]
is your confidence interval.

Here is a python program that simulates your situation

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)),)

Hope that helps.

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.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.