วิธีทำการบูทสแตรปใน 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 เพื่อสร้างช่วงความเชื่อมั่นที่มีขนาดแตกต่างกันได้
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการบูตสแตรปในซอฟต์แวร์สถิติอื่นๆ: