นี่คือคำถามสองข้อข้อหนึ่งเกี่ยวกับวิธีที่ค่าเฉลี่ยและค่ามัธยฐานลดฟังก์ชันการสูญเสียและอีกส่วนเกี่ยวกับความอ่อนไหวของการประมาณค่าเหล่านี้ต่อข้อมูล ทั้งสองคำถามมีการเชื่อมต่อตามที่เราจะเห็น
ลดการสูญเสียให้น้อยที่สุด
บทสรุป (หรือตัวประมาณค่า) ของจุดกึ่งกลางของชุดตัวเลขสามารถสร้างขึ้นได้โดยให้ค่าสรุปเปลี่ยนแปลงและจินตนาการว่าแต่ละตัวเลขในแบตช์ออกแรงบังคับให้ใช้ค่านั้น เมื่อแรงไม่เคยผลักดันค่าออกไปจากตัวเลขดังนั้นจุดใด ๆ ที่แรงสมดุลนั้นเป็น "ศูนย์กลาง" ของแบตช์
การสูญเสียกำลังสอง ( )L2
ตัวอย่างเช่นหากเราต้องแนบสปริงแบบดั้งเดิม (ตามกฎของฮุค ) ระหว่างการสรุปและแต่ละหมายเลขแรงจะเป็นสัดส่วนกับระยะทางกับแต่ละสปริง สปริงจะดึงบทสรุปด้วยวิธีนี้และในที่สุดก็ตกลงไปยังตำแหน่งที่มั่นคงไม่เหมือนใครซึ่งมีพลังงานน้อยที่สุด
ฉันอยากจะสังเกตุเห็นสิ่งที่เกิดขึ้นเพียงเล็กน้อย: พลังงานเป็นสัดส่วนกับผลรวมของระยะทางกำลังสอง กลศาสตร์ของนิวตันสอนให้เรารู้ว่าแรงคืออัตราการเปลี่ยนแปลงของพลังงาน การบรรลุสมดุล - ลดพลังงาน - ส่งผลให้สมดุลกองกำลัง อัตราการเปลี่ยนแปลงพลังงานสุทธิเป็นศูนย์
เรียกสิ่งนี้ว่า " Summary" หรือ "สรุปการสูญเสียกำลังสอง"L2
การสูญเสียแน่นอน ( )L1
การสรุปอื่นสามารถสร้างขึ้นได้โดยสมมติว่าขนาดของกองกำลังการกู้คืนนั้นคงที่โดยไม่คำนึงถึงระยะห่างระหว่างค่าและข้อมูล อย่างไรก็ตามกองกำลังของตัวเองนั้นไม่คงที่เพราะพวกมันจะต้องดึงค่าไปยังจุดข้อมูลแต่ละจุดเสมอ ดังนั้นเมื่อค่าน้อยกว่าจุดข้อมูลแรงจะถูกส่งไปทางบวก แต่เมื่อค่ามากกว่าจุดข้อมูลแรงจะถูกลบ ตอนนี้พลังงานเป็นสัดส่วนกับระยะทางระหว่างค่าและข้อมูล โดยทั่วไปจะมีทั้งภูมิภาคซึ่งพลังงานคงที่และแรงสุทธิเป็นศูนย์ ค่าใด ๆ ในภูมิภาคนี้เราอาจเรียก " สรุป " หรือ "สรุปการสูญเสียสัมบูรณ์"L1
การเปรียบเทียบทางกายภาพเหล่านี้จะให้สัญชาตญาณที่เป็นประโยชน์เกี่ยวกับทั้งสองสรุป ตัวอย่างเช่นเกิดอะไรขึ้นกับบทสรุปถ้าเราย้ายจุดข้อมูลใดจุดหนึ่ง ในกรณีมีสปริงติดอยู่การย้ายจุดข้อมูลหนึ่งจุดจะยืดหรือคลายสปริง ผลที่ได้คือการเปลี่ยนแปลงที่มีผลบังคับใช้ในการสรุปดังนั้นจึงต้องมีการเปลี่ยนแปลงในการตอบสนอง แต่ในกรณีเวลาส่วนใหญ่ที่การเปลี่ยนแปลงในจุดข้อมูลไม่ได้ทำอะไรกับข้อสรุปเพราะแรงนั้นเป็นค่าคงที่ในพื้นที่ วิธีเดียวที่แรงสามารถเปลี่ยนแปลงได้คือจุดข้อมูลที่จะเคลื่อนที่ข้ามการสรุปL2L1
(ในความเป็นจริงมันควรจะเห็นได้ชัดว่ากำลังสุทธิของค่าถูกกำหนดโดยจำนวนของคะแนนที่สูงกว่า - ซึ่งดึงขึ้นไปข้างบน - ลบจำนวนจุดที่น้อยกว่า - ซึ่งดึงลงด้านล่างดังนั้น การสรุปจะต้องเกิดขึ้น ณ สถานที่ใด ๆ ที่มีจำนวนค่าข้อมูลเกินกว่านั้นเท่ากับจำนวนค่าข้อมูลที่น้อยกว่า)L1
แสดงให้เห็นถึงการสูญเสีย
เนื่องจากทั้งแรงและพลังงานรวมกันไม่ว่าในกรณีใดเราสามารถย่อยสลายพลังงานสุทธิเป็นผลงานเดี่ยว ๆ จากจุดข้อมูล โดยการสร้างกราฟพลังงานหรือแรงเป็นฟังก์ชันของค่าสรุปสิ่งนี้ให้ภาพโดยละเอียดเกี่ยวกับสิ่งที่เกิดขึ้น บทสรุปจะเป็นตำแหน่งที่พลังงาน (หรือ "สูญเสีย" ในการพูดจาเชิงสถิติ) มีขนาดเล็กที่สุด มันจะเป็นตำแหน่งที่กองกำลังสมดุล: ศูนย์กลางของข้อมูลเกิดขึ้นที่การเปลี่ยนแปลงสุทธิในการสูญเสียเป็นศูนย์
รูปนี้แสดงพลังงานและแรงสำหรับชุดข้อมูลขนาดเล็กที่มีค่าหกค่า (ทำเครื่องหมายด้วยเส้นแนวตั้งจาง ๆ ในแต่ละพล็อต) เส้นโค้งสีดำประคือผลรวมของเส้นโค้งสีที่แสดงการมีส่วนร่วมจากค่าแต่ละค่า แกน x แสดงค่าที่เป็นไปได้ของการสรุป
มัชฌิมเลขคณิตเป็นจุดที่สูญเสียกำลังสองจะลดลง: มันจะตั้งอยู่ที่จุดสุดยอด (ล่าง) ของพาราโบลาสีดำในพล็อตบนซ้าย เป็นเอกลักษณ์อยู่เสมอ แบ่งเป็นจุดที่สูญเสียจะลดลงแน่นอน ดังที่ระบุไว้ข้างต้นมันจะต้องเกิดขึ้นในช่วงกลางของข้อมูล มันไม่จำเป็นต้องเป็นเอกลักษณ์ มันจะอยู่ที่ด้านล่างของเส้นโค้งสีดำที่หักที่มุมบนขวา (ด้านล่างประกอบด้วยส่วนแฟลตแบบสั้นจริง ๆ ระหว่างถึงค่าใด ๆ ในช่วงนี้คือค่ามัธยฐาน)−0.23−0.17
การวิเคราะห์ความไว
ก่อนหน้านี้ฉันอธิบายสิ่งที่อาจเกิดขึ้นกับการสรุปเมื่อมีการเปลี่ยนแปลงจุดข้อมูล เป็นคำแนะนำในการพล็อตว่าการเปลี่ยนแปลงสรุปในการตอบสนองต่อการเปลี่ยนจุดข้อมูลใด ๆ (พล็อตเหล่านี้ส่วนใหญ่เป็นฟังก์ชันเชิงประจักษ์อิทธิพลพวกเขาแตกต่างจากคำจำกัดความปกติในการที่พวกเขาแสดงค่าที่แท้จริงของการประมาณการมากกว่าค่าเหล่านั้นจะมีการเปลี่ยนแปลงค่าเท่าใด) ค่าของการสรุปถูกระบุด้วย "Estimate" บน y - แกนเพื่อเตือนเราว่าบทสรุปนี้กำลังประเมินตำแหน่งที่อยู่ตรงกลางของชุดข้อมูล ค่าใหม่ (เปลี่ยน) ของจุดข้อมูลแต่ละจุดจะแสดงบนแกน x
รูปนี้แสดงผลลัพธ์ของการเปลี่ยนแปลงค่าข้อมูลแต่ละชุดในชุด (อันเดียวที่วิเคราะห์ในรูปแรก) มีพล็อตเดียวสำหรับแต่ละค่าข้อมูลซึ่งถูกไฮไลต์บนพล็อตที่มีขีดยาวสีดำตามแนวแกนด้านล่าง (ค่าข้อมูลที่เหลือจะแสดงด้วยเครื่องหมายขีดสีเทาสั้น ๆ ) เส้นโค้งสีน้ำเงินติดตามการสรุป - ค่าเฉลี่ยเลขคณิต - และเส้นโค้งสีแดงติดตามการสรุป - ค่ามัธยฐาน (เนื่องจากค่ามัธยฐานมักเป็นช่วงของค่าการประชุมของการวางแผนกลางของช่วงนั้นตามมาที่นี่)−1.02,−0.82,−0.23,−0.17,−0.08,0.77L2L1
หมายเหตุ:
ความไวของค่าเฉลี่ยนั้นไม่ จำกัด : เส้นสีน้ำเงินเหล่านั้นขยายออกไปเรื่อย ๆ ความไวของค่ามัธยฐานถูก จำกัด : มีขีด จำกัด บนและล่างของเส้นโค้งสีแดง
แม้ว่าค่ามัธยฐานจะเปลี่ยนแปลงไป แต่มันจะเปลี่ยนเร็วกว่าค่าเฉลี่ยมาก ความลาดชันของเส้นสีฟ้าแต่ละ (โดยทั่วไปมันเป็นสำหรับชุดข้อมูลที่มีค่า) ในขณะที่เนินเขาในส่วนที่เอียงของเส้นสีแดงที่มีทั้งหมด1/21/61/nn1/2
ค่าเฉลี่ยมีความอ่อนไหวต่อทุกจุดข้อมูลและความไวนี้ไม่มีขอบเขต (เนื่องจากความลาดเอียงที่ไม่ใช่ศูนย์ของเส้นสีทั้งหมดในพล็อตซ้ายล่างของรูปแรกระบุ) แม้ว่าค่ามัธยฐานจะไวต่อจุดข้อมูลทุกจุด แต่ความไวก็ถูกผูกไว้ (ซึ่งเป็นสาเหตุที่ทำให้เส้นโค้งสีในพล็อตขวาล่างของรูปแรกตั้งอยู่ในช่วงแนวดิ่งที่แคบรอบศูนย์) แน่นอนว่าสิ่งเหล่านี้เป็นเพียงการแสดงซ้ำของกฎพื้นฐาน (การสูญเสีย) ทางสายตา: กำลังสองสำหรับค่าเฉลี่ย, เส้นตรงสำหรับค่ามัธยฐาน
ช่วงเวลาที่ค่ามัธยฐานสามารถเปลี่ยนแปลงได้อาจแตกต่างกันไปตามจุดข้อมูล มันก็มีขอบเขตเสมอโดยสองของค่าใกล้ตรงกลางระหว่างข้อมูลที่ไม่ได้แตกต่างกัน (ขอบเขตเหล่านี้มีการทำเครื่องหมายด้วยเส้นประแนวตั้งจาง ๆ )
เพราะอัตราการเปลี่ยนแปลงของค่ามัธยฐานอยู่เสมอที่จำนวนเงินโดยที่มันอาจจะแตกต่างกันไปจึงจะถูกกำหนดโดยความยาวของช่องว่างระหว่างค่าใกล้ตรงกลางของชุดข้อมูลนี้1/2
แม้ว่าโดยทั่วไปจะมีเพียงจุดแรกที่ระบุไว้ แต่จุดทั้งสี่นั้นมีความสำคัญ โดยเฉพาะอย่างยิ่ง,
มันผิดอย่างแน่นอนว่า "ค่ามัธยฐานไม่ได้ขึ้นอยู่กับทุกค่า" รูปนี้ให้ตัวอย่างที่ตรงกันข้าม
อย่างไรก็ตามค่ามัธยฐานไม่ได้ขึ้นอยู่กับ "อย่างมีนัยสำคัญ" ในทุกค่าในแง่ที่ว่าแม้ว่าการเปลี่ยนค่าแต่ละค่าสามารถเปลี่ยนค่ามัธยฐานจำนวนของการเปลี่ยนแปลงจะถูก จำกัด โดยช่องว่างระหว่างค่าใกล้กลางในชุดข้อมูล โดยเฉพาะอย่างยิ่งจำนวนของการเปลี่ยนแปลงที่ถูกผูกไว้ เราบอกว่าค่ามัธยฐานเป็นบทสรุป "ต้านทาน"
แม้ว่าค่าเฉลี่ยจะไม่สามารถต้านทานได้และจะเปลี่ยนแปลงเมื่อใดก็ตามที่ข้อมูลมีการเปลี่ยนแปลง แต่อัตราการเปลี่ยนแปลงก็ค่อนข้างเล็ก ชุดข้อมูลที่ใหญ่กว่าอัตราการเปลี่ยนแปลงที่น้อยลง อย่างเท่าเทียมกันเพื่อสร้างการเปลี่ยนแปลงวัสดุในชุดข้อมูลขนาดใหญ่ค่าอย่างน้อยหนึ่งค่าต้องได้รับการเปลี่ยนแปลงที่ค่อนข้างใหญ่ สิ่งนี้ชี้ให้เห็นว่าการไม่ต่อต้านของค่าเฉลี่ยนั้นเป็นเรื่องที่กังวลสำหรับ (a) ชุดข้อมูลขนาดเล็กหรือ (b) ชุดข้อมูลที่หนึ่งหรือมากกว่าหนึ่งข้อมูลอาจมีค่าที่อยู่ไกลจากกลางชุดมาก
คำพูดเหล่านี้ - ซึ่งฉันหวังว่าตัวเลขจะปรากฏ - เปิดเผยการเชื่อมต่อที่ลึกระหว่างฟังก์ชันการสูญเสียและความไว (หรือความต้านทาน) ของเครื่องมือประมาณ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้เริ่มต้นด้วยหนึ่งในบทความ Wikipedia เกี่ยวกับ M-estimatorsจากนั้นติดตามความคิดเหล่านั้นเท่าที่คุณต้องการ
รหัส
R
รหัสนี้สร้างตัวเลขและสามารถแก้ไขได้อย่างง่ายดายเพื่อศึกษาชุดข้อมูลอื่น ๆ ในลักษณะเดียวกัน: เพียงแทนที่เวกเตอร์ที่สร้างแบบสุ่มy
ด้วยเวกเตอร์ของตัวเลขใด ๆ
#
# Create a small dataset.
#
set.seed(17)
y <- sort(rnorm(6)) # Some data
#
# Study how a statistic varies when the first element of a dataset
# is modified.
#
statistic.vary <- function(t, x, statistic) {
sapply(t, function(e) statistic(c(e, x[-1])))
}
#
# Prepare for plotting.
#
darken <- function(c, x=0.8) {
apply(col2rgb(c)/255 * x, 2, function(s) rgb(s[1], s[2], s[3]))
}
colors <- darken(c("Blue", "Red"))
statistics <- c(mean, median); names(statistics) <- c("mean", "median")
x.limits <- range(y) + c(-1, 1)
y.limits <- range(sapply(statistics,
function(f) statistic.vary(x.limits + c(-1,1), c(0,y), f)))
#
# Make the plots.
#
par(mfrow=c(2,3))
for (i in 1:length(y)) {
#
# Create a standard, consistent plot region.
#
plot(x.limits, y.limits, type="n",
xlab=paste("Value of y[", i, "]", sep=""), ylab="Estimate",
main=paste("Sensitivity to y[", i, "]", sep=""))
#legend("topleft", legend=names(statistics), col=colors, lwd=1)
#
# Mark the limits of the possible medians.
#
n <- length(y)/2
bars <- sort(y[-1])[ceiling(n-1):floor(n+1)]
abline(v=range(bars), lty=2, col="Gray")
rug(y, col="Gray", ticksize=0.05);
#
# Show which value is being varied.
#
rug(y[1], col="Black", ticksize=0.075, lwd=2)
#
# Plot the statistics as the value is varied between x.limits.
#
invisible(mapply(function(f,c)
curve(statistic.vary(x, y, f), col=c, lwd=2, add=TRUE, n=501),
statistics, colors))
y <- c(y[-1], y[1]) # Move the next data value to the front
}
#------------------------------------------------------------------------------#
#
# Study loss functions.
#
loss <- function(x, y, f) sapply(x, function(t) sum(f(y-t)))
square <- function(t) t^2
square.d <- function(t) 2*t
abs.d <- sign
losses <- c(square, abs, square.d, abs.d)
names(losses) <- c("Squared Loss", "Absolute Loss",
"Change in Squared Loss", "Change in Absolute Loss")
loss.types <- c(rep("Loss (energy)", 2), rep("Change in loss (force)", 2))
#
# Prepare for plotting.
#
colors <- darken(rainbow(length(y)))
x.limits <- range(y) + c(-1, 1)/2
#
# Make the plots.
#
par(mfrow=c(2,2))
for (j in 1:length(losses)) {
f <- losses[[j]]
y.range <- range(c(0, 1.1*loss(y, y, f)))
#
# Plot the loss (or its rate of change).
#
curve(loss(x, y, f), from=min(x.limits), to=max(x.limits),
n=1001, lty=3,
ylim=y.range, xlab="Value", ylab=loss.types[j],
main=names(losses)[j])
#
# Draw the x-axis if needed.
#
if (sign(prod(y.range))==-1) abline(h=0, col="Gray")
#
# Faintly mark the data values.
#
abline(v=y, col="#00000010")
#
# Plot contributions to the loss (or its rate of change).
#
for (i in 1:length(y)) {
curve(loss(x, y[i], f), add=TRUE, lty=1, col=colors[i], n=1001)
}
rug(y, side=3)
}