โมดูล 5/5 · สัปดาห์ 13–15 · 27 ชม.

การทดลองและตีความผลทดสอบ

UAT 106 สถิติและการวิเคราะห์ข้อมูลสำหรับงานเทคโนโลยี

เวลาเรียนประมาณ 90 นาทีร่าง รอตรวจปรับปรุงล่าสุด 26 กันยายน 2569

บทเรียน

เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ

  1. แยกข้อกำหนด เกณฑ์ยอมรับ วิธีทดสอบ และหลักฐาน และวางลำดับการทดสอบ UAV
  2. ออกแบบการทดลองด้วยหลักการสุ่ม การทำซ้ำ และการจัดกลุ่ม
  3. วิเคราะห์การทดลองแฟกทอเรียล 2² หาผลหลักและอันตรกิริยา
  4. ประเมินความไม่แน่นอนของการวัดแบบ Type A และ Type B และรายงานอัตราผ่านพร้อมช่วงความเชื่อมั่น

ความรู้พื้นฐานที่ควรมี: UAT 106 โมดูล 3–4

ทำไมต้องรู้

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

จากข้อกำหนดสู่หลักฐาน

หน่วยความรู้ “การทดสอบ UAV และการวิเคราะห์หลักฐาน” ของคลังความรู้โดรนแยกสี่สิ่งออกจากกัน

สิ่งที่ต้องเขียนตัวอย่าง
ข้อกำหนด (requirement)เวลาบินไม่ต่ำกว่า 20 นาที เมื่อบรรทุก 1.0 kg ที่อุณหภูมิ 25–35 °C
เกณฑ์ยอมรับ (acceptance criterion)ขอบล่างด้านเดียว 95% ของค่าเฉลี่ยมากกว่า 20 นาที จากอย่างน้อย 8 เที่ยว
วิธีทดสอบ (procedure)เริ่มจับเวลาเมื่อล้อพ้นพื้น หยุดเมื่อแบตเตอรี่ถึง 20% ลอยตัวที่ 10 m
หลักฐาน (evidence)log ทุกเที่ยว ตารางผล โค้ดวิเคราะห์ และสภาพอากาศ

เกณฑ์ยอมรับต้องเขียน ก่อน เห็นผล การทดสอบเดินตามลำดับจากความเสี่ยงต่ำไปสูง แต่ละขั้นตอบคำถามต่างกัน ผลจากการจำลองไม่ใช่หลักฐานของอากาศยานจริง

สี่กล่องเรียงกัน จำลอง SITL โต๊ะทดสอบ ทดสอบการรวมระบบ และทดสอบภาคสนามแบบควบคุม ด้านล่างมีแถบเขียนว่าทุกขั้นมีข้อกำหนด เกณฑ์ยอมรับ วิธีทดสอบ และหลักฐาน
ภาพที่ 1 ลำดับการทดสอบ UAV

หลักการออกแบบการทดลอง

ตำรา Statistics for Experimenters ของ Box, Hunter และ Hunter เน้นหลักสามข้อ

  • การสุ่ม (randomization) สุ่มลำดับการทดลองเพื่อไม่ให้ปัจจัยที่เปลี่ยนตามเวลา เช่น อุณหภูมิหรือความชำนาญของนักบิน ไปปนกับปัจจัยที่ศึกษา
  • การทำซ้ำ (replication) ทำแต่ละเงื่อนไขหลายครั้งด้วยหน่วยทดลองอิสระ เพื่อประมาณความแปรปรวน
  • การจัดกลุ่ม (blocking) ถ้าทดสอบไม่เสร็จในวันเดียว ให้แต่ละวันมีทุกเงื่อนไขครบ แล้ววิเคราะห์โดยคำนึงถึงวัน
import numpy as np

plan = [(payload, prop) for payload in (0.5, 1.0) for prop in ("standard", "efficient") for _ in range(3)]
rng = np.random.default_rng(2026)
order = rng.permutation(len(plan))
for run, idx in enumerate(order[:5], start=1):
    print(run, plan[idx])
print("...", len(plan), "runs in total")
1 (1.0, 'standard')
2 (0.5, 'standard')
3 (1.0, 'efficient')
4 (1.0, 'standard')
5 (1.0, 'efficient')
... 12 runs in total

การทดลองแฟกทอเรียล 2²

การทดลองแบบเปลี่ยนทีละปัจจัยพลาดสิ่งสำคัญ คือปัจจัยอาจมีผลร่วมกัน การทดลองแฟกทอเรียล (factorial experiment) ทดสอบทุกคู่ของระดับปัจจัยพร้อมกัน ตัวอย่างนี้มีสองปัจจัย ปัจจัยละสองระดับ คือน้ำหนักบรรทุก 0.5 กับ 1.0 kg และใบพัดแบบมาตรฐานกับแบบประหยัด ทำซ้ำมุมละสามเที่ยว รวม 12 เที่ยว ข้อมูลอยู่ในไฟล์ factorial.csv

สี่เหลี่ยมแสดงการทดลองแฟกทอเรียล แกนนอนคือน้ำหนักบรรทุก 0.5 และ 1.0 กิโลกรัม ครึ่งบนคือใบพัดประหยัด ครึ่งล่างคือใบพัดมาตรฐาน ค่าเฉลี่ยที่มุมคือ 24.82 มุมซ้ายบน 20.39 มุมขวาบน 23.16 มุมซ้ายล่าง และ 20.05 มุมขวาล่าง
ภาพที่ 2 การทดลองแฟกทอเรียล 2² และค่าเฉลี่ยแต่ละมุม (นาที)
import pandas as pd

fx = pd.read_csv("factorial.csv")
cell = fx.groupby(["payload_kg", "propeller"])["endurance_min"].mean()
print(cell.round(3).to_string())

light_std, light_eff = cell[(0.5, "standard")], cell[(0.5, "efficient")]
heavy_std, heavy_eff = cell[(1.0, "standard")], cell[(1.0, "efficient")]
payload_effect = (heavy_std + heavy_eff) / 2 - (light_std + light_eff) / 2
prop_effect = (light_eff + heavy_eff) / 2 - (light_std + heavy_std) / 2
interaction = ((heavy_eff - heavy_std) - (light_eff - light_std)) / 2
print(f"payload effect {payload_effect:+.2f} min   propeller effect {prop_effect:+.2f} min   interaction {interaction:+.2f} min")
payload_kg  propeller
0.5         efficient    24.817
            standard     23.160
1.0         efficient    20.393
            standard     20.053
payload effect -3.76 min   propeller effect +1.00 min   interaction -0.66 min

ผลหลัก (main effect) ของน้ำหนักบรรทุกคือเวลาบินลดลงประมาณ 3.8 นาทีเมื่อเพิ่มจาก 0.5 เป็น 1.0 kg ส่วนใบพัดประหยัดเพิ่มเวลาบินเฉลี่ยประมาณ 1 นาที แต่ อันตรกิริยา (interaction) ติดลบบอกว่าใบพัดประหยัดช่วยได้มากเมื่อบรรทุกเบา (1.66 นาที) และช่วยน้อยเมื่อบรรทุกหนัก (0.34 นาที) ถ้าทดสอบใบพัดที่ 0.5 kg อย่างเดียวจะประเมินประโยชน์เกินจริงสำหรับภารกิจขนส่งที่บรรทุกหนัก ผลต่างเหล่านี้ยังต้องเทียบกับการกระจายจากการทำซ้ำก่อนสรุปว่ามีนัยสำคัญ

ความไม่แน่นอนของการวัด

ทุกการวัดมีความไม่แน่นอน คู่มือ GUM (JCGM 100:2008) แบ่งวิธีประเมินเป็นสองแบบ

  • Type A ประเมินจากการวิเคราะห์ทางสถิติของการวัดซ้ำ เช่น standard error ของค่าเฉลี่ย
  • Type B ประเมินด้วยวิธีอื่น เช่น ความละเอียดของเครื่องมือหรือค่าจากใบรับรองการสอบเทียบ ถ้าเครื่องมืออ่านละเอียด 0.1 s ค่าจริงอยู่ในช่วง ±0.05 s ของค่าที่อ่านได้ด้วยโอกาสเท่ากัน ใช้การแจกแจงสี่เหลี่ยมได้

ตัวอย่างที่ 1 ความไม่แน่นอนของเวลาลอยตัว

ผู้ทดสอบห้าคนจับเวลาการลอยตัวครั้งเดียวกันด้วยนาฬิกาจับเวลาความละเอียด 0.1 s

import math
import statistics

readings = [1212.4, 1212.9, 1212.1, 1212.6, 1212.5]
mean = statistics.mean(readings)
u_a = statistics.stdev(readings) / math.sqrt(len(readings))
u_b = 0.05 / math.sqrt(3)
u_c = math.sqrt(u_a ** 2 + u_b ** 2)
print(f"mean {mean:.2f} s   u_A {u_a:.3f} s   u_B {u_b:.3f} s   u_c {u_c:.3f} s")
print(f"result {mean:.2f} s ± {2 * u_c:.2f} s (k = 2)")
mean 1212.50 s   u_A 0.130 s   u_B 0.029 s   u_c 0.134 s
result 1212.50 s ± 0.27 s (k = 2)

ความไม่แน่นอนจากการจับเวลาของคน (Type A) ใหญ่กว่าความละเอียดของนาฬิกา (Type B) มาก การซื้อนาฬิกาที่ละเอียดขึ้นจึงแทบไม่ช่วย ต้องเปลี่ยนวิธีวัด เช่น ใช้เวลาจาก log ของตัวควบคุมการบิน การรายงานความไม่แน่นอนแบบขยาย ตาม GUM ต้องระบุค่า coverage factor ที่ใช้เสมอ ในตัวอย่างนี้ใช้

รายงานอัตราผ่านอย่างมีขอบเขต

หน่วยความรู้ “แบบฝึกและการประเมินภารกิจจำลอง” ของคลังความรู้โดรนเตือนว่าอัตราผ่านต้องกำหนดนิยามก่อนทดลอง และรายงานรอบที่รันไม่จบแยกไว้ ห้ามลบทิ้ง อัตราผ่านจากการทดลองจำนวนจำกัดก็มีความไม่แน่นอนเช่นกัน

from scipy import stats

passed, total = 80, 100
ci = stats.binomtest(passed, total).proportion_ci(confidence_level=0.95)
print(f"pass rate {passed / total:.0%}   95% CI (Clopper-Pearson) [{ci.low:.3f}, {ci.high:.3f}]")
ci_small = stats.binomtest(8, 10).proportion_ci(confidence_level=0.95)
print(f"8 of 10 runs: 95% CI [{ci_small.low:.3f}, {ci_small.high:.3f}]")
pass rate 80%   95% CI (Clopper-Pearson) [0.708, 0.873]
8 of 10 runs: 95% CI [0.444, 0.975]

อัตราผ่าน 80% จาก 100 รอบมีช่วงความเชื่อมั่นประมาณ 71% ถึง 87% แต่ถ้าได้ 8 จาก 10 รอบ ช่วงกว้างตั้งแต่ประมาณ 44% ถึง 97% ตัวเลข 80% เท่ากันแต่ความหมายต่างกันมาก และอัตราผ่านนี้ใช้ได้เฉพาะแบบจำลองและเงื่อนไขที่ทดสอบ ไม่ใช่โอกาสสำเร็จในสนามจริง

รายงานผลทดสอบที่ดีมีอะไรบ้าง

รหัสการทดสอบและข้อกำหนด เกณฑ์ยอมรับที่เขียนก่อนทดสอบ สภาพแวดล้อม ค่าตั้งและรุ่นเฟิร์มแวร์ ข้อมูลดิบและหน่วย วิธีวิเคราะห์และสมมติฐาน จำนวนตัวอย่าง ช่วงความเชื่อมั่นและความไม่แน่นอน ข้อมูลที่ตัดออกพร้อมเหตุผล และข้อสรุปที่ไม่เกินกว่าข้อมูล

ปฏิบัติการประจำโมดูล

ปฏิบัติการ: ออกแบบและวิเคราะห์การทดสอบใบพัด

  1. เขียนแผนการทดสอบตามตารางในบท (ข้อกำหนด เกณฑ์ยอมรับ วิธีทดสอบ หลักฐาน) สำหรับการเปรียบเทียบใบพัดสองแบบ ส่งให้เพื่อนตรวจก่อนเปิดข้อมูล
  2. วิเคราะห์ factorial.csv หาผลหลัก อันตรกิริยา และส่วนเบี่ยงเบนมาตรฐานจากการทำซ้ำในแต่ละมุม แล้วประเมินว่าผลใดใหญ่กว่าความแปรปรวนจากการทำซ้ำอย่างชัดเจน
  3. วาดกราฟอันตรกิริยา (แกนนอนน้ำหนักบรรทุก เส้นแยกตามใบพัด) แล้วอธิบายว่าเส้นที่ไม่ขนานหมายถึงอะไร
  4. ประเมินความไม่แน่นอนของการวัดเวลาบินในการทดสอบของตนเองทั้ง Type A และ Type B และเขียนรายงานผลทดสอบฉบับสมบูรณ์หนึ่งหน้า

ข้อผิดพลาดที่พบบ่อย

ระวัง

  • ตั้งเกณฑ์ยอมรับหลังเห็นผล
  • ไม่สุ่มลำดับการทดสอบ ทำให้ปัจจัยที่เปลี่ยนตามเวลาปนกับปัจจัยที่ศึกษา
  • เปลี่ยนทีละปัจจัย จึงมองไม่เห็นอันตรกิริยา
  • รายงานผลการวัดโดยไม่มีความไม่แน่นอน หรือไม่ระบุค่า
  • ลบรอบที่ล้มเหลวออกเงียบ ๆ หรือรายงานอัตราผ่านโดยไม่บอกจำนวนรอบ

สรุป

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

แบบฝึกตรวจความเข้าใจ

  1. ทำไมต้องสุ่มลำดับการบินในการทดสอบแบตเตอรี่สองยี่ห้อ
  2. ค่าเฉลี่ยสี่มุมคือ A−B− = 20, A+B− = 24, A−B+ = 22, A+B+ = 30 ผลหลักของ A เท่าใด
  3. จากข้อ 2 อันตรกิริยา AB เท่าใด
  4. เครื่องชั่งอ่านละเอียด 0.01 kg ความไม่แน่นอน Type B จากความละเอียดเท่าใด
  5. ทดสอบ 20 รอบ ผ่าน 20 รอบ สรุปว่า “ระบบผ่าน 100% เสมอ” ได้หรือไม่
เฉลย
  1. เพื่อไม่ให้ปัจจัยที่เปลี่ยนตามเวลา เช่น อุณหภูมิหรือความชำนาญของนักบิน ปนกับผลของยี่ห้อ
  2. kg ได้ kg
  3. ไม่ได้ ช่วงความเชื่อมั่น 95% ของอัตราผ่านยังมีขอบล่างประมาณ 83% และผลใช้ได้เฉพาะเงื่อนไขที่ทดสอบ

สรุปสูตรสำคัญ

ผลหลักของปัจจัย A ในแฟกทอเรียล 2²
อันตรกิริยา AB
ความไม่แน่นอน Type B จากการแจกแจงสี่เหลี่ยม
ความไม่แน่นอนรวมและแบบขยาย

แหล่งอ้างอิงหลัก

  1. Box, G. E. P., Hunter, J. S., & Hunter, W. G. (2005). Statistics for experimenters: Design, innovation, and discovery (2nd ed.). Wiley. link
  2. Montgomery, D. C., & Runger, G. C. (2018). Applied statistics and probability for engineers (7th ed.). Wiley. link
  3. JCGM. (2008). Evaluation of measurement data — Guide to the expression of uncertainty in measurement (JCGM 100:2008). BIPM. link
  4. JCGM. (2012). International vocabulary of metrology — Basic and general concepts and associated terms (VIM, JCGM 200:2012). BIPM. link
  5. NIST/SEMATECH. e-Handbook of statistical methods. National Institute of Standards and Technology. link
  6. The SciPy community. Statistical functions (scipy.stats), SciPy 1.18 documentation. link
  7. Wasserstein, R. L., & Lazar, N. A. (2016). The ASA statement on p-values: Context, process, and purpose. The American Statistician, 70(2), 129–133. link

อ่านเพิ่มเติม

ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล

ในชั้นเรียน / ภาคสนาม

ปฏิบัติการในห้องแล็บหรือภาคสนามตามใบงาน พร้อม checklist ความปลอดภัย

หลักฐานการเรียนรู้: ใบงานที่ผ่านการตรวจและผล quiz

แบบทดสอบประจำโมดูล

แบบทดสอบนี้ใช้ตรวจความเข้าใจ (formative) ไม่ใช่การสอบเก็บคะแนน

โดเมนความรู้: คณิตศาสตร์ ฟิสิกส์ และสถิติ · การติดตั้ง บำรุงรักษา และการทดสอบ · ระบบอัตโนมัติ หุ่นยนต์ และฝูงโดรน · อากาศยาน โครงสร้าง และการออกแบบ