
เคยได้รับข่าวแบบนี้ในกลุ่ม LINE ครอบครัวไหมครับ
“งานวิจัยพบ! ประเทศที่กินช็อกโกแลตเยอะ ได้รางวัลโนเบลเยอะกว่า”
แอดอ่านครั้งแรกนี่แทบจะเดินไปซื้อช็อกโกแลตมาตุนไว้เลย (เผื่อฟลุ๊คได้โนเบลกับเขาบ้าง 555)
แต่พอลองคิดดีๆ มันแปลกนะครับ ช็อกโกแลตทำให้คนฉลาดขึ้นจนได้โนเบลจริงเหรอ หรือมีอะไรบางอย่างที่เรามองข้ามไป
คำตอบของเรื่องนี้ซ่อนอยู่ในประโยคที่คนเรียนสถิติได้ยินจนเบื่อ แต่คนทำงานจริงยังพลาดกันอยู่ทุกวัน นั่นคือ “Correlation ไม่ใช่ Causation” บทความนี้แอดจะพาไปดูว่ามันหมายความว่าอะไร ทำไมมันหลอกเราได้ง่ายขนาดนั้น และในฐานะคนทำงาน Data เราควรเช็กอะไรก่อนจะฟันธงว่า “A ทำให้เกิด B”
Correlation กับ Causation ต่างกันยังไง?
อธิบายแบบบ้านๆ ครับ
Correlation (สหสัมพันธ์) คือการที่ข้อมูลสองชุด “ขยับไปด้วยกัน” อันหนึ่งขึ้น อีกอันก็ขึ้นตาม (หรือลงตาม) ปกติเราวัดด้วยค่าที่เรียกว่า ค่าสัมประสิทธิ์สหสัมพันธ์ (r) ซึ่งมีค่าตั้งแต่ -1 ถึง 1
- ใกล้ 1 = ขึ้นด้วยกัน ลงด้วยกัน
- ใกล้ -1 = อันหนึ่งขึ้น อีกอันลง
- ใกล้ 0 = แทบไม่ได้ขยับตามกันเลย
Causation (ความเป็นเหตุเป็นผล) คือการที่ A เป็นต้นเหตุ ที่ทำให้ B เกิดขึ้นจริงๆ ถ้าเราไปเปลี่ยน A แล้ว B จะเปลี่ยนตาม
ประเด็นสำคัญคือ Causation มักจะมาพร้อม Correlation ก็จริง แต่ Correlation ไม่ได้การันตี Causation เสมอไปครับ มันแค่บอกว่า “สองอย่างนี้ขยับพร้อมกัน” แต่ไม่ได้บอกเลยว่า “ใครทำให้ใครขยับ”
Correlation แปลกๆ ที่มีอยู่จริงบนโลก
ย้อนกลับไปที่ช็อกโกแลตกันก่อน เรื่องนี้มาจากบทความจริงของ Franz Messerli ที่ตีพิมพ์ในวารสาร New England Journal of Medicine เมื่อปี 2012 เขาเอาข้อมูล 23 ประเทศมาดู แล้วพบว่าปริมาณช็อกโกแลตที่คนในประเทศกินต่อหัว มีความสัมพันธ์กับจำนวนผู้ได้รางวัลโนเบลต่อประชากรสูงถึง r = 0.791 โดยสวิตเซอร์แลนด์ครองอันดับหนึ่งทั้งสองด้าน
ตัวเลขดูน่าเชื่อมากใช่ไหมครับ แต่หลายคนมองว่าบทความนี้เขียนแบบ ครึ่งจริงครึ่งแซว และสื่อหลายสำนักก็เอาไปเล่นต่อแบบจริงจังจนกลายเป็นข่าวดัง ต่อมามีนักวิจัยชี้ว่าตัวแปรอย่าง ความร่ำรวยของประเทศ อาจเป็นตัวอธิบายที่ดีกว่า ประเทศรวยก็มีเงินซื้อช็อกโกแลตมากินเยอะ และมีเงินลงทุนกับงานวิจัยเยอะ (ช็อกโกแลตไม่ได้เกี่ยวเลยสักนิด 😂)
อีกตัวอย่างที่ขำกว่านั้นมาจาก Tyler Vigen ที่ทำเว็บชื่อ Spurious Correlations รวบรวมคู่ข้อมูลที่ขยับไปด้วยกันแบบไร้เหตุผลสุดๆ เคสที่ดังที่สุดคือ จำนวนหนังที่ Nicolas Cage เล่นในแต่ละปี กับจำนวนคนจมน้ำในสระว่ายน้ำในสหรัฐฯ ช่วงปี 1999–2009 ซึ่งมี Correlation อยู่ที่ประมาณ 0.67 จากข้อมูลแค่ 11 จุด
ถ้าเชื่อตัวเลขตรงๆ ก็คงต้องแบนหนัง Nicolas Cage เพื่อลดคนจมน้ำ (ฟังดูบ้าไหมครับ 555)
4 ตัวร้ายที่ทำให้ Correlation หลอกเรา
เวลาเห็นข้อมูลสองชุดขยับไปด้วยกัน แอดอยากให้นึกถึง 4 ตัวร้ายนี้ก่อนเสมอ
| ตัวร้าย | หมายความว่า | ตัวอย่าง |
|---|---|---|
| ตัวแปรแฝง (Confounder) | มีปัจจัยที่สามคอยดัน A และ B พร้อมกัน | ยอดขายไอศกรีมกับจำนวนคนจมน้ำ สูงขึ้นพร้อมกันเพราะ “หน้าร้อน” |
| เหตุผลกลับหัว (Reverse Causation) | จริงๆ B ต่างหากที่ทำให้เกิด A | เมืองที่มีตำรวจเยอะมีอาชญากรรมเยอะ อาจเป็นเพราะอาชญากรรมเยอะจึงต้องส่งตำรวจไปเยอะ |
| ความบังเอิญ (Coincidence) | ข้อมูลน้อย หรือลองจับคู่ไปเรื่อยๆ จนเจอคู่ที่บังเอิญตรงกัน | Nicolas Cage กับคนจมน้ำ |
| อคติจากการเลือกกลุ่ม (Selection Bias) | กลุ่มที่เราเอามาเทียบต่างกันตั้งแต่แรก | คนที่เลือกใช้บริการบางอย่าง อาจเป็นคนประเภทที่ต่างจากคนทั่วไปอยู่แล้ว |
ตัวที่เจอบ่อยที่สุดในชีวิตจริงคือ ตัวแปรแฝง ครับ ลองนึกถึงช่วงเมษายนบ้านเรา อากาศร้อนจัด คนก็กินไอศกรีมเยอะ แล้วก็ออกไปเล่นน้ำเยอะ ถ้าเราดูแค่สองตัวเลขนี้ อาจสรุปผิดๆ ได้ว่าไอศกรีมทำให้คนจมน้ำ ทั้งที่จริงตัวการคือแดดเมืองไทยล้วนๆ
เคสจริงที่ความเข้าใจผิดนี้ “ราคาแพง” มาก
ถ้าคิดว่าเรื่องนี้เป็นแค่มุกขำๆ ขอเล่าเคสที่ซีเรียสหน่อยครับ
ในวงการแพทย์ ก่อนปี 2002 มีงานวิจัยเชิงสังเกต (Observational Study) จำนวนมากที่พบว่า ผู้หญิงวัยหมดประจำเดือนที่ใช้ฮอร์โมนทดแทน (HRT) มีความเสี่ยงโรคหัวใจต่ำกว่าคนที่ไม่ใช้ บางงานพบว่า ความเสี่ยงลดลงราวครึ่งหนึ่ง หมอจำนวนไม่น้อยจึงเชื่อว่า HRT ช่วยป้องกันโรคหัวใจได้
แต่พอมีการทดลองแบบสุ่มขนาดใหญ่ชื่อ Women’s Health Initiative (WHI) ผลกลับตรงกันข้าม การทดลองบางส่วนถูก หยุดก่อนกำหนดในปี 2002 เพราะพบว่ากลุ่มที่ได้ฮอร์โมนมีความเสี่ยงหัวใจวายและเสียชีวิตจากโรคหัวใจเพิ่มขึ้นราว 29%
อะไรทำให้ผลต่างกันขนาดนี้? คำอธิบายหลักคือ Healthy User Bias หรือพูดง่ายๆ คือ คนที่เลือกใช้ HRT ในงานวิจัยช่วงแรกมักเป็นคนที่ดูแลสุขภาพดีอยู่แล้ว มีฐานะ เข้าถึงหมอ ออกกำลังกาย หัวใจเลยดีกว่า ไม่ใช่เพราะฮอร์โมน
นี่คือเคสที่ Correlation หลอกคนทั้งวงการได้เป็นสิบปี ครับ
ในงาน Data Analyst เจอเรื่องนี้บ่อยแค่ไหน?
บอกเลยว่าบ่อยมาก (บ่อยจนแอดเองก็เคยพลาดมาแล้ว 555)
ลองนึกภาพร้านค้าออนไลน์ร้านหนึ่ง ทีมเปิดข้อมูลแล้วเจอว่า “ลูกค้าที่แอด LINE OA ของร้าน ซื้อเฉลี่ยมากกว่าคนที่ไม่แอดถึง 2 เท่า” ผู้บริหารเห็นปุ๊บสั่งเลย “ทุ่มงบยิงแอดให้คนมาแอด LINE เยอะๆ ยอดขายจะได้เพิ่ม”
ฟังดูสมเหตุสมผล แต่ลองถามกลับดูครับ คนที่ยอมแอด LINE OA อาจเป็น ลูกค้าประจำที่ชอบร้านอยู่แล้ว ก็ได้ ถ้าเป็นแบบนั้น การไปดึงคนแปลกหน้ามาแอด LINE อาจไม่ได้เพิ่มยอดขายเลย เงินค่าแอดก็จะหายไปฟรีๆ
นี่แหละครับเหตุผลที่แอดชอบพูดเสมอว่า งาน Data ไม่ใช่แค่หาตัวเลข แต่คือการตั้งคำถามกับตัวเลขแบบ Data Detective และทำ EDA ให้ดีก่อนจะสรุปอะไร
ลองหา Correlation ด้วยตัวเอง
ข่าวดีคือการหาค่า Correlation ง่ายมาก ถ้าใช้ Google Sheets มีข้อมูลสองคอลัมน์ ใช้สูตร CORREL ได้เลย
=CORREL(A2:A100, B2:B100)
สูตรนี้จะคืนค่า r ระหว่าง -1 ถึง 1 มาให้ (ใครยังไม่คล่อง Sheets ลองอ่าน 10 สูตรใน Google Sheets ที่ Data Analyst ใช้แล้วใช้อีก ประกอบได้ครับ)
ส่วนสาย Python ใช้ Pandas บรรทัดเดียวก็ได้ ตาราง Correlation ของทุกคอลัมน์ที่เป็นตัวเลขออกมาเลย
python
df.corr(numeric_only=True)
(ถ้ายังไม่เคยเขียน Python ย้อนไปอ่าน Python เบื้องต้นสำหรับ Data Analyst ก่อนได้)
แต่จำไว้นะครับ สูตรพวกนี้ตอบได้แค่ว่า “ขยับไปด้วยกันแค่ไหน” ไม่ได้ตอบว่า “ใครเป็นต้นเหตุ”
แล้วจะพิสูจน์ Causation ได้ยังไง?
วิธีที่ถือว่าเป็นมาตรฐานทองคำคือ การทดลองแบบสุ่ม (Randomized Experiment) แบบเดียวกับที่ WHI ทำ แนวคิดคือแบ่งคนออกเป็นสองกลุ่มแบบสุ่ม กลุ่มหนึ่งได้สิ่งที่เราอยากทดสอบ อีกกลุ่มไม่ได้ เพราะสุ่มแบ่ง ตัวแปรแฝงต่างๆ ก็จะกระจายไปทั้งสองกลุ่มพอๆ กัน ถ้าผลต่างกัน เราก็มั่นใจได้มากขึ้นว่าเป็นเพราะสิ่งที่เราทดลอง
ในโลกธุรกิจ เราเรียกสิ่งนี้ว่า A/B Testing ซึ่งแอดจะเขียนแยกเป็นอีกบทความเร็วๆ นี้ครับ (ขอติดไว้ก่อน 555)
ถ้าทดลองไม่ได้ อย่างน้อยก่อนสรุปผล ลองเช็กคำถามพวกนี้ดูครับ
- มี ปัจจัยที่สาม ที่ดันทั้งสองตัวแปรไหม?
- เป็นไปได้ไหมที่ ผลกลับไปเป็นเหตุ?
- ข้อมูล เยอะพอ หรือเปล่า หรือแค่บังเอิญ?
- กลุ่มที่เอามาเทียบ ต่างกันตั้งแต่แรก ไหม?
- มี กลไก ที่อธิบายได้จริงหรือเปล่า ว่า A ไปทำให้ B เปลี่ยนได้ยังไง?
สรุป — ตัวเลขไม่โกหก แต่เราอ่านมันผิดได้
Correlation เป็นเครื่องมือที่มีประโยชน์มาก มันช่วยชี้ว่าเราควรไปขุดตรงไหนต่อ แต่มันเป็นแค่ จุดเริ่มต้นของคำถาม ไม่ใช่คำตอบสุดท้าย
ตั้งแต่ช็อกโกแลตกับโนเบล Nicolas Cage กับสระว่ายน้ำ ไปจนถึงเคส HRT ที่กระทบคนจำนวนมาก บทเรียนเดียวกันก็คือ อย่าเพิ่งรีบเชื่อแค่เพราะกราฟสองเส้นมันวิ่งไปด้วยกันสวย
ครั้งหน้าที่เห็นพาดหัวข่าวว่า “งานวิจัยพบว่า A ทำให้ B” ลองถามตัวเองสักนิดว่า “หรือมันแค่บังเอิญวิ่งไปด้วยกัน?”
คนที่เก่ง Data ไม่ใช่คนที่หาความสัมพันธ์เจอเยอะที่สุด แต่คือคนที่รู้ว่าความสัมพันธ์ไหน “ไม่ควรเชื่อ”
อ้างอิง (References)
- Messerli, F. H. Chocolate Consumption, Cognitive Function, and Nobel Laureates. New England Journal of Medicine, 2012. https://www.nejm.org/doi/abs/10.1056/NEJMon1211064
- Kayser, M. Editors’ pick: Christmas is coming – time for chocolate to get ready for your Nobel Prize. Investigative Genetics, 2012. https://pmc.ncbi.nlm.nih.gov/articles/PMC3544694/
- The Conversation. What a link between chocolate and Nobel prizes reveals about our trust in scientists. https://theconversation.com/what-a-link-between-chocolate-and-nobel-prizes-reveals-about-our-trust-in-scientists-148570
- PubMed. Chocolate consumption, cognitive function, and Nobel laureates (และบทความวิจารณ์ที่เกี่ยวข้อง). https://pubmed.ncbi.nlm.nih.gov/23050509/
- Tyler Vigen. Spurious Correlations. https://www.tylervigen.com/spurious-correlations
- The National. Nicolas Cage movies linked to drownings and other spurious correlations. https://www.thenationalnews.com/uae/nicolas-cage-movies-linked-to-drownings-and-other-spurious-correlations-1.450759
- Circulation (AHA Journals). Hormone Replacement Therapy and Heart Disease. https://www.ahajournals.org/doi/10.1161/01.cir.0000048891.81129.2d
- Statistical adjustment for a measure of healthy lifestyle doesn’t yield the truth about hormone therapy. arXiv. https://arxiv.org/pdf/0805.2845
- PubMed. Hormone replacement therapy and acute coronary outcomes: methodological issues between randomized and observational studies. https://pubmed.ncbi.nlm.nih.gov/14688150
- Sheetaki. How To Use CORREL Function in Google Sheets. https://sheetaki.com/correl-function-google-sheets/
- pandas documentation. pandas.DataFrame.corr. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.corr.html
Leave a Reply