Bagaimana cara menghitung kesalahan relatif ketika nilai sebenarnya adalah nol?


32

Bagaimana cara menghitung kesalahan relatif ketika nilai sebenarnya adalah nol?

Katakanlah saya memiliki dan . Jika saya mendefinisikan kesalahan relatif sebagai:xtrue=0xtest

relative error=xtruextestxtrue

Maka kesalahan relatif selalu tidak terdefinisi. Jika sebaliknya saya menggunakan definisi:

relative error=xtruextestxtest

Maka kesalahan relatif selalu 100%. Kedua metode itu tampaknya tidak berguna. Apakah ada alternatif lain?


Saya memiliki pertanyaan yang sama persis tentang bias parameter dalam simulasi Monte Carlo, menggunakan definisi pertama Anda. Salah satu nilai parameter saya adalah 0, jadi saya tidak menghitung bias parameter untuk parameter khusus ini ...
Patrick Coulombe

2
Solusinya adalah tidak menggunakan kesalahan relatif dalam kasus ini.
Marc Claesen

2
Salah satu opsi, yang menanggapi maksud jika bukan surat pertanyaan Anda, adalah menggunakan ukuran yang sedikit berbeda yang sangat sesuai dengan kesalahan relatif ketika kesalahan relatif kecil, seperti 2(xtruextest)/(|xtrue|+|xtest|) . (Gunakan 0 ketika xtrue=xtest=0 ) Solusi khusus ini bersifat universal karena solusi tersebut tidak berubah di bawah perubahan satuan ukuran (karena tidak melibatkan konstanta acak).
whuber

@whuber Saya pikir Anda harus mempertimbangkan memposting komentar itu sebagai jawaban, karena tampaknya lebih unggul daripada yang sudah ada.
Silverfish

@Silver Anda benar - Saya minta maaf karena mengirim jawaban sebagai komentar. Karena itu saya sedikit memperluas komentar itu menjadi sebuah jawaban.
whuber

Jawaban:


39

Ada banyak alternatif, tergantung tujuannya.


Yang umum adalah "Perbedaan Persen Relatif," atau RPD, yang digunakan dalam prosedur kontrol kualitas laboratorium. Meskipun Anda dapat menemukan banyak rumus yang tampaknya berbeda, semuanya turun untuk membandingkan perbedaan dua nilai dengan besarnya rata-rata:

d1(x,y)=xy(|x|+|y|)/2=2xy|x|+|y|.

Ini adalah ekspresi yang ditandatangani , positif ketika melebihi dan negatif ketika melebihi . Nilainya selalu terletak di antara dan . Dengan menggunakan nilai absolut dalam penyebut itu menangani angka negatif dengan cara yang masuk akal. Sebagian besar referensi yang dapat saya temukan, seperti Program Remediasi Situs DEP New Jersey Penilaian Kualitas Data dan Bimbingan Teknis Evaluasi Penggunaan Data , menggunakan nilai absolut dari karena mereka hanya tertarik pada besarnya kesalahan relatif.y y x - 2 2xyyx-22d1


Sebuah artikel Wikipedia pada Perubahan relatif dan Perbedaan mengamati bahwa

d(x,y)=|x-y|maks(|x|,|y|)

sering digunakan sebagai tes toleransi relatif dalam algoritma numerik floating point. Artikel yang sama juga menunjukkan bahwa rumus seperti dan dapat digeneralisasi ked d1d

df(x,y)=xyf(x,y)

di mana fungsi tergantung langsung pada besaran dan (biasanya dengan asumsi dan adalah positif). Sebagai contoh ia menawarkan rata-rata maks, min, dan aritmatika (dengan dan tanpa mengambil nilai absolut dari dan sendiri), tetapi orang dapat merenungkan jenis rata-rata lainnya seperti rata-rata geometrik , harmonik berarti dan berarti . ( sesuai dengan dan sesuai dengan batas asx y x yfxyxyy xy2/(1/|x|+1/|y|)Lp((|x|p+|y|p)/2)1 / pd1p=1dpfx|xy|2/(1/|x|+1/|y|)Lp((|x|p+|y|p)/2)1/pd1p=1dp .) Seseorang dapat memilih berdasarkan perilaku statistik yang diharapkan dari dan . Sebagai contoh, dengan distribusi lognormal sekitar rata-rata geometrik akan menjadi pilihan yang menarik untuk karena itu adalah rata-rata yang berarti dalam keadaan itu.fxfyf


Sebagian besar formula mengalami kesulitan ketika penyebut sama dengan nol. Dalam banyak aplikasi yang tidak mungkin atau tidak ada salahnya untuk mengatur perbedaan ke nol ketika .x=y=0

Perhatikan bahwa semua definisi ini berbagi properti invarian mendasar: apa pun relatif perbedaan fungsi mungkin, itu tidak berubah ketika argumen secara seragam rescaled oleh :λ > 0dλ>0

d(x,y)=d(λx,λy).

Properti ini yang memungkinkan kita untuk mempertimbangkan sebagai perbedaan relatif . Jadi, khususnya, fungsi non-invarian sepertid

d(x,y)=? |xy|1+|y|

sama sekali tidak memenuhi syarat. Apa pun kebajikan yang dimilikinya, itu tidak mengungkapkan perbedaan relatif .


Kisahnya tidak berakhir di sini. Kita bahkan mungkin menemukan manfaat untuk mendorong implikasi invarian sedikit lebih jauh.

Himpunan semua pasangan bilangan real yang terurut mana dianggap sama dengan adalah Garis Proyeksi Nyata . Baik dalam arti topologis dan pengertian aljabar, adalah lingkaran. Setiap menentukan garis unik melalui titik asal . Ketika kemiringannya adalah( x , y ) ( λ x , λ y ) R P 1 R P 1 ( x , y ) ( 0 , 0 ) ( 0 , 0 ) x 0 y / x θ = arctan ( y / x ) - π(x,y)(0,0)(x,y)(λx,λy) RP1RP1(x,y)(0,0)(0,0)x0y/x; kalau tidak kita dapat menganggap kemiringannya "tidak terbatas" (dan negatif atau positif). Lingkungan dari garis vertikal ini terdiri dari garis-garis dengan kemiringan positif atau negatif yang sangat besar. Kami dapat parameterkan semua garis tersebut dalam sudut pandang mereka , dengan . Terkait dengan setiap seperti adalah titik pada lingkaran,θ=arctan(y/x)θπ/2<θπ/2θ

(ξ,η)=(cos(2θ),dosa(2θ))=(x2-y2x2+y2,2xyx2+y2).

Karena itu jarak apa pun yang ditentukan pada lingkaran dapat digunakan untuk menentukan perbedaan relatif.

Sebagai contoh di mana ini dapat menyebabkan, pertimbangkan jarak (Euclidean) biasa pada lingkaran, di mana jarak antara dua titik adalah ukuran sudut di antara mereka. Perbedaan relatif paling sedikit ketika , sesuai dengan (atau ketika dan memiliki tanda-tanda yang berlawanan). Dari sudut pandang ini perbedaan relatif alami untuk bilangan positif dan adalah jarak ke sudut ini:2 θ = π / 2 2 θ = - 3 π / 2 x y x yx=y2θ=π/22θ=-3π/2xyxy

dS(x,y)=|2Arktan(yx)-π/2|.

Untuk urutan pertama, ini adalah jarak relatif--tetapi itu berfungsi bahkan ketika . Selain itu, tidak meledak, tetapi sebaliknya (sebagai jarak yang ditandatangani) dibatasi antara dan , karena grafik ini menunjukkan:y = 0 - π / 2 π / 2|x-y|/|y|y=0-π/2π/2

Angka

Ini mengisyaratkan betapa fleksibelnya pilihan ketika memilih cara untuk mengukur perbedaan relatif.


