วันพฤหัสบดีที่ 18 มีนาคม พ.ศ. 2553

การหาความสัมพันธ์ระหว่างตัวแปร x และ y MO Memoir : Thursday 18 March 2553

เมื่อเที่ยงวันพุธที่ผ่านมา มีโทรศัพท์จากวิศวกรของบริษัทขุดเจาะน้ำมันแห่งหนึ่งโทรมาถามว่า เขามีข้อมูลอยู่ชุดหนึ่งที่ค่า y เป็นฟังก์ชันของตัวแปร 3 ตัวแปรในรูปแบบ

y = kAaBbCc

เมื่อ y คือตัวแปรตาม k คือค่าคงที่ A B และ C เป็นตัวแปรอิสระ และ a b และ c คือเลขยกกำลังของตัวแปร A B และ C ตามลำดับ

คำถามของเขาคือจะหาค่าเลขยกกำลัง a b และ c ได้อย่างไร

ผมก็ตอบเขาไปว่า ก็ลองหาชุดข้อมูลที่มีค่า B และ C คงที่ แล้วไปเขียนกราฟระหว่าง y กับ A บนแกน log-log ความชันของกราฟที่ได้ก็คือค่า a จากนั้นก็หาชุดข้อมูลที่มีคา A และ C คงที่ แล้วไปเขียนกราฟระหว่าง y กับ B บนแกน log-log ความชันของกราฟที่ได้ก็คือค่า b การหาค่า c ก็ทำแบบเดียวกัน


อันที่จริงแล้วในสมัยที่เขาเป็นนิสิต ผมเคยสอนเขาเรื่องนี้ไว้ในเรื่องการประมาณค่าในช่วง (interpolation) ในวิชาคณิตศาสตร์ประยุกต์สำหรับวิศวกรรมเคมี ๑

เมื่อมีคำถามนี้มาก็เลยขอนำเรื่องนี้มาขยายความเพิ่มเติมพร้อมยกตัวอย่างประกอบ

เมื่อคุณมีข้อมูลระหว่างตัวแปรอิสระ x และตัวแปรตาม y (เช่นข้อมูลที่มาจากการวัดต่าง ๆ) ถ้าเราทราบว่าในปรากฏการณ์ที่เราศึกษาอยู่นั้น ตัวแปร x และ y มีความสัมพันธ์กันในรูปแบบฟังก์ชันใด การสร้างสมการความสัมพันธ์ระหว่างตัวแปร x และ y ก็ไม่ใช่เรื่องยาก

แต่ถ้าเราไม่รู้ว่าตัวแปร x และ y มีความสัมพันธ์กันในรูปแบบใด แล้วเราจะรู้ได้อย่างไรล่ะว่าควรใช้ฟังก์ชันใดในการสร้างความสัมพันธ์ระหว่างตัวแปร x และ y


ฟังก์ชันความสัมพันธ์ระหว่างตัวแปร x และ y มักจะประกอบด้วยรูปแบบพื้นฐาน 3 รูปแบบดังนี้คือ

1. ฟังก์ชันตรีโกณมิติ (Trigonometric function)

2. ฟังก์ชันพหุนาม (Polynomial function) และ

3. ฟังก์ชันชี้กำลัง (Exponential function)


ในงานของเรานั้น ความสัมพันธ์ระหว่างตัวแปร x และ y มักจะอยู่ในรูปของฟังก์ชันพหุนามหรือฟังก์ชันชี้กำลังเป็นหลัก ฟังก์ชันชี้กำลังและฟังก์ชันพหุนาม (ที่ไม่ใช่กำลัง 1) จะให้กราฟที่มีลักษณะเป็นเส้นโค้ง จึงมักทำให้เกิดปัญหาว่าเส้นโค้งนั้นเป็นโค้งที่เกิดจากฟังก์ชันชี้กำลังหรือฟังก์ชันพหุนาม

เราสามารถตอบข้อสงสัยดังกล่าวนั้นได้โดยการนำค่า x และ y มาเขียนบนกราฟที่ใช้สเกลแบบ log-log หรือ linear-log แล้วดูว่าเส้นกราฟที่ได้เป็นเส้นตรงหรือไม่

เพื่อให้เห็นภาพ เราลองมาดูตัวอย่างแต่ละตัวอย่างกัน


ตัวอย่างที่ 1 กรณีของสมการฟังก์ชันพหุนามกำลัง 1

รูปที่ 1 เป็นกราฟของฟังก์ชันพหุนามกำลัง 1 จำนวน 3 ฟังก์ชันคือ

y = x, y = 3x และ y = 3x + 10

ซึ่งเมื่อนำฟังก์ชันทั้ง 3 ไปเขียนกราฟบนสเกล linear-linear (รูปที่ 1 บน) จะเห็นว่าจะได้กราฟเป็นเส้นตรงทั้ง 3 เส้น โดยความชันของกราฟจะเท่ากับตัวเลขที่คูณอยู่กับตัวแปร x

แต่ถ้านำฟังก์ชันทั้ง 3 ไปเขียนกราฟบนสเกล log-log จะเห็นว่าฟังก์ชัน y = x และ y = 3x ให้กราฟเป็นเส้นตรงที่มีความชันเท่ากับ 1 เท่ากัน (ความชันไม่ขึ้นกับตัวเลขที่คูณอยู่กับตัวแปร x แต่ขึ้นอยู่กับเลขยกกำลังของตัวแปร x) ส่วนกราฟ y = 3x + 10 นั้น ช่วงที่ x มีค่าน้อย ๆ จะให้กราฟที่มีความชันเท่ากับ 0 แต่เมื่อ x มีค่ามากขึ้นจะให้กราฟที่มีความชันเท่ากับ 1 ซึ่งคือเลขยกกำลังของตัวแปร x

(การคำนวณค่าความชันบนสเกล log ให้ถือว่าระยะจาก 0.1-1, 1-10, 10-100,... ต่างมีค่าเท่ากับ 1 หน่วย)

สาเหตุที่ฟังก์ชัน y = 3x + 10 ให้กราฟที่ค่อย ๆ โค้งขึ้นในช่วงแรกเป็นเพราะที่ค่า x ใกล้ 0 นั้น ค่าของ y จะถูกควบคุมด้วยค่าคงที่ 10 (คือ y มีค่าประมาณ 10 โดยพจน์ 3x เป็นแค่ตัวประกอบ) แต่เมื่อค่า x เพิ่มมากขึ้นเรื่อย ๆ พจน์ 3x จะเริ่มเด่นกว่าพจน์ค่าคงที่ 10 ทำให้การเปลี่ยนแปลงค่า y ถูกกำหนดด้วยพจน์ 3x (โดยที่ 10 เป็นแค่ตัวประกอบ)


รูปที่ 1 กราฟฟังก์ชันพหุนามกำลัง 1 (รูปบน) สเกล linear-linear (ล่าง) สเกล log-log


ตัวอย่างที่ 2 กรณีของสมการฟังก์ชันพหุนามกำลัง 3

รูปที่ 2 เป็นกราฟของฟังก์ชันพหุนามกำลัง 3 จำนวน 3 ฟังก์ชันคือ

y = x3, y = 0.1x3 + 1 และ y = 0.1x3 + x2 + 3

จะเห็นว่าเมื่อนำกราฟทั้ง 3 ไปเขียนบนสเกล linear-linear จะได้กราฟที่มีเส้นโค้งทั้ง 3 เส้น

แต่ถ้านำกราฟทั้ง 3 ไปเขียนบนสเกล log-log จะพบว่าฟังก์ชัน y = x3 จะให้กราฟมีลักษณะเป็นเส้นตรงที่มีความชันเท่ากับ 3 ส่วนฟังก์ชัน y = 0.1x3 + 1 และ y = 0.1x3 + x2 + 3 จะให้กราฟที่ค่อย ๆ โค้งขึ้นและลู่เข้าหากราฟของฟังก์ชัน y = x3 ที่ความชันเท่ากับ 3 (ความชันเท่ากับเลขยกกำลังสูงสุดของตัวแปร x และไม่ขึ้นอยู่กับตัวเลขที่คูณอยู่ข้างหน้าพจน์ x3)

สาเหตุที่ฟังก์ชัน y = 0.1x3 + 1 และ y = 0.1x3 + x2 + 3 ให้กราฟที่ค่อย ๆ มีความชันเพิ่มขึ้นนั้นก็เพราะในช่วงที่ x มีค่าน้อย ๆ ค่า y ถูกกำหนดโดยค่าคงที่ 1 (ในกรณีของ y = 0.1x3 + 1) หรือ x2 + 3 (ในกรณีของ y = 0.1x3 + x2 + 3) แต่เมื่อ x มีค่ามากขึ้นเรื่อย ๆ ค่าของพจน์ x3 จะบดบังค่าของพจน์ที่มีเลขยกกำลังต่ำกว่า



รูปที่ 2 กราฟฟังก์ชันพหุนามกำลัง 3 (รูปบน) สเกล linear-linear (ล่าง) สเกล log-log


ตัวอย่างที่ 3 กรณีของสมการฟังก์ชันชี้กำลัง

รูปที่ 3 เป็นกราฟของฟังก์ชันชี้กำลังและฟังก์ชันพหุนามจำนวน 3 ฟังก์ชันดังนี้

y = 20.2x y = x2 และ y = 20.2x + x2

เมื่อนำฟังก์ชันทั้ง 3 ไปเขียนบนกราฟสเกล linear-linear จะพบว่าไม่สามารถบอกได้ว่าเส้นโค้งที่ได้นั้นควรมีความสัมพันธ์แบบฟังก์ชันพหุนามหรือฟังก์ชันชี้กำลัง

แต่เมื่อนำไปเขียนบนกราฟสเกล linear-log (แกน x เป็นสเกล linear ส่วนแกน y เป็นสเกล log) จะพบว่าฟังก์ชัน y = 20.2x ให้กราฟที่ออกมาเป็นเส้นตรง ส่วนฟังก์ชัน y = 20.2x + x2 นั้นจะให้กราฟที่เป็นเส้นโค้งเมื่อ x มีค่าน้อย แต่เมื่อ x มีค่ามากขึ้นจนพจน์ 20.2x เด่นกว่าพจน์ x2 มากก็จะเห็นกราฟเกือบเป็นเส้นตรง


รูปที่ 3 กราฟฟังก์ชันชี้กำลังและฟังก์ชันพหุนาม (รูปบน) สเกล linear-linear (ล่าง) สเกล linear-log


แต่จะว่าไปแล้วจากกราฟก็เห็น ได้ชัดว่าการแยกว่ากราฟเส้นสีแดงและเส้นสีเขียวเส้นไหนมีพจน์ชี้กำลัง (exponential) อยู่นั้นเป็นเรื่อง ยาก แต่ถ้าเราเอาฟังก์ชันทั้ง 3 ไปเขียนใหม่บนกราฟสเกล log-log ดังแสดงในรูปที่ 4 จะเห็นว่าฟังก์ชัน y = x2 นั้นให้กราฟที่เป็นเส้นตรงตลอด ส่วนฟังก์ชัน y = 20.2x + x2 นั้นจะให้กราฟที่มีลักษณะโค้ง

จาก รูปที่ 4 จะเห็นว่า ปัญหาจะเกิดขึ้นได้ถ้าเรามีข้อมูลอยู่ในช่วง x จาก 9-200 ซึ่งถ้าหากความสัมพันธ์ที่แท้จริงระหว่าง x และ y เป็นฟังก์ชันชี้กำลัง แต่เนื่องจากเราไม่รู้มาก่อนและทดลองนำข้อมูลไปเขียนบนกราฟสเกล log-log ก็จะเห็นว่าได้เส้นตรงออก มา และทำให้เราเข้าใจผิดได้ว่าความสัมพันธ์ระหว่าง x และ y นั้นเป็นแบบฟังก์ชันพหุนาม เรื่องทำนองนี้เคยกล่าวไว้ครั้งหนึ่งแล้วในบันทึกฉบับวันอาทิตย์ที่ ๔ ตุลาคม ๒๕๕๒ เรื่อง "ตัว เลขมันสวยแต่เชื่อไม่ได้"


รูปที่ 4 กราฟฟังก์ชันชี้กำลังและฟังก์ชันพหุนามบนสเกล linear-log


ในกรณีที่ฟังก์ชันซับซ้อนวุ่นวายมาก เทคนิคที่กล่าวมาข้างต้นอาจใช้ได้ไม่ดี สุดท้ายก็คงต้องใช้วิธีการพวก optimisation ในการหาค่าพารามิเตอร์ โดยกำหนดให้ objective function คือผลรวมความผิดพลาดระหว่างค่าที่คำนวณได้กับข้อมูลที่มีอยู่นั้น และหาค่าพารามิเตอร์ที่ทำให้ objective function มีค่าน้อยที่สุด

ไม่มีความคิดเห็น: