p-values

Hypothesis Testing in R

Richie Cotton

Data Evangelist at DataCamp

คดีอาญา

  • สถานการณ์จริงที่เป็นไปได้สองแบบ
    1. จำเลยก่ออาชญากรรม
    2. จำเลยไม่ได้ก่ออาชญากรรม
  • คำตัดสินที่เป็นไปได้สองแบบ
    1. มีความผิด
    2. ไม่มีความผิด
  • เบื้องต้นสันนิษฐานว่าจำเลยไม่มีความผิด
  • หากหลักฐาน "ชัดเจนเกินข้อสงสัยอันสมเหตุสมผล" ว่าจำเลยก่ออาชญากรรม จะตัดสินว่า "มีความผิด" มิฉะนั้นตัดสินว่า "ไม่มีความผิด"
Hypothesis Testing in R

อายุที่เริ่มเขียนโปรแกรมครั้งแรก

  • age_first_code_cut จำแนกช่วงเวลาที่ผู้ใช้ Stack Overflow เริ่มเขียนโปรแกรม
    1. "adult" หมายถึงเริ่มเมื่ออายุ 14 ปีขึ้นไป
    2. "child" หมายถึงเริ่มก่อนอายุ 14 ปี
  • งานวิจัยก่อนหน้าชี้ว่า 35% ของนักพัฒนาซอฟต์แวร์เริ่มเขียนโปรแกรมตั้งแต่เด็ก
  • ข้อมูลตัวอย่างของเราบ่งชี้ว่า data scientist มีสัดส่วนที่เริ่มเขียนโปรแกรมตั้งแต่เด็กสูงกว่านั้นหรือไม่?
Hypothesis Testing in R

นิยามและคำจำกัดความ

สมมติฐาน คือข้อความเกี่ยวกับพารามิเตอร์ของประชากรที่ยังไม่ทราบค่า

การทดสอบสมมติฐาน คือการทดสอบสมมติฐานสองข้อที่แข่งขันกัน

  • สมมติฐานหลัก ($H_{0}$) คือแนวคิด "แชมป์เดิม" ที่มีอยู่

  • สมมติฐานทางเลือก ($H_{A}$) คือแนวคิด "ผู้ท้าชิง" ของนักวิจัย

สำหรับปัญหาของเรา

  • $H_{0}$: สัดส่วน data scientist ที่เริ่มเขียนโปรแกรมตั้งแต่เด็กเท่ากับนักพัฒนาซอฟต์แวร์ทั่วไป (35%)
  • $H_{A}$: สัดส่วน data scientist ที่เริ่มเขียนโปรแกรมตั้งแต่เด็กมากกว่า 35%
1 "Naught" เป็นภาษาอังกฤษแบบบริติชที่แปลว่า "ศูนย์" ด้วยเหตุผลทางประวัติศาสตร์ "H-naught" จึงเป็นรูปแบบการออกเสียงสมมติฐานหลักที่ใช้กันในระดับสากล
Hypothesis Testing in R
  • สถานการณ์จริงที่เป็นไปได้สองแบบ
    1. จำเลยก่ออาชญากรรม
    2. จำเลยไม่ได้ก่ออาชญากรรม
  • คำตัดสินที่เป็นไปได้สองแบบ
    1. มีความผิด
    2. ไม่มีความผิด
  • เบื้องต้นสันนิษฐานว่าจำเลยไม่มีความผิด
  • หากหลักฐาน "ชัดเจนเกินข้อสงสัยอันสมเหตุสมผล" ว่าจำเลยก่ออาชญากรรม จะตัดสินว่า "มีความผิด" มิฉะนั้นตัดสินว่า "ไม่มีความผิด"
  • ในความเป็นจริง $H_{A}$ หรือ $H_{0}$ เป็นจริงเพียงข้อเดียว
  • ผลการทดสอบคือ "ปฏิเสธ $H_{0}$" หรือ "ไม่ปฏิเสธ $H_{0}$"
  • เบื้องต้นสันนิษฐานว่าสมมติฐานหลัก $H_{0}$ เป็นจริง
  • หากหลักฐานจากตัวอย่างบ่งชี้ "อย่างมีนัยสำคัญ" ว่า $H_{A}$ เป็นจริง ให้เลือกสมมติฐานนั้น มิฉะนั้นให้เลือก $H_{0}$

ระดับนัยสำคัญ คือ "เกินข้อสงสัยอันสมเหตุสมผล" ในบริบทของการทดสอบสมมติฐาน

Hypothesis Testing in R

การทดสอบหางเดียวและสองหาง

กราฟ Density ของ pdf ของการแจกแจงปกติมาตรฐาน โดยส่วนกลางถูกปิดบัง แสดงเฉพาะส่วนหาง

การทดสอบสมมติฐานพิจารณาว่าค่าสถิติจากตัวอย่างอยู่ในส่วนหางของการแจกแจง null หรือไม่

การทดสอบ หาง
ทางเลือก แตกต่างจาก null สองหาง
ทางเลือก มากกว่า null หางขวา
ทางเลือก น้อยกว่า null หางซ้าย

$H_{A}$: สัดส่วน data scientist ที่เริ่มเขียนโปรแกรมตั้งแต่เด็ก มากกว่า 35%

สมมติฐานทางเลือกใช้ "มากกว่า" จึงต้องใช้การทดสอบ หางขวา

Hypothesis Testing in R

p-values

  • ยิ่ง p-value มาก ยิ่งสนับสนุน $H_{0}$
  • ยิ่ง p-value น้อย ยิ่งมีหลักฐานต่อต้าน $H_{0}$
  • p-value ที่น้อยหมายความว่าค่าสถิติอยู่ในส่วนหางของ null distribution (การแจกแจงของสถิติเมื่อสมมติฐานหลักเป็นจริง)
    • "p" ใน p-value ย่อมาจากความน่าจะเป็น (probability)
    • สำหรับ p-value คำว่า "น้อย" หมายถึง "ใกล้ศูนย์"
Hypothesis Testing in R

นิยาม p-value

p-value คือ

ความน่าจะเป็นที่จะสังเกตเห็นค่าสถิติทดสอบ

ที่รุนแรงเท่ากับหรือรุนแรงกว่า

ค่าที่สังเกตได้จากตัวอย่างเดิมของเรา

โดยสมมติว่าสมมติฐานหลักเป็นจริง

Hypothesis Testing in R

การคำนวณ z-score

prop_child_samp <- stack_overflow %>%
  summarize(point_estimate = mean(age_first_code_cut == "child")) %>%
  pull(point_estimate)
0.388
prop_child_hyp <- 0.35
std_error <- 0.0096028
z_score <- (prop_child_samp - prop_child_hyp) / std_error
3.956
Hypothesis Testing in R

การคำนวณ p-value

  • pnorm() คือ normal CDF
  • การทดสอบหางซ้าย → ใช้ค่าเริ่มต้น lower.tail = TRUE
  • การทดสอบหางขวา → ตั้งค่า lower.tail = FALSE

 

p_value <- pnorm(z_score, lower.tail = FALSE)
3.818e-05
Hypothesis Testing in R

มาฝึกกันเถอะ!

Hypothesis Testing in R

Preparing Video For Download...