Terima kasih atas jawaban komprehensifnya, apa yang menurut Anda merupakan referensi terbaik untuk baris ini: "sering digunakan sebagai tes toleransi relatif dalam algoritma numerik floating point. Artikel yang sama juga menunjukkan bahwa rumus seperti d1d1 dan d∞d∞ mungkin digeneralisasi ke "
Hammad Haleem

1
btw, nevermind Saya menemukan referensi akademis untuk ini :) tandfonline.com/doi/abs/10.1080/00031305.1985.10479385
Hammad Haleem

4
Mengapa ini belum dipilih sebagai jawabannya? (maaf jika ini bukan komentar yang tepat, tetapi sejauh ini adalah jawaban yang lebih baik)
Brash Equilibrium

2
@ Brash, saya menghargai sentimen. Penerimaan secara unik adalah provinsi dari pengusul asli: tidak ada yang dapat mengesampingkan itu (kecuali dengan menghapus pos yang diterima). Pada beberapa kesempatan ketika saya merasa seperti Anda, saya mengirim komentar yang menunjukkan secara eksplisit bagaimana dan mengapa saya pikir beberapa jawaban lebih baik atau lebih penting daripada yang lain. Sekalipun itu gagal mengubah apa pun, komentar semacam itu dapat membuat materi sedikit lebih bermanfaat atau dapat dipahami oleh pembaca di masa depan: dan, pada akhirnya, adalah inti pekerjaan kami di situs ini.
Whuber

1
@KutalmisB Terima kasih telah memperhatikan bahwa: "min" tidak ada di sana sama sekali. Sepertinya itu adalah sisa dari formula yang lebih kompleks yang menangani semua kemungkinan tanda dan yang kemudian saya sederhanakan. Saya sudah menghapusnya. yxy
Whuber

11

Pertama, perhatikan bahwa Anda biasanya mengambil nilai absolut dalam menghitung kesalahan relatif.

Solusi umum untuk masalah ini adalah menghitung

relative error=|xtruextest|1+|xtrue|.

3
Ini bermasalah karena bervariasi tergantung pada unit ukuran yang dipilih untuk nilai-nilai tersebut.
Whuber

1
Itu benar sekali. Ini bukan solusi yang sempurna untuk masalah ini, tetapi ini adalah pendekatan umum yang bekerja cukup baik ketika diskalakan dengan baik. x
Brian Borchers

Bisakah Anda menguraikan jawaban Anda tentang apa yang Anda maksud dengan "diskalakan dengan baik"? Misalnya, anggaplah data muncul dari kalibrasi sistem pengukuran bahan kimia berair yang dirancang untuk konsentrasi antara dan mol / liter yang dapat mencapai ketepatan, katakanlah, tiga digit signifikan. "Kesalahan relatif" Anda karenanya akan selalu nol kecuali untuk pengukuran yang jelas salah. Mengingat hal ini, bagaimana tepatnya Anda akan menskala ulang data seperti itu? 0,00000100,000001
whuber

1
Contoh Anda adalah salah satu tempat variabel tidak diskalakan dengan baik. Dengan "diskalakan dengan baik", maksud saya bahwa variabel tersebut diskalakan sehingga mengambil nilai dalam kisaran kecil (misalnya beberapa urutan besarnya) dekat 1. Jika variabel Anda mengambil nilai lebih dari banyak pesanan besar daripada Anda Saya punya masalah penskalaan yang lebih serius dan pendekatan sederhana ini tidak akan memadai.
Brian Borchers

2
Adakah referensi untuk pendekatan ini? Nama metode ini? Terima kasih.
CroCo

0

Saya agak bingung tentang ini untuk sementara waktu. Pada akhirnya, itu karena jika Anda mencoba mengukur kesalahan relatif terhadap nol maka Anda mencoba untuk memaksa sesuatu yang sama sekali tidak ada.

Jika dipikir-pikir, Anda membandingkan apel dengan jeruk ketika Anda membandingkan kesalahan relatif dengan kesalahan yang diukur dari nol, karena kesalahan yang diukur dari nol setara dengan nilai yang diukur (itu sebabnya Anda mendapatkan kesalahan 100% ketika Anda membaginya dengan nomor tes).

