Price Distribution (Part 1 : Normal Distribution)
อยากทำเพื่อพ่อหลวงของเรา ในสิ่งที่เราถนัด ในวิชาชีพที่เราทำ วันที่เขียนบทความนี้วันที่ 14 ตุลาคม 2559 เป็นวันที่มีคนไข้เยอะมาก สิ่งที่แปลกประหลาดใจที่สุดคือ ผมรู้สึกทุกๆคนมีความรู้สึกเดียวกัน มันสัมผัสได้โดยไม่มีวาจาใด จะมีผู้ใดในโลกที่สามารถผูกใจทั้งแผ่นดินให้ 1 เดียวกันขนาดนี้ อยากจะตรัสกับท่านว่า ผมจินตนาการไม่ออกว่าประเทศไทยหากขาดท่านจะเป็นอย่างไร แต่ไม่ต้องห่วงพวกเรานะครับ ผมคนหนึ่งจะเดินตามรอยของพ่อหลวงตลอดไป เป็นหนึ่งเดียวกันให้ท่านพักผ่อนเสด็จสู่สวรรคาลัย "I Love The King, The Spirit Of Thailand"
เรื่องของ Price distribution จริงๆเรื่องนี้เป็นเรื่องใหญ่มาก ถ้าให้เขียนเนื้อหาทั้งหมด blog นี้ก็ไม่พอ ทำเป็นหนังสือทั้งเล่มได้เลยแค่เรื่องๆเดียว ค่อนข้างเป็นเรื่องที่ใกล้ความเป็นคณิตศาสตร์มากกว่าลงทุนหุ้น ต้องมีพื้นฐานทางด้านสถิติเข้ามาเกี่ยวพอสมควร แต่นี้ก็เป็นศาสตร์ของ Quantitative analysis ที่สำคัญที่สุด คณิตสาสตร์นั้นถึงจะยากแต่ก็งดงาม ผมก็อยากคงความเป็นคณิตศาสตร์ไว้ บทความนี้จึงแตกเป็นหลาย Part เนื่องจากไม่อยากให้ยาวเกินไป ผมจะย่อให้มากที่สุดเท่าที่ยังพอทำความเข้าใจได้อย่างง่าย
เหมือนเคย ผมจะยกตัวอย่างปัญหาก่อนจะเข้าเรื่องนะครับ เรามักจะได้ยินสถิติในตลาดหุ้นอยู่เสมอ เช่น การลงของหุ้นในวันนี้ 100 จุด! จากการทดสอบย้อนหลัง เคยเกิดขึ้นในตลาดหลักทรัพย์ XX ครั้งตลอด 20 ปี โดยส่วนใหญ่โอกาส ZZ % จะดีดกลับมา YY จุด หรือไม่ก็ กลยุทธ์นี้มีความน่าจะเป็นที่จะกำไร 55% จากการทดสอบหุ้นทุกตัวในตลาด 20 ปี เป็นต้น เราฟังแล้ว test ตั้ง 20 ปี ก็น่าจะเชื่อถือได้นะครับ แต่คำถามแรกที่ Quantitative ต้องถามคือ "การกระจายตัวของข้อมูลที่ทดสอบเป็นอย่างไร"
"การกระจายตัวของข้อมูลที่ทดสอบเป็นอย่างไร" ประโยคนี้เป็นสิ่งแรกสุดของงานวิจัยทุกเรื่องบนฐานของสถิติที่จำเป็นต้องมี เพราะค่าสถิติเชิงพรรณนา (Descriptive statistic) จะมีความน่าเชื่อถือ เมื่อข้อมูลอยู่ภายใต้ "การแจกแจงปกติ" และ ไม่มีความน่าเชื่อถือ เมื่อการแจกแจงมีหลายฐานนิยม
ในโลกความเป็นจริง มันใกล้ตัวเรามากกว่าที่เราคิด จนเราอาจจะลืมนึกไป เช่น ถ้าในห้องเรียนมีนักเรียน 10 คน มีค่าเฉลี่ยคะแนนคณิตศาสตร์อยู่ที่ 70/100 คะแนน เราก็แปลความว่าห้องนี้เรียนเก่งมากจริงไหมครับ แต่ถ้าคะแนนรายคน ออกมาเป็น 100,100,100,100,100,40,40,45,45,30 เป็งยังไงครับ ค่าเฉลี่ย 70 ก็จริง แต่เราด่วนสรุปเกินไป ค่าเฉลี่ยนนั้นกลับไม่น่าเชื่อถือ เพราะเราดูรายคน เราก็ค้นพบว่า "ข้อมูลมีการแจกแจงไม่ปกติ" เพราะมีคนทำได้เต็มครึ่งห้อง อีกครึ่งห้องตกหมด พูดง่ายๆข้อมูลมี 2 ฐานนิยม แบบนี้ผู้บริหารโรงเรียนก็ความหาสาเหตุ ว่าเป็นที่ข้อสอบไม่ดี ครูสอนไม่เก่ง หรือเป็นที่ตัวเด็ก กันแน่
เข้ามาเรื่องหุ้น (สักที = =) ช่วงที่หุ้นตกหนัก เราก็มักวิเคราะห์กันว่าตกรุนแรงแบบนี้ เดี่ยวมันก็เด้ง เป็นไปตามสถิติ ว่าราคาหลุด 2SD เดี่ยวราคาก็กลับมาที่ค่า Mean (แนวคิดนี้อ่านได้ในเรื่อง Bollinger Band) ที่ความน่าจะเป็น 60% ถ้าเป็น 3SD จะมีโอกาสน้อยมากที่จะเกินไม่ถึงกี่ percent ก็ว่ากันไป บางคนก็เห็นด้วย บางคนก็ค้านว่าการเคลื่อนที่ของราคาหุ้นมันไม่ใช่ normal distribution นะ เอาจริงๆมันเป็นปัญหาระดับโลกที่มีคนเห็นด้วยกับไม่เห็นด้วยอยู่แล้วในเรื่องนี้ เพราะทั้งโลกใบนี้ก็พิสูจน์กันเรื่อยมา ในเรื่องของ "Random Walk" ลองไปอ่านเพิ่มกันดูนะครับ
มีหลายทฤษฎีที่พยายามอธิบาย แต่ผมอยากให้เข้าใจตรงกันก่อน ว่าราคาหุ้นเป็นข้อมูลอนุกรมเวลา หมายความว่าข้อมูลในอดีตทั้งหมดในเวลานี้ จะกี่ร้อยปีก็ตาม มันเป็นเพียง Sample เล็กๆ ในจักรวาลของเวลา เช่น ตลาดหุ้นไทย 30 ปี ก็เป็นเศษของข้อมูลของตลาดอเมริกา แล้ว 100 ปีของตลาดอเมริกาก็เป็นเศษเสี้ยวของปริมาณข้อมูลในอีก 1000 ปีถัดไป (ถ้าเราอยู่กันถึงนะ) เพราะฉะนั้นมันไม่มีทางเป็น Population ของข้อมูลทั้งหมด มันเป็นเพียงเศษเสี้ยวของ Sample ที่เราหยิบขึ้นมาเท่านั้น เพราะฉะนั้น ผลของตัวเลขต่างๆอาจจะจริงหรือไม่จริงก็ได้ แต่สามารถอนุมานได้ทางสถิติ ซึ่งก็คือ ความน่าจะเป็น อันเป็นหัวใจสำคัญที่สุดของ Quantitative analysis
เรามาพิสูจน์กันก่อนใน Part นี้ ผมจะทำให้เข้าใจง่ายที่สุด เราจะเริ่มจาก SET index
สมมติฐาน : เราเชื่อว่า การเปลี่ยนแปลงของดัชนี (index change) ในคาบเวลาที่กำหนด มีการกระจายตัวแบบปกติ
(แล้วเราจะต้องพิสูจน์เพื่อค้านสมมติฐานนี้)
นิยาม ตัวแปร index change เราจะคำนวน Close price To Close price (เอาเฉพาะราคาปิด) จากสูตร ln(ClosePrice/PreviousClosePrice) x 100 ค่าที่ได้จะเป็น percent การเปลี่ยนแปลง ไว้ผมจะมาพูดที่หลังนะครับว่าทำไมถึงใช้สูตรนี้แทนการคำนวนแบบ simple change ทั่วๆไป( (ClosePrice - PreviousClosePrice)/PreviousClosePrice x 100 ) ผลลัพท์ของ 2 สูตรนี้แตกต่างกันน้อยมากถ้าดูรายตัวของข้อมูล แต่ขอให้เชื่อตามผมไปก่อน เข้าใจ part นี้แล้ว ใน Part หน้าผมจะแสดงให้ดูว่ามันมี Impact มากขนาดไหนเมื่อพิจารณารวมข้อมูลทั้งหมด (เปรียบเหมือน Butterfly Effect)
ปล. ln คือ log ฐานธรรมชาติ e
นิยาม ตัวแปร คาบเวลา อันนี้ผมจะเลือกการเปลี่ยนแปลง 1 วัน มาวัดอัตราการเปลี่ยนแปลงของ SET index ก็คือ SET index เปลี่ยนแปลงไปกี่ percent เมื่อเทียบราคาปิดวันนี้กับราคาปิดของเมื่อวาน
เริ่มดึงข้อมูลตั้งแต่มีการบันทึกข้อมูล SET ในตลาดหลักทรัพย์ เท่าที่ผมหาได้ ตั้งแต่ 1975 นะครับ
แล้วก็ใส่สูตรไล่ไปเรื่อยๆ
(บทความนี้เขียนตั้งแต่เดือนที่แล้ว แต่คอมฯ macbook air มัน error หลายรอบมาก กว่าจะทำเสร็จ เลยล่าช้าเพราะเหตุนี้)
เริ่มจากกลุ่มแรก 1 Day change (ไว้จะอธิบายกลุ่มอื่นๆที่หลัง) อัตราการเปลี่ยนแปลงของ SET index รายวัน
แกน Y คือ ปริมาณข้อมูลในแต่ละอันตาภาคชั้น
แกน X คือ ค่าของข้อมูล Index change ของ 1 วัน
ผมตัดค่า outlier ที่ 5% (ที่เลือกค่านี้เพราะผมว่ามันดู critical ในชีวิตจริง ถ้า SET ที่ 1500 ตกไป 5% หมายกว่าว่า Close วันนี้ปิดตลาดตก 75 จุด และเพื่อรูปกราฟที่มองง่าย ซึ่งผมจะค่อยๆอธิบายต่อไป)
เส้นกั้นกลาง คือ ค่า 0 % ไม่ใช่ค่าเฉลี่ย Mean นะครับ
มองคร่าวๆแล้วเป็นอย่างไรบ้างครับ -- มันก็ดูเป็นการแจกแจงปกตินี่ คำนวนค่า Mean ได้ 0.0236 % แสดงว่าส่วนใหญ่แล้ว SET มีการเปลี่ยนแปลงแค่ 0.0236% ต่อวันเอง คำนวนค่า SD หรือ Standard Deviation ได้ 1.436 แสดงว่า SET เบ้ออกจากจุดศูนย์กลาง +-1 SD = +-1.436 คำนวนความน่าจะเป็นที่ SET จะเปลี่ยนแปลงแค่ +-1SD ที่ 68% คำนวนตามสถิติเชิงพรรณนา Descriptive Statistic ได้ดังนี้
เอาแค่นี้ก่อน ... เราอย่าพึ่งด่วนสรุป! เหมือนที่ผมได้อธิบายไว้ข้างต้นเรื่องค่าเฉลี่ยคะแนนสอบ เราจะต้องดูก่อนว่าข้อมูลมีการแจกแจงแบบใด --> แต่นี่ก็สร้าง Histogram แล้วนี่ ได้กราฟที่หน้าตาเหมือนการแจกแจงปกติด้วย มันก็อนุโลมให้เป็นการแจกแจงปกติได้
จริงๆคำพูดว่า "เหมือน" เราก็ต้องกำหนดให้ชัดก่อนว่าเหมือนอย่างไร --> ก็...ข้อมูลที่เห็นก็ไม่ได้เบ้ซ้าย หรือเบ้ขวา เหมือนในบทความก่อนๆ แล้วยังมีฐานนิยมเดียวด้วย ทำไมจะเป็นการแจกแจงแบบปกติไม่ได้หละ --> จริงอยู่ที่กราฟไม่เบ้ให้เราเห็นจนยอมรับไม่ได้ แต่แบบนี้ก็ยังพูดไม่ได้เต็มปากว่า ข้อมูลไม่เบ้ = การแจกแจงแบบปกติ เราจะสรุปได้เพียงข้อมูลมีความสมมาตรซ้ายและขวาจากค่ากลาง
อ่าว แล้ว.... ทำไมข้อมูลฐานนิยมเดียวที่สมมาตราซ้ายและขวา จึงยังไม่ใช่ Normal distribution?
คำตอบของคำถามนี้ เราต้องย้อนกลับไปเริ่มต้นที่คุณสมบัติของ การแจกแจงแบบปกติทั่วไป ในสมัยที่เรียนตอน ม.ปลายกันเลยครับ คนที่คิดค้นสมการโค้งปกติคนแรกคือ de Moivre เผยแพร่ตั้งแต่ปี 1738 เป็นสูตร Probability density of the normal distribution ดังนี้
(ref: https://en.wikipedia.org/wiki/Normal_distribution#Moments)
แต่ไม่ต้องท่องสูตรก็ได้ครับ แค่แทนค่าในสูตรก็จะได้ กราฟความหนาแน่นของความน่าจะเป็นของการแจกแจงแบบปกติ ดังนี้
Probability Density Function ย่อว่า PDF แสดงค่าของตัวแปรในแกน X และความน่าจะเป็น ณ ตำแหน่งข้อมูลในแกน Y รวมพื้นที่ใต้กราฟได้ 1.0 (สัดส่วนความน่าจะเป็น)
Cumulative Distribution Function ย่อว่า CDF เป็น กราฟเมื่อสักครู่นี้ แต่แกน Y คือผลรวมความน่าจะเป็นจากข้อมูลซ้ายไปขวา ค่าสูงสุดคือ 1.0
เห็นทีแรกก็มึนตึบไปเลยไหมครับ แต่ไม่จำเป็นต้องจำ ไม่ต้องรู้สัญญาลักษณ์อะไรหรอกครับ รู้แค่ Function นี้มันมีประโยชน์ตรงพื้นที่ใต้กราฟ สามารถบอกความน่าจะเป็นได้ อันเป็นหัวใจของสถิติ ที่เราต้องการ มีแค่นี้จริงๆครับ
ทีนี้เราสามารถเปรียบเทียบค่ามาตราฐานกับข้อมูลของเราได้แล้ว เดิมทีวิธีการสร้าง Histogram เป็นวิธีพื้นฐานที่สุดในการพิสูจน์การแจกแจงเป็นปกติหรือไม่ แต่น่าเชื่อถือน้อยที่สุด เพราะอาศัยแค่ตาดูคร่าวๆว่าทรงกราฟน่าจะใช่ วิธีถัดมาก็ก็เป็นการเทียบกับค่า parameter มาตราฐาน ซึ่งเป็นวิธีที่เรียนในสถิติ ม.ปลายครับ
1) mean = median = mode ซึ่งข้อนี้ผมเห็นด้วย ข้อมูลของเรา คือ 0.026 ~0.00~0.02 ซึ่งมันก็โอเคยอมรับได้
2) ข้อมูลมีฐานนิยมเดียว (Unimodal) มียอดสูงสุดที่ตำแหน่ง Mean เห็นชัดเจนว่าข้อมูลของเรามียอดสูงสุดของปริมาณข้อมูลแค่ยอดเดียว แล้วก็ใกล้เคียงค่า Mean
3) ข้อมูลมีความสมมาตรซ้ายและขวา ดูจาก Mean Median Mode ว่าค่าต้องเป็นค่าเดียวกัน หรือใกล้เคียงกันอย่างมาก(ตรงนี้ก็ไม่มีข้อกำหนดอย่างชัดเจนว่าต้องใกล้ขนาดไหน) หรือดูค่า Skewness (ความเบ้) ก็ได้ ควรจะมีค่าเข้าใกล้ 0 ซึ่งก็ยอมรับได้ (วิธีการจริงๆเราจะต้องคำนวน Standard error แล้วประเมิน p-value แต่ค่า -0.107 ก็ยอมว่าสมมาตรแล้วหละครับ)
4) ข้อนี้แหละครับที่เป็นปัญหาอยู่จนปัจจุบัน แล้วดันเป็นข้อที่สำคัญที่สุด คือ เวลาขยายช่วงค่า x ออกมาจากแกนกลาง พื้นที่ใต้กราฟต้องประมาณได้จาก Function สูตรข้างต้น เช่น ขยายช่วงค่า x ออกมาจากแกนกลางข้างละ 1 SD จะกินพื้นที่ประมาณ = 68% ผมจะพิสูจน์วิธีสากลของ Normality Test ในตอนถัดไป ซึ่งต้องใช้ สถิติเชิงอนุมาน แต่ในตอนนี้เราสามารถพิจารณาทางอ้อมได้จาก Moment วิธีนี้ง่ายที่สุด ถูกเขียนไว้ในหนังสือ Statistical Models in Engineering ของ Hahn and Shapiro
ก่อนอื่น เราต้องรู้จัก Moment ในทางสถิติก่อน นึกถึงแกนหมุนในวิชาฟิสิกส์
Moment ที่ 1 คือ ค่าเฉลี่ยนระยะห่างจากค่ากลางกำลัง 2 ก็คือค่า Variance (ความแปรปรวน) นั่นเอง ค่าที่ได้ไม่มีวันเป็นลบ ถอดรากที่ 2 ได้ระยะห่างจากค่ากลาง หรือว่า Standard deviation เราย่อว่า SD หรือเรียกว่า Sigma นั่นเอง เหมือนวัดระยะห่างยากแกนหมุน
Moment ที่ 2 คือ ให้นึกถึง Moment ที่ 1 เรายกกำลัง 2 แต่ Moment ที่ 2 เราจะยกกำลัง 3 ของระยะห่างจากค่ากลางเราจะได้ค่า บวก/ลบ กลับคืนมาแต่ข้อมูลที่มีค่ามาก เมื่อยกกำลัง 3 แล้ว ค่าจะกระโดดไปไกลจากค่ากลางมาก ตั้งชื้อให้ว่า Skewness (ความเบ้) แสดงว่าถ้าข้อมูลไม่สมมาตรจริง ค่าเป็นบวกที่มากเกินไปพอยกกำลัง 3 แล้วจะกระโดดไปไกลทางบวกอย่างมาก บวกกันแล้วก็จะได้ค่าเป็น บวก จึงแปลผลได้ว่าข้อมูลนี้ เบ้ไปทางบวก หรือ เบ้ไปทางขวา หรือ Positive Skewness ในทางกลับกันค่าเป็นลบที่มากเกินไปพอยกกำลัง 3 แล้วจะกระโดดไปไกลทางลบอย่างมาก บวกกันแล้วก็จะได้ค่าเป็น ลบ จึงแปลผลได้ว่าข้อมูลนี้ เบ้ไปทางลบ หรือ เบ้ไปทางซ้าย หรือ Negative Skewness ให้ลองนึงถึงแรงกดบนแกนหมุนด้านไหนมีแรงมากกว่าก็จะกดให้ คานเอียงไปด้านนั้น บ้างจึงใช้คำว่า ข้อมูลเอียงไปทางบวก หรือลบ ก็มี
ใน Normal distributio ค่า Skewness = 0 เราพิจารณาไปแล้ว
Moment ที่ 3 คือ นึกถึง Moment ที่ 1 แต่ยกกำลัง 4 ของระยะห่างจากค่ากลาง เราให้ชื่อว่า Kurtosis (ความโด่ง) ค่าที่ได้จะไม่มีวันติดลบอีกรอบ แต่เนื่องจากต้องหารด้วย moment ที่ 1 ยกกำลัง 2 (Sigma ยกกำลัง 4) ซึ่งมีผลต่อค่าข้อมูลที่มีค่ามากๆ ก็จะโดนหารเยอะ ค่า Moment ที่ 3 ก็จะน้อยลง แปลได้ว่า ข้อมูลแบนราบ หรือ Negative Kurtosis กลับกันถ้าค่าที่กระจุกอยู่รอบค่าเฉลี่ยเยอะ จะทำให้ Moment ที่ 1 มีค่าน้อย ส่วนหารน้อย ค่า Moment ที่ 3 ก็จะมากขึ้น แปลได้ว่า ข้อมูลโด่ง หรือ Positive Kurtosis
แต่เนื่องจากค่ากลางเป็น 3 ดูจำยาก พอจะเทียบทีก็ต้องเอา 3 ไปลบ จะได้ดูง่ายขึ้น ก็เลยมีการปรับสูตร เรียกว่า Excess Kurtosis โดยจะมีค่ากลาง ที่ 0
ซึ่งใน Excel ก็จะคำนวนค่า Kurtosis เป็น Excess Kurtosis เป็นมาตราฐานอยู่แล้ว ไม่ต้องไปลบด้วย 3 อีก
ก่อนจบบทความนี้ Kurtosis (Ex.Kurtosis) ที่เราวัดได้ = 8.97 ! (เทียบกับ Normal distribution K ควรมีค่า = 0) เป็นค่าที่ Extreme มากๆ หรือข้อมูลมีความโด่งแบบสุดโต่ง หมายความว่า SET นัวเนียอยู่แถว 0 เท่านั้นในสภาวะทั่วๆไป เวลาเราวาด Histogram ทำให้เราพลาดภาพใหญ่ไป หน้าตาดูเหมือน Normal Distribution เนื่องจากเราไม่เห็นค่า extreme ที่บวกเกินไป กับลบเกินไป ถ้าเราวาดใหม่ให้โชว์ทุกอันตราภาคชั้น...
เราจะเห็นแค่อันตราภาคชั้นรอบๆค่า Mean เท่านั้น แล้วอยู่ดีๆ ก็หายไปอย่างรวดเร็ว มันไม่ได้หายไปไหนครับ แต่มันมองเทียบกับค่าสุดโต่งนั่นเอง ทำให้เราไม่สามารถแทนค่า SD แล้วหาความน่าจะเป็นของพื้นที่ใต้กราฟได้อย่างแม่นยำดังที่นิยามไว้ หรือพูดได้ว่า ความน่าจะเป็นที่หาได้จาก PDF of Normal Distribution ในกรณีนี้ไม่มีความแม่นยำ
เพราะฉะนั้น ภาวะปกติ SET จะไม่เคลื่อนที่ไปไหนไกลมากนัก แต่ภาวะที่ไม่ปกติ SET จะเปลี่ยนแปลงไปมากกว่าที่คาดคิดไว้นั่นเอง
ตอนนี้เราพอทราบคร่าวๆแล้วว่า การแจกแจงของการเปลี่ยนแปลงรายวันของ SET ไม่ใช่ Normal Distribution
แต่ผมเชื่อว่าแค่นี้มันก็ยังชัดเจนไม่มากพอสำหรับบางท่าน เพื่อเพิ่มความเชื่อมันในประโยคดังกล่าวนี้ ในทางสถิติจะต้องแสดงระดับความเชื่อมั่นด้วย ถึงจะเป็นวิธีสากล และเข้าใจได้ตรงกัน จึงจะสามารถปฏิเสธสมมติฐานข้างต้นได้อย่างมั่นใจ
ตอนต่อไปจึงจะเป็นวิธีทางสถิติเชิงอนุมาน ในส่วนของ Normality Test ซึ่งสามารถแสดงภาพให้เห็นได้อย่างชัดเจนยิ่งขึ้น และวิธีการประยุกติ์ใช้ข้อมูลดังกล่าว
ไม่มีความคิดเห็น:
แสดงความคิดเห็น