กลับสู่รากเหง้า เพื่อการเติบโต (2)


มีกรณีตัวอย่างที่ผมเจอกับตัวเอง

งานวิจัยผมมักต้องใช้ regression อยู่บ่อย ๆ

แต่ผมเริ่มวิเคราะห์ข้อมูลตั้งแต่ยุคคอมพิวเตอร์ไม่ใช้ฮาร์ดดิสก์ และซอฟท์แวร์สถิติยังไม่แพร่หลายมาก

อย่ากระนั้นเลย เขียนโปรแกรมวิเคราะห์ข้อมูลซะเองเลย

linear regression ไม่มีปัญหา กางตำราได้ แต่ nonlinear regression นี่สิ เหนื่อยหน่อย เพราะสมัยนั้นยังไม่รู้จัก algorithm ดี ๆ คำนวณกันที ต้องรอกันเงกทั้งคืน

ตอนนั้นผมตะลุยอ่าน ตะลุยลองกับแนวคิดต่าง ๆ สมัยนั้นไฟแรง เขียนโปรแกรมได้ทั้งวันทั้งคืน

มีข้อมูลอยู่กรณีหนึ่ง ที่ทำให้ผมเสียเวลาอยู่หลายปี หา model ที่ดีมาอธิบาย เพื่อสร้างกราฟคู่มือปฎิบัติงานในการเตรียมตำรับ

หา model ได้ ปรากฎว่ายังไม่ดีพอ เพราะแม้ model เข้ากันดีกับข้อมูล แต่ผลการทำ regression ก็ไม่ปลอดภัยที่จะนำไปใช้งาน

ขอขยายความปูมหลังของเรื่องนะครับ

ปรกติเวลาเราทำ regression พวงข้อมูลชุดหนึ่ง ก็เหมือนเราร้อยด้าย ผ่านกลางพวงข้อมูลนี้ เหมือนเป็นก้านองุ่น ที่มีผลองุ่น (ข้อมูลดิบ) เกาะเป็นพวงรอบก้าน (ที่ทำนายตาม model)

ผลคือ ก้านที่ว่านี้ ทำหน้าที่เป็นตัวผ่าครึ่งกลุ่มข้อมูล ำให้มีข้อมูลประมาณครึ่งหนึ่ง ที่อยู่เหนือก้าน และอีกประมาณครึ่งที่เหลือ จะอยู่ใต้ก้าน

พูดง่าย ๆ คือ จะทำนายแบบ overestimate ไปราว 50 % และ underestimate ไปราว 50 % (พูดง่าย ๆ คือ เป็น unbias estimator ที่ทำนายผิด ไม่ขาด ก็เกิน ด้วยความเป็นไปได้ 50-50

แต่ในการประยุกต์ใช้ บางครั้ง เราไม่ต้องการการทำนายที่ผิดถึงครึ่ง-ครึ่งแบบนี้

ยกตัวอย่าง การทำนายวันหมดอายุของยา อย. กำหนดว่า ทำนายผิดทางทฤษฎีได้เพียง 10 % โดยต้องทำนายให้เอียงไปข้างที่จะคุ้มครองผู้บริโภค

นั่นก็คือ ต้องนำ ช่วงความเชื่อมั่น มาใช้ แทนที่จะเป็นการทำนายตาม model ตรงไปตรงมา

ทีนี้ ผมเจอกรณีที่เข้มงวดกว่านั้นอีก คือ งานวิจัยต้องนำผลไปใช้โดยถ้าทำนายผิด จะมีคนตาย

นั่นคือ ผิด 50-50 นี่ ใช้ไม่ได้อย่างสิ้นเชิง

ผิดแบบ 10-90 ก็เกือบจะพอใช้ได้ แต่ก็ยังไม่ดีพอ

เรื่องยังไม่จบแค่นี้  ยังมีเงื่อนไขอื่นมากระหนาบอีกหลายประการ เช่น ต้องให้เส้น regression อยู่ชิดข้อมูลให้มากที่สุด

ตอนแรกผมใช้ best fit criteria คือ minimize sum of square error (minimize SSE)
ตัวนิยามนี้ ถือว่า error ก็คือ error มีศักดิ์ศรีเท่ากันหมด ทำให้ minimize SSE โดยไม่แยกแยะ

ผมแก้ปัญหากรณีนี้ โดยลงไปดูนิยาม best fit ตั้งแต่ระดับรากเหง้า ว่าพอจะขยับขยายอะไรได้บ้าง

มาลงเอยกับการเปลี่ยน best fit criteria ให้เป็น minimize SSE เฉพาะ error ด้านที่ทำนายผิดแล้วไม่ก่อปัญหา (ทำนายว่าเกิดอันตราย แต่จริง ๆ แล้วไม่เป็นไร) และให้ SSE ฟากที่ทำนายผิดแล้วก่อปัญหา ต้องมีค่าเป็นศูนย์ (ให้แน่ใจว่า ไม่มีกรณีที่ทำนายว่าปลอดภัย แต่ทำตามแล้วจะเกิดอันตราย)

ลงตัวครับ สร้าง multiple criteria ขึ้นมา แล้วแก้โจทย์ nonlinear optimization with constraint ซะหน่อย  ให้เครื่องรันข้ามวันข้ามคืนซะหน่อย  เขียนโปรแกรมวิเคราะห์ข้อมูลในภาษาเบสิก

...ถอยหลังก่อนกระโดดซะไกลเชียว (ฮา) 

แต่ได้เป็นกราฟที่ลงตัว และตรวจสอบทานกับข้อมูลดิบ พบว่า การทำนายจะตีเส้นกรอบล้อมข้อมูลดิบได้ โดยทำนายได้แม่นพอสมควร และไม่มีกรณีที่ทำนายผิดแล้วเกิดอันตราย ตามต้องการ

เพื่อให้นึกภาพออก ผมขอสมมติข้อมูลขึ้นมาชุดหนึ่ง แล้วเขียนกราฟ แล้วลองทำตามที่ว่ามา (แต่เส้นต่าง ๆ ที่แสดงไว้ ผมวาดมือเอา เพื่อให้นึกภาพออกเท่านั้น รูปเส้น และสเกลต่าง ๆ อาจไม่ตรงความจริง) 

graph
เส้นดำ ผ่านกลางข้อมูล เป็นการทำ regression ตามปรกติ

เส้นประสีน้ำเงิน เป็น lower bound ของ 90% C.I.

ส่วนเส้นแดงล่าง เป็นเส้นที่ได้จากการทำ regression โดยใช้ objective function ที่ต่างออกไปจาก SSE ตามปรกติ 

สิ่งที่ผมเรียนรู้จากกรณีนี้คือ ถ้าผมผูกติดกับโปรแกรมสำเร็จรูป  เขาคงไม่เปิด option ให้ผมสร้างนิยาม objective function ใหม่ตามใจชอบได้แบบนี้

แต่เขียนโปรแกรมเองได้ ไม่สำคัญเท่ากับ การที่เข้าใจเหตุผลว่า ทำ minimize SSE ไปทำไม

เพราะประวัติศาสตร์สอนว่า SSE เป็นเพียงรูปแบบของ objective function ที่อำนวยความสะดวกได้ดีที่สุดในการคำนวณ ไม่ใช่เกณฑ์ตัดสินที่ดีที่สุด การปรับแต่ง objective function จึงไม่ใช่เรื่องแปลก ดังเช่นมีผู้ใช้วิธี weighted least square หรือ bayes objective function ซึ่งฉีกแนวออกไปจากการใช้ SSE ตามปรกติ

ในเมื่อเป็นการอำนวยความสะดวก ถ้าผมจะไม่ใช้ ก็ย่อมไม่ใช่เรื่องแปลก

ก็เหมือนกรณีที่เรามีข้อมูลที่ เละ ๆ หน่อย แล้วเราหันมาใช้ median แทน mean นั่นแหละ

นี่ก็เป็นกรณีตัวอย่างเล็ก ๆ รายการหนึ่ง ว่ารู้ซอกแซกในมิติประวัติศาสตร์มาก ก็มีประโยชน์มาก เพราะทำให้เราเห็นทางหนีทีไล่ชัด ไม่โดนมัดมือมัดเท้าจนเกินไป

 

คำสำคัญ (Tags): #regression#พื้นฐาน
หมายเลขบันทึก: 119115เขียนเมื่อ 12 สิงหาคม 2007 23:28 น. ()แก้ไขเมื่อ 6 กันยายน 2013 18:14 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (0)

ไม่มีความเห็น

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท