สรุปบันทึกการเรียนวิชา statistic 102 สำหรับนักวิทยาศาสตร์ข้อมูล - sprint 05

Image placeholder
แวะมาทักทายกันได้


คำแนะนำจากผู้เขียน - ใครที่สนใจในเรื่องข้อมูล วิชาสถิติถือว่าเป็น foundation ของเรื่องนี้ สำหรับบทความนี้ เป็นสรุปบันทึกการเรียนวิชา statistic 102 สำหรับนักวิทยาศาสตร์ข้อมูล - sprint 05 ขอให้เครดิตแก่ Data Rockie ผู้เปิดโลกทัศน์วิชาด้านข้อมูล โดยที่ผู้เขียนเคยเรียนแล้วไม่เข้าใจแต่ เรียนกับคอร์สนี้แล้วเข้าใจ


Content

  1. Type of Study
    1. Observational เชิงสำรวจ
    2. Experimental เชิงทดลอง
    3. Correlation does not imply causation
  2. What is RCT
  3. What os AB Tests
  4. Statistical Test
    1. Compare Means
    2. Compare Variance
    3. P-Value

Type Of Study

การทำงานวิจัยจะมีอยู่ 2 ส่วนหลักๆ คือ

  • Observational
  • Experimental

Observational

การวิจัยเชิงสำรวจ สามารถสรุปผลได้แบบ Correlation หรือเป็นการมองหาความสัมพันธ์ได้เท่านั้น ซึ่งไม่สามารถบอกได้ว่า X ทำให้เกิด Y อย่างเช่น แบบสอบถามออนไลน์ งาน marketing research การสำรวจความคิดเห็นคน วิธีนี้จะแค่ไปสำรวจ มองแล้วจดบันทึก ดูได้แค่ความสัมพันธ์เบื้องต้น

Experimental

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

หรืออีกตัวอย่าง ยิงโฆษณาบน facebook

สมมติว่าเรามี โฆษณา อยู่ 2 version คือ โฆษณาเวอร์ชัน A ยาว 15 วินาที โฆษณาเวอร์ชัน B ยาว 30 วินาที เราอยากรู้ว่า ความยาวของโฆษณาตัวไหน คนมี conversion ไหนมากกว่ากัน วิธีนี้จะสามารถควบคุมตัวแปรได้ ควบคุมอะไรสักอย่างหนึ่งแล้วสังเกต ตัวแปรอีกตัวหนึ่ง (causation) ความน่าจะเป็นของเหตุการณ์ x ที่น่าจะเกิด Y ขึ้นมา

ทั้งสองแบบ เราจะสรุปผลไม่เหมือนกัน


Correlation does not imply causation


ตัวอย่าง ของการดูความสัมพันธ์

เรามักจะสังเกตเห็นว่า เวลาที่พระอาทิตย์ขึ้นแล้วไก่จะขัน หรือ ไก่ขันตอนเช้า พระอาทิตย์จะขึ้น แบบนี้เรามีการทดลองแบบไหน

การวิจัยแบบเขิงสำรวจเพื่อหาความสัมพันธ์ Correlation

อย่างเวลาที่เราไปต่างจังหวัด ตื่นเช้าช่วง 5-6 โมง มองเห็นเล้าไก่ เราไม่ได้ไปทำอะไรไก่ แต่ไก่ร้องขัน ในจังหวะเดียวกัน พระอาทิตย์ก็ขึ้นพอดี ซึ่ง เราได้แค่มอง เหตุการณ์ 2 เหตุการณ์เกิดขึ้นพร้อมกัน เป็นการสำรวจพฤษติกรรม แล้วนำมาจดบันทึก ซึ่ง ในการที่ไก่ขัน ไม่ได้หมายความว่า ไก่จะขันตอนพระอาทิตย์ขึ้น หรือ พระอาทิตย์ขึ้นเพราะไก่ขัน

มาดูอีกตัวอย่างหนึ่ง

สมมติว่า เราต้องอ่านหนังสือเพื่อทำการสอบเพื่อได้คะแนน ซึ่งมี ความสัมพันธ์ระหว่าง การอ่านหนังสือ กับ คะแนนสอบ คำถามคือ ทั้งสองอย่างนี้ เป็นการทดลองแบบไหน

การวิจัยแบบเชิงทดลอง Causation ซึ่ง มองว่าการอ่านหนังสือมีความน่าจะเป็นที่จะทำให้คะแนนสอบดีขึ้นหรือไม่ หรือว่ามันลดลง

ก็คือ เมื่อตัวแปรต้น (การอ่านหนังสือ หรือ X) มีการเปลี่ยนแปลง ก็จะทำให้ตัวแปรตาม (คะแนนสอบ หรือ Y) เปลี่ยนแปลงตามไปด้วย ซึ่ง จริงๆแล้วตัวอย่างนี้ มีทั้ง Correlation และ Causation

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

ดูตัวอย่างนี้ เป็นความสัมพันธ์ระหว่าง การขายไอศกรีมกับ คนโดนฉลามโจมตี สามารถเข้าไปดูใน link ในรูปภาพได้

เส้นสีแดง จำนวนคนที่ report ว่าโดนฉลามโจมตี ส่วนเส้นสีน้ำเงินเป็นจำนวนของการขายไอศกรีม จะเห็นว่า ทั้ง 2 ตัวแปร มีความสัมพันธ์กัน ในทิศทางเดียวกัน แต่ว่า ลองพิจารณาดูให้ดีๆ ทั้ง 2 ตัวแปร ไม่ได้มีส่วนเกี่ยวข้องกันเลย

Spurious Correlation ความสัมพันธ์ปลอมๆ

Luraing Variable เป็นตัวแปรตัวที่สามที่ส่งผลกระทบความสัมพันธ์ แต่ไม่ได้บันทึก คือ อุณหภูมิ

ลองพิจารณาดูให้ดี เหมือนจะเป็นเดือนที่คนออกมาท่องเที่ยว มาทะเล หรืออากาศมันร้อนขึ้น

ซึ่งจะเห็นว่าถ้าข้อมูลแบบ Big data มันจะเป็นการวิจัยแบบ Observational คือทำได้แค่สังเกตข้อมูลที่วิ่งขึ้นลงเท่านั้น ไม่สามารถสรุปผลแบบ Experimental ได้

เราจะมาเรียนรู้กันว่า วิธีอะไรที่จะพิสูจน์ว่า X จะทำให้ Y เกิดการเปลี่ยนแปลง

การทดสอบสมมติฐานแบบ Causation

จะทดสอบว่า ไก่ขัน ทำให้พระอาทิตย์จริงหรือไม่

สมมติว่ามีไก่อยู่ 100 ตัว

แล้วเราแบ่งไก่ออกเป็น 2 กลุ่มการทำ Random หรือสุ่ม สมมติว่า

เลือกไก่มา 1 ตัว จาก 100 ตัว ไปกลุ่มที่ 1 ด้วยการทอยเหรียญ ออกหัว แล้วไก่ไปกลุ่มที่ 2 ด้วยการทอยเหรียญ ออกก้อย โดยทำไปเรื่อยๆ จนครบ 100 ตัว

จากนั้นก็ทำ theatment หรือ Action อะไรบางอย่างเข้าไปในไก่กลุ่มที่ 1 โดยการมัดปากไก่ และ ปล่อยให้ไก่กลุ่มที่ 2 เดินเล่นตามปกติ ในช่วงเวลาตี 5 - 7 โมง

ผลลัพท์ที่ได้ คือ พระอาทิตย์ก็ขึ้นอยู่ดี

โดย ความน่าจะเป็นของไก่กลุ่มที่ 1 ที่ไม่สามารถขันได้ มีค่าเท่ากับ 1

และ ความน่าจะเป็นของไก่กลุ่มที่ 2 ที่ขันร้องตามเวลา มีค่าเท่ากับ 1

ตัว theatment ไม่ได้มีผลไปทำให้ตัวแปร พระอาทิตย์ เปลี่ยนแปลงไป

สำหรับตัวอย่างนี้ คือ ความน่าจะเป็นที่พระอาทิตย์ จะขึ้นหรือไม่ขึ้น

ซึ่งนี่คือตัวอย่าง ให้เห็นขั้นตอน ซึ่งในชีวิตจริง

เราอาจจะไปเก็บ Population หรือ Sample มาแล้วนำมาทดสอบ โดยสร้าง theatment ขึ้นมาดูว่า ตัวแปรที่เราสนใจมันเปลี่ยนแปลงไปหรือเปล่า

ยกตัวอย่าง - เรื่องการอ่านหนังสือ คล้ายกับตัวอย่างเรื่องไก่

โดยตั้งสมมติฐานว่า การอ่านหนังสือ ทำให้คะแนนสอบดีขึ้น หรือ แย่ลง

โดยกำหนดให้มีเด็กจำนวน 100 คน โดยแบ่ง ออกเป็น 2 กลุ่ม

กลุ่มที่ 1. ไม่ต้องอ่านหนังสือ ให้ไปทำอย่างอื่น

กลุ่มที่ 2 ให้อ่านหนังสือวันละ 10 ชั่วโมง

เป็นเวลาระยะ 1 เดือน

จากนั้นทดสอบเก็บคะแนนแล้วนำมาเปรียบเทียบกัน

โดยเราสมมติฐานว่า คะแนนเด็กที่อ่านหนังสือวันละ 10 ชั่วโมงจะต้องมีคะแนนสูง ขึ้นแน่ๆ

ถ้า คะแนนสูงขึ้นจริง อย่างมีนัยสำคัญ

เราสามารถสรุปได้เลยว่า

การอ่านหนังสือ ช่วยให้คะแนนสอบดีขึ้น

หรือ theatment ที่เราใส่เข้าไป ช่วยเข้าไปเปลี่ยนความน่าจะเป็นให้มีค่ามากขึ้นหรือน้อยลงได้

จาก Concept ที่เขียนมาทั้งหมด จะเรียกว่า Randomized Control Trials

หัวใจของวิชาสถิติ

กลับมาที่เรื่องไก่อีกรอบหนึ่ง

ไก่กลุ่มที่ 1 ที่กำหนดให้ ไม่สามารถขันได้ เรียกอีกอย่างหนึ่งว่า กลุ่ม Control ควบคุมไม่ให้ขัน

ไก่กลุ่มที่ 2 ที่กำหนดให้ ขันได้ตามปกติ เรียกอีกอย่างหนึ่งว่า กลุ่ม Test

โดยการ Random ไก่แล้ว Control นั่นเอง

facebook marketing science

การทดสอบการโฆษณาบน facebook

สมมติว่าเวลาที่เรายิงโฆษณาออกไป เราอยากรู้ว่ามันจะช่วยเพิ่มยอดขายให้กับเราหรือไม่

จากขั้นนตอนที่ระบบ facebook ทำเวลาที่ยิง Ads

สมมติเรา filter Population ออกมาเป็นคนที่จะซื้อสินค้าอย่างหนึ่งของเรา ช่วงอายุ 20 - 30 ปี

ที่อยู่ในกรุงเทพ

และ facebook จะทำการแบ่งข้อมูลออกเป็น 2 กลุ่ม

โดยกลุ่มที่ 1 จะเป็นกลุ่มที่เห็นโฆษณาที่ยิง Ads ออกไป จะเรียกว่ากลุ่ม Test

และ กลุ่มที่ 2 จะเป็นกลุ่มที่ถูกกำหนด ให้ไม่เห็น Ads เลย จะเรียกว่ากลุ่ม Control ควบคุมไม่ให้เห็น

แล้วก็ Run เก็บข้อมูลไปเรื่อยๆ จนครบกำหนดเวลา ยกตัวอย่างเช่น 14 วัน

จากนั้นก็นำทั้ง 2 กลุ่มมาประเมินดูว่า มีคนมาซื้อสินค้า มากกว่ากันแค่ไหน โดยเปรียบเทียบการซื้อสินค้าระหว่างกลุ่มที่เห็นโฆษณา กับ กลุ่มที่ไม่เห็นโฆษณาเลย Conversion Diff

The Group that could potentially be exposed to the treatment

  • Test Group ✅

The Group that won’t be exposed to the treatment

  • Control Group ✅

The variable that the test group is exposed to

  • Treatment ✅

The true impact of an ad. Also known as lift

  • Result ✅

AB Testing

การทำสอบ AB Testing เป็นการทดสอบเหมือนเดิม คือ

อายุ 20 - 30 ปี อยู่ในกรุงเทพ

แบ่งออกเป็น 2 กลุ่ม โดยเพศ ชาย หญิง มีสัดส่วนเท่าๆกัน มีโปรไฟล์เท่าๆกัน มี Bias น้อยมากโดยทั้ง 2 กลุ่มจะเห็นโฆษณา เหมือนกัน

แต่เห็นโฆษณาคนละเวอร์ชัน เวอร์ชันในกลุ่มแรกอาจจะเห็นโฆษณา 15 วินาที และ อีกเวอร์ชัน 30 วินาที คราวนี้มาเปรียบเทียบการกด like comment ต่างๆ เปรียบเทียบสัดส่วนว่า โฆษณาตัวไหนดีกว่ากัน

RCT

เราสามารถวัด impace ที่แท้ของการ จะเรียกว่าค่า lift ในทาง data science จะเรียกว่า lift เหมือนกัน แปลว่ามันเพิ่มขึ้น กี่เปอร์เซ็น

AB Test

เทียบได้แค่ว่า โฆษณาไหนมีประสิทธิภาพมากกว่ากัน

วิธีการใช้งาน

ดูตามเป้าหมายว่าเราอยากรู้อะไร โดยดูว่า โฆษณามี impact หรือไม่จากวิธี RCT จากนั้นก็ค่อยเอามาทดสอบด้วย AB Test

สิ่งที่สำคัญที่สุด คือ Sample กับ. Population คืออะไร

ยังพูดถึงการยิง Ads facebook อยู่ในตัวอย่างนี้

สมมติว่าวงกลมก้อนใหญ่คือ ประชากรทั้งหมด ที่ชอบสินค้าของเรา เช่น มีอยู่ 500,000 คนในกรุงเทพ (Population) ค่าที่แท้จริงเรียกว่า ค่ามิว (u) แต่ facebook ดึงข้อมูลมาแค่ 100,000 คน (Sample) ค่าเฉลี่ย มีโอกาสที่จะผิดอยู่

นักสถิติก็เลยทำอย่างไรก็ได้ ให้มั่นใจได้ว่า ใกล้เคียงกับของจริงมากที่สุด มีโอกาสผิดน้อยที่สุด ถ้ามันผิดจะต้องวัดผลให้ได้ว่า มันผิดแค่ไหน เราเรียกขั้นตอนนี้ว่า Estimation

Descriptive Stats - Simulate Data in Google Sheet

มาลองทำการ Simulate ข้อมูลเพื่อเอาไว้ใช้กันด้วย Google Sheet

ซี่งยกตัวอย่างว่าเราจะมาจำลองข้อมูลยอดขายที่ทำด้วย Google Sheet สมมติว่า เรามียอดขายอยู่ที่ 1500 บาทต่อวัน โดยมีค่าเบี่ยงเบนมาตรอยู่ที่ประมาณ 200 บาท ซึ่งค่านี้เป็นค่าสมมติ หรือว่าเป็นค่าที่ได้จากยอดขายจริงๆก็ได้ มาลองทำตามตัวอย่างกันดู

MeanSD
1500200

เราทำการ simulate ข้อมูลด้วยฟังก์ชัน Random แบบ Normal Distribution โดยสมมติว่ายอดขายที่ได้นี้เป็นแบบ Normal Distribution

=RAND()

โดยฟังก์ชันนี้ เป็นฟังก์ชัน Random ค่าออกมา ซึ่งเวลาที่มีการ update Cell ใน google sheet จะมีการเปลี่ยนแปลงค่าเสมอ

คราวนี้เราจะ wrap ฟังก์ชัน random ด้วย

=NORMINV(RAND(), MEAN, SD)

สิ่งที่สูตรนี้ทำ มันจะ Random วิ่งตามค่า Mean และ SD ที่เรากำหนดเอาไว้ โดยวิ่งเป็นข้อมูลที่เป็น Normal Distribution

หลังจากรันสูตร สังเกตว่าค่าที่ได้จะได้ใกล้เคียงกับค่า Mean ที่เรากำหนดไว้

ต่อไปให้ทำการ copy สูตรลงมา ประมาณ 100 รายการ จำลองว่าเรามีการขายของได้ 100 รายการ

1721.2209
1406.2157
1808.1768
1489.9449
1334.4035
1607.2228
1440.6397
1658.8289
1377.6884

ลองทดสอบว่า ได้ค่า mean และ SD เป็นอย่างไรด้วย สูตร

=AVERAGE(A:A)
=STDEV.S(A:A)

ไม่ว่าจะกดกี่ครั้งก็จะได้ค่าใกล้เคียงกับค่าที่เรากำหนดขึ้นมา

1495.5
204.4

ลองทดสอบอีกอย่างหนึ่ง คือ การนำค่าที่ได้ทั้งหมดมาว่ากราฟ ก็จะเห็นว่าค่าที่ได้จะออกมาเป็น Normal Distribution เสมอ

เราสามารถใช้ Extension ที่อยู่ใน Add-On ของ google sheet ได้ด้วย ชื่อ XLminer สามารถติดตั้งเพิ่มเติมได้ เมื่อกดฟังก์ชัน มันจะมีเมนูออกมาทางด้านข้าง และ สามารถ Descriptive Stats ที่จะ gernerate ข้อมูลสถิติออกมา

1518.7139Mean1471.511463
1427.3369Standard Error21.58940861
1716.1295Median1433.363369
1650.9083Mode2090.928
1396.5649Standard Deviation216.9708712
1946.4517Sample Variance47076.35897
1257.5175Kurtosis0.6038413232
1278.7182Skewness0.5671078275
1831.2171Range1044.06325
1815.6453Minimum1046.86475
1713.3594Maximum2090.928
1123.6585Sum148622.6577
1457.1668Count101
1888.5966Largest(1)2090.928
1312.6600Smallest(1)1046.86475
1344.8566Confidence Level(95%)42.83277065

Normal Distribution - Simulate Data in Google Sheet

Normal Distribution เป็น Empirical Rule ถ้าข้อมูลมีการวิ่งกระจายตัวปกติ มันจะได้ค่า SD ตามตารางด้านล่างเสมอ

+/- 1SD68.2
+/- 2SD95
+/- 3SD99.7

ให้ simulation อีกครั้งสำหรับตัวอย่างนี้

=NORMINV(RAND(), 200, 15)

โดยค่า Mean เท่ากับ 200 และ SD เท่ากับ 15

ซึ่งในหัวข้อนี้จะพิสูจน์การเป็น Empirical Rule ด้วยการ ใช้ Google Sheet

=AVERAGE(A9:A109)
=STDEV.S(A9:A109)
={$D$9-$D$10, $D$9+$D$10}
={$D$9-2*$D$10, $D$9+2*$D$10}
={$D$9-3*$D$10, $D$9+3*$D$10}

นี้คือสูตรในการหาค่า SD ตามตาราง

MEAN200.1880107
SD14.29162417
+/- 1SD185.8963865214.4796348
+/- 2SD171.6047623228.771259
+/- 3SD157.3131382243.0628831
LOWER BOUNDUPPER BOUND

ค่า SD นี้บอกถึงอะไร

มันเป็นการบอกว่า ความน่าจะเป็นข้อมูล รายการขายทั้งหมด มีความน่าจะเป็นที่จะมาตกอยู่ในช่วงของ SD แต่ละค่า ตามความน่าจะเป็น 68.2, 99.5 และ 99.7 เปอร์เซ็น

ลองพิสูจน์ดูด้วยฟังก์ชัน นับจำนวน

=COUNTIFS($A$9:$A$109, ">=" &D11, $A$9:$A$109, "<=" &E11)
MEAN198.6841789
SD16.28744636Proportion
+/- 1SD182.3967326214.971625369
+/- 2SD166.1092862231.259071697
+/- 3SD149.8218398247.546518101
LOWER BOUNDUPPER BOUND

จะเห็นว่า ค่าที่ได้ 69, 97, 101 คือ จำนวนที่นับค่าได้ ถ้าอยากรู้อัตราส่วนจะต้องหารด้วยจำนวนทั้งหมด คือ 100

MEAN201.8240277
SD15.1134612Proportion
+/- 1SD186.71216.93766.00%
+/- 2SD171.60232.05198.00%
+/- 3SD156.48247.164101.00%
LOWER BOUNDUPPER BOUND

จะเห็นว่าใกล้เคียงกับค่า empical rule

Confident Interval

จากที่กล่าวไว้ตอนต้นในเรื่องของ Population กับ sample ที่เลือกมา

สมมติว่าวงกลมก้อนใหญ่คือ ประชากรทั้งหมด ที่ชอบสินค้าของเรา เช่น มีอยู่ 500,000 คนในกรุงเทพ (Population) ค่าที่แท้จริงเรียกว่า ค่ามิว (u) แต่ facebook ดึงข้อมูลมาแค่ 100,000 คน (Sample) ค่าเฉลี่ย ซึ่งมีโอกาสที่จะผิดอยู่

นักสถิติก็เลยทำอย่างไรก็ได้ ให้มั่นใจได้ว่า ค่าที่ได้จะใกล้เคียงกับของจริงมากที่สุด มีโอกาสผิดน้อยที่สุด ถ้ามันผิดจะต้องวัดผลให้ได้ว่า มันผิดแค่ไหน เราเรียกขั้นตอนนี้ว่า Estimation ซึ่งในเรื่องนี้คือการ ประเมินค่า โดยใช้ค่า Confident Interval เป็นค่าช่วงความมั่นใจว่า ค่าที่ได้ sample มาเป็นค่าตัวแทนของ Population จริงๆ

การที่จะรู้ค่าที่แท้จริงได้นั้น จะต้องเก็บข้อมูลจริงๆ จากทั้งหมด 500,000 คนจึงจะได้ข้อมูลที่ถูกต้องจริงๆ แต่มันเป็นไปไม่ได้

โดยใช้ตัวอย่าง Rating หนังชื่อ Tenet โดยกำหนดว่ามีคะแนนตั้งแต่ 0 - 10 คะแนน

ซึ่งโจทย์มีอยู่ว่า เราอยากจะรู้ว่า หนังเรื่อง Tenet มีอยู่กี่คะแนน ซึ่งในความเป็นจริง เราไม่สามารถที่จะเข้าไปเก็บข้อมูลจากคนที่ดูหนังเรื่อง Tenet ทั้งหมด สมมติว่า คนดูเรื่องนี้ในประเทศไทย 10,000 คน แต่เราไม่สามารถจะไปเดินถามได้ทั้งหมด ทำได้แค่เก็บข้อมูลสุ่มตัวอย่าง อาจจะจำนวน 50 คนโดยการถามเพื่อนบน facebook

Rating
7.5Mean
8.0SD
6.8N
8.1
7.4
7.8

เราจะหาค่าเฉลี่ย ค่าเบี่ยงเบนมาตรฐาน และ จำนวนทั้งหมด

Mean7.606
SD0.7279646626
N50

เราจะใช้สูตร ใน google sheet การหา Confident Interval

โดยข้อควรรู้ก่อนจะนำสูตรมาใช้ คือ ค่า Error ในการประมาณค่า

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

นักสถิติจึงจำเป็นต้องทำเป็นช่วงความเชื่อมั่นขึ้นมาสามารถเขียนเป็นตารางได้ว่า

Confident Interval
95%LOWER BOUNDUPPER BOUND

ความมั่นใจ 95% หมายความว่าอย่างไร

ซึ่งในการสุ่มตัวอย่างมาในแต่ละครั้ง สมมติว่ามีการสุ่มตัวอย่าง 100 ครั้ง ค่าที่คำนวน X จะอยู่ในช่วง Confidence Interval ได้ทั้งหมด 95 ครั้ง อีก 5 ครั้ง คือ Error และค่าที่จะต้องเป็นค่าที่เป็น Rating จริงๆ หรือ True Parameter อยู่ในช่วงประมาณไหน

=CONFIDENCE.NORM(alpha (error), SD , N)

สังเกตว่า ข้อมูลชุดนี้จะต้องเป็น ข้อมูลที่มีการกระจายตัวปกติด้วย

ซึ่งค่าที่ได้ จะเรียกว่า Margin Error หรือ ขอบของ Error ที่ 95%

Margin Error0.2017778021

จากนั้นก็เอาค่าเฉลี่ย - ค่า Margin Error , ค่าเฉลี่ย + ค่า Margin Error

เราก็จะได้ ช่วย Confidence Interval ขึ้นมา

95%LOWER BOUNDUPPER BOUND
7.4047.808

สรุปอีกครั้งว่า ทุกๆครั้งที่มีการ สุ่มตัวอย่างใหม่ค่าต่างๆทางสถิติมันจะเปลี่ยน ดังนั้น นักสถิติจึงได้กำหนดค่าที่น่าจะเป็นค่า Rating อยู่ในช่วง ประมาณ 7.404 ถึง 7.808 โดยมั่นใจได้ 95%

เราได้ใช้วิธีสูตรใน google sheet ไปแล้ว มาดูขั้นตอนการคำนวนแบบไม่ใช้สูตรกันบ้าง

ขั้นตอนที่ 1 หาค่า SE : Standard Error

Standard Error = SD/SQRT(N)

ขั้นตอนที่ 2

=Standard Error * 1.96

ค่า 1.96 คือค่า Z ที่ข้อมูลมีการกระจายตัวแบบ Normal Distribution

เราก็จะได้ค่า Margin Error เท่ากับ

Margin Error0.2017815098

ซึ่งใกล้เคียงกับวิธีที่ใช้สูตร

มาทำความเข้าใจกับ Confidence Interval ที่ 95% ที่ sample 20 ครั้ง

ซึ่งในการ Sample ในแต่ละครั้ง จะเก็บค่า True Parameter ตามภาพ โดยจะมีครั้งหนึ่งที่ไม่เก็บ ซึ่งในความเป็นจริง เราไม่มีทางรู้ว่า มีช่วงไหนที่มีการเก็บค่า True Parameter อยู่ และ ไม่มีใครที่จะเก็บข้อมูล Sample ซ้ำ 20 ครั้งหรือ 100 ครั้งด้วย นักสถิติก็บอกเลยว่าเก็บมาครั้งเดียว และใช้ค่าความเช่ือมั่นเพื่อทดสอบ

ซึ่งอย่างที่บอก ไม่มีใครมานั่งเก็บข้อมูลซ้ำ เพราะมันเสียค่าใช้จ่าย เราเก็บแค่ครั้งเดียวตามตัวอย่าง แล้วสร้างตารางความเชื่อมั่นขึ้นมา แล้ว Assume ว่านี้คือ ข้อมูลที่มีความมั่นใจ 95% นะ

Mean7.606
SD0.7279646626
N50
95%LOWER BOUNDUPPER BOUND
7.4047.808

https://datarockie.com/blog/significance-test-confidence-interval/

https://home.kku.ac.th/nikom/estimation_nk_2560_2page.pdf

https://sites.nicholas.duke.edu/statsreview/671-2/

Independent T-Test

เราจะมาทดสอบข้อมูลด้วย T-Test กัน

สมมติว่ามีโจทย์ว่า เรามีร้านค้าออนไลน์ขายของอยู่ 2 สาขา ตามภาพ

โดยโจทย์บอกว่าระหว่างร้านที่ 1 ไม่มีการยิง Ads Facebook เลย และ ร้านที่ 2 มีการยิง Ads Facebook โดยเก็บข้อมูลทั้งหมด 90 วัน เปรียบเทียบกัน อยากรู้ว่า ร้านไหนมีผลต่อยอดขายมากกว่ากัน

หลังจากเก็บข้อมูลมาครบทั้ง 90 วัน แล้วก็เอาข้อมูลทั้ง 2 ร้านมาเปรียบเทียบกัน

DayStore 1Store 2
1266.9344.1
2300.0355.2
3286.0363.3
4289.8291.7
5274.3347.9
6280.7301.6
7274.2335.8
8289.5341.8
9276.1306.1
10280.1312.1
90272.6324.2

สังเกตว่า การวิจัยนี้เป็นการแบบ RCT

ร้านที่ 1 ตัวแปรแบบ Control

ร้านที่ 2 ตัวแปร Test

Store 1
No advertising in store
280Mean
15SD
Store 2
Has advertising in store
315Mean
28SD

จากตารางเปรียบเทียบร้านค้าเป็นการ Simulation ขึ้นมาเพื่อทดสอบสมมติฐานเท่านั้นโดยใช้ สูตร

=NORMINV(RAND(), MEAN Store 1, SD Store 1)
=NORMINV(RAND(), MEAN Store 2, SD Store 2)

หลังจากที่ได้ค่าเฉลี่ย และ ค่าเบี่ยงเบนมาตรฐานแล้ว

ขั้นตอนถัดไปจะมาทดสอบ RCT โดยที่เราจะใช้ สถิติคือ T Test ซึ่งเป็นการเปรียบเทียบค่าเฉลี่ย แต่ก่อนจะทดสอบ T Test. ได้เราจะต้องทำ F Test กันก่อน ซึ่งเป็นการทดสอบความแปรปรวน (Test equality of variances)

โดยสมมติฐานหลักของ การทำ. F Test คือ


if p-value <=0.05, Reject H0


H0 : equal vars assumed


H1 : equal vars not assumed


การจะ Accept Assumed หรือยอมรับสมมติฐาน H0 หรือ Reject Assumed หรือปฏิเสทสมมติฐาน H1 ได้จะต้องดูที่ค่า F Test. ซึ่ง ถ้าค่า P-value มีค่า น้อยกว่าหรือเท่ากับ 0.05 (5%) เราจะ Reject แล้วสรุปผลว่า ร้านค้าที่ 1 และ ร้านค้าที่ 2 มีค่า Variant ที่ไม่เท่ากัน

คราวนี้ลองมาพิสูจน์อะไรสักเล็กน้อยโดยการทำ Simulation

จากตารางด้านล่าง เราได้มีการเก็บข้อมูลตั้งแต่วันที่ 1 - 90 โดยที่ Store ที่ 1 ไม่มีการยิงโฆษณา และ Store ที่ 2 มีการยิงโฆษณา เราจะนำมาเปรียบเทียบยอดขายกัน

DayStore 1Store 2DIFF
1294.7308.914.2
2276.8357.380.4
3277.2290.213.1
4284.1326.041.8
5259.9328.368.4
6288.1351.062.9
7296.2310.314.2
8302.0328.026.0
9282.6275.7-6.9
10280.0318.338.3
11284.8307.622.8
12293.4285.9-7.5
13287.1300.113.1
14314.5296.7-17.8
15293.2355.362.1
90309.6337.928.3

จากตาราง สังเกตเห็นว่า ในบางวันร้านค้าที่ 2 แม้ว่าจะมีการยิง Ads แต่ร้านที่ 1 ไม่มีการยิง Ads ขายดีว่า ค่า Diff ก็จะเป็นค่าติดลบ เพราะว่า เราเอา Store 2 - Store 1

คราวนี้ก็เกิดคำถามว่า แล้วการยิงโฆษณาในร้านค้าที่ 2 มันช่วยให้ยอดขายดีขึ้นจริงหรือเปล่า

เราต้องมาทดสอบสมมติฐานทางสถิติ

ก่อนอื่นจะต้องทดสอบ FTest ก่อนโดยใช้สูตร

=F.TEST(Net Of Store1 , Net Of Store2) // Net : ยอดขาย
Test equality of variances
F.Test0

ค่านี้เป็น. P-value จะเป็นค่าที่น้อยมาก ซึ่ง สามารถเขียนสูตรเพื่อสรุปผลได้เลย

=IF(F.TEST(Net Of Store1 , Net Of Store2) <= 0.05, "REJECT H0", "ACCEPT H0")

สรุปผลว่า ทั้ง 2 ร้านมีค่า Variant ไม่เท่ากัน

Test equality of variances
F.TestREJECT H0

มีคำถามว่าทำไม จึงต้องทำ F Test ก่อน

คำตอบ คือ ถ้า REJECT H0 หรือ ACCEPT H0 จะใช้สูตรในการคำนวน T Test ไม่เหมือนกัน

คราวนี้เรารู้แล้วว่า REJECT H0 เราจะใช้สูตรว่า

=T.TEST(Net Of Store1 , Net Of Store2, 2, 3)

ให้สังเกตว่าเลข 2 จะเป็นการกำหนดให้ระบุการกระจายแบบ 2 tails ส่วน 3 เรากำหนดเพราะการคำนวนก่อนหน้านี้ คือ ค่า variant ไม่เท่ากัน


กรณีที่เป็นการ ทดสอบแบบ Pair T-Test ให้ใช้ type = 1 อย่างเช่น การทดสอบคะแนนข้อสอบนักเรียนหลังจากที่มีการติวเข้ม 30 วัน เป็นต้น เป็นแบบ Before After


ทำเหมือนเดิมกับ F Test สรุปผลลงไปเลยโดยใช้ IF

=IF(T.TEST(Net Of Store1 , Net Of Store2, 2, 3) <= 0.05, "REJECT H0", "ACCEPT H0")

โดยที่

if p-value <=0.05, Reject H0


H0 : mean store1 = mean store2


H1 : mean store1 != mean store2


Test equality of means
T.TestREJECT H0

หมายความว่า ยอดขายของทั้ง 2 ร้านมีค่าไม่เท่ากัน โดยที่ร้านที่ 2 มีค่าสูงกว่า หรือ ขายดีกว่า เมื่อดูจากค่าเฉลี่ย

Store 1
No advertising in store
280Mean
15SD
Store 2
Has advertising in store
315Mean
28SD

หรือจะใช้วิธีว่า เราหาค่าเฉลี่ยของค่า Diff ของทั้ง 2 ร้าน แล้วดูว่าค่าเฉลี่ยมีค่ามากกว่า 0 หรือไม่

เราทำการ Sample ใหม่ไม่ว่าจะกี่รอบ เช่น 100 รอบ 1000 รอบ ก็มีค่ามากกว่า 0 อาจจะมีสักครั้งที่มีค่า ต่ำกว่า ซึ่งมีค่าน้อยมาก ซึ่งหากว่าเราลองเอาค่า Diff นี้เก็บไว้แล้วนำมา Plot กราฟก็จะเห็นภาพที่ชัดขึ้น

เราสามารถสรุปผลได้ว่า การยิง Ads ช่วยให้ยอดขายดีขึ้นจริง


คอร์สนี้ดีมากกกก (ไก่ ล้านตัว)  ใครอ่านจบ แนะนำว่าให้ไปสมัครเรียน ติดตามได้ที่ link ด้านล่างนี้เลย  จริงๆ 

Course Online DATA ROCKIE Bootcamp



แวะมาทักทายกันได้
donate

Categories: Tutorial Tags: #Data Science , 896