การทำความเข้าใจการวิเคราะห์พลังงานของการทดสอบสมมติฐานทางสถิติสามารถปรับปรุงได้ด้วยการดำเนินการบางอย่างและดูผลลัพธ์อย่างใกล้ชิด
โดยการออกแบบการทดสอบขนาด αมีวัตถุประสงค์เพื่อปฏิเสธสมมติฐานว่างด้วยโอกาสอย่างน้อยที่สุดαเมื่อ null เป็นจริง (ที่คาดว่าอัตราการบวกปลอม ) เมื่อเรามีความสามารถ (หรือความหรูหรา) ในการเลือกระหว่างขั้นตอนทางเลือกกับคุณสมบัตินี้เราจะชอบที่ (a) เข้ามาใกล้กับอัตราบวกปลอมเล็กน้อยและ (b) มีโอกาสค่อนข้างสูงที่จะปฏิเสธสมมติฐานว่างเมื่อมันเป็น ไม่จริง.
เกณฑ์ที่สองกำหนดให้เราต้องกำหนดในสิ่งที่และวิธีการที่เป็นโมฆะไม่เป็นความจริง ในกรณีของตำราเรียนสิ่งนี้เป็นเรื่องง่ายเพราะทางเลือกจะถูก จำกัด ในขอบเขตและระบุไว้อย่างชัดเจน ด้วยการทดสอบการกระจายเช่น Shapiro-Wilk ทางเลือกนั้นค่อนข้างคลุมเครือมากขึ้นนั่นคือ "ไม่ใช่แบบปกติ" เมื่อเลือกระหว่างการทดสอบแบบกระจายนักวิเคราะห์มีแนวโน้มที่จะต้องทำการศึกษาแบบใช้พลังงานครั้งเดียวเพื่อประเมินว่าการทดสอบแบบใดที่ทำงานได้ดีกับสมมติฐานทางเลือกที่เฉพาะเจาะจงมากขึ้นซึ่งเป็นปัญหาในมือ
ตัวอย่างที่ได้แรงบันดาลใจจากคำตอบของไมเคิลเมเยอร์เป็นการวางตัวว่าการกระจายทางเลือกอาจมีคุณสมบัติคล้ายกับครอบครัวของการแจกแจงของนักเรียน ตระกูลนี้แปรตามจำนวนν≥ 1 (รวมถึงตามที่ตั้งและขนาด) รวมอยู่ในขีด จำกัด ขนาดใหญ่ ν การแจกแจงแบบปกติ
ไม่ว่าในสถานการณ์ใด - ไม่ว่าจะเป็นการประเมินขนาดการทดสอบจริงหรือกำลัง - เราต้องสร้างตัวอย่างอิสระจากการแจกแจงที่ระบุรันการทดสอบในแต่ละตัวอย่างและค้นหาอัตราที่มันปฏิเสธสมมติฐานว่าง อย่างไรก็ตามมีข้อมูลเพิ่มเติมในผลการทดสอบใด ๆ : ค่า P โดยการคงชุดของค่า P ที่สร้างขึ้นในระหว่างการจำลองเราสามารถประเมินอัตราที่การทดสอบจะปฏิเสธค่า Null สำหรับค่าใด ๆของαเราอาจสนใจ หัวใจของการวิเคราะห์พลังงานนั้นเป็นรูทีนย่อยที่สร้างการกระจาย P-value นี้ (โดยการจำลองตามที่อธิบายไว้หรือ - บางครั้ง - ด้วยสูตรทางทฤษฎี) R
นี่คือตัวอย่างเขียนใน ข้อโต้แย้งของมันรวมถึง
rdist
ชื่อของฟังก์ชันเพื่อสร้างตัวอย่างสุ่มจากการแจกแจงบางอย่าง
n
ขนาดของตัวอย่างที่ต้องการ rdist
n.iter
จำนวนตัวอย่างดังกล่าวที่จะได้รับ
...
พารามิเตอร์ทางเลือกใด ๆ ที่จะส่งผ่านไปยังrdist
(เช่นดีกรีอิสระ)ν)
พารามิเตอร์ที่เหลือควบคุมการแสดงผล ส่วนใหญ่จะรวมอยู่ในความสะดวกในการสร้างตัวเลขในคำตอบนี้
sim <- function(rdist, n, n.iter, prefix="",
breaks=seq(0, 1, length.out=20), alpha=0.05,
plot=TRUE, ...) {
# The simulated P-values.
# NB: The optional arguments "..." are passed to `rdist` to specify
# its parameters (if any).
x <- apply(matrix(rdist(n*n.iter, ...), ncol=n.iter), 2,
function(y) shapiro.test(y)$p.value)
# The histogram of P-values, if requested.
if (plot) {
power <- mean(x <= alpha)
round.n <- 1+ceiling(log(1 + n.iter * power * (1-power), base=10) / 2)
hist(x[x <= max(breaks)], xlab=paste("P value (n=", n, ")", sep=""),
breaks=breaks,
main=paste(prefix, "(power=", format(power, digits=round.n), ")", sep=""))
# Specially color the "significant" part of the histogram
hist(x[x <= alpha], breaks=breaks, col="#e0404080", add=TRUE)
}
# Return the array of P-values for any further processing.
return(x)
}
คุณสามารถเห็นการคำนวณใช้เวลาเพียงหนึ่งบรรทัด ส่วนที่เหลือของรหัสจะแปลงฮิสโตแกรม เพื่อแสดงให้เห็นว่าใช้เพื่อคำนวณอัตราบวกที่เป็นเท็จที่คาดไว้ "อัตรา" อยู่ในพหูพจน์เนื่องจากคุณสมบัติของการทดสอบมักแตกต่างกันไปตามขนาดตัวอย่าง เนื่องจากเป็นที่ทราบกันดีว่าการทดสอบแบบกระจายมีพลังงานสูงเมื่อเทียบกับทางเลือกเล็ก ๆ ในเชิงคุณภาพเมื่อขนาดตัวอย่างมีขนาดใหญ่การศึกษานี้จึงมุ่งเน้นไปที่กลุ่มตัวอย่างขนาดเล็กจำนวนมากซึ่งการทดสอบดังกล่าวมักใช้ในทางปฏิบัติ5 ถึง 100 เพื่อประหยัดเวลาในการคำนวณฉันรายงานเฉพาะค่าของ n จาก 5 ถึง 20
n.iter <- 10^5 # Number of samples to generate
n.spec <- c(5, 10, 20) # Sample sizes to study
par(mfrow=c(1,length(n.spec))) # Organize subsequent plots into a tableau
system.time(
invisible(sapply(n.spec, function(n) sim(rnorm, n, n.iter, prefix="DF = Inf ")))
)
หลังจากระบุพารามิเตอร์รหัสนี้ก็เป็นเพียงหนึ่งบรรทัด มันให้ผลลัพธ์ต่อไปนี้:
นี่คือลักษณะที่คาดไว้:ฮิสโทแกรมแสดงการกระจายของค่า P เกือบทั้งหมดในช่วงเต็มจาก0 ถึง 1. ด้วยขนาดที่ตั้งไว้ที่α = 0.05 , รายงานการจำลองระหว่าง 0.0481 และ 0.0499ของค่า P มีค่าน้อยกว่าขีด จำกัด นั้น: ผลลัพธ์เหล่านี้ถูกเน้นด้วยสีแดง ความใกล้ชิดของความถี่เหล่านี้กับค่าที่ระบุนั้นยืนยันว่าการทดสอบ Shapiro-Wilk ดำเนินการตามที่โฆษณาไว้
(ดูเหมือนจะมีแนวโน้มไปสู่ความถี่สูงผิดปกติของค่า P ใกล้ 1. นี่เป็นข้อกังวลเล็กน้อยเพราะในเกือบทุกแอปพลิเคชันค่า P เดียวที่มีอยู่0.2 หรือน้อยกว่า.)
ตอนนี้ให้เราหันมาประเมินพลังกัน ช่วงเต็มของค่าν สำหรับการแจกแจงของนักเรียน t สามารถศึกษาได้อย่างเพียงพอโดยการประเมินบางกรณีจากรอบ ν= 100 ลงไป ν= 1. ฉันจะรู้ได้อย่างไร ฉันดำเนินการเบื้องต้นบางอย่างโดยใช้การวนซ้ำจำนวนน้อยมาก (จาก100 ถึง 1000) ซึ่งไม่ต้องใช้เวลาเลย ตอนนี้โค้ดต้องการลูปสองเท่า (และในสถานการณ์ที่ซับซ้อนมากขึ้นเรามักต้องการลูปสามหรือสี่เท่าเพื่อรองรับทุกแง่มุมที่เราต้องการเปลี่ยนแปลง): หนึ่งเพื่อศึกษาว่าพลังงานแตกต่างกันอย่างไรกับขนาดตัวอย่างและอื่น ๆ เพื่อศึกษาว่ามันแตกต่างกันอย่างไร องศาอิสระ แม้ว่าอีกครั้งทุกอย่างจะทำในรหัสบรรทัดเดียว (ที่สามและสุดท้าย):
df.spec <- c(64, 16, 4, 2, 1)
par(mfrow=c(length(n.spec), length(df.spec)))
for (n in n.spec)
for (df in df.spec)
tmp <- sim(rt, n, n.iter, prefix=paste("DF =", df, ""), df=df)
การศึกษาเล็กน้อยของฉากนี้ให้สัญชาตญาณที่ดีเกี่ยวกับพลังงาน ฉันต้องการดึงความสนใจไปยังประเด็นที่สำคัญและเป็นประโยชน์ที่สุด:
ในฐานะที่เป็นองศาอิสระลดลงจาก ν= 64 ทางซ้ายเพื่อ ν= 1ทางด้านขวาค่า P-value มากขึ้นและน้อยแสดงให้เห็นว่าอำนาจในการแยกแยะการกระจายเหล่านี้จากการแจกแจงแบบปกติเพิ่มขึ้น (กำลังคำนวณปริมาณในชื่อพล็อตแต่ละเรื่อง: เท่ากับสัดส่วนของพื้นที่ของฮิสโตแกรมที่เป็นสีแดง)
เมื่อขนาดตัวอย่างเพิ่มขึ้นจาก n = 5 ในแถวบนสุดถึง n = 20 ด้านล่างพลังงานเพิ่มขึ้น
สังเกตว่าการกระจายทางเลือกนั้นแตกต่างจากการแจกแจงแบบโมฆะและขนาดตัวอย่างเพิ่มขึ้นอย่างไรค่า P เริ่มต้นรวบรวมไปทางซ้าย แต่ยังมี "หาง" ของมันที่ทอดยาวไปจนถึง 1. นี่คือลักษณะของการศึกษาพลังงาน มันแสดงให้เห็นว่าการทดสอบนั้นเป็นการเดิมพัน : แม้เมื่อสมมติฐานว่างถูกละเมิดอย่างเห็นได้ชัดและแม้ว่าขนาดตัวอย่างของเรามีขนาดใหญ่พอสมควรการทดสอบอย่างเป็นทางการของเราอาจล้มเหลวในการสร้างผลลัพธ์ที่สำคัญ
แม้ในกรณีที่รุนแรงที่ด้านล่างขวาซึ่งเป็นตัวอย่างของ 20 ถูกดึงมาจากการแจกจ่ายของนักเรียนด้วย 1 ระดับของอิสรภาพ (การกระจาย Cauchy) พลังไม่ได้ 1: มี 100 - 86.57 = 13 % โอกาสที่กลุ่มตัวอย่าง 20 ตัวแปร iid Cauchy จะไม่ได้รับการพิจารณาอย่างแตกต่างจาก Normal ที่ระดับ 5 % (นั่นคือด้วย 95 % ความมั่นใจ).
เราสามารถประเมินพลังได้ทุกเมื่อ αเราเลือกโดยการระบายสีบาร์บนฮิสโทแกรมเหล่านี้ให้มากขึ้นหรือน้อยลง ตัวอย่างเช่นการประเมินพลังงานที่α = 0.10สีในสองแท่งด้านซ้ายในแต่ละฮิสโตแกรมและประมาณพื้นที่ของมันเป็นเศษส่วนของผลรวม
(วิธีนี้ใช้ไม่ได้ผลกับค่าของ α มีขนาดเล็กกว่า 0.05ด้วยตัวเลขนี้ ในทางปฏิบัติเราจะ จำกัด ฮิสโทแกรมเป็นค่า P เท่านั้นในช่วงที่จะใช้ซึ่งอาจมาจาก0 ถึง 20 %และแสดงรายละเอียดให้เพียงพอเพื่อเปิดใช้การประเมินพลังงานแบบมองเห็นได้ α = 0.01 หรือแม้กระทั่ง α = 0.005. (นั่นคือสิ่งที่เป็นbreaks
ตัวเลือกsim
สำหรับ) การโพสต์ผลการจำลองสามารถให้รายละเอียดได้มากขึ้น)
มันน่าขบขันมากที่สามารถรวบรวมได้จากสิ่งที่มีผลกับจำนวนสามบรรทัดของรหัส: หนึ่งเพื่อจำลองตัวอย่าง iid จากการแจกแจงที่ระบุหนึ่งที่จะนำไปใช้กับอาร์เรย์ของการแจกแจงโมฆะและอีกอันหนึ่งที่ใช้กับ อาร์เรย์ของการแจกแจงทางเลือก นี่คือสามขั้นตอนที่ใช้ในการวิเคราะห์พลังงาน: ส่วนที่เหลือเป็นเพียงการสรุปและตีความผลลัพธ์