การทำ t-test

Hypothesis Testing in R

Richie Cotton

Data Evangelist at DataCamp

ปัญหาสองกลุ่มตัวอย่าง

  • อีกปัญหาหนึ่งคือการเปรียบเทียบค่าสถิติของกลุ่มต่างๆ ในตัวแปร
  • converted_comp เป็นตัวแปรเชิงตัวเลข
  • age_first_code_cut เป็นตัวแปรเชิงกลุ่ม ที่มีระดับ ("child" และ "adult")
  • ผู้ใช้ที่เริ่มเขียนโค้ดตั้งแต่เด็กมีแนวโน้มได้รับค่าตอบแทนสูงกว่าผู้ที่เริ่มตอนโตหรือไม่?
Hypothesis Testing in R

สมมติฐาน

$H_{0}$: ค่าเฉลี่ยค่าตอบแทน (หน่วย USD) เท่ากัน สำหรับผู้ที่เริ่มเขียนโค้ดตั้งแต่เด็กและผู้ที่เริ่มตอนโต

$H_{0}$: $\mu_{child} = \mu_{adult}$

$H_{0}$: $\mu_{child} - \mu_{adult} = 0$

$H_{A}$: ค่าเฉลี่ยค่าตอบแทน (หน่วย USD) สูงกว่า สำหรับผู้ที่เริ่มเขียนโค้ดตั้งแต่เด็กเมื่อเทียบกับผู้ที่เริ่มตอนโต

$H_{A}$: $\mu_{child} > \mu_{adult}$

$H_{A}$: $\mu_{child} - \mu_{adult} > 0$

Hypothesis Testing in R

การคำนวณสถิติสรุปรายกลุ่ม

stack_overflow %>% 
  group_by(age_first_code_cut) %>% 
  summarize(mean_compensation = mean(converted_comp))
# A tibble: 2 x 2
  age_first_code_cut mean_compensation
  <chr>                          <dbl>
1 adult                        111544.
2 child                        138275.
Hypothesis Testing in R

ค่าสถิติทดสอบ

  • ค่าเฉลี่ยของกลุ่มตัวอย่างใช้ประมาณค่าเฉลี่ยของประชากร
  • $\bar{x}$ แทนค่าเฉลี่ยของกลุ่มตัวอย่าง
  • $\bar{x}_{child}$ คือค่าเฉลี่ยค่าตอบแทนของกลุ่มตัวอย่างที่เริ่มเขียนโค้ดตั้งแต่เด็ก
  • $\bar{x}_{adult}$ คือค่าเฉลี่ยค่าตอบแทนของกลุ่มตัวอย่างที่เริ่มเขียนโค้ดตอนโต
  • $\bar{x}_{child} - \bar{x}_{adult}$ คือ ค่าสถิติทดสอบ
  • z-score เป็นค่าสถิติทดสอบแบบมาตรฐานชนิดหนึ่ง
Hypothesis Testing in R

การทำให้ค่าสถิติทดสอบเป็นมาตรฐาน

$z = \dfrac{\text{sample stat} - \text{population parameter}}{\text{standard error}}$

$t = \dfrac{\text{difference in sample stats} - \text{difference in population parameters}}{\text{standard error}}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

Hypothesis Testing in R

ค่าความคลาดเคลื่อนมาตรฐาน

$SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) \approx \sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}$

$s$ คือค่าเบี่ยงเบนมาตรฐานของตัวแปร

$n$ คือขนาดกลุ่มตัวอย่าง (จำนวนการสังเกต/แถวในกลุ่มตัวอย่าง)

Hypothesis Testing in R

การสมมติให้สมมติฐานหลักเป็นจริง

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$H_{0}$: $\mu_{\text{child}} - \mu_{\text{adult}} = 0$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) }{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

stack_overflow %>%
  group_by(age_first_code_cut) %>%
  summarize(
    xbar = mean(converted_comp),
    s = sd(converted_comp),
    n = n()
  )
# A tibble: 2 x 4
  age_first_code_cut    xbar       s     n
  <chr>                <dbl>   <dbl> <int>
1 adult              111544. 270381.  1579
2 child              138275. 278130.  1001
Hypothesis Testing in R

การคำนวณค่าสถิติทดสอบ

# A tibble: 2 x 4
  age_first_code_cut    xbar       s     n
  <chr>                <dbl>   <dbl> <int>
1 adult              111544. 270381.  1579
2 child              138275. 278130.  1001

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

numerator <- xbar_child - xbar_adult
denominator <- sqrt(
  s_child ^ 2 / n_child + s_adult ^ 2 / n_adult
)
t_stat <- numerator / denominator
2.4046
Hypothesis Testing in R

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

Hypothesis Testing in R

Preparing Video For Download...