บทนำสู่การปรับตัวแบบและการแปลผลการถดถอยเชิงเส้นใน R
ยินดีต้อนรับครับ! ในบทนี้ เราจะเปลี่ยนผ่านจากการใช้สูตรทางทฤษฎีใน Paper A มาสู่การประยุกต์ใช้จริงใน การถดถอยเชิงเส้น (Linear Regression) โดยใช้โปรแกรม R สำหรับ Paper B การวิเคราะห์การถดถอยเป็นหนึ่งในเครื่องมือที่ทรงพลังที่สุดในคลังอุปกรณ์ของนักคณิตศาสตร์ประกันภัย เพราะช่วยให้เราเข้าใจความสัมพันธ์ระหว่างตัวแปรต่างๆ (เช่น อายุของผู้ขับขี่ส่งผลต่อจำนวนเงินเคลมประกันอย่างไร) และช่วยให้เราสามารถพยากรณ์สิ่งที่จะเกิดขึ้นในอนาคตได้
สำหรับการสอบ Paper B ผู้คุมสอบไม่ได้มองหาแค่ "ตัวเลขที่ถูกต้อง" เท่านั้น แต่ต้องการดูว่าคุณสามารถใช้ซอฟต์แวร์เพื่อสร้างตัวแบบ (Fit a model) แปลผลสรุปที่ได้ และตรวจสอบว่าตัวแบบนั้นเหมาะสมกับข้อมูลจริงหรือไม่ ถ้ารู้สึกว่าโค้ด R ดูยากในตอนแรก ก็ไม่ต้องกังวลนะ เพราะเราจะมาแยกแยะผลลัพธ์ที่ได้ทีละบรรทัดกันครับ
1. การสร้างตัวแบบ: ฟังก์ชัน lm()
ใน R เราจะสร้างตัวแบบการถดถอยเชิงเส้นโดยใช้ฟังก์ชัน lm() (ซึ่งย่อมาจาก "linear model") สิ่งที่สำคัญที่สุดที่ต้องจำคือ รูปแบบของสูตร (Formula syntax) ดังนี้:
\(response \sim explanatory\)
- ตัวแปรตอบสนอง (Response Variable - \(y\)): สิ่งที่คุณกำลังพยายามจะพยากรณ์ (เช่น มูลค่าเคลมรวม)
- ตัวแปรอธิบาย (Explanatory Variable - \(x\)): ปัจจัยที่คุณคิดว่าส่งผลต่อตัวแปรตอบสนอง (เช่น จำนวนผู้ถือกรมธรรม์)
การถดถอยเชิงเส้นอย่างง่าย vs. การถดถอยเชิงเส้นพหุคูณ
ใน การถดถอยเชิงเส้นอย่างง่าย (Simple Linear Regression) เราจะมีตัวแปรอธิบายเพียงตัวเดียว:
\(model1 <- lm(y \sim x, data = my_data)\)
ใน การถดถอยเชิงเส้นพหุคูณ (Multiple Linear Regression) เราจะมีตัวแปรอธิบายหลายตัว:
\(model2 <- lm(y \sim x1 + x2 + x3, data = my_data)\)
เคล็ดลับน่ารู้: R ใช้ วิธีกำลังสองน้อยที่สุด (Method of Least Squares) เพื่อคำนวณเส้นที่เหมาะสมที่สุด (Line of best fit) วิธีนี้จะช่วยลดผลรวมของส่วนต่างยกกำลังสองระหว่างจุดข้อมูลจริงกับค่าที่พยากรณ์จากเส้นตรงให้เหลือน้อยที่สุด
2. การแปลผลสรุป (Summary Output)
เมื่อคุณสร้างตัวแบบเสร็จแล้ว (เช่น \(fit <- lm(y \sim x)\)) คุณต้องใช้คำสั่ง summary(fit) เพื่อดูผลลัพธ์ ซึ่งหน้านี้แหละคือจุดที่ข้อสอบ Paper B มักจะนำมาตั้งคำถาม
ตารางสัมประสิทธิ์ (The Coefficients Table)
ตารางนี้จะแสดง ค่าประมาณด้วยวิธีกำลังสองน้อยที่สุด (Least Squares Estimates) สำหรับจุดตัดแกนและค่าความชัน:
- (Intercept) Estimate (\(\hat{\beta}_0\)): ค่าพยากรณ์ของ \(y\) เมื่อตัวแปร \(x\) ทุกตัวมีค่าเป็นศูนย์
- Variable Estimate (\(\hat{\beta}_1\)): การเปลี่ยนแปลงของตัวแปรตอบสนองต่อการเพิ่มขึ้นของตัวแปรอธิบายนั้นๆ 1 หน่วย โดยสมมติให้ตัวแปรอื่นๆ คงที่
การอนุมานเชิงสถิติของค่าความชัน
ผลลัพธ์จะแสดงค่า p-value (มักระบุว่า Pr(>|t|)) สำหรับสัมประสิทธิ์แต่ละตัว ซึ่งใช้สำหรับทดสอบ สมมติฐานหลัก (Null Hypothesis) \(H_0: \beta_i = 0\):
- p-value น้อย (โดยปกติคือ \(p < 0.05\)): เราจะปฏิเสธ \(H_0\) แสดงว่าตัวแปรอธิบายนั้น มีนัยสำคัญทางสถิติ หรือมีความสัมพันธ์ที่มีความหมายต่อตัวแปรตอบสนองนั่นเอง
- p-value มาก (\(p > 0.05\)): เราไม่ปฏิเสธ \(H_0\) ตัวแปรนั้นอาจไม่ใช่ตัวพยากรณ์ที่มีประโยชน์เมื่อมีตัวแปรอื่นๆ อยู่ในโมเดลด้วย
ข้อควรจำ: ให้สังเกตเครื่องหมายดอกจัน (***) ในผลลัพธ์ของ R เสมอ เพราะเป็นตัวบ่งชี้ระดับนัยสำคัญอย่างรวดเร็ว แต่ในการสอบ อย่าลืมอ้างอิงค่า p-value จริงๆ เพื่อสนับสนุนข้อสรุปของคุณด้วยนะครับ
3. การประเมินความเหมาะสมของตัวแบบ (Goodness of Fit)
ตัวแบบของเราอธิบายข้อมูลได้ดีแค่ไหน? เราจะดูจากค่าหลักสองตัวในผลลัพธ์ของ R ดังนี้:
Multiple R-squared (\(R^2\))
\(R^2\) บอกเราถึงสัดส่วนของความผันแปรทั้งหมดในตัวแปรตอบสนองที่สามารถอธิบายได้ด้วยตัวแปรอธิบาย โดยมีค่าตั้งแต่ \(0\) ถึง \(1\):
- \(R^2 = 0.85\) หมายความว่าตัวแบบสามารถอธิบายความแปรปรวนของข้อมูลได้ 85%
- \(R^2 = 1.00\) หมายความว่าตัวแบบมีความพอดีอย่างสมบูรณ์ (ซึ่งพบได้ยากมากในข้อมูลประกันภัยจริง!)
Adjusted R-squared
เมื่อคุณเพิ่มตัวแปรอธิบายมากขึ้น ค่า \(R^2\) มักจะเพิ่มขึ้นเสมอแม้ว่าตัวแปรที่เพิ่มมาจะไม่มีประโยชน์ก็ตาม Adjusted R-squared จึงถูกสร้างมาเพื่อ "หักคะแนน" การเพิ่มตัวแปรที่ไม่จำเป็น ดังนั้นเมื่อต้องเปรียบเทียบสองตัวแบบที่มีจำนวนตัวแปรต่างกัน โดยทั่วไปเราจะเลือกตัวแบบที่มีค่า Adjusted R-squared สูงกว่า
4. การใช้ค่าส่วนที่เหลือ (Residuals) ตรวจสอบความถูกต้องของตัวแบบ
"ค่าส่วนที่เหลือ" หรือ "Residual" คือส่วนต่างระหว่างค่าจริงที่สังเกตได้กับค่าที่พยากรณ์จากตัวแบบ: \(e_i = y_i - \hat{y}_i\) เพื่อให้แน่ใจว่าตัวแบบการถดถอยของเราใช้งานได้จริง เราต้องตรวจสอบค่าเหล่านี้ผ่านกราฟวินิจฉัย (Diagnostic plots) โดยใช้คำสั่ง plot(fit)
- กราฟ Residuals vs Fitted: เราต้องการเห็นกลุ่มจุดกระจายตัวแบบสุ่ม (คล้าย "กลุ่มเมฆ") หากเห็นรูปแบบที่ชัดเจน (เช่น เส้นโค้งหรือรูปกรวย) แสดงว่าตัวแบบเชิงเส้นอาจไม่เหมาะสม หรือความแปรปรวนอาจไม่คงที่ (Heteroscedasticity)
- กราฟ Normal Q-Q plot: จุดข้อมูลควรเรียงตัวตามแนวเส้นทแยงมุมโดยประมาณ เพื่อยืนยันว่าค่าส่วนที่เหลือมีการแจกแจงแบบปกติ ซึ่งเป็นข้อตกลงเบื้องต้นที่จำเป็นเพื่อให้ค่า p-value และช่วงความเชื่อมั่นของเรามีความถูกต้อง
ข้อผิดพลาดที่พบบ่อย: อย่าพูดแค่ว่า "ตัวแบบนี้ดี" แต่ควรใช้กราฟ Residuals เพื่อพิสูจน์ว่าข้อตกลงเบื้องต้นเรื่อง ความเป็นเชิงเส้น (Linearity), ความแปรปรวนคงที่ (Constant Variance) และ การแจกแจงแบบปกติ (Normality) นั้นเป็นไปตามเกณฑ์
5. การพยากรณ์และขีดจำกัดความเชื่อมั่น
เมื่อเราได้ตัวแบบที่เหมาะสมแล้ว เราจะใช้ฟังก์ชัน predict() เพื่อประมาณค่าสำหรับข้อมูลใหม่ ในวิชา CS1 คุณต้องแยกความแตกต่างระหว่างช่วงสองประเภทนี้ให้ได้:
ช่วงความเชื่อมั่น (Confidence Interval - สำหรับค่าเฉลี่ย)
เป็นช่วงสำหรับ ค่าเฉลี่ย (Average) ของตัวแปรตอบสนองทั้งหมดที่มีค่า \(x\) ตามที่ระบุ
โค้ด R: \(predict(fit, newdata, interval = "confidence")\)
ช่วงการพยากรณ์ (Prediction Interval - สำหรับค่ารายตัว)
เป็นช่วงสำหรับค่าสังเกตในอนาคตเพียง ค่าเดียว (Single) เนื่องจากการคาดการณ์รายบุคคลนั้นทำได้ยากกว่าค่าเฉลี่ยมาก ช่วงการพยากรณ์จึงกว้างกว่า ช่วงความเชื่อมั่นเสมอ
โค้ด R: \(predict(fit, newdata, interval = "prediction")\)
อุปมาอุปไมย: การพยากรณ์ความสูงเฉลี่ยของผู้ชาย 1,000 คน (Confidence Interval) นั้นง่ายกว่าการพยากรณ์ความสูงของผู้ชายคนถัดไปที่เดินผ่านประตูเข้ามา (Prediction Interval) มากครับ
6. บทสรุปและการเลือกตัวแบบ
เมื่อคุณมีตัวแปรอธิบายที่อาจเป็นไปได้หลายตัว คุณต้องเลือกชุดตัวแปรที่ "ดีที่สุด" กระบวนการนี้ประกอบด้วย:
- การตรวจสอบ นัยสำคัญ ของตัวแปรแต่ละตัว (p-values)
- การมองหาค่า Adjusted R-squared ที่สูงที่สุด
- การตัดตัวแปรที่ไม่มีนัยสำคัญออกจากตัวแบบ (กระบวนการนี้เรียกว่าการเลือกแบบ "Stepwise" แต่ในข้อสอบคุณอาจถูกขอให้เปรียบเทียบสองตัวแบบที่ระบุมาให้โดยตรง)
รู้หรือไม่? นักคณิตศาสตร์ประกันภัยมักใช้ตัวแบบเหล่านี้ในการกำหนด "เบี้ยประกันพื้นฐาน (Base rates)" ตัวอย่างเช่น การถดถอยเชิงเส้นอาจบอกเราว่า ทุกๆ ปีที่อายุของรถเพิ่มขึ้น ค่าซ่อมแซมต่อปีที่คาดหวังจะเพิ่มขึ้น \(\$50\) ซึ่งเงิน \(\$50\) นั้นก็คือ ค่าสัมประสิทธิ์ความชัน (Slope coefficient) ที่คุณเห็นในผลลัพธ์จาก R นั่นเอง!
สรุปเนื้อหาแบบด่วน
- lm(y ~ x): ใช้สร้างตัวแบบ
- summary(): แสดงสัมประสิทธิ์, p-values และ \(R^2\)
- p-value < 0.05: ตัวแปรนั้นมีนัยสำคัญ
- R-squared: อธิบายว่าตัวแบบครอบคลุมความผันแปรได้เท่าไหร่
- plot(): ตรวจสอบข้อตกลงเบื้องต้นของตัวแบบผ่าน Residuals
- Prediction Interval: กว้างกว่าช่วง Confidence Interval เสมอ