จะคำนวณการวัดความแม่นยำตาม RMSE ได้อย่างไร? ชุดข้อมูลขนาดใหญ่ของฉันกระจายตามปกติหรือไม่


9

ฉันมีชุดข้อมูลหลายชุดตามคำสั่งของคะแนนหลายพัน ค่าในแต่ละชุดข้อมูลคือ X, Y, Z หมายถึงพิกัดในอวกาศ ค่า Z แสดงถึงความแตกต่างในการยกระดับที่คู่พิกัด (x, y)

โดยทั่วไปในฟิลด์ GIS ของฉันข้อผิดพลาดการยกระดับจะถูกอ้างอิงใน RMSE โดยการลบจุดความจริงภาคพื้นดินไปยังจุดวัด (จุดข้อมูล LiDAR) โดยปกติแล้วจะใช้จุดตรวจสอบข้อเท็จจริงขั้นต่ำ 20 จุด การใช้ค่า RMSE นี้ตาม NDEP (แนวทางระดับความสูงของดิจิตอลแห่งชาติ) และแนวทางของ FEMA จะสามารถคำนวณการวัดความแม่นยำได้: ความแม่นยำ = 1.96 * RMSE

ความแม่นยำนี้ถูกระบุว่า: "ความแม่นยำในแนวดิ่งพื้นฐานคือค่าที่ความแม่นยำในแนวดิ่งสามารถประเมินและเปรียบเทียบได้อย่างเท่าเทียมกันในชุดข้อมูลความแม่นยำขั้นพื้นฐานจะคำนวณที่ระดับความเชื่อมั่น 95% ในฐานะฟังก์ชันของแนวตั้ง RMSE"

ฉันเข้าใจว่า 95% ของพื้นที่ภายใต้เส้นโค้งการแจกแจงแบบปกติตั้งอยู่ภายใน 1.96 * std.deviation แต่ไม่เกี่ยวข้องกับ RMSE

โดยทั่วไปฉันถามคำถามนี้: การใช้ RMSE ที่คำนวณจาก 2 ชุดข้อมูลฉันจะเชื่อมโยง RMSE กับความถูกต้องบางประเภทได้อย่างไร (เช่น 95 เปอร์เซ็นต์ของจุดข้อมูลของฉันอยู่ในช่วง +/- X ซม.) นอกจากนี้ฉันจะทราบได้อย่างไรว่าชุดข้อมูลของฉันกระจายตามปกติโดยใช้การทดสอบที่ทำงานได้ดีกับชุดข้อมูลขนาดใหญ่เช่นนั้น "ดีพอ" สำหรับการแจกแจงแบบปกติคืออะไร p <0.05 สำหรับการทดสอบทั้งหมดหรือควรตรงกับรูปร่างของการแจกแจงแบบปกติหรือไม่


ฉันพบข้อมูลที่ดีมากในหัวข้อนี้ในเอกสารต่อไปนี้:

http://paulzandbergen.com/PUBLICATIONS_files/Zandbergen_TGIS_2008.pdf


4
ระวัง! การใช้ ks.test ของคุณไม่ถูกต้อง ตามหน้าช่วยเหลือคุณต้องใช้ 'pnorm' แทน 'dnorm' ยิ่งกว่านั้นการตั้งค่าพารามิเตอร์การกระจายการเปรียบเทียบเป็นค่าเฉลี่ยและ SD ของตัวอย่างเองจะทำให้ค่า p-value เพิ่มขึ้นอย่างมาก: "หากใช้การทดสอบตัวอย่างเดี่ยวพารามิเตอร์ที่ระบุใน ... จะต้องระบุล่วงหน้าและไม่ได้ประมาณจาก ข้อมูล."
whuber

3
ที่จริงสูตรนั้นจะไม่ให้ช่วงความมั่นใจกับคุณ: มันจะใหญ่เกินไปสำหรับสูตรนั้น จริงๆแล้วมันเป็นวิธีที่หยาบ (แต่เป็นมาตรฐาน) ในการประมาณช่วงความอดทนซึ่งเป็น 95% กลางของประชากรทั้งหมดของความแตกต่าง มีเหตุผลที่ดีที่สมมติว่าความแตกต่างจะไม่มีการแจกแจงแบบปกติ: ความแตกต่างสัมบูรณ์ที่ใหญ่กว่ามักจะเกี่ยวข้องกับความชันภูมิประเทศที่ใหญ่กว่า สมมติว่า 4000 คะแนนของคุณเป็นตัวอย่างแบบสุ่มของความแตกต่างเหล่านั้นทำไมคุณไม่รายงานเปอร์เซ็นต์ 2.5 และ 97.5
whuber

4
ข้อมูลของคุณเป็นตัวอย่างทางสถิติของระดับความสูงที่สามารถวัดได้ เมื่อคุณพูดถึง "ความถูกต้อง" คุณกำลังเรียกร้องเกี่ยวกับว่า DEM ของคุณเป็นตัวแทนของประชากรทั้งหมดของระดับความสูงได้อย่างไร ในกรณีของคุณเป็นไปไม่ได้ที่จะประเมินความถูกต้องโดยการเปรียบเทียบชุดข้อมูล: คุณต้อง "ข้อมูลจริง" ของคุณ ดังนั้นแนวทางที่เป็นจริงพูดคุยเกี่ยวกับข้อตกลงที่เกี่ยวข้องของสองชุดข้อมูล ในที่สุดการใช้ "ระดับความเชื่อมั่น" ของพวกเขานั้นผิดพลาดตามที่ฉันอธิบายไว้ก่อนหน้า ฉันยอมรับว่าคุณต้องทำงานภายใต้กรอบแนวทางที่น่ากลัวเช่นนี้ แต่คุณสมควรที่จะรู้ว่าอะไรถูกต้อง
whuber

3
นั่นเริ่มที่จะฟังดูเหมือนคำถามที่มีประโยชน์สำหรับคุณ เนื่องจากคุณยังไม่ได้รับคำตอบใด ๆ เหตุใดคุณจึงไม่เพียงแก้ไขคำถามปัจจุบันอย่างสมบูรณ์เพื่อรวมข้อมูลที่คุณได้เปิดเผยไว้ในความคิดเห็นเหล่านี้ ฉันขอแนะนำให้ขยายให้กว้างขึ้น: หลังจากอ้างถึงแนวทาง (เพื่อแสดงให้เห็นว่าวิธีการแบบใดที่มักใช้ในสาขาของคุณ) คุณอาจถามวิธีการใช้การแจกแจงความแตกต่างของคู่ที่สั่งในระดับความสูงเพื่อประเมินความถูกต้อง ของชุดข้อมูลเป็นการอ้างอิง)
whuber

2
ทั้งหมด: อัปเดตโพสต์และคำถามหลักของฉันเพื่อสะท้อนการเปลี่ยนแปลงจากความคิดเห็น
Matthew Bilskie

คำตอบ:


1

การใช้ RMSE ที่คำนวณได้จาก 2 ชุดข้อมูลฉันจะเชื่อมโยง RMSE กับความถูกต้องบางประเภทได้อย่างไร (เช่น 95 เปอร์เซ็นต์ของจุดข้อมูลของฉันอยู่ภายใน +/- X ซม.)

ดูคำถามที่ใกล้เคียงกัน: ช่วงความเชื่อมั่นของ RMSE ?

ชุดข้อมูลขนาดใหญ่ของฉันกระจายตามปกติหรือไม่

การเริ่มต้นที่ดีคือการสังเกตการกระจายตัวเชิงประจักษ์ของzค่านิยม นี่คือตัวอย่างที่ทำซ้ำได้

set.seed(1)
z <- rnorm(2000,2,3)
z.difference <- data.frame(z=z)

library(ggplot2)

ggplot(z.difference,aes(x=z)) + 
  geom_histogram(binwidth=1,aes(y=..density..), fill="white", color="black") +
  ylab("Density") + xlab("Elevation differences (meters)") +
  theme_bw() + 
  coord_flip()

ป้อนคำอธิบายรูปภาพที่นี่

จากภาพรวมครั้งแรกมันดูปกติใช่มั้ย (อันที่จริงเรารู้ว่ามันเป็นเรื่องปกติเพราะrnormคำสั่งที่เราใช้)

หากต้องการวิเคราะห์ตัวอย่างเล็ก ๆ เหนือชุดข้อมูลนั่นคือการทดสอบตามปกติของ Shapiro-Wilk

z_sample <- sample(z.difference$z,40,replace=T)
shapiro.test(z_sample) #high p-value indicates the data is normal (null hypothesis)

    Shapiro-Wilk normality test

data:  z_sample
W = 0.98618, p-value = 0.8984 #normal

หนึ่งยังสามารถทำการทดสอบซ้ำตะวันตกเฉียงใต้หลายครั้งกว่าตัวอย่างเล็ก ๆ p-valuesที่แตกต่างกันและจากนั้นดูที่การกระจายของ

โปรดทราบว่าการทดสอบภาวะปกติในชุดข้อมูลขนาดใหญ่นั้นไม่มีประโยชน์อย่างที่อธิบายไว้ในคำตอบนี้จัดทำโดย Greg Snow

ในทางกลับกันด้วยชุดข้อมูลที่มีขนาดใหญ่จริง ๆ ทฤษฎีบทขีด จำกัด กลางจะเริ่มขึ้นและสำหรับการวิเคราะห์ทั่วไป (การถดถอย, การทดสอบ t-, ... ) คุณไม่สนใจหรอกว่าประชากรจะกระจายตามปกติหรือไม่

กฎง่ายๆคือทำ qq-plot แล้วถามว่ามันปกติหรือไม่

ดังนั้นมาทำ QQ-plot:

#qq-plot (quantiles from empirical distribution - quantiles from theoretical distribution)
mean_z <- mean(z.difference$z)
sd_z <- sd(z.difference$z)
set.seed(77)
normal <- rnorm(length(z.difference$z), mean = mean_z, sd = sd_z)

qqplot(normal, z.difference$z, xlab="Theoretical", ylab="Empirical")

ป้อนคำอธิบายรูปภาพที่นี่

หากจุดอยู่ในy=xแนวเดียวกันนั่นหมายความว่าการกระจายเชิงประจักษ์ตรงกับการแจกแจงเชิงทฤษฎีซึ่งในกรณีนี้คือการแจกแจงแบบปกติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.