Portfolio Selection: Markowitz portfolio
- Nuthdanai Wangratham
- 13 มี.ค.
- ยาว 3 นาที
อัปเดตเมื่อ 14 มี.ค.
พอร์ตการลงทุนที่ดีเป็นมากกว่าการผสมกันระหว่างหุ้นหรือตราสารหนี้ที่ดี — Harry Markowitz
การค้นหาพอร์ตการลงทุนที่ดีเป็นโจทย์ปัญหาของผู้ที่เกี่ยวข้องกับการลงทุน เมื่อคุณตัดสินใจนำเงินที่คุณหามาได้จากแรงกาย การทำงานหนัก หรือ จะมาจากการขอพ่อแม่ที่รำ่รวยอยู่แล้ว สิ่งที่คุณคาดหวังคือการลงทุนของคุณจะเป็นการลงทุนที่ดี แต่พอร์ตการลงทุนที่ดีคืออะไร?
ในโลกการลงทุนก่อนปี 1952 ทุกคนพยายามสร้างพอร์ตการลงทุนที่ให้ผลตอบแทนสูงที่สุดที่เป็นไปได้ แต่ก็หามีผู้หากระบวนการสร้างพอร์ตการลงทุนที่สมเหตุสมผลได้ หากเราสามารถรู้ผลตอบแทนในอนาคตเราคงเป็นผู้รํ่ารวยมหาศาล และสิ่งนี้เป็นปัญหาใหญ่ขึ้นเมื่อคุณไม่ได้จัดการเงินของคุณเอง อะไรแหละที่จะบอกคุณว่าจัดการเงินลงทุนพวกนั้นได้อย่างรอบคอบแล้ว
ปัญหาทั้งหมดถูกแก้ไขด้วยชายที่ยิ่งใหญ่ที่สุดในโลกการลงทุนนามว่า Harry Markowitz
Setting
จากรูปด้านล่าง หากเรามีพอร์ตการลงทุน 3 พอร์ต คำถามคือเเราควรเลือกพอร์ตการลงทุนพอร์ตใดเพราะอะไร

.
.
.
.
.
.
.
. .
.
.
.
.
.
.
..
.
.
.
.
.
.
.
.
ถ้าคุณเลือก C ก็เพราะว่าคุณชอบเล่นหวย ถ้าคุณเลือก B คุณอาจจะเป็นพ่อพระ แม้คนส่วนใหญ่จะเลือก A แต่ก็หาได้มีคำตอบที่ถูกต้องอย่างแท้จริง(ถ้าคุณไม่เชื่อว่ามนุษย์เป็นสิ่งมีชึวิตที่ตัดสินใจด้วยเหตุผลอ่านะ ) ถึงตรงนี้ผมแค่กำลังจะบอกว่าแบบจำลองทุกแบบจำลองจะดีเท่าที่สมมุติฐานมันเป็นจริง
แต่เราจะเห็นได้ว่า คนส่วนใหญ่หาได้ต้องการผลตอบแทนสูงสุดไหม(Graham คิดผิด ถถถถ แม้ จะมีบางคนเถียง อาทิเช่น https://www.youtube.com/watch?v=V1zjN8bQTUY )
กลับเข้าเรื่อง Markowitz เสนอว่าเราไม่ควรใช้สมมุติฐานที่ว่าเราควรใช้ผลตอบแทนสูงที่สุดแต่ยังต้องคำนึงถึงความเสี่ยงด้วยหรือ “risk-return trade-off”
นอกจากนั้นยังมีสมมุติฐานที่ว่านักลงทุนทุกคนมีเหตุมีผลแบบสมบูรณ์และต้องการความมั่งคั่งมากที่สุด รวมถึงนักลงทุนทุกคนมีระยะเวลาลงทุนเท่ากันและช่วงเวลาเดี่ยว(เราจะไม่มีการตัดสินใจใดๆจนกระทั้งครบระยะเวลาลงทุน )
การสร้างพอร์ตการลงทุน Markowitz portfolio
กระบวนการสร้างพอร์ตการลงทุนมีสองขั้นตอน
ขั้นตอนแรก คือการสังเกตและการประมาณการตัวแปรตามที่เราเชื่อ
ขั้นตอนที่สอง คือการเลือกพอร์ตตามที่เราเชื่อ
และวันนี้เราจะพูดถึงขั้นตอนที่สองเท่านั้น เพราะส่วนแรก Markowitz ไม่ได้พูดไว้(จริงๆ เขาเขียนไว้แต่มันผิด ]: )
เราจะเริ่มต้นด้วยการสุ่มนำ้หนักในพอร์ตการลงทุนของเรา แล้วนำมาพอร์ตแกน X คือ ความเสี่ยง แกน Y คือ Return เราจะได้รูปด้านล่าง

ผมสุ่มพอร์ตเป็นรูปดาวสีเขียว คำถามคือพอร์ตนี้ใช่พอร์ตที่ดีที่สุดแล้วหรือไม่ ?

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

จบแล้ว แค่นี้เราก็จะได้พอร์ตการลงทุนตาม Markowitz portfolio
แต่ปัญหาก็คือหากเเราสุ่มเราจะรู้ได้อย่างไรว่าพอร์ตการลงทุนที่เราได้เป็นพอร์ตการลงทุนที่ดีที่สุดจริงๆ? เราจริงต้องใช้ เทคนิค Optimization
Portfolio Optimization
หัวใจหลักของ Markowitz Portfolio Theory คือ ความสัมพันธ์ระหว่างผลตอบแทนที่คาดหวัง (Expected Return) กับความเสี่ยง (Risk หรือ Volatility) โดย:
ผลตอบแทนของพอร์ต คือ ค่าเฉลี่ยถ่วงน้ำหนักของผลตอบแทนแต่ละสินทรัพย์
ความเสี่ยงของพอร์ต คิดจากผลรวมของ Variance และ Covariance ระหว่างสินทรัพย์:

เราก็สามารถกำหนดฟังก์ชันวัตถุประสงค์ (Objective function) ได้แบบนี้เลย:

เมื่อ λ คือ ความเกลียดชังของความเสี่ยง (Risk aversion)หรือค่าที่บอกทัศนคติของความเสี่ยงของเรา "ผลตอบแทนที่คาดหวังลบด้วยความเสี่ยงที่เราต้องรับ" (คิดเป็นค่าความแปรปรวนคูณตัวแปรความเกลียดความเสี่ยง) แล้วหาน้ำหนัก w ที่จะทำให้ฟังก์ชันนี้สูงที่สุด ถ้าเราเปลี่ยนค่า λ ไปเรื่อยๆ ก็จะลากเส้นพรมแดนประสิทธิภาพนี้ออกมาได้เอง หรือพูดอีกอย่างหนึ่งคือ เราสามารถเปลี่ยนปัญหานี้ให้กลายเป็นการหาคำตอบโดยใช้การ Constrained Optimization (การหาค่าเหมาะสมแบบมีเงื่อนไข) ได้เหมือนกัน
"เป็นพอร์ตการลงทุนที่ให้ผลตอบแทนสูงสุดสำหรับระดับความเสี่ยงที่กำหนด หรือพูดอีกแบบคือให้ความเสี่ยงต่ำสุดสำหรับผลตอบแทนที่เราต้องการ"
ตัวอย่าง Code Python
import numpy as np
from math import sqrt
from scipy.optimize import minimize
# Expected returns
mu = np.array([0.10, 0.12, 0.18])
# Covariance matrix based on volatilities and correlations
sigma = np.array([0.10, 0.15, 0.20])
corr = np.array([[1.0, 0.2, 0.1],
[0.2, 1.0, 0.3],
[0.1, 0.3, 1.0]])
Sigma = np.outer(sigma, sigma) * corr # covariance matrix
# Objective: portfolio variance
def portfolio_variance(w):
return float(w.T @ Sigma @ w)
# Constraints: fully invested (sum w = 1)
constraints = ({'type': 'eq', 'fun': lambda w: np.sum(w) - 1})
# Bounds: no short-selling (each w between 0 and 1)
bounds = [(0.0, 1.0)] * len(mu)
# Initial guess (equal weights)
w0 = np.array([1/len(mu)] * len(mu))
# Solve the QP using Sequential Least Squares Programming (SLSQP)
result = minimize(portfolio_variance, w0, method='SLSQP', bounds=bounds, constraints=constraints)
w_opt = result.x
การใช้งานจริงและข้อจำกัดของทฤษฎีพอร์ตโฟลิโอของ Markowitz
“When past performance of securities is used as input, the output is a portfolio which performed particularly well in the past."Markowitz
“When the beliefs of security analysts are used as input, the output of the analysis is the implication of these beliefs”Markowitz
ผมยังจำวันแรกที่ได้ยินคำว่า "Efficient Frontier" ได้ดี มันฟังดูมีเสน่ห์เหลือเกิน เสมือนว่าเราเป็นนักบุกเบิกที่กำลังปีนป่ายขึ้นไปยังยอดเขาแห่งการลงทุนที่มีผลตอบแทนสูงสุด แต่เมื่อโตขึ้นในโลก Quant Finance ผมกลับได้เรียนรู้ว่าสิ่งที่เรียกว่า "efficient" ในโลกทฤษฎีการเงินนั้น บางครั้งก็มีระยะห่างกับโลกจริงพอสมควร
Harry Markowitz ชายผู้ได้รับการกล่าวถึงเสมือนเทพแห่ง Portfolio Theory ในปี 1952 เขาได้ให้กำเนิดแนวคิดสุดคลาสสิกที่นักลงทุนทุกคนจำเป็นต้องเรียนรู้ ก่อนที่จะตัดสินใจว่า จะใช้จริงหรือแค่ทิ้งไว้ในตำราเรียน นั่นคือสิ่งที่เรียกว่า Modern Portfolio Theory (MPT) ซึ่งคำว่า "Modern" นั้น ฟังดูทันสมัยดีถ้าเรายังติดอยู่ในยุค 1950
ตามทฤษฎี Efficient Frontier คือกลุ่มพอร์ตที่ให้ผลตอบแทนสูงสุดภายใต้ระดับความเสี่ยงที่กำหนด ฟังดูง่ายใช่ไหม? แค่ใส่ค่าผลตอบแทนที่คาดหวังและค่าความสัมพันธ์ระหว่างสินทรัพย์ จากนั้นก็กดปุ่ม Optimize และพอร์ตที่ดีที่สุดจะปรากฏตัวขึ้น
แต่ปัญหาคือ:
ค่าผลตอบแทนและ Covariance มักจะผิดเพี้ยนเสมอ ทำให้พอร์ตที่ "ควรจะดี" กลายเป็นหายนะได้ง่ายๆ
ตลาดเปลี่ยนตลอดเวลา แนวโน้มที่เคยเป็นจริงเมื่อวาน อาจใช้ไม่ได้แล้วในวันนี้
โมเดล Markowitz นั้น Sensitive กับข้อมูลมากเกินไป จนพอร์ตที่ได้อาจเต็มไปด้วยสินทรัพย์ที่ไม่น่าถือในชีวิตจริง
นักลงทุนน้อยคนนักที่สามารถทำให้พอร์ตอยู่บน Efficient Frontier ได้จริง เพราะต้องใช้ข้อมูลที่แม่นยำแบบสุดๆ และไม่มีข้อผิดพลาดเลย
สุดท้ายแล้ว Efficient Frontier กลับกลายเป็นเส้นที่ไล่ตามไม่ทันซะมากกว่า และพอร์ตที่นักลงทุนถืออยู่จริงๆ อาจจะอยู่ไกลจากเส้นนี้มากกว่าที่พวกเขาคิด
Error Maximization
การ Optimize พอร์ตแบบ Markowitz มีนิสัยเสียอย่างหนึ่งคือ มันไม่ได้ขยายแค่ข้อดี แต่ขยายทุกข้อผิดพลาดในข้อมูลของคุณเล็กน้อยจนกลายเป็นปัญหาใหญ่ ถ้าใส่ค่าคาดการณ์ผิดเพียงนิดเดียว พอร์ตที่ได้อาจจะออกมาแปลกจนใช้งานไม่ได้เลย
ตัวอย่างเช่น:
พอร์ตที่ได้อาจเต็มไปด้วยหุ้นขนาดเล็กที่มีสภาพคล่องต่ำ
หรือแนะนำให้ Short หุ้นที่เป็นตลาดกระแสหลัก เช่น S&P 500 หรือ Microsoft
หรือเกิดการ Overweight ในอุตสาหกรรมที่คุณไม่เคยสนใจมาก่อน
อาจเกิด Portfolio Turnover สูงเกินไป ทำให้ค่าธรรมเนียมซื้อขายพุ่งสูง จนกลยุทธ์ไม่คุ้มค่า
ต้นทุนและข้อจำกัดในตลาด: ความจริงที่ไม่มีในโมเดล
อีกปัญหาใหญ่คือโมเดล Markowitz ไม่คำนึงถึง Transaction Cost, Slippage, และ Liquidity Constraints ซึ่งเป็นสิ่งที่นักลงทุนตัวจริงต้องเผชิญทุกวัน
ถ้าทุกครั้งที่โมเดลบอกให้คุณซื้อ-ขายสินทรัพย์ คุณต้องจ่ายค่าธรรมเนียมจำนวนมาก ผลลัพธ์ที่ได้จาก Optimization ก็ไม่มีความหมายอะไรเลย และอย่าลืมว่าในตลาดจริงนั้น นักลงทุนไม่สามารถซื้อ-ขายสินทรัพย์ในสัดส่วนที่เป๊ะๆ ตาม Optimization Model ได้ เพราะสภาพคล่องและข้อจำกัดของตลาดทำให้ต้องมีการปรับตัวอยู่เสมอ
วิธีจัดการกับข้อจำกัด
มีสองสำนักคิดที่เกิดขึ้นเพื่อปรับปรุงและขยายขอบเขตของ MPT ได้แก่ หนึ่งที่มุ่งเน้นการเพิ่มประสิทธิภาพของกระบวนการวิเคราะห์ในกรอบเวลาแบบช่วงเวลาเดียว (Single-period) และอีกหนึ่งที่มุ่งเน้นการใช้การเขียนโปรแกรมเชิงสโตแคสติกแบบหลายช่วงเวลา (Multi-period Stochastic Programming) แนวคิดเหล่านี้ต่างมีข้อดีที่ช่วยเพิ่มประสิทธิภาพในการบริหารพอร์ตโฟลิโอในสภาวะการเงินที่ซับซ้อนมากขึ้น
สำนักคิดที่ 1: การเพิ่มประสิทธิภาพในกรอบช่วงเวลาเดียว
แนวคิดแรกมุ่งเน้นการพัฒนากระบวนการวิเคราะห์ภายในกรอบ MPT แบบดั้งเดิมโดยปรับปรุง:
การประเมินพารามิเตอร์ที่ดีขึ้น: เนื่องจาก MPT ดั้งเดิมต้องพึ่งพาค่าประมาณของอัตราผลตอบแทนที่คาดหวัง ความแปรปรวน และความสัมพันธ์ระหว่างสินทรัพย์ ซึ่งเป็นพารามิเตอร์ที่คาดการณ์ได้ยาก จึงมีการพัฒนาแนวทางต่างๆ เพื่อลดข้อผิดพลาดของการประมาณค่าดังกล่าว เช่น:
สถิติแบบเสถียร (Robust Statistics): วิธีการที่ช่วยลดผลกระทบจากค่าผิดปกติและข้อผิดพลาดของการประมาณค่า
วิธีการแบบเบย์ (Bayesian Methods): การรวมข้อมูลเก่ากับข้อมูลใหม่เพื่อปรับค่าประมาณให้แม่นยำขึ้น
โมเดล Black-Litterman: กรอบการทำงานที่รวมมุมมองของนักลงทุนเข้ากับข้อมูลในอดีตเพื่อให้ได้ค่าประมาณของผลตอบแทนที่เสถียรมากขึ้น
Shrinkage Methods และ Regularization: เทคนิคทางสถิติที่ช่วยปรับค่าประมาณที่มีความสุดโต่งให้อยู่ในขอบเขตที่สมเหตุสมผลขึ้น
การใช้ Machine Learning: การนำอัลกอริธึมขั้นสูงมาใช้ในการวิเคราะห์รูปแบบและปรับปรุงการคาดการณ์ให้แม่นยำยิ่งขึ้น
การใช้เทคนิคการเพิ่มประสิทธิภาพที่เสถียร: การยอมรับว่าตลาดการเงินมีความไม่แน่นอน ทำให้ต้องมีการพัฒนาวิธีที่ช่วยให้พอร์ตโฟลิโอสามารถรับมือกับสถานการณ์ที่หลากหลายได้ดีขึ้น เช่น:
การเพิ่มประสิทธิภาพแบบเสถียร (Robust Optimization): การคำนึงถึงความไม่แน่นอนของพารามิเตอร์เพื่อสร้างพอร์ตโฟลิโอที่แข็งแกร่งขึ้น
การใช้ค่าเฉลี่ยของโมเดล (Model Averaging): การรวมหลายโมเดลเข้าด้วยกันเพื่อลดความเสี่ยงที่เกิดจากการพึ่งพาสมมติฐานเพียงชุดเดียว
สำนักคิดที่ 2: การใช้การเขียนโปรแกรมเชิงสโตแคสติกแบบหลายช่วงเวลา(Dynamic Programming)
แนวคิดที่สองเน้นการขยายกรอบของ MPT ให้คำนึงถึงการเปลี่ยนแปลงของตลาดการเงินตลอดเวลา ซึ่งใช้แนวทาง การเขียนโปรแกรมเชิงสโตแคสติกแบบหลายช่วงเวลา โดยมีข้อดีสำคัญดังนี้:
ยอมรับความเป็นพลวัตของตลาด: แตกต่างจาก MPT แบบดั้งเดิมที่มักตั้งสมมติฐานว่าสภาวะตลาดคงที่ วิธีนี้ช่วยให้พอร์ตโฟลิโอสามารถปรับเปลี่ยนได้ตามแนวโน้มของตลาด
ให้ความสำคัญกับการบริหารความเสี่ยงขาลง: การขาดทุนรุนแรงสามารถส่งผลกระทบระยะยาว ดังนั้น วิธีนี้จึงให้ความสำคัญกับการสร้างแบบจำลองส่วนหางซ้ายของการแจกแจงผลตอบแทนให้แม่นยำยิ่งขึ้น
แม้ว่าการเขียนโปรแกรมเชิงสโตแคสติกจะให้แนวทางการแก้ปัญหาเชิงตัวเลขที่ดี แต่ความซับซ้อนของมันอาจทำให้เข้าใจได้ยาก จึงสามารถใช้ Stochastic Control ซึ่งเป็นแนวทางที่อิงคณิตศาสตร์เชิงวิเคราะห์เข้ามาเสริมเพื่อให้ได้ข้อมูลเชิงลึกมากขึ้น
บทบาทของการควบคุมเชิงสโตแคสติกในการบริหารพอร์ตโฟลิโอ
การควบคุมเชิงสโตแคสติกเป็นศาสตร์ที่อยู่จุดตัดระหว่างกระบวนการสโตแคสติก การเพิ่มประสิทธิภาพ และสมการเชิงอนุพันธ์ย่อย โดยมีข้อดีดังนี้:
ช่วยเสริมพื้นฐานเชิงวิเคราะห์ให้กับการเขียนโปรแกรมเชิงสโตแคสติก
ช่วยให้สามารถใช้ เทคนิคการประมาณค่าแบบไดนามิก (Filtering) ซึ่งช่วยปรับการคาดการณ์แบบเรียลไทม์โดยอิงจากข้อมูลที่เข้ามาใหม่
ช่วยพัฒนากลยุทธ์ที่ปรับเปลี่ยนได้ตามสภาวะตลาด

สรุป
แม้ Markowitz portfolio จะยังไม่สมบูรณ์แบบ แต่ก็เป็นจุดเริ่มต้นที่ดี มากๆในการศึกษาเรื่อง Port การลงทุนแบบ Quant ใครเขียน code ไม่ได้ผมอยากให้ลองเล่นอันนี้ https://www.portfoliovisualizer.com/analysis
ref :
Markowitz, H. (1952). Portfolio Selection. Journal of Finance, 7(1), 77–91. (Foundation of MPT)
Investopedia – Efficient Frontier
(definition of efficient frontier and diversification benefits)
Investopedia – Modern Portfolio Theory (MPT)
(overview of MPT benefits and criticism on variance vs downside risk)
Investopedia – Risk-Return Tradeoff
(explanation of the risk-return principle in investing)
Mosek Portfolio Optimization Cookbook – Dealing with Estimation Error
(discussion on sensitivity to inputs, Black-Litterman model)
Mosek Portfolio Optimization Cookbook – Shrinkage Estimation
(Ledoit-Wolf shrinkage for covariance)
Mosek Portfolio Optimization Cookbook – Robust Optimization
(explains robust portfolio selection as a worst-case optimization)
Greenleaf Trust – Diversification: The Only (Almost) Free Lunch
(attribution of the famous diversification quote to Harry Markowitz)
Comments