วิธีทำการบูทสแตรปใน python (พร้อมตัวอย่าง)


การบูตสแตรปปิ้ง เป็นวิธีการที่ใช้สร้างช่วงความเชื่อมั่นสำหรับ สถิติ เมื่อขนาดตัวอย่างมีขนาดเล็กและไม่ทราบการกระจายพื้นฐาน

กระบวนการพื้นฐานสำหรับการบูตสแตรปมีดังนี้:

  • นำตัวอย่าง k ซ้ำโดยแทนที่จากชุดข้อมูลที่กำหนด
  • สำหรับแต่ละตัวอย่าง ให้คำนวณสถิติที่น่าสนใจ
  • ซึ่งให้ค่าประมาณที่แตกต่างกัน k สำหรับสถิติที่กำหนด ซึ่งคุณสามารถใช้คำนวณช่วงความเชื่อมั่นสำหรับสถิตินั้นได้

วิธีที่ง่ายที่สุดในการบูตสแตรปใน Python คือการใช้ฟังก์ชัน บูตสแตรป จากไลบรารี SciPy

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ตัวอย่าง: ดำเนินการบูตสแตรปใน Python

สมมติว่าเราสร้างชุดข้อมูลใน Python ที่มีค่า 15 ค่า:

 #define array of data values
data = [7, 9, 10, 10, 12, 14, 15, 16, 16, 17, 19, 20, 21, 21, 23]

เราสามารถใช้โค้ดต่อไปนี้เพื่อคำนวณช่วงความเชื่อมั่นบูตสแตรป 95% สำหรับค่ามัธยฐาน:

 from scipy. stats import bootstrap
import numpy as np

#convert array to sequence
data = (data,)

#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap(data, np. median , confidence_level= 0.95 ,
                         random_state= 1 , method=' percentile ')

#view 95% boostrapped confidence interval
print ( bootstrap_ci.confidence_interval )

ConfidenceInterval(low=10.0, high=20.0)

ช่วงความเชื่อมั่นบูตสแตรป 95% สำหรับค่ามัธยฐานกลายเป็น [10.0, 20.0]

นี่คือสิ่งที่ฟังก์ชัน boostrap() ทำจริงภายใต้ประทุน:

  • ฟังก์ชัน bootstrap() สร้างตัวอย่างได้ 9,999 ตัวอย่างพร้อมการแทนที่ (ค่าเริ่มต้นคือ 9999 แต่คุณสามารถใช้อาร์กิวเมนต์ n_resamples เพื่อเปลี่ยนตัวเลขนี้ได้)
  • สำหรับตัวอย่างบูตสแตรปแต่ละรายการ จะมีการคำนวณค่ามัธยฐาน
  • ค่ามัธยฐานของแต่ละตัวอย่างเรียงลำดับจากน้อยไปหามาก และใช้ค่ามัธยฐานที่เปอร์เซ็นไทล์ 2.5% และเปอร์เซ็นไทล์ 97.5% เพื่อสร้างขีดจำกัดล่างและบนของช่วงความเชื่อมั่น 95% %

โปรดทราบว่าคุณสามารถคำนวณช่วงความเชื่อมั่นบูตสแตรปสำหรับสถิติใดๆ ก็ได้

ตัวอย่างเช่น เราสามารถแทนที่ np.median ด้วย np.std ในฟังก์ชัน bootstrap() เพื่อคำนวณช่วงความเชื่อมั่น 95% สำหรับค่าเบี่ยงเบนมาตรฐานแทน:

 from scipy. stats import bootstrap
import numpy as np

#convert array to sequence
data = (data,)

#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap(data, np. std , confidence_level= 0.95 ,
                         random_state= 1 , method=' percentile ')

#view 95% boostrapped confidence interval
print ( bootstrap_ci.confidence_interval )

ConfidenceInterval(low=3.3199732261303283, high=5.66478399066117)

ช่วงความเชื่อมั่นบูตสแตรป 95% สำหรับส่วนเบี่ยงเบนมาตรฐานกลายเป็น [3.32, 5.67]

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

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการบูตสแตรปในซอฟต์แวร์สถิติอื่นๆ:

วิธีบูตสแตรปใน R
วิธีการบูตสแตรปใน Excel

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *