top of page

Normality test

Updated: May 21, 2022



Normality หรือ การแจกแจงเป็นโค้งปกติ ถือเป็นการทดสอบที่สำคัญในการวิเคราะห์ข้อมูลสถิติ ด้วยความที่ว่าสถิติทั้งหลายที่จะนำมาวิเคราะห์นั้น ย่อมมีข้อตกลงเบื้องต้นอยู่ เหมือนเป็นเงื่อนไขสำคัญในการบอกว่า จะสามารถนำสถิติตัวนี้มาวิเคราะห์ได้หรือไม่ ถ้าผ่านข้อตกลงเบื้องต้น ก็สามารถนำไปวิเคราะห์ต่อได้ เราเรียกสถิติเหล่านี้ว่า "Parametric"


แล้วทีนี้ จะรู้ได้อย่างไรว่า สถิติที่เราเลือกใช้นั้นเป็น parametric หรือไม่ เอาจริงๆ ก็แทบจะทุกสถิติเลยด้วยซ้ำที่ใช้ parametric ... อ่านแล้วอาจสงสัยว่า มันก็มีสถิติที่ไม่ใช้ parametric นะ ตั้งหลายด้วย ซึ่งเราเรียกกันว่า non-parametric ใช่ มันมีหลายตัว แต่หลายตัวที่ว่านี้ คือ คู่ตรงข้ามของ parametric


หมายความว่า เมื่อเราได้สมมติฐานหรือแนวที่ต้องการพิสูจน์คำตอบด้วยสถิติมาแล้ว เราจึงมาเลือกว่าจะใช้สถิติอะไร โดยส่วนมากสถิติที่เลือกใช้นั้นเราจะเลือกแบบ parametric ก่อนเสมอ แต่ก่อนอื่น จะต้องมาทดสอบก่อนว่าข้อมูลที่เรามีนั้นผ่านข้อตกลงเบื้องต้นหรือไม


ข้อตกลงเบื้องต้นที่ว่านี้ก็คือ Normality หรือการแจกแจงเป็นโค้งปกติ (หรือการแจกแจงเป็นปกติ) ถ้าข้อมูลผ่านข้อตกลงนี้ ก็คือข้อมูลมีการแจกแจงเป็นปกติ เราก็จะสามารถเลือกใช้สถิติ parametric ได้ แต่หากไม่ผ่าน ก็สามารถไปเลือกใช้สถิติแบบ non-parametric ต่อไป


 

Outline:





1.ความหมายของการแจกแจงเป็นโค้งปกติ


ที่ใช้คำว่าโค้งปกติ เพราะมาจากรูประฆังคว่ำในกราฟ เลยเรียกว่าโค้งปกติ ไปดูภาพกัน


ที่มา: Hun Myoung Park. 2008. Univariate Analysis and Normality Test Using SAS, Stata, and SPSS.


ให้มองเป็นรูประฆังที่กำลังคว่ำอยู่ สิ่งสำคัญคือว่าข้อมูลเราเก็บมาได้นั้นมันปรากฏอยู่ในพื้นที่ของระฆังหรือไม่ ถ้าข้อมูลทั้งหมดอยู่ในพื้นที่ระฆังก็แปลว่าข้อมูลมีการ "แจกแจงเป็นโค้งปกติ" ก็จะสามารถนำไปวิเคราะห์ด้วยสถิติ parametric ได้ เช่น ANOVA, Correlation เป็นต้น แต่ถ้าไม่อยู่ในพื้นที่ เพียงบางส่วนของข้อมูลที่ไม่ได้อยู่ในพื้นที่ จะเรียกว่า outlier ก็จะทำการ "ตัด-clean" ข้อมูลเหล่านั้นออกไป อีกวิธีที่มักใช้บ่อย คือ การ take log หรือใช้วิธีการทางคณิตศาสตร์อื่นใด มาช่วยทำให้ข้อมูลมันปรากฏอยู่ในพื้นที่ระฆังคว่ำตัวนี้ ลองดูภาพเปรียบเทียบระหว่างข้อมูลที่ normal กับ non-normal


ที่มา: Hun Myoung Park. 2008. Univariate Analysis and Normality Test Using SAS, Stata, and SPSS.


จากภาพจะเห็นว่า ภาพซ้ายคือข้อมูลที่ Normal ตัวข้อมูลจะปรากฏอยู่ในภายใต้ระฆังคว่ำ มีสูงเกินนิดหน่อย แต่ในภาพรวมถือว่าผ่าน ในขณะที่ภาพขวาข้อมูลจะหนักมาทาง 0-10 แสดงว่าไม่กระจายตัว ข้อมูลกระจุกอยู่ในด้านเดียว จึงไม่อยู่ในพื้นที่ระฆังคว่ำ


นอกจากนี้ ถ้ามองในภาพซ้ายจะเห็นมีค่าระหว่าง -3 ถึง +3 โดยมี 0 อยู่ตรงกลาง ซึ่งข้อมูลแบบนี้เป็นข้อมูลที่เรียกว่า "ค่ามาตรฐาน หรือ standardized" โดยค่านี้จะทำการแปลงข้อมูลไม่ว่าจะเป็นตัวเลขอะไร ค่าเท่าไร จะแปลงให้มีค่าเฉลี่ยเป็น "0" และมีการกระจายออกไปทั้งฝั่งซ้ายและขวาจาก 0 เป็นค่าความแปรปรวน ซึ่งข้อมูลทั้งหมดควรอยู่ในช่วง -3 ถึง +3 นี้ จึงถือว่าแจกแจงเป็นโค้งปกติ





2.สถิติที่ใช้พิจารณา


หลังจากที่ได้ข้อมูลมาเรียบร้อยแล้วก็ต้องมีการตรวจสอบว่าข้อมูลที่ได้มานั้น แจกแจงเป็นโค้งปกติหรือไม่ ทีนี้วิธีการตรวจสอบความเป็นโค้งปกติ หรือ normality นั้น ก็มีหลายวิธี แต่วิธีที่เด่นๆ และนิยมนำมาตรวจสอบ มีดังนี้


2.1 Kolmogorov-Smirnov และ Shapiro-Wilk test

ในโปรแกรม SPSS จะมีคำสั่ง normality test เพื่อทดสอบการแจกแจงเป็นโค้งปกติโดยเฉพาะเลย อยู่ในคำสั่ง Analyze > Desctipive > Explore > Option Plot : เลือก Normality plots wirh tests


โปรแกรมก็จะแสดงผลการทดสอบด้วย Komolgorov กับ Sharpiro ไว้ให้



จากภาพสามารถแปลผลโดยใช้หลักการ 0.05 ได้เช่นเดิม แต่ความต้องการจะสลับกัน [ขึ้นอยู่กับการตั้งสมมติฐาน] ก็คือต้องให้ "ไม่ซิก" ต้องการให้ค่า sig มากกว่า 0.05 ซึ่งถ้ามากกว่าก็จะแปลว่ามีการแจกแจงเป็นโค้งปกติ แต่ถ้าน้อยกว่า 0.05 ก็แปลว่าการแจกแจงเป็นโค้งปกติ


จากตัวอย่างจะพบว่า ค่า sig ทั้งสองตัวน้อยกว่า 0.05 ทั้งคู่ ถ้าพิจารณาเฉพาะตรงนี้จะพบว่าการแจกแจงไม่เป็นโค้งปกติ


แต่อย่างไรก็ตาม การพิจารณาเรื่อง normality นี้เป็นปัญหาอยู่มาก คือว่า ข้อมูลที่เป็น likert scale หรือ rating scale เหล่านี้ ที่มีค่าตั้งแต่ 1-5 หรือ 1-7 เหล่านี้ คำตอบที่ได้มักจะเทไปทางฝั่งใด ฝั่งนึงเสมอ เช่น เห็นด้วยกับเห็นด้วยอย่างยิ่ง หรือไม่ก็ ไม่เห็นด้วย กับ ไม่เห็นด้วยอย่างยิ่ง ไปเลย ดังนั้น ตัวเลขก็จะไปกองกันอยู่ระหว่าง 4-5 หรือ 5-7 หรือไม่ก็ 1-2 หรือ 1-3 เป็นต้น ดังนั้น มันเป็นไปไม่ได้เลยที่ผลการทดสอบด้วย kolmogorov - shapiro จะให้ผลเป็นแจกแจงเป็นโค้งปกติ


ขยายความต่ออีกหน่อย ก็คือ ข้อมูลที่เป็น likert/ rating scale นั้น มีความเป็น ordinal อยู่แล้ว ดังนั้น จึงไม่ถูกมองว่าเป็น continuous data แตมีข้อสังเกตว่า หากตั้งค่า scale ให้เยอะ เช่น 1-9 แบบนี้มันจะคาบเกี่ยวระหว่างความเป็น ordinal กับ interval/ ratio ได้


จากที่กล่าวมา กำลังจะบอกว่าข้อมูลที่เป็น ordinal แม้ว่าสุดท้ายเราจะหาค่าเฉลี่ยรวมแล้วก็ตาม กลายเป็น continuous แล้วแต่ผลการทดสอบก็มีแนวโน้มจะไม่ normal อยู่ดี


2.2 Skewness/ Kurtosis ความเบ้ ความโด่ง

หัวข้อนี้จะมีความเกี่ยวเนื่องกับหัวข้อ 2.1 บางประการ ก็คือ เมื่อข้อมูลที่เป็น ordinal เช่น likert/ rating scale แม้ว่าจะแปลงเป็นค่าเฉลี่ยรวมแล้วก็ตาม พอทดสอบด้วย kolmogorov ก็ยังไม่เป็นโค้งปกติอยู่ดี นั้น เราจะมีพิจารณาค่า ความเบ้-skewness และความโด่ง-kurtosis ประกอบด้วย


skewness หรือความเบ้ จะนำเสนอข้อมูลในลักษณะของการกระจายตัวจากตรงกลาง จะเห็นว่าภาพกลางเป็นข้อมูลที่ normal จะมีค่า Mean/ Median/ Mode อยู่ตำแหน่งเดียวกัน จึงเรียกอีกอย่างว่า "symmetric distribution" หรือกระจายแบบสมมาตร ในขณะที่ภาพซ้ายและขวาจะแสดงถึงข้อมูลเบ้ไปทางซ้าย และไปเบ้ไปทางขวา


เราเคยเรียนกันมาด้วยคำว่า เบ้ซ้าย เบ้ขวา แต่เชื่อว่าจำยากเหลือเกิน เพราะบางที่ก็ใช้คำว่า เบ้ซ้าย-เบ้ขวา บ้างก็ใช้คำว่า เบ้ไปทางซ้าย-เบ้ไปทางขวา


แต่ถ้าดูจากภาพนี้ จะใช้คำว่า positive กับ negative skew ก็คือทางบวกกับทางลบ อันนี้ชัดเจนเพราะถ้าเป็น positive ค่าเฉลี่ย (mean) จะมากกว่า median mode ก็คือข้อมูลมักเป็นคำตอบที่น้อย เช่น 1,2 ส่วน negative ค่าเฉลี่ย (mean) จะน้อยกว่า median mode ก็คือข้อมูลมักเป็นคำตอบมาก เช่น 4-5 แบบนี้ถ้าเราดูด้วย graphical distibution ก็จะเข้าใจได้ง่ายขึ้น

kurtosis หรือ ความโด่ง จะนำเสนอความสูงของข้อมูล จากภาพจะเห็นว่าความสูงระดับกลางมีลักษณะ normal เราเรียกว่า "Mesokurtic" ในขณะที่ถ้าสูงน้อย (ต่ำลงมา) จะเรียกว่า "Platykurtic" และถ้าสูงมาก (สูงเกินไป) จะเรียกว่า "Leptokurtic" กรณีของสูงมากนี้ มีโอกาสพบบ่อย หากคำตอบตอบอยู่กลางๆ เป็นจำนวนมาก (อารมณ์ประมาณว่าคนตอบ ตอบเฉยๆ ไม่ได้ตอบเป็นคำตอบอื่นเลย)


ทีนี้ จากทั้ง 2 เรื่อง Skewness และ Kurtosis ความเบ้ ความโด่ง เราสามารถพิจารณาความเป็น normal ได้ด้วยค่าที่ปรากฏ มีเกณฑ์พิจารณาอยู่ว่า ถ้ามีค่าเข้าใกล้ "0" แสดงว่าเข้าใกล้ความเป็น normality


จากภาพจะเห็นว่าค่า skewness มีค่าเป็น -0.076 และค่า kurtosis เป็น -0.037 ซึ่งเข้าใกล้ 0 จึงพิจารณาได้ว่าข้อมูลชุดนี้ มีการแจกแจงเป็นโค้งปกติ โดยเกณฑ์ที่พิจารณา ซึ่งมีหลายอ้างอิงที่บอกว่า ช่วงระหว่าง -2 ถึง +2 และ -3 ถึง +3 จึงอยากแนะนำว่าถ้าเป็นไปได้ ควรทำให้ค่าเหล่านี้ไม่เกิน 1 จะดีที่สุด แต่ก็อย่างที่เสนอไป ข้อมูลที่เป็น likert/ rating scale เนื้อของมันคือ ordinal ดังนั้น จะคาดหวังให้เกิดความเป็น normal ได้ยาก ตัวอย่างเช่น หากส่วนใหญ่ตอบ 4-5 กันหมดเลย มี 3 2 1 มาบ้างแบบนี้ ยังพอมีโอกาสที่ค่าจะเข้าใกล้ 0 ได้ แต่ถ้าตอบมาเป็นแค่ 4-5 แบบนี้ มันจะไม่ต่างอะไรกับ Bi-Modal data ก็คือมีแค่ 2 ค่าเท่านั้น มันจะพิจารณาว่าเบ้ โด่ง อะไรไม่ได้เลย ก็ต้องย้อนกลับไปดูว่า คนตอบได้ตั้งใจตอบจริงๆ หรือไม่ หรือเป็นเพราะคำถาม หรือเป็นเพราะการสุ่มที่ไม่กระจายตัว เลยทำให้คำตอบมากอง มากระจุก อยู่แค่ 2 ค่านี้


2.3 Q-Q plot/ P-P plot

ที่มา: Asghar Ghasemi and Saleh Zahediasl. 2012. Normality test for statistic analysis: A Guide for Non-Statistician.


ภาพ P-P plot กับ Q-Q plot จะมีพิจารณาคล้ายกัน คือ หากข้อมูลกองอยู่บนเส้นก็จะถือว่ามีความเข้าใกล้ความเป็น normal แต่ด้วยกราฟเหล่านี้ ไม่ได้มีตัวเลขมาช่วยในการพิจารณา ดังนั้น เราทำได้เพียงใช้การตัดสินใจส่วนตัวมาช่วยตอบว่า ข้อมูลนี้ normal หรือไม่


อ่านแล้ว อาจเกิดคำถามว่า อ้าวแล้วแต่ละคนมีการตัดสินใจไม่เหมือนกัน จะมั่นใจได้อย่างไรว่ารูปนี้ ผู้อ่านทุกคนจะคิดเหมือนกัน คำตอบก็คือ ไม่มีอะไรเชื่อมั่นได้ 100% ดังนั้น รูปเหล่านี้ คือ graphical method ของการพิจารณา normality ดังนั้น เราจะไม่นำเสนอเพียงเรื่องเดียว เราต้องนำเสนอทุกค่าที่กล่าวไปข้างต้น ซึ่งถ้าไปตามอ่านบทความวิจัยต่างๆ จะพบว่าถ้ามีหัวข้อในการนำเสนอการทดสอบนี้ ก็จะพบการนำเสนอค่าที่หลากหลายไม่ได้เจาะจงแค่เพียงตัวเดียว


2.4 Box-Plot


ภาพ bloxplot จะแสดงถึงส่วนต่างๆ ของข้อมูล

  • ขีดบน คือ ค่าสูงสุด (max)

  • ขีดล่าง คือ ค่าต่ำสุด (min)

  • ขีดตรงพื้นที่กล่อง จะมีขีดบนของกล่อง ขีดกลาง และขีดล่างของกล่อง

    • ขีดบนของกล่อง คือ Quartile3 หรือ Percentile75

    • ขีดกลางของกล่อง คือ Median หรือ Quartile2 หรือ Percentile50

    • ขีดล่างของกล่อง คือ Quartile1 หรือ Percentile25

