เทคนิคการหาค่าเฉลี่ยเคลื่อนที่
(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)i57911-5
-36-4
-219-3
-21444-2-333969-1126548401775989112654842-3339693
-214444
-2195
-36
3521231429
ถัดไปเป็นการทดลองนำเอาเทคนิคนี้ไปใช้ในการปรับเรียบข้อมูลที่ได้นำมาเป็นตัวอย่างก่อนหน้านี้ในตอนที่
๑ ของเรื่องนี้ ("การคำนวณเชิงตัวเลข (๒๐) การปรับเรียบ (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
หรือความละเอียดของจุดข้อมูลที่วัดเมื่อเทียบกับขนาดของพีคที่ต้องการมอง
และไม่มีวิธีใดที่เหมาะสมกับทุกกรณี
และการแปลผลให้ถูกต้องนั้นใช่แต่จะดูเพียงแค่ผลที่ผ่านกระบวนการปรับแต่งแล้ว
แต่ยังควรต้องตรวจพิจารณาดูข้อมูลดิบด้วยว่าสิ่งที่มองหานั้นมีอยู่หรือไม่
เพราะกระบวนการปรับแต่งทำได้ทั้งทำให้สิ่งที่มีอยู่นั้นหายไป
และเกิดสิ่งที่ไม่มีอยู่จริงขึ้นมา
ไม่มีความคิดเห็น:
แสดงความคิดเห็น