cor()relation
สังเกตเห็นความสัมพันธ์ระหว่างหุ้นสองตัวนี้ไหม? ดูเหมือนว่าเมื่อราคาหุ้น Apple ขยับขึ้น ราคาหุ้น Microsoft ก็มักจะขยับขึ้นตามด้วย วิธีหนึ่งที่ใช้วัดความสัมพันธ์แบบนี้คือการหาค่า correlation (สหสัมพันธ์) ระหว่างหุ้นทั้งสองตัว Correlation คือค่าที่บอกถึงความสัมพันธ์ระหว่างสองสิ่ง ในที่นี้คือราคาหุ้น โดยมีค่าอยู่ในช่วง -1 ถึง 1 ค่า 1 หมายถึงความสัมพันธ์เชิงบวกสมบูรณ์ ค่า -1 หมายถึงความสัมพันธ์เชิงลบสมบูรณ์ และค่า 0 หมายถึงหุ้นทั้งสองเคลื่อนไหวอย่างอิสระจากกัน Correlation เป็นตัวชี้วัดที่ใช้กันทั่วไปในด้านการเงิน และการรู้วิธีคำนวณใน R จะเป็นประโยชน์มาก
ฟังก์ชัน cor() ใช้คำนวณค่า correlation ระหว่างเวกเตอร์สองตัว หรือจะสร้าง correlation matrix เมื่อรับ matrix เป็น input ก็ได้
cor(apple, micr)
[1] 0.9477011
cor(apple_micr_matrix)
apple micr
apple 1.0000000 0.9477011
micr 0.9477011 1.0000000
cor(apple, micr) คืนค่า correlation ระหว่างหุ้นสองตัวโดยตรง ค่า correlation ที่สูงถึง .9477 บ่งบอกว่าราคาหุ้น Apple และ Microsoft เคลื่อนไหวใกล้เคียงกันมาก ส่วน cor(apple_micr_matrix) คืนค่าเป็น matrix ที่แสดง correlation ทุกคู่ที่เป็นไปได้ ค่า 1 ที่มุมบนซ้ายคือค่า correlation ของ Apple กับตัวเอง ซึ่งสมเหตุสมผลอย่างยิ่ง!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R เบื้องต้นสำหรับการเงิน
คำแนะนำการฝึกหัด
- เวกเตอร์ราคาหุ้นของ
apple,micrและibmถูกโหลดไว้ใน workspace แล้ว - คำนวณค่า correlation ระหว่าง
appleกับibm - สร้าง matrix จาก
apple,micrและibmตามลำดับนี้ โดยตั้งชื่อตัวแปรว่าstocksโดยใช้cbind() - ลองรันโค้ดเพื่อคำนวณค่า correlation ของหุ้นทั้งสามตัว สังเกตว่าโค้ดจะเกิดข้อผิดพลาดเมื่อใส่เวกเตอร์มากกว่า 2 ตัว!
- เขียนโค้ดส่วนที่เกิดข้อผิดพลาดใหม่โดยใช้
stocksmatrix แทน Correlation matrix มีประโยชน์มากเมื่อต้องจัดการกับหุ้นหลายตัวพร้อมกัน!
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Correlation of Apple and IBM
# stock matrix
stocks <-
# cor() of all three
cor(apple, micr, ibm)