แสดงบทความที่มีป้ายกำกับ Smoothing แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Smoothing แสดงบทความทั้งหมด

วันอังคารที่ 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 หรือความละเอียดของจุดข้อมูลที่วัดเมื่อเทียบกับขนาดของพีคที่ต้องการมอง และไม่มีวิธีใดที่เหมาะสมกับทุกกรณี และการแปลผลให้ถูกต้องนั้นใช่แต่จะดูเพียงแค่ผลที่ผ่านกระบวนการปรับแต่งแล้ว แต่ยังควรต้องตรวจพิจารณาดูข้อมูลดิบด้วยว่าสิ่งที่มองหานั้นมีอยู่หรือไม่ เพราะกระบวนการปรับแต่งทำได้ทั้งทำให้สิ่งที่มีอยู่นั้นหายไป และเกิดสิ่งที่ไม่มีอยู่จริงขึ้นมา

วันเสาร์ที่ 10 มีนาคม พ.ศ. 2561

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

การเปลี่ยนแปลงส่วนใหญ่ในธรรมชาติเรียกได้ว่าเป็นการเปลี่ยนแปลงแบบต่อเนื่อง กล่าวคือมีค่า y ได้ทุก ๆ ค่า x และอุปกรณ์วัดก็มักจะอ่านการเปลี่ยนแปลงนั้นได้อย่างต่อเนื่อง
 
แต่เมื่อนำเอาอุปกรณ์ดิจิตอลมาใช้ในการเก็บข้อมูล สิ่งที่เกิดขึ้นก็คืออุปกรณ์ดิจิตอลจะทำการอ่านค่าที่อุปกรณ์วัดนั้นวัดได้ "อย่างเป็นจังหวะ" กล่าวคือเก็บข้อมูลเป็นจุดข้อมูล (x, y) ที่แต่ละจุดนั้นห่างกันเป็นระยะ Δx แต่เมื่อเราต้องการวิเคราะห์ผล เราก็มักจะนำเอาข้อมูลที่เป็นจุดแต่ละจุดนั้นมาสร้างเป็นเส้นกราฟที่ต่อเนื่อง และปัญหาสำคัญก็อยู่ตรงนี้ควรเลือกใช้ค่า Δx ที่มีขนาดเท่าใด ค่า Δx ที่มีขนาดที่ไม่ใหญ่เกินไปจะทำให้เมื่อนำจุดข้อมูลมาสร้างเป็นกราฟจะได้เส้นกราฟที่ผิดเพี้ยนไปจากความจริง และค่า Δx ที่มีขนาดเล็กเกินไปอาจทำให้อุปกรณ์อ่านค่านั้น (ที่ปรกติอาจต้องอ่านค่าจากอุปกรณ์วัดหลายตัว) อ่านค่าไม่ทันและสิ้นเปลืองหน่วยความจำในการเก็บข้อมูล
 
ขนาดของ Δx นั้นขึ้นอยู่กับความกว้างของการเปลี่ยนแปลง ความกว้างในที่นี้คือช่วงตั้งแต่ตรวจพบว่าสัญญาณเริ่มมีการเปลี่นแปลงไปจาก base line (เช่นพบจุดเริ่มต้นของการเกิดพีค) จนกระทั่งสัญญาณนั้นกลับมาอยู่ที่ระดับ base line ใหม่ (เช่นพบจุดสิ้นสุดของการเกิดพีค) เช่นในกรณีของสัญญาณที่เป็นพีค ระยะ Δx นั้นต้องแคบพอที่จะให้จำนวนจุดข้อมูลที่มากพอที่จะสามารถสร้างพีคดังกล่าวขึ้นมาได้อย่างถูกต้อง ไม่ว่าพีคนั้นจะเกิดที่ตำแหน่ง x ใดก็ตาม
 
เพื่อให้เห็นภาพจะขอยกตัวอย่างโดยสมมุติว่าได้ทำการวัดค่าสัญญาณ y ในช่วง x ตั้งแต่ 0 ถึง 6 สัญญาณดังกล่าวประกอบด้วยพีคที่มีการกระจายตัวแบบ Gaussian จำนวน 2 พีคด้วยกัน โดยพีคแรกมีศูนย์กลางอยู่ที่ตำแหน่ง x = 1.97 และแอมพลิจูดเท่ากับ 1.0 พีคที่สองมีศูนย์กลางอยู่ที่ตำแหน่ง x = 4 และแอมพลิจูดเท่ากับ 1 พีคทั้งสองมีค่าครึ่งหนึ่งของความกว้างที่ตำแหน่งครึ่งหนึ่งของความสูงสูงสุดเท่ากับ 0.03 หน่วย (hwhm - half width at half maximum) กรณีแรกสุดเป็นการจำลองวัดที่กระทำโดยมีช่วงระยะห่างระหว่างจุดข้อมูล Δx = 0.05 ดังนั้นตำแหน่งของการวัดจะไม่ตรงกับตำแหน่งยอดของพีคที่ x = 1.97 (ที่อยู่ที่ตำแหน่ง x = 1.97 แต่การวัดทำที่ตำแหน่ง x = ..., 1.90, 1.95, 2.00, 2.05, ...) แต่จะตรงกับตำแหน่งยอดของพีคที่ตำแหน่ง x = 4.0 (ที่อยู่ที่ตำแหน่ง x = 4.00 โดยการวัดทำที่ตำแหน่ง x = ..., 3.90, 3.95, 4.00, 4.05, ...) กราฟของสัญญาณคือเส้น Signal สีน้ำเงินในรูปที่ ๑ และ ๒ 
  
ขั้นตอนต่อไปเป็นการจำลองการใส่ noise เข้าไปค่า signal เพื่อสร้างแบบจำลองค่า signal ที่มี noise รบกวน (เส้น S + N) ด้วยการใช้ฟังก์ชันสุ่มตัวเลขแล้วนำตัวเลขที่สุ่มได้นั้นบวกเข้าไปกับค่า singal การสร้างแบบจำลองสัญญาณที่มี noise รบกวนนี้ทดลองทำ 2 กรณีด้วยกัน โดยกรณีแรกเป็นการจำลองการวัด 2 ครั้ง โดยที่แต่ละจุด x จะให้มี noise ที่เป็นบวก 1 ครั้งและ noise ที่เป็นลบ 1 ครั้ง แล้วนำค่าทั้งสองมาเฉลี่ยเป็นค่า y (เส้น (S + N) ในรูปที่ ๑ (บน)) กรณีที่สองเป็นการจำลองการวัด 10 ครั้ง โดยที่แต่ละจุด x จะให้มี noise ที่เป็นบวก 5 ครั้งและ noise ที่เป็นลบ 5 ครั้ง แล้วนำค่าทั้งสองมาเฉลี่ยเป็นค่า y (เส้น (S + N) ในรูปที่ ๒ (ล่าง))
 
ถัดไปจะเป็นการทดลองการปรับเรียบข้อมูล (S + N) ด้วยการใช้จุดข้อมูลเฉลี่ย 5, 7 และ 9 จุด (กราฟเส้น 5 pt, 7 pt และ 9 pt ตามลำดับ) ในที่นี้เพื่อให้เห็นภาพผลการปรับเรียบชัดเจนขึ้นจึงได้ทำการเลี่อนกราฟแต่ละเส้นให้สูงขึ้นไม่ให้ซ้อนทับกับ วิธีการปรับเรียบข้อมูลใช้เทคนิค "ค่าเฉลี่ยเคลื่อนที่ (moving average)" ที่ได้กล่าวไว้เมื่อวันพฤหัสบดีที่ผ่านมา (เรื่อง "การคำนวณเชิงตัวเลข (๒๐) การปรับเรียบ (Smoothing) ข้อมูล (ตอนที่ ๑)")

ลองพิจารณารูปกราฟดูก่อนนะครับว่าเกิดอะไรขึ้น โดยเฉพาะกับ "พีคแรก" ที่ตำแหน่ง x = 1.97

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

รูปที่ ๒ เป็นการคำนวณแบบเดียวกันกับรูปที่ ๑ ต่างกันตรงที่ในกรณีของรูปที่ ๒ นี้ใช้ Δx = 0.02 ซึ่งตำแหน่งพิกัด x ที่ทำการคำนวณก็ยังไม่ตรงกับตำแหน่งยอดพีคของพีคที่ 1 (ที่ x = 1.97) แต่สิ่งที่ได้ก็คือแม้ว่าจะใช้จำนวนจุดที่เฉลี่ยค่าถึง 9 จุด ก็ยังบอกได้ว่าข้อมูลนั้นมี 2 พีคหลัก แต่สิ่งที่ต้องระวังก็คือการเห็นพีคที่เตี้ยลง แต่กว้างขึ้น โดยความกว้างของพีคนั้นจะเพิ่มตามจำนวนจุดข้อมูลที่ใช้เฉลี่ยค่า และถ้านำเอาพีคที่กว้างขึ้นนี้ไปทำ peak deconvolution ก็อาจจะหลงไปได้ว่ามันประกอบด้วยพีคมากกว่า ๑ พีคเหลื่อมซ้อนกันอยู่ ทั้ง ๆ ที่ในความเป็นจริงมันมีอยู่พีคเดียว
  

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

นั่นแหละครับ ใน Memoir ฉบับวันอังคารที่ผ่านมา (เรื่อง "รู้ทันนักวิจัย (๙) อยากให้มีพีคก็จัดให้ได้รู้ทันนักวิจัย (๙) อยากให้มีพีคก็จัดให้ได้") ผมถึงได้กล่าวว่าเวลาที่นิสิตในที่ปรึกษาผมเอาผลการวิเคราะห์ตัวอย่างมาให้ดู ผมจึงต้องขอดูข้อมูลดิบที่ได้จากการวัดจริง ไม่ใช่เอาข้อมูลที่ผ่านการปรับแต่งมาเรียบร้อยแล้วมาให้ดู ทั้งนี้เพื่อเป็นการฝึกให้รู้จักการอ่านสัญญาณ ซึ่งเป็นสิ่งจำเป็นก่อนที่จะอ่านค่าตัวเลขต่าง ๆ (ไม่ว่าจะเป็นตำแหน่งพีค พื้นที่พีค จำนวนพีค ฯลฯ)

ประเด็นเรื่องความกว้างของพีคตรงนี้สำหรับบางคนที่ต้องการพีคกว้าง ๆ เช่นพวกที่ต้องการความกว้างของพีค XRD (X-ray diffraction) เอาไปคำนวณขนาดผลึกด้วย Scherrer's equation ที่ใช้ค่าความกว้างของพีคเป็นตัวหารในสมการคำนวณหาขนาดผลึก ก็อาจชอบก็ได้ เพราะมันทำให้ได้ขนาดผลึกเล็กลง สามารถคุยได้ว่าเป็นผลึกขนาดนาโน
 
การวิเคราะห์ FT-IR (Fourier Transform Infrared spectroscopy) ก็เป็นอุปกรณ์หนึ่งที่มักจะพบปัญหาเรื่องความละเอียดของการสแกนที่ไม่ละเอียดมากพอ ทำให้ตำแหน่งพีคที่วัดได้นั้นมีการเคลื่อนตัว แต่ผลการเคลื่อนตัวนั้นไม่ได้เกิดจากการเปลี่ยนแปลงโครงสร้างของตัวอย่าง แต่เกิดจากการสแกนที่หยาบเกินไป
 
ลักษณะของสัญญาณที่มีการกระโดดขึ้นสูงอย่างรวดเร็วก่อนตกลงกลับมายังตำแหน่งเดิมอย่างรวดเร็วนั้นอาจถูกมองว่าเป็น "Spike" ในกรณีของการเก็บข้อมูลที่ใช้ Δx ที่แคบมากพอก็จะระบุได้เลยว่าสิ่งที่เห็นนั้นเป็น spike แต่ในกรณีของการเก็บข้อมูลที่ใช้ Δx กว้างเกินไป (แบบมีจุดข้อมูลเพียงไม่กี่จุดในช่วงตั้งแต่เริ่มต้นเกิดพีคจนพีคสิ้นสุด) จะทำให้เห็นพีคนั้นกลายเป็น spike ได้ และเมื่อนำไปทำการปรับเรียบข้อมูลก็จะทำให้พีคนั้นหายไป

เรื่องนี้ยังไม่จบ ยังมีต่ออีกครับ :) :) :)

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

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

ใน Memoir ฉบับวันอังคารที่ ๖ มีนาคมที่ผ่านมา (เรื่อง "รู้ทันนักวิจัย (๙) อยากให้มีพีคก็จัดให้ได้") ผมได้เกริ่นเอาไว้ตอนต้นว่า "ชนิดของอัลกอริธึมทางคณิตศาสตร์ที่ใช้ในการปรับแต่งข้อมูลดิบ ก็สามารถตกแต่งการแปลผลว่าจะให้ออกไปในทิศทางไหนก็ได้" มาถึง Memoir ฉบับนี้ก็เลยอยากจะขอยกตัวอย่างบางตัวอย่างให้ดู คือการปรับข้อมูลที่เต็มไปด้วยสัญญาณรวบกวน (Noise) ให้ราบเรียบขึ้น
 
เทคนิคที่เรียบง่ายที่สุดในการปรับข้อมูลให้เรียบขึ้นคือเทคนิคการหาค่าเฉลี่ยเคลื่อนที่ (Moving average) ในเทคนิคนี้จะใช้จุดข้อมูลที่เป็นจำนวนเลขคี่ กล่าวคือสมมุติว่าเราใช้จุดข้อมูล (x0, y0), (x1, y1) และ (x2, y2) ค่าเฉลี่ยปรับแก้ที่จุด x1 (หรือ y1,ave) จะเท่ากับ (y0 + y1 + y2)/3 และในทำนองเดียวกัน ค่าเฉลี่ยปรับแก้ที่จุด x2 (หรือ y2,ave) จะเท่ากับ (y1 + y2 + y3)/3 การปรับเรียบจะทำอย่างนี้ไปเรื่อย ๆ จนกระทั่งถึงจุด (n-1) โดยเราจะสูญเสียค่าที่จุด x0 และ xn ไป
 
ถ้าเราคิดว่าใช้แค่ 3 จุดข้อมูลยังไม่พอ อยากจะใช้มากขึ้น ลำดับถัดไปก็คือการใช้จุดข้อมูล 5 จุด ในที่นี้จะใช้จุดข้อมูล (x0, y0), (x1, y1), (x2, y2), (x3, y3) และ (x4, y4) เพื่อคำนวณหาค่าเฉลี่ยที่จุด x2 (หรือ y2,ave) ซึ่งเท่ากับ (y0 + y1 + y2+ y3 + y4)/5 และในทำนองเดียวกัน ค่าเฉลี่ยปรับแก้ที่จุด x3 (หรือ y3,ave) จะเท่ากับ (y1 + y2 + y3 + y4 + y5)/5 การปรับเรียบจะทำอย่างนี้ไปเรื่อย ๆ จนกระทั่งถึงจุด (n-2) โดยเราจะสูญเสียค่าที่จุด x0, x1, xn-1 และ xn ไป ยิ่งเราใช้จุดในการหาค่าเฉลี่ยแต่ละจุดมากขึ้น เราก็จะยิ่งสูญเสียข้อมูลด้านหัวและท้ายมากขึ้น ตารางที่ ๑ และรูปที่ ๑ แสดงตัวอย่างการเฉลี่ยค่าข้อมูลด้วยการใช้จุดข้อมูลต่าง ๆ กัน

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

ตารางที่ ๑ ค่า y คือข้อมูลที่มีสัญญาณรบกวน และนำมาทำการปรับเรียบด้วยการใช้จำนวนจุดต่าง ๆ กัน
x
y
3 pt
5 pt
7 pt
9 pt
0
0.7196841235




0.05
0.7953104631
0.5671218253



0.1
0.1863708893
0.5519866722
0.6385706628


0.15
0.6742786641
0.5592862425
0.6805164395
0.7148009915

0.2
0.8172091742
0.8069669485
0.6977224707
0.702233973
0.7482406044
0.25
0.929413007
0.8759876001
0.7867912918
0.7455958361
0.7332221809
0.3
0.8813406189
0.8141562069
0.8717042599
0.8024740394
0.7284413175
0.35
0.6317149946
0.8706330394
0.8251660875
0.8136174721
0.8075398805
0.4
1.0988435046
0.7716922706
0.7897400247
0.8251958694
0.8268821397
0.45
0.5845183126
0.8118815032
0.793123492
0.8136167251
0.8405333632
0.5
0.7522826926
0.7450196536
0.8364522925
0.8220066633
0.8428139483
0.55
0.8982579557
0.8329665484
0.8046976287
0.8674671316
0.8395755888
0.6
0.8483589968
0.8955623795
0.8777816208
0.8322316858
0.8527556384
0.65
0.9400701859
0.9127891519
0.897764159
0.8559198469
0.8558471708
0.7
0.9499382729
0.9140679475
0.868179656
0.9094033617
0.9187006657
0.75
0.8521953838
0.8508230325
0.9238413159
0.945395049
0.9323417236
0.8
0.7503354407
0.9097327069
0.9658672321
0.9492083656
0.9752135077
0.85
1.1266672961
1.0090675012
0.9508900201
0.9983560552

0.9
1.1501997669
1.0506397587
1.0372717459


0.95
0.8750522131
1.1031186643



1
1.2841040128






รูปที่ ๑ ข้อมูลจากตารางที่ ๑ เมื่อนำมาทำการปรับเรียบข้อมูลด้วยการใช้จำนวนจุดต่าง ๆ กัน

เพื่อให้เห็นภาพจะขอยกตัวอย่างโดยสมมุติว่าได้ทำการวัดค่าสัญญาณ y ในช่วง x ตั้งแต่ 0 ถึง 6 สัญญาณดังกล่าวประกอบด้วยพีคที่มีการกระจายตัวแบบ Gaussian จำนวน 2 พีคด้วยกัน โดยพีคแรกมีศูนย์กลางอยู่ที่ตำแหน่ง x = 2 และแอมพลิจูดเท่ากับ 1.0 พีคที่สองมีศูนย์กลางอยู่ที่ตำแหน่ง x = 4 และแอมพลิจูดเท่ากับ 1.5 กราฟทั้งสองมีค่าครึ่งหนึ่งของความกว้างที่ตำแหน่งครึ่งหนึ่งของความสูงสูงสุดเท่ากับ 1 หน่วย (hwhm - half width at half maximum) กรณีแรกสุดเป็นการจำลองวัดที่กระทำโดยมีช่วงระยะห่างระหว่างจุดข้อมูล Δx = 0.05 กราฟนี้คือเส้น Signal สีน้ำเงินในรูปที่ ๒ (บน)
 
ขั้นตอนต่อไปเป็นการจำลองการใส่ noise เข้าไปค่า signal เพื่อสร้างแบบจำลองค่า signal ที่มี noise รบกวน (เส้น S + N) ด้วยการใช้ฟังก์ชันสุ่มตัวเลขแล้วนำตัวเลขที่สุ่มได้นั้นบวกเข้าไปกับค่า singal การสร้างแบบจำลองสัญญาณที่มี noise รบกวนนี้ทดลองทำ 2 กรณีด้วยกัน โดยกรณีแรกเป็นการจำลองการวัด 2 ครั้ง โดยที่แต่ละจุด x จะให้มี noise ที่เป็นบวก 1 ครั้งและ noise ที่เป็นลบ 1 ครั้ง แล้วนำค่าทั้งสองมาเฉลี่ยเป็นค่า y (เส้น (S + N) ในรูปที่ ๒ (บน)) กรณีที่สองเป็นการจำลองการวัด 10 ครั้ง โดยที่แต่ละจุด x จะให้มี noise ที่เป็นบวก 5 ครั้งและ noise ที่เป็นลบ 5 ครั้ง แล้วนำค่าทั้งสองมาเฉลี่ยเป็นค่า y (เส้น (S + N) ในรูปที่ ๒ (ล่าง))

ถัดไปจะเป็นการทดลองการปรับเรียบข้อมูล (S + N) ด้วยการใช้จุดข้อมูลเฉลี่ย 5, 7 และ 9 จุด (กราฟเส้น 5 pt, 7 pt และ 9 pt ตามลำดับ) ในที่นี้เพื่อให้เห็นภาพผลการปรับเรียบชัดเจนขึ้นจึงได้ทำการเลี่อนกราฟแต่ละเส้นให้สูงขึ้นทีละ 0.5 หน่วย (เพราะถ้าไม่เลื่อนก็จะเห็นมันซ้อนทับกันมั่วไปหมดจนแยกไม่ออก) จากผลการคำนวณจะเห็นว่าเมื่อใช้จำนวนจุดข้อมูลเฉลี่ยมากขึ้น กราฟที่ได้ก็จะมีความเรียบมากขึ้นด้วย 


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

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


รูปที่ ๔ การทำ peak deconvolution ด้วยโปรแกรม fityk 0.9.7 (บน) ข้อมูลจุด 9pt ของรูปที่ ๒ (บน) และ (ล่าง) ข้อมูลจุด 9pt ของรูปที่ ๒ (ล่าง) ผลที่ได้ออกมาเป็นอย่างไรก็ขอให้ลองพิจาณากันเอาเองนะครับว่าการได้มาซึ่งข้อมูลที่ถูกต้องนั้นสำคัญอย่างไรในการแปลผล แม้ว่าจะนำเอาคณิตศาสตร์เข้ามาช่วยแล้วก็ตาม
 
เรื่องการแยกพีคหรือการทำ peak deconvolution นี้ ผลที่ได้จะออกมาอย่างไรนั้นยังมีปัจจัยเกี่ยวข้องอีกหลายอย่าง ไม่ว่าจะเป็น จำนวน ขนาด และตำแหน่ง ของพีคเริ่มแรกที่เราเดาขึ้นมาก่อนให้อัลกอริธึมทำการปรับแต่งเพื่อให้ได้ค่าความคลาดเคลื่อนต่ำสุด หรือจะกล่าวจะว่า "อยากให้มีสักกี่พีค ที่ตำแหน่งไหนบ้าง ก็จัดให้ได้" ก็ไม่น่าจะผิดจากความเป็นจริงไปมากนั้น