วิธีทำการทดสอบเวรกรรมของ granger ใน r
การทดสอบเชิงสาเหตุของเกรนเจอร์ ใช้เพื่อพิจารณาว่าอนุกรมเวลาหนึ่งมีประโยชน์ในการทำนายอนุกรมเวลาอื่นหรือไม่
การทดสอบนี้ใช้สมมติฐานว่างและทางเลือกต่อไปนี้:
สมมติฐานว่าง (H 0 ): อนุกรมเวลา x ไม่ได้ทำให้เกิดอนุกรมเวลา y กับ Granger
สมมติฐานทางเลือก ( HA ): อนุกรมเวลา x อนุกรมเวลาของเกรนเจอร์ทำให้เกิด y
คำว่า “สาเหตุเกรนเจอร์” หมายความว่าการทราบค่าของอนุกรมเวลา x ด้วยความล่าช้าบางอย่างจะเป็นประโยชน์ในการทำนายค่าของอนุกรมเวลา y ในภายหลัง
การทดสอบนี้สร้างสถิติการทดสอบ F ที่มีค่า p ที่สอดคล้องกัน หากค่า p ต่ำกว่า ระดับนัยสำคัญที่กำหนด (เช่น α = 0.05) เราก็สามารถปฏิเสธสมมติฐานว่างและสรุปได้ว่าเรามีหลักฐานเพียงพอที่จะยืนยันว่าอนุกรมเวลา x เกรนเจอร์ทำให้เกิดอนุกรมเวลา y
ในการทำการทดสอบ Granger-Causality ใน R เราสามารถใช้ฟังก์ชัน grangertest() จากแพ็คเกจ lmtest ซึ่งใช้ไวยากรณ์ต่อไปนี้:
grangertest(x, y, ลำดับ = 1)
ทอง:
- x: ซีรีส์ครั้งแรก
- y: ซีรีส์ครั้งที่สอง
- ลำดับ: จำนวนออฟเซ็ตที่จะใช้ในอนุกรมครั้งแรก ค่าเริ่มต้นคือ 1
ตัวอย่างทีละขั้นตอนต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ขั้นตอนที่ 1: กำหนดอนุกรมเวลาสองชุด
สำหรับตัวอย่างนี้ เราจะใช้ชุดข้อมูล ChickEgg ที่โหลดไว้ล่วงหน้าในแพ็คเกจ lmtest ชุดข้อมูลนี้ประกอบด้วยจำนวนไข่ที่ผลิตรวมทั้งจำนวนไก่ในสหรัฐอเมริกาตั้งแต่ปี 1930 ถึง 1983:
#load lmtest package library (lmtest) #load ChickEgg dataset data(ChickEgg) #view first six rows of dataset head(ChickEgg) chicken egg [1,] 468491 3581 [2,] 449743 3532 [3,] 436815 3327 [4,] 444523 3255 [5,] 433937 3156 [6,] 389958 3081
ขั้นตอนที่ 2: ทำการทดสอบสาเหตุของ Granger
ต่อไป เราจะใช้ฟังก์ชัน grangertest() เพื่อทำการทดสอบสาเหตุของ Granger เพื่อดูว่าจำนวนไข่ที่ผลิตสามารถทำนายจำนวนแม่ไก่ในอนาคตได้หรือไม่ เราจะทำการทดสอบโดยใช้ออฟเซ็ตสามแบบ:
#perform Granger-Causality test grangertest(chicken ~ egg, order = 3 , data = ChickEgg) Granger causality test Model 1: chicken ~ Lags(chicken, 1:3) + Lags(egg, 1:3) Model 2: chicken ~ Lags(chicken, 1:3) Res.Df Df F Pr(>F) 1 44 2 47 -3 5.405 0.002966 ** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:
- แบบจำลอง 1: แบบจำลองนี้พยายามทำนายจำนวนไก่โดยใช้จำนวนไก่ในช่วงสามปีที่ผ่านมาและจำนวนไข่ในช่วงสามปีที่ผ่านมาเป็นตัวแปรทำนาย
- โมเดล 2: แบบจำลองนี้พยายามทำนายจำนวนไก่โดยใช้เพียงจำนวนไก่ในช่วง 3 ปีที่ผ่านมาเป็นตัวแปรทำนาย
- F: นี่คือสถิติการทดสอบ F กลายเป็น 5.405
- Pr(>F): นี่คือค่า p ที่สอดคล้องกับสถิติการทดสอบ F กลายเป็น .002966
เนื่องจากค่า p น้อยกว่า 0.05 เราจึงสามารถปฏิเสธสมมติฐานว่างของการทดสอบได้ และสรุปได้ว่าการทราบจำนวนไข่จะมีประโยชน์ในการทำนายจำนวนแม่ไก่ในอนาคต
ขั้นตอนที่ 3: ทำการทดสอบ Granger Causality ในแบบย้อนกลับ
แม้ว่าเราจะปฏิเสธสมมติฐานว่างของการทดสอบ แต่ในความเป็นจริงแล้วอาจเป็นไปได้ว่ากรณีของสาเหตุย้อนกลับอาจเกิดขึ้นได้ กล่าวอีกนัยหนึ่งอาจเป็นไปได้ว่าจำนวนแม่ไก่ทำให้จำนวนไข่เปลี่ยนแปลง
เพื่อแยกแยะความเป็นไปได้นี้ เราจำเป็นต้องทำการทดสอบ Granger-Causality ในแบบย้อนกลับ โดยใช้ไก่เป็นตัวแปรทำนาย และใช้ไข่เป็น ตัวแปรตอบสนอง :
#perform Granger-Causality test in reverse grangertest(egg ~ chicken, order = 3 , data = ChickEgg) Granger causality test Model 1: egg ~ Lags(egg, 1:3) + Lags(chicken, 1:3) Model 2: egg ~ Lags(egg, 1:3) Res.Df Df F Pr(>F) 1 44 2 47 -3 0.5916 0.6238
ค่า p ของการทดสอบคือ 0.6238 เนื่องจากนี่ไม่น้อยกว่า 0.05 เราจึงปฏิเสธสมมติฐานว่างไม่ได้ กล่าวอีกนัยหนึ่ง จำนวนแม่ไก่ไม่ได้ทำนายจำนวนไข่ในอนาคต
ดังนั้นจึงสามารถสรุปได้ว่าการรู้จำนวนไข่มีประโยชน์ในการทำนายจำนวนแม่ไก่ในอนาคต