Sebagai contoh, pertimbangkan untuk mengukur kesalahan tekanan gauge (tekanan relatif dari atmosfer) vs tekanan absolut. Katakanlah Anda menggunakan instrumen untuk mengukur tekanan pengukur pada kondisi atmosfer yang sempurna, dan perangkat Anda mengukur titik tekanan atmosfer sehingga harus mencatat kesalahan 0%. Menggunakan persamaan yang Anda berikan, dan pertama-tama dengan asumsi kami menggunakan tekanan pengukur terukur, untuk menghitung kesalahan relatif: Kemudian dan dan Anda tidak mendapatkan kesalahan 0%, alih-alih itu tidak terdefinisi. Itu karena persentase kesalahan aktual harus menggunakan nilai tekanan absolut seperti ini:

Kesalahan relatif=PgSebuahkamuge,trkamue-PgSebuahkamuge,testPgSebuahkamuge,trkamue
PgSebuahkamuge,trkamue=0PgSebuahkamuge,test=0
Kesalahan relatif=PSebuahbsHailkamute,trkamue-PSebuahbsHailkamute,testPSebuahbsHailkamute,trkamue
Sekarang dan dan Anda mendapatkan kesalahan 0%. Ini adalah aplikasi yang tepat untuk kesalahan relatif. Aplikasi asli yang menggunakan tekanan gauge lebih seperti "kesalahan relatif dari nilai relatif" yang merupakan hal yang berbeda dari "kesalahan relatif". Anda perlu mengubah tekanan gauge ke absolut sebelum mengukur kesalahan relatif.PSebuahbsHailkamute,trkamue=1SebuahtmPSebuahbsHailkamute,test=1Sebuahtm

Solusi untuk pertanyaan Anda adalah memastikan Anda berurusan dengan nilai absolut saat mengukur kesalahan relatif, sehingga nol bukanlah suatu kemungkinan. Maka Anda sebenarnya mendapatkan kesalahan relatif, dan dapat menggunakannya sebagai ketidakpastian atau metrik persen kesalahan nyata Anda. Jika Anda harus tetap menggunakan nilai relatif, maka Anda harus menggunakan kesalahan absolut, karena kesalahan relatif (persen) akan berubah tergantung pada titik referensi Anda.

Sulit untuk menempatkan definisi konkret pada 0 ... "Nol adalah bilangan bulat yang menyatakan 0 bahwa, ketika digunakan sebagai angka penghitungan, berarti tidak ada objek yang ada." - Wolfram MathWorld http://mathworld.wolfram.com/Zero.html

Jangan ragu untuk memilih, tetapi nol pada dasarnya tidak berarti apa-apa, tidak ada. Inilah sebabnya mengapa tidak masuk akal untuk menggunakan tekanan pengukur saat menghitung kesalahan relatif. Tekanan pengukur, meskipun bermanfaat, mengasumsikan tidak ada pada tekanan atmosfer. Kita tahu ini bukan masalahnya, karena ia memiliki tekanan absolut 1 atm. Jadi, kesalahan relatif sehubungan dengan tidak ada, tidak ada, itu tidak terdefinisi.

Jangan ragu untuk membantah ini, cukup cantumkan: perbaikan cepat apa pun, seperti menambahkan satu ke nilai terendah, salah dan tidak akurat. Mereka masih bisa bermanfaat jika Anda hanya berusaha meminimalkan kesalahan. Jika Anda mencoba untuk membuat pengukuran akurat dari ketidakpastian, tidak terlalu banyak ...


0

Formula MAPE

Menemukan MAPE,

Ini adalah topik yang sangat bisa diperdebatkan dan banyak kontributor opensource telah membahas tentang topik di atas. Pendekatan yang paling efisien hingga sekarang diikuti oleh pengembang. Silakan merujuk ke PR ini untuk mengetahui lebih lanjut.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.