ที่มา: จรัล ทรัพย์เสรี. รู้จักกับ Boxplot. For Quality Vol.16. No.148. February 2010. p35





3.แนวทางแก้ปัญหา


หากข้อมูลไม่แจกแจงเป็นโค้งปกติจริงๆ ก็จะมีแนวทางในการแก้ปรับข้อมูลเพื่อให้แจกแจงเป็นโค้งปกติได้ โดยมีแนวทางดังนี้


3.1 การแปลงข้อมูล Transform data


การแปลงข้อมูลที่มักพูดถึงกัน ก็คือ take log แต่มีคำแนะนำเกี่ยวกับการ take log ด้วยวิธีของ Box-Cox transformation



จากเว็บ statisticshowto.com ได้แนะนำวิธีการแปลงค่าแบบ Box-Cox ไว้ ถ้าดูจากรูป ก็คือ ต้องการค่า Lambda เท่าไร ก็ให้แปลงค่าตามการแนะนำได้เลย


แล้วถ้าทำทั้งหมดแล้วยังไม่ได้ ก็คงต้องเปลี่ยนไปใช้สถิติ non-parametric


3.2 เปลี่ยนไปใช้สถิติ non-parametric


เมื่อทำการแปลงข้อมูลแล้วก็ยังไม่สามารถแก้ปัญหา ข้อมูลแจกแจงไม่เป็นปกติได้ ก็ต้องเปลี่ยนไปใช้สถิติแบบ non-parametric แทน มีคำแนะนำจากเว็บไซต์ของ Minitab ดังนี้


ที่มา: Tips and Tricks for Analyzing Non-Normal Data. www.Minitab.com





4.สรุป


สามารถสรุปเป็นประเด็นได้ดังนี้

  • Normality มีไว้ตรวจสอบข้อมูล ว่า มีการแจกแจงเป็นโค้งปกติหรือไม่ เพื่อไปทดสอบสถิติ parametric ในลำดับต่อไป

  • สามารถทดสอบ normality ได้หลายแนวทาง ได้แก่ Kolmogorov-smirnov กับ Sharpiro-Wilks, Skewness ความเบ้ Kurtosis ความโด่ง, Q-Q plot, P-P plot, Boxplot

  • เกณฑ์ที่สำคัญในการพิจารณาด้วย Normality test statistic คือ ควรไม่มีนัยสำคัญ หรือ ค่า sig > 0.05

  • เกณฑ์ในการพิจารณาด้วย Skewness/ Kurtosis คือ ควรเข้าใกล้ 0 หรืออยู่ระหว่าง -2 ถึง +2 หรือ -3 ถึง +3 แล้วแต่การอ้างอิง

  • หากข้อมูลยังมีปัญหา ไม่แจกแจงเป็นโค้งปกติ ให้ลองวิธีการทางคณิตศาสตร์ เช่น take log, มักแนะนำวิธีการของ Box-Cox transformation ซึ่งประกอบไปด้วย square root, inverse, natural log หรือใช้วิธีการของ Johnson transformation

  • หรือสุดท้ายเปลี่ยนไปใช้สถิติแบบ non-parametric


 

อ้างอิง

จรัล ทรัพย์เสรี. รู้จักกับ Boxplot. For Quality Vol.16. No.148. February 2010. p35


Asghar Ghasemi and Saleh Zahediasl. 2012. Normality test for statistic analysis: A Guide for Non-Statistician.


Hun Myoung Park. 2008. Univariate Analysis and Normality Test Using SAS, Stata, and SPSS.






 

ร่วมติดตามได้ทุกช่องทาง

follow or subscribe in any channel

.

tel.086-555-5949

line: @SmartResearchThai

Blockdit: SmartResearchThai

Youtube: SmartResearchThai

Facebook: SmartResearchThai

#ปรึกษาสถิติ #สอนใช้โปรแกรมสถิติ #แก้ปัญหาสถิติ


Recent Posts

See All

Comments


bottom of page