วันอังคารที่ 13 มีนาคม พ.ศ. 2561

การคำนวณเชิงตัวเลข (๒๒) การปรับเรียบ (Smoothing) ข้อมูล (ตอนที่ ๓) MO Memoir : Tuesday 13 March 2561

เทคนิคการหาค่าเฉลี่ยเคลื่อนที่ (Moving average) ที่นำมาแสดงในสองตอนแรกนั้นจะให้ความสำคัญกับข้อมูล ณ ตำแหน่งที่ต้องการหาค่าและตำแหน่งข้างเคียงในระดับที่เท่ากันหมด แต่ในทางปฏิบัตินั้นก็เป็นไปได้ที่การเฉลี่ยค่านั้นจะให้ความสำคัญกับข้อมูลแต่ละจุดไม่เท่ากัน ใช้ให้ความสำคัญ (หรือถ่วงน้ำหนัก) ให้กับข้อมูล ณ จุดที่ต้องการหาค่ามากเป็นพิเศษ และลดความสำคัญกับจุดที่อยู่ห่างออกไปเรื่อย ๆ
 
Savitzky–Golay filter เป็นเทคนิคหนึ่งในการปรับเรียบข้อมูลที่ประยุกต์ใช้งานได้ง่ายในโปรแกรม spreadsheet เทคนิคนี้มีพื้นฐานจากการใช้ฟังก์ชันพหุนามดีกรีต่ำในการทำ curve fitting จุดที่อยู่เคียงข้างกัน (ดังนั้นดีกรีของฟังก์ชันพหุนามที่ใช้จึงส่งผลต่อค่าน้ำหนักถ่วงของแต่ละจุดที่จะได้ด้วย) ตัวอย่างเช่นข้อมูลค่าถ่วงน้ำหนักในตารางที่ ๑ ได้มาจากการใช้ฟังก์ชันพหุนามดีกรีสองหรือสาม (อ่านเพิ่มเติมได้ที่ https://en.wikipedia.org/wiki/Savitzky-Golay_filter)
 
สมมุติว่าเรามีจุดข้อมูลอยู่ 5 จุดคือ (xi-2, yi-2), (xi-1, yi-1), (xi, yi), (xi+1, yi+1), (xi+2, yi+2) ค่าเฉลี่ยของ y ที่จุด i (หรือ yi,ave) จะคำนวณได้ดังนี้

yi,ave = ((-3)yi-2 + (12)yi-1 + (17)y0 + (12)yi+1 + (-3)yi+2)/(35)

ตารางที่ ๑ ค่าสัมประสิทธิ์ที่ใช้ในการถ่วงน้ำหนักค่าฟังก์ชันที่จุดต่าง ๆ ในกรณีของการเฉลี่ยนโดยใช้จำนวนจุด 5, 7, 9 และ 11 จุด จุด 0 คือจุดที่ต้องการหาค่าเฉลี่ย จุด -1, -2, ... คือจุดที่อยู่ก่อนหน้า และจุด 1, 2, ... คือจุดที่อยู่ถัดไป ตัวเลขแถวล่างสุดคือผลรวมของน้ำหนักถ่วงในหลักนั้น ค่าสัมประสิทธิ์นี้เปลี่ยนแปลงไปได้ ขึ้นอยู่กับดีกรีของฟังก์ชันพหุนามที่ใช้ในการทำ curve fitting


Filter width (2n+1)
i
5
7
9
11
-5



-36
-4


-21
9
-3

-2
14
44
-2
-3
3
39
69
-1
12
6
54
84
0
17
7
59
89
1
12
6
54
84
2
-3
3
39
69
3

-2
14
44
4


-21
9
5



-36

35
21
231
429

ถัดไปเป็นการทดลองนำเอาเทคนิคนี้ไปใช้ในการปรับเรียบข้อมูลที่ได้นำมาเป็นตัวอย่างก่อนหน้านี้ในตอนที่ ๑ ของเรื่องนี้ ("การคำนวณเชิงตัวเลข (๒๐) การปรับเรียบ (Smoothing) ข้อมูล (ตอนที่ ๑)" ที่นำเสนอไปเมื่อวันพฤหัสบดีที่ ๘ มีนาคมที่ผ่านมา) ที่เป็นกรณีของพีคที่มีการกระจายตัวแบบ Gaussian จำนวน 2 พีคด้วยกัน โดยพีคแรกมีศูนย์กลางอยู่ที่ตำแหน่ง x = 2 และแอมพลิจูดเท่ากับ 1.0 พีคที่สองมีศูนย์กลางอยู่ที่ตำแหน่ง x = 4 และแอมพลิจูดเท่ากับ 1.5 กราฟทั้งสองมีค่าครึ่งหนึ่งของความกว้างที่ตำแหน่งครึ่งหนึ่งของความสูงสูงสุดเท่ากับ 1 หน่วย (hwhm - half width at half maximum) ข้อมูลเป็นการจำลองการวัดที่กระทำโดยมีช่วงระยะห่างระหว่างจุดข้อมูล Δx = 0.05 โดยกรณีแรกเป็นการจำลองการวัด 2 ครั้ง โดยที่แต่ละจุด x จะให้มี noise ที่เป็นบวก 1 ครั้งและ noise ที่เป็นลบ 1 ครั้ง แล้วนำค่าทั้งสองมาเฉลี่ยเป็นค่า y (เส้น (S + N) ในรูปที่ ๑ (บน)) กรณีที่สองเป็นการจำลองการวัด 10 ครั้ง โดยที่แต่ละจุด x จะให้มี noise ที่เป็นบวก 5 ครั้งและ noise ที่เป็นลบ 5 ครั้ง แล้วนำค่าทั้งสองมาเฉลี่ยเป็นค่า y (เส้น (S + N) ในรูปที่ ๑ (ล่าง)) แล้วทำการปรับเรียบข้อมูลด้วยการใช้จุดจำนวน 5, 7 และ 9 จุด (เส้น 5 pt, 7 pt และ 9 pt ตามลำดับ)
 
รูปที่ ๒ เป็นกราฟเดียวกับรูปที่ ๒ เพียงแต่ลดระยะ Δx เหลือเพียง 0.02 รูปบนเป็นแบบจำลองของการวัดเฉลี่ย 2 ครั้ง ส่วนรูปล่างเป็นแบบจำลองของการวัดเฉลี่ย 10 ครั้ง
 
ในกรณีนี้ถ้าเปรียบเทียบผลที่ได้จากเทคนิคนี้เทียบกับผลที่ได้จากเทคนิคค่าเฉลี่ยเคลื่อนที่ (ดูตอนที่ (๑)) จะเห็นว่าเทคนิคค่าเฉลี่ยเคลื่อนที่นั้นให้ผลการปรับเรียบที่ดีกว่า นอกจากนี้ยังพบว่ายังอาจให้การแปลผลที่ผิดไปได้ เช่นพีคที่ปรากฏให้เห็นเด่นชัดในหลาย ๆ ตำแหน่ง (เช่นตรงตำแหน่งลูกศรสีแดงชี้ในรูปที่ ๑ (บน)) ที่อาจทำให้ตีความออกไปว่าเป็นตำแหน่งของพีคที่แคบและสูง ทั้ง ๆ ที่ถ้าพิจารณาจากเส้นสัญญาณที่มี noise (S + N) แล้วจะเห็นว่าตรงนั้นเป็นเพียงแค่ noise ที่มีความแรงแค่นั้น เพียงแต่การปรับเรียบข้อมูลนั้นทำให้ noise ของจุดที่อยู่เคียงข้างนั้นลดลงไปในสัดส่วนที่มากกว่า เลยทำให้ตำแหน่ง noise ที่มีความแรงนั้นโดดเด่นชัดขึ้นจนดูเหมือนพีค


รูปที่ ๑ เส้นกราฟสีน้ำเงินล่างสุด (Signal) คือค่าสัญญาณที่ไม่มีสัญญาณรบกวน เส้นกราฟสีส้มที่อยู่ถัดไป (S + N) คือสัญญาณที่มีสัญญาณรบกวน (กราฟสีน้ำเงิน + noise) เส้นกราฟ 5pt, 7 pt และ 9 pt ได้จากการนำเอาค่า (S + N) นั้นไปทำการปรับเรียบด้วยการใช้จุดข้อมูล 5, 7 และ 9 จุดตามลำดับ รูปบนเป็นกรณีของการจำลองค่าการวัด 2 ครั้ง ส่วนรูปร่างเป็นกรณีของการจำลองค่าการวัด 10 ครั้ง ในที่นี้แต่ละจุด x ห่างกัน 0.05 หน่วย กราฟแต่ละเส้นมีการขยับขึ้นเพื่อไม่ให้ซ้อนทับกัน
  
รูปที่ ๒ เส้นกราฟสีน้ำเงินล่างสุด (Signal) คือค่าสัญญาณที่ไม่มีสัญญาณรบกวน เส้นกราฟสีส้มที่อยู่ถัดไป (S + N) คือสัญญาณที่มีสัญญาณรบกวน (กราฟสีน้ำเงิน + noise) เส้นกราฟ 5pt, 7 pt และ 9 pt ได้จากการนำเอาค่า (S + N) นั้นไปทำการปรับเรียบด้วยการใช้จุดข้อมูล 5, 7 และ 9 จุดตามลำดับ รูปบนเป็นกรณีของการจำลองค่าการวัด 10 ครั้ง ส่วนรูปร่างเป็นกรณีของการจำลองค่าการวัด 10 ครั้ง ในที่นี้แต่ละจุด x ห่างกัน 0.02 หน่วย กราฟแต่ละเส้นมีการขยับขึ้นเพื่อไม่ให้ซ้อนทับกัน
  
รูปที่ ๓ เป็นการนำเอาข้อมูลที่เคยแสดงไว้ในตอนที่ ๒ ของเรื่องนี้ ("การคำนวณเชิงตัวเลข (๒๑) การปรับเรียบ (Smoothing) ข้อมูล (ตอนที่ ๒)" ที่นำเสนอไปเมื่อวันเสาร์ที่ ๑๐ มีนาคมที่ผ่านมา) ที่เป็นกรณีของพีคที่มีการกระจายตัวแบบ Gaussian จำนวน 2 พีคด้วยกัน โดยพีคแรกมีศูนย์กลางอยู่ที่ตำแหน่ง x = 1.97 และแอมพลิจูดเท่ากับ 1.0 พีคที่สองมีศูนย์กลางอยู่ที่ตำแหน่ง x = 4 และแอมพลิจูดเท่ากับ 1 กราฟทั้งสองมีค่าครึ่งหนึ่งของความกว้างที่ตำแหน่งครึ่งหนึ่งของความสูงสูงสุดเท่ากับ 0.03 หน่วย (hwhm - half width at half maximum) ข้อมูลเป็นการจำลองการวัดที่กระทำโดยมีช่วงระยะห่างระหว่างจุดข้อมูล Δx = 0.05 โดยกรณีแรกเป็นการจำลองการวัด 2 ครั้ง โดยที่แต่ละจุด x จะให้มี noise ที่เป็นบวก 1 ครั้งและ noise ที่เป็นลบ 1 ครั้ง แล้วนำค่าทั้งสองมาเฉลี่ยเป็นค่า y (เส้น (S + N) ในรูปที่ ๓ (บน)) กรณีที่สองเป็นการจำลองการวัด 10 ครั้ง โดยที่แต่ละจุด x จะให้มี noise ที่เป็นบวก 5 ครั้งและ noise ที่เป็นลบ 5 ครั้ง แล้วนำค่าทั้งสองมาเฉลี่ยเป็นค่า y (เส้น (S + N) ในรูปที่ ๓ (ล่าง))
 
รูปที่ ๔ เป็นกราฟเดียวกับรูปที่ ๓ เพียงแต่ลดระยะ Δx เหลือเพียง 0.02 รูปบนเป็นแบบจำลองของการวัดเฉลี่ย 2 ครั้ง ส่วนรูปล่างเป็นแบบจำลองของการวัดเฉลี่ย 10 ครั้ง
  

รูปที่ ๓ เส้นกราฟสีน้ำเงินล่างสุด (Signal) คือค่าสัญญาณที่ไม่มีสัญญาณรบกวน เส้นกราฟสีส้มที่อยู่ถัดไป (S + N) คือสัญญาณที่มีสัญญาณรบกวน (กราฟสีน้ำเงิน + noise) เส้นกราฟ 5pt, 7 pt และ 9 pt ได้จากการนำเอาค่า (S + N) นั้นไปทำการปรับเรียบด้วยการใช้จุดข้อมูล 5, 7 และ 9 จุดตามลำดับ รูปบนเป็นกรณีของการจำลองค่าการวัด 2 ครั้ง ส่วนรูปร่างเป็นกรณีของการจำลองค่าการวัด 10 ครั้ง ในที่นี้แต่ละจุด x ห่างกัน 0.05 หน่วย กราฟแต่ละเส้นมีการขยับขึ้นเพื่อไม่ให้ซ้อนทับกัน

รูปที่ ๔ เส้นกราฟสีน้ำเงินล่างสุด (Signal) คือค่าสัญญาณที่ไม่มีสัญญาณรบกวน เส้นกราฟสีส้มที่อยู่ถัดไป (S + N) คือสัญญาณที่มีสัญญาณรบกวน (กราฟสีน้ำเงิน + noise) เส้นกราฟ 5pt, 7 pt และ 9 pt ได้จากการนำเอาค่า (S + N) นั้นไปทำการปรับเรียบด้วยการใช้จุดข้อมูล 5, 7 และ 9 จุดตามลำดับ รูปบนเป็นกรณีของการจำลองค่าการวัด 10 ครั้ง ส่วนรูปร่างเป็นกรณีของการจำลองค่าการวัด 10 ครั้ง ในที่นี้แต่ละจุด x ห่างกัน 0.02 หน่วย กราฟแต่ละเส้นมีการขยับขึ้นเพื่อไม่ให้ซ้อนทับกัน
 
ในกรณีนี้ที่เป็นพีคที่แคบและสูง ถ้าเปรียบเทียบผลที่ได้จากเทคนิคนี้เทียบกับผลที่ได้จากเทคนิคค่าเฉลี่ยเคลื่อนที่ (ดูตอนที่ (๒)) จะเห็นว่าเทคนิคนี้ให้ผลการปรับเรียบที่ดีกว่า คือยังรักษาพีคที่ตำแหน่ง x = 1.97 เอาไว้ได้ แต่ในกรณีของการใช้ค่า Δx ที่หยาบเกินไปนั้น (รูปที่ ๓) ก็มีปัญหาที่การปรับเรียบทำให้ noise ในบางตำแหน่งดูเหมือนพีคขึ้นมาได้เช่นกัน แต่ในกรณีของการใช้ค่า Δx ที่เล็กเพียงพอนั้น (คือเล็กกว่าความกว้างของพีคดังเช่นในรูปที่ ๔) จะเห็นว่าความสูงของพีคหลังการปรับเรียบนั้นแม้ว่าจะลดต่ำลง แต่ก็ไม่หายไปมากเหมือนกรณีของการใช้เทคนิคค่าเฉลี่ยเคลื่อนที่ แต่สิ่งหนึ่งที่เกิดขึ้นเหมือนกันก็คือ พีคมีแนวโน้มที่จะ "กว้างขึ้น"

แต่อย่าไปด่วนสรุปนะครับว่า ไม่ว่าจะเป็นกราฟหน้าตาอย่างไร ผลต้องออกมาเป็นแบบนี้เสมอไป

รูปที่ ๕ เป็นการทดลองนำเอาข้อมูลจากการวิเคราะห์ด้วยเครื่อง XPS ของตัวเร่งปฏิกิริยา MoO3-MgO/TiO2 ที่ได้นำมาแสดงไว้ก่อนหน้านี้ใน Memoir สัปดาห์ที่แล้ว (วันอังคารที่ ๖ มีนาคม ๒๕๖๐ เรื่อง "รู้ทันนักวิจัย (๙) อยากให้มีพีคก็จัดให้ได้") ตรงนี้อยากให้ลองพิจารณาเปรียบเทียบเอาเองนำครับว่ามันควรจะมีพีคหรือไม่


รูปที่ ๕ ข้อมูลจากการวัดด้วยเครื่อง XPS ของตัวเร่งปฏิกิริยา MoO3-MgO/TiO2 บริเวณพีคไนโตรเจนเมื่อนำมาปรับเรียบด้วยเทคนิค (บน) ค่าเฉลี่ยเคลื่อนที่ และ (ล่าง) Savitzky–Golay filter

จากตัวอย่างที่ยกมาให้เห็นใน ๓ ตอนนี้คงจะพอมองเห็นกันแล้วว่า ด้วยข้อมูลรูปแบบเดียวกัน แต่ใช้เทคนิคทางคณิตศาสตร์ที่แตกต่างกัน ก็สามารถให้ผลที่แตกต่างกันไปได้ นอกจากนี้ผลที่แตกต่างกันนี้ยังขึ้นอยู่กับการได้มาของข้อมูล ไม่ว่าจะเป็นจำนวนครั้งการวัดซ้ำเพื่อลดขนาดของ noise หรือความละเอียดของจุดข้อมูลที่วัดเมื่อเทียบกับขนาดของพีคที่ต้องการมอง และไม่มีวิธีใดที่เหมาะสมกับทุกกรณี และการแปลผลให้ถูกต้องนั้นใช่แต่จะดูเพียงแค่ผลที่ผ่านกระบวนการปรับแต่งแล้ว แต่ยังควรต้องตรวจพิจารณาดูข้อมูลดิบด้วยว่าสิ่งที่มองหานั้นมีอยู่หรือไม่ เพราะกระบวนการปรับแต่งทำได้ทั้งทำให้สิ่งที่มีอยู่นั้นหายไป และเกิดสิ่งที่ไม่มีอยู่จริงขึ้นมา

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