Courses
ในสถิติและการเรียนรู้ของเครื่อง รูปแบบไม่เท่ากับคำตอบ
คุณอาจเคยเห็นกราฟที่เชื่อมโยงยอดขายไอศกรีมกับอัตราการจมน้ำหรือกราฟที่เชื่อมโยงภาพยนตร์ของ Nicolas Cage กับการเสียชีวิตในสระว่ายน้ำ กราฟเหล่านี้สะดุดตาและติดอยู่ในความทรงจำ แต่เป็นตัวอย่างชัดเจนว่าความสัมพันธ์ไม่เท่ากับเหตุและผล นอกจากนี้ยังถูกใช้อย่างพร่ำเพรื่อจนพลาดประเด็นว่าทำไมปัญหานี้จึงสำคัญต่องานของคุณ
สหสัมพันธ์ลวงคือความสัมพันธ์ที่ดูเหมือนจะมีระหว่างสองตัวแปร แต่ไม่ได้เกิดจากความเชื่อมโยงจริงใด ๆ เป็นเพียงความบังเอิญหรือมีตัวแปรแฝงที่ไม่ได้เฝ้าติดตาม หากเผลอปฏิบัติต่อมันเสมือนข้อมูลที่มีค่า ก็จะเสียเวลาไล่ตามรูปแบบที่ไม่สมเหตุสมผลและไม่แปลผลสู่โลกจริง
ในบทความนี้ ฉันจะอธิบายว่าทำไมสหสัมพันธ์ลวงจึงเกิดขึ้น วิธีสังเกต และวิธีหลีกเลี่ยงการตัดสินใจบนพื้นฐานของมัน
แต่ความสัมพันธ์คืออะไรอยู่ดี? อ่านบล็อกของเราเรื่องการวัดความสัมพันธ์ในข้อมูลเพื่อทำความรู้จักค่าสัมประสิทธิ์สหสัมพันธ์ประเภทต่าง ๆ และการประยุกต์ใช้
สหสัมพันธ์ลวงคืออะไร?
สหสัมพันธ์ลวงคือความสัมพันธ์ทางสถิติที่ดูเหมือนมีระหว่างสองตัวแปร ทั้งที่จริงไม่ได้เกิดจากความเชื่อมโยงระหว่างกัน
ค่าความสัมพันธ์นั้น “จริง” ในเชิงคำนวณ เมื่อรันการวิเคราะห์ก็ได้ค่าที่ดูมีความหมายและสมเหตุสมผล ขั้นตอนคำนวณไม่ได้ผิดหรือกุขึ้นมา และนั่นแหละคือปัญหา
สิ่งที่ขาดหายไปคือเหตุและผล
ไม่มีสิ่งใดในตัวแปรหนึ่งที่ทำให้อีกตัวแปรเกิดขึ้น ทั้งสองอาจเคลื่อนไหวสอดคล้องกันด้วยเหตุผลที่ไม่เกี่ยวกันเลย หรือไม่มีเหตุผลจริงใด ๆ ความแตกต่างระหว่างสิ่งที่ข้อมูลแสดงกับสิ่งที่เกิดขึ้นจริง นั่นแหละคือสาระของสหสัมพันธ์ลวง
ทำไมสหสัมพันธ์ลวงจึงเกิดขึ้น
สหสัมพันธ์ลวงมักอธิบายได้ด้วยไม่กี่กลไก และเมื่อรู้ว่าจะมองหาอะไร ก็จะไม่เชื่อค่าความสัมพันธ์แบบหลับหูหลับตา
ตัวแปรกวน (confounding variables)
ตัวแปรกวนคือตัวแปรแฝงที่ส่งอิทธิพลต่อทั้งสองสิ่งที่กำลังวัด
ยกตัวอย่างคลาสสิกเรื่องไอศกรีมกับการจมน้ำ ยอดขายไอศกรีมไม่ได้ทำให้คนจมน้ำ อากาศร้อนต่างหากที่ขับเคลื่อนทั้งสอง—คนซื้อไอศกรีมมากขึ้น และคนลงว่ายน้ำมากขึ้น ซึ่งทำให้การจมน้ำเพิ่มขึ้น
อุณหภูมิทำหน้าที่เป็นตัวแปรกวน หากข้อมูลไม่ได้เฝ้าติดตาม ก็พลาดได้ง่าย
ความบังเอิญ
บางครั้งสองตัวแปรเคลื่อนไหวร่วมกันโดยไม่มีเหตุผลเลย
หากทำการเปรียบเทียบมากพอในชุดข้อมูลมากพอ บางคู่จะสอดคล้องกันด้วยความบังเอิญ นี่เองคือที่มาของสหสัมพันธ์ระหว่างภาพยนตร์ของ Nicolas Cage กับการเสียชีวิตในสระ—ชุดข้อมูลอนุกรมเวลาที่ไม่เกี่ยวกันสองชุดที่บังเอิญเป็นแนวโน้มไปในทิศทางเดียวกันในช่วงปีเดียวกัน
เมื่อมีตัวแปรมากพอ บางระดับของการเรียงตัวแบบสุ่มย่อมคาดหมายได้
แนวโน้มร่วม
บางตัวแปรเคลื่อนไปด้วยกันตามกาลเวลา และความทับซ้อนนั้นอาจดูเหมือนมีความสัมพันธ์ ทั้งที่จริงไม่มี
ลองนึกถึงจำนวนประชากร GDP การใช้งานอินเทอร์เน็ต และการผลิตพลาสติก หลายอย่างเติบโตมาหลายทศวรรษ หากนำมาจับคู่เปรียบเทียบกันสองตัว ก็จะได้ค่าสหสัมพันธ์สูง เพียงเพราะทั้งคู่มีแนวโน้มเพิ่มขึ้น
แต่สิ่งที่เหมือนกันมีเพียงทิศทาง ไม่ได้มีความเชื่อมโยงระหว่างตัวแปรโดยตรง
อคติจากการสุ่มตัวอย่าง
สหสัมพันธ์ลวงอาจเกิดจากข้อมูลที่เก็บมา ไม่ใช่จากโลกความเป็นจริงที่ข้อมูลควรแทน
หากตัวอย่างไม่สะท้อนประชากรที่กำลังศึกษา ก็อาจได้ความสัมพันธ์ที่มีอยู่แค่ในชุดข้อมูลของตนเอง เช่น สำรวจลูกค้าเฉพาะผ่านแอป ก็จะพบว่า “การใช้งานแอป” สัมพันธ์กับสารพัดอย่าง ไม่ใช่เพราะการใช้งานแอปทำให้เกิดสิ่งเหล่านั้น แต่เพราะตัวอย่างลำเอียงไปทางคนใช้แอป
ตัวอย่างของสหสัมพันธ์ลวง
สหสัมพันธ์ลวงพบได้บ่อยกว่าที่คิด ต่อไปนี้คือวิธีสังเกตและแนวทางรับมือ
ตัวอย่างทางสถิติคลาสสิก
กรณีไอศกรีมกับการจมน้ำเป็นตัวอย่างที่ทุกคนรู้จัก ยอดขายไอศกรีมและการเสียชีวิตจากการจมน้ำเพิ่มลดไปด้วยกัน แต่ไม่มีฝ่ายใดทำให้อีกฝ่ายเกิดขึ้น อากาศร้อนคือตัวแปรกวนที่ขับเคลื่อนทั้งสองพร้อมกัน
กรณี Nicolas Cage ต่างออกไป ปริมาณภาพยนตร์ของเขาในแต่ละปีมีสหสัมพันธ์กับจำนวนการจมน้ำในสระในช่วงเวลาเดียวกัน โดยไม่มีตัวแปรกวนใดเกี่ยวข้องเลย เป็นความบังเอิญ—แนวโน้มที่ไม่เกี่ยวกันสองเส้นที่บังเอิญขนานกัน
ทั้งสองตัวอย่างชี้ให้เห็นประเด็นของสหสัมพันธ์ลวง แต่ในโลกจริงมักมองเห็นได้ไม่ชัดเท่านี้
ตัวอย่างในธุรกิจและงานวิจัย
ในการวิเคราะห์ธุรกิจ สหสัมพันธ์ลวงมักแอบซ่อนอยู่หลังตัวเลขที่ดูเหมือนจะเข้ากันดี
ลองนึกถึงบริษัทที่ติดตามงบการตลาดรายสัปดาห์และรายได้รายสัปดาห์ตลอดสองปี คุณใช้โค้ด Python นี้ทำตามได้:
import numpy as np
import pandas as pd
np.random.seed(42)
weeks = 104
# Seasonal effect
seasonality = 10 * np.sin(np.linspace(0, 8 * np.pi, weeks)) + 20
marketing_spend = seasonality + np.random.normal(0, 2, weeks)
revenue = seasonality * 50 + np.random.normal(0, 30, weeks)
df = pd.DataFrame({
"week": range(1, weeks + 1),
"marketing_spend": marketing_spend,
"revenue": revenue
})
print(df["marketing_spend"].corr(df["revenue"]))
Output: 0.9707905810711147
คุณจะได้สหสัมพันธ์เชิงบวกที่แข็งแรงระหว่าง marketing_spend และ revenue ชวนให้อ่านว่า “เพิ่มงบการตลาดแล้วรายได้เพิ่ม” และมันอาจจะจริง แต่โค้ดข้างบนไม่ได้พิสูจน์อะไร ทั้งสองตัวแปรถูกขับเคลื่อนด้วยวัฏจักรอุปสงค์ตามฤดูกาลเดียวกัน หากบริษัทยิ่งใช้เงินในสัปดาห์ที่ความต้องการสูงตามธรรมชาติ สหสัมพันธ์ก็จะปรากฏไม่ว่าตัวกิจกรรมการตลาดจะมีผลจริงหรือไม่
นี่เป็นความผิดพลาดที่พบบ่อยมากในการวิเคราะห์ธุรกิจ
พฤติกรรมลูกค้าและผลลัพธ์ทางการตลาดมักเคลื่อนไปตามฤดูกาล สภาพเศรษฐกิจ หรือปัจจัยแฝงอีกนับสิบ สองเมตริกที่มีสหสัมพันธ์กันไม่ได้บอกว่าตัวไหน—ถ้ามี—เป็นเหตุ
ตัวอย่างในแมชชีนเลิร์นนิง
โมเดลแมชชีนเลิร์นนิงไม่รู้ความหมายของ “เหตุ” มันเพียงค้นหารูปแบบใด ๆ ที่ลดค่าความคลาดเคลื่อน และหากทางลัดได้ผลกับข้อมูลฝึก โมเดลก็จะเลือกใช้
ตัวอย่างเช่น:
- การพึ่งพาฉากหลัง: ตัวจำแนกภาพที่ฝึกให้จำแนกวัวกลับเรียนรู้ที่จะเชื่อมโยงทุ่งหญ้าสีเขียวกับ “วัว” แทนที่จะเป็นตัวสัตว์เอง พอเห็นวัวบนชายหาดก็จำไม่ได้
- พร็อกซีด้านประชากรและภูมิศาสตร์: โมเดลที่ฝึกจากข้อมูลในอดีตหยิบเอารหัสไปรษณีย์มาใช้เป็นพร็อกซีของรายได้หรือเชื้อชาติ แม้จะไม่มีตัวแปรเหล่านั้นอยู่ในชุดฝึก
- อาร์ติแฟกต์ของชุดข้อมูล: โมเดลภาพเวชศาสตร์เรียนรู้ว่าภาพจากเครื่องรุ่นเก่าของโรงพยาบาลแห่งหนึ่งมีสหสัมพันธ์กับโรค เพราะโรงพยาบาลนั้นรักษาผู้ป่วยอาการหนักมากกว่า ไม่ใช่เพราะเอาต์พุตของเครื่องบอกอะไรเกี่ยวกับโรคได้จริง
นี่คือแนวคิดเดียวกัน สร้างเป็นตัวอย่างสังเคราะห์ที่คุณรันเองได้ โมเดลทำนายความเสี่ยงเบี้ยวหนี้ และ zip_code ทำหน้าที่เป็นพร็อกซีของ incomeซึ่งเป็นตัวแปรที่สำคัญจริง
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
np.random.seed(42)
n = 1000
# Zip code correlates with income, income drives default risk
zip_code = np.random.choice([1, 2, 3], size=n)
income = 80000 - zip_code * 15000 + np.random.normal(0, 5000, n)
default_risk = (income < 40000).astype(int)
df = pd.DataFrame({"zip_code": zip_code, "income": income, "default": default_risk})
model = LogisticRegression()
model.fit(df[["zip_code"]], df["default"])
print(model.score(df[["zip_code"]], df["default"]))

คะแนนโมเดลตัวอย่างแมชชีนเลิร์นนิง
โมเดลนี้ทำนายความเสี่ยงเบี้ยวหนี้ด้วย zip_code เพียงอย่างเดียวได้ โดยไม่เคยเห็น income ในชุดข้อมูลนี้มันใช้ได้ แต่หากย้ายไปยังเมืองใหม่ที่รูปแบบระหว่างรหัสไปรษณีย์กับรายได้ไม่เป็นจริง ความแม่นยำของโมเดลจะลดลง
นี่แหละปัญหาของการเรียนรู้ทางลัด
โมเดลที่สร้างบนสหสัมพันธ์ลวงอาจทำคะแนนได้ดีบนข้อมูลฝึก แต่ล้มเหลวทันทีเมื่อเจอสภาพแวดล้อมที่สหสัมพันธ์นั้นใช้ไม่ได้
วิธีตรวจจับสหสัมพันธ์ลวง
ข่าวร้ายคือไม่อาจกำจัดสหสัมพันธ์ลวงได้หมด แต่สามารถสร้างนิสัยการทำงานที่จับได้เป็นส่วนใหญ่
ต่อไปนี้คือเคล็ดลับเชิงปฏิบัติ:
- ตรวจสอบตัวแปรกวน: ก่อนเชื่อค่าความสัมพันธ์ ให้ถามว่ามีอะไรที่อาจขับเคลื่อนทั้งสองตัวแปรพร้อมกันหรือไม่ อุณหภูมิและฤดูกาลคือผู้ต้องสงสัยทั่วไป
- ใช้ความรู้ด้านสาขา: หากความสัมพันธ์ไม่เข้ากับความเข้าใจตามเนื้อหา อย่าปล่อยให้สถิติกลบสัญชาตญาณนั้น
- ทำภาพข้อมูล: กราฟกระจายหรือกราฟอนุกรมเวลามักเผยแนวโน้มร่วมกันหรือค่าผิดปกติที่ค่าสหสัมพันธ์ซ่อนอยู่
- รันทดสอบสถิติเพิ่มเติม: สหสัมพันธ์บางส่วน หรือการตรวจว่าความสัมพันธ์ยังคงอยู่ในกลุ่มย่อยต่าง ๆ หรือไม่ ช่วยยืนยันหรือทำลายความสัมพันธ์ได้
- ออกแบบการทดลองเมื่อทำได้: การทดลองสุ่มแบบมีกลุ่มควบคุมช่วยตัดตัวแปรกวน เพราะคุณควบคุมว่าใครได้การรักษาแบบใด
โดยสรุป ค่าสหสัมพันธ์บอกเพียงว่าสองสิ่งเคลื่อนไหวไปด้วยกัน ส่วนมันมีความหมายหรือไม่นั้นยังต้องอาศัยวิจารณญาณของคุณ
สหสัมพันธ์ลวงเทียบกับแนวคิดสถิติอื่น
มีหลายคำที่ถูกใช้แทนกันกับสหสัมพันธ์ลวงจนทำให้สับสน ในส่วนนี้ฉันจะแสดงว่าแนวคิดสถิติเหล่านี้คืออะไรและแตกต่างกันอย่างไร
สหสัมพันธ์ลวง vs ตัวแปรกวน
ตัวแปรกวนเป็นสาเหตุหนึ่งที่เฉพาะเจาะจงของสหสัมพันธ์ลวง ไม่ใช่คำพ้องความหมาย
ตัวแปรกวนเกิดขึ้นเมื่อมีตัวแปรที่สามส่งผลต่อทั้งสองตัวแปรที่กำลังวัด ทำให้ดูเหมือนมีความสัมพันธ์โดยตรง ทั้งที่จริงไม่ใช่ อุณหภูมิเป็นตัวแปรกวนได้ เพราะมันขับเคลื่อนทั้งยอดขายไอศกรีมและการจมน้ำ
สหสัมพันธ์ลวงเป็นหมวดกว้างกว่า ครอบคลุมตัวแปรกวน แต่ก็ครอบคลุมความบังเอิญ อคติจากการสุ่มตัวอย่าง และแนวโน้มร่วมตามกาลเวลา ซึ่งทั้งหมดนี้ไม่เกี่ยวกับตัวแปรที่สามแฝงอยู่ ตัวอย่าง Nicolas Cage ไม่ใช่ตัวแปรกวนเลย เพราะไม่มีตัวแปรใดเชื่อมปริมาณภาพยนตร์กับการเสียชีวิตในสระ เป็นเพียงความบังเอิญ แต่ก็ยังเป็นสหสัมพันธ์ลวง
ดังนั้นทุกความสัมพันธ์ที่ถูกตัวแปรกวนถือว่าเป็นสหสัมพันธ์ลวง แต่ไม่ใช่ทุกสหสัมพันธ์ลวงจะมีตัวแปรกวน
สหสัมพันธ์ลวง vs เหตุและผล
สหสัมพันธ์ลวงและความสัมพันธ์เชิงเหตุผลอาจให้กราฟกระจายเหมือนกัน ความต่างอยู่ใต้ฉาก และความต่างนั้นเปลี่ยนสิ่งที่ทำได้กับข้อมูล
ตารางต่อไปนี้สรุปความแตกต่าง:
| สหสัมพันธ์ลวง | เหตุและผล | |
|---|---|---|
| ความสัมพันธ์ | ไม่มีความเชื่อมโยงจริงระหว่างตัวแปร | ตัวแปรหนึ่งมีอิทธิพลโดยตรงต่ออีกตัวแปรหนึ่ง |
| การตีความ | ทำให้หลงผิดหากมองว่ามีความหมาย | สะท้อนกลไกจริง |
| ประโยชน์เชิงพยากรณ์ | ไม่น่าเชื่อถือเมื่ออยู่นอกชุดข้อมูลเดิม | ยังใช้ได้กับข้อมูลใหม่ หากกลไกไม่เปลี่ยน |
| ความสามารถในการสนับสนุนข้ออ้างเชิงเหตุผล | ไม่มี | สนับสนุนข้ออ้างเชิงเหตุผล หากพิสูจน์ด้วยวิธีที่เหมาะสม |
สหสัมพันธ์ลวงไม่เคยบ่งชี้เหตุและผล ไม่ว่าค่าสหสัมพันธ์จะสูงเพียงใด การพิสูจน์เหตุและผลต้องอาศัยการทดลองควบคุมหรือวิธีการอนุมานเชิงเหตุที่มากกว่าการทดสอบทางสถิติเพียงอย่างเดียว
วิธีลดความเสี่ยงจากสหสัมพันธ์ลวง
แม้การตรวจจับสหสัมพันธ์ลวงย้อนหลังจะมีประโยชน์ แต่ยิ่งดีกว่าหากสร้างเวิร์กโฟลว์ที่หลีกเลี่ยงมันได้ตั้งแต่แรก
ในเวิร์กโฟลว์นี้ควรทำดังนี้:
- เก็บข้อมูลให้ดีกว่าเดิม: สหสัมพันธ์ลวงจำนวนมากเริ่มจากตัวอย่างที่ไม่แทนสิ่งที่ต้องการศึกษา ก่อนวิเคราะห์ใด ๆ ตรวจสอบว่าการเก็บข้อมูลครอบคลุมประชากรและเงื่อนไขที่ถูกต้อง
- ใช้การทดลองแบบสุ่มเมื่อเป็นไปได้: การสุ่มคือเกราะป้องกันตัวแปรกวนที่ดีที่สุด เพราะกระจายตัวแปรแฝงให้เท่ากันระหว่างกลุ่ม หากรัน A/B test แทนการพึ่งข้อมูลเชิงสังเกตได้ ควรทำ
- ตรวจความถูกต้องกับชุดข้อมูลใหม่: สหสัมพันธ์ที่ปรากฏแค่ในชุดข้อมูลเดียวเป็นสัญญาณว่ามีบางอย่างผิด ลองทดสอบว่าความสัมพันธ์ยังคงอยู่ในข้อมูลช่วงเวลาอื่น โดยคนละผู้จัดทำ ประชากรต่างกัน หรือแหล่งต่างกัน ก่อนจะเชื่อถือ
- ทำการวิเคราะห์เชิงเหตุ: เทคนิคอย่างการควบคุมตัวแปรกวนหรือ causal graphs ช่วยก้าวข้าม “สองสิ่งนี้เคลื่อนไหวร่วมกัน” ไปสู่การทดสอบว่าอย่างหนึ่งส่งผลต่ออีกอย่างจริงหรือไม่
- ดึงผู้เชี่ยวชาญเนื้อหาเข้ามามีส่วนร่วม: ผู้รู้ด้านสาขามักจับความสัมพันธ์ลวงที่การทดสอบสถิติไม่เห็น หากสหสัมพันธ์ไม่สอดคล้องกับความรู้ในสาขา จงตั้งคำถามก่อนจะต่อยอด
ตามตรงแล้ว ไม่มีขั้นตอนไหนรับประกันว่าจะจับสหสัมพันธ์ลวงได้ทั้งหมด แต่เมื่อทำร่วมกันจะช่วยลดโอกาสสรุปผลหรือสร้างโมเดลที่ไม่น่าเชื่อถือ
สรุป
ค่าสหสัมพันธ์สูงอาจดูเหมือนคำตอบ แต่สำหรับมืออาชีพด้านข้อมูลที่มีประสบการณ์ มันกลับเป็นคำถาม
ตัวเลขบอกเพียงว่าสองสิ่งเคลื่อนไหวไปด้วยกัน ไม่ได้บอกว่าทำไม และการปฏิบัติต่อมันเสมือนหลักฐานของเหตุและผลคือจุดที่ทำให้เกิดสมมติฐานผิด ๆ งานวิจัยถูกอ่านคลาดเคลื่อน การตัดสินใจทางธุรกิจผิดพลาด และโมเดลล้มเหลวทันทีที่เห็นข้อมูลใหม่ สิ่งที่อยู่เบื้องหลังตัวเลขสำคัญกว่าตัวเลขเอง
นั่นคือเหตุผลที่ข้อสรุปที่แข็งแรงที่สุดไม่เคยมาจากสถิติเพียงอย่างเดียว แต่จากการผสานสถิติเข้ากับความรู้ในสาขา เมื่อนำทั้งสองมาใช้ร่วมกัน ข้อสรุปที่ได้จะยืนหยัดนอกเหนือชุดข้อมูลที่สร้างมันขึ้นมา
หากแนวคิดเรื่องสหสัมพันธ์และสหสัมพันธ์ลวงยังสับสน ลองสำรวจคอร์สความน่าจะเป็นและสถิติของเรา เราครอบคลุมตั้งแต่บทนำสู่การออกแบบการทดลองและการทดสอบสมมติฐาน