วิธีปรับโมเดล tbats ใน r (พร้อมตัวอย่าง)
วิธีการพยากรณ์อนุกรมเวลายอดนิยมเรียกว่า TBATS ซึ่งเป็นตัวย่อสำหรับ:
- ฤดูกาล ตรีโกณมิติ
- กล่อง -การแปลงค็อกซ์
- ข้อผิดพลาด RMA
- แนวโน้ม
- ส่วนประกอบ ตามฤดูกาล
วิธีการนี้เหมาะกับหลากหลายรุ่นทั้งแบบมีและไม่มี:
- ฤดูกาล
- การแปลงแบบ Box-Cox
- กระบวนการ ARMA(p,q)
- เทรนด์ต่างๆ
- ผลกระทบตามฤดูกาลต่างๆ
วิธีนี้จะเลือกแบบจำลองที่มีค่าต่ำสุดสำหรับค่า Akaike Information Criterion (AIC) เป็นแบบจำลองขั้นสุดท้าย
วิธีที่ง่ายที่สุดในการปรับโมเดล TBATS ให้พอดีกับชุดข้อมูลอนุกรมเวลาใน R คือการใช้ฟังก์ชัน tbats จากแพ็คเกจ การคาดการณ์
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่าง: วิธีปรับโมเดล TBATS ใน R
สำหรับตัวอย่างนี้ เราจะใช้ชุดข้อมูล R ในตัวที่เรียกว่า USAccDeaths ซึ่งมีค่าสำหรับจำนวนผู้เสียชีวิตจากอุบัติเหตุรายเดือนทั้งหมดในสหรัฐอเมริกาตั้งแต่ปี 1973 ถึง 1978:
#view USAccDeaths dataset
USAccDeaths
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1973 9007 8106 8928 9137 10017 10826 11317 10744 9713 9938 9161 8927
1974 7750 6981 8038 8422 8714 9512 10120 9823 8743 9129 8710 8680
1975 8162 7306 8124 7870 9387 9556 10093 9620 8285 8466 8160 8034
1976 7717 7461 7767 7925 8623 8945 10078 9179 8037 8488 7874 8647
1977 7792 6957 7726 8106 8890 9299 10625 9302 8314 8850 8265 8796
1978 7836 6892 7791 8192 9115 9434 10484 9827 9110 9070 8633 9240
เราสามารถใช้โค้ดต่อไปนี้เพื่อให้พอดีกับโมเดล TBATS กับชุดข้อมูลนี้ และทำการคาดการณ์เกี่ยวกับค่าต่างๆ ในเดือนต่อๆ ไป:
library (forecast)
#fit TBATS model
fit <- tbats(USAccDeaths)
#use model to make predictions
predict <- predict(fit)
#view predictions
predict
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
Jan 1979 8307.597 7982.943 8632.251 7811.081 8804.113
Feb 1979 7533,680 7165,539 7901,822 6970,656 8096,704
Mar 1979 8305.196 7882.740 8727.651 7659.106 8951.286
Apr 1979 8616.921 8150.753 9083.089 7903.978 9329.864
May 1979 9430.088 8924.028 9936.147 8656.137 10204.038
Jun 1979 9946.448 9403.364 10489.532 9115.873 10777.023
Jul 1979 10744,690 10167,936 11321,445 9862,621 11626,760
Aug 1979 10108,781 9499,282 10718,280 9176,632 11040,929
Sep 1979 9034.784 8395.710 9673.857 8057.405 10012.162
Oct 1979 9336.862 8668.087 10005.636 8314.060 10359.664
Nov 1979 8819.681 8124.604 9514.759 7756.652 9882.711
Dec 1979 9099.344 8376.864 9821.824 7994.407 10204.282
Jan 1980 8307.597 7563.245 9051.950 7169.208 9445.986
Feb 1980 7533.680 6769.358 8298.002 6364.750 8702.610
Mar 1980 8305.196 7513.281 9097.111 7094.067 9516.325
Apr 1980 8616,921 7800,849 9432,993 7368,847 9864,995
May 1980 9430.088 8590.590 10269.585 8146.187 10713.988
Jun 1980 9946.448 9084.125 10808.771 8627.639 11265.257
Jul 1980 10744.690 9860.776 11628.605 9392.859 12096.522
Aug 1980 10108,781 9203,160 11014,402 8723,753 11493,809
Sep 1980 9034.784 8109.000 9960.567 7618.920 10450.647
Oct 1980 9336.862 8390.331 10283.392 7889.269 10784.455
Nov 1980 8819.681 7854.387 9784.976 7343.391 10295.972
Dec 1980 9099.344 8114.135 10084.554 7592.597 10606.092
ผลลัพธ์จะแสดงจำนวนผู้เสียชีวิตที่คาดการณ์ไว้สำหรับเดือนต่อๆ ไป รวมถึงช่วงความเชื่อมั่น 80% และ 95%
ตัวอย่างเช่น เราจะเห็นคำทำนายต่อไปนี้สำหรับเดือนมกราคม 1979:
- จำนวนผู้เสียชีวิตที่คาด : 8,307,597 ราย
- ช่วงความเชื่อมั่น 80% สำหรับจำนวนผู้เสียชีวิต: [7982.943, 8632.251]
- ช่วงความเชื่อมั่น 95% สำหรับจำนวนผู้เสียชีวิต: [7811.081, 8804.113]
นอกจากนี้เรายังสามารถใช้ฟังก์ชัน plot() เพื่อพล็อตค่าในอนาคตที่คาดการณ์ไว้เหล่านี้:
#plot the predicted values
plot(forecast(fit))
เส้นสีน้ำเงินแสดงถึงค่าในอนาคตที่คาดการณ์ไว้ และแถบสีเทาแสดงถึงขีดจำกัดของช่วงความเชื่อมั่น
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีการพล็อตอนุกรมเวลาใน R
วิธีดำเนินการถดถอยเชิงเส้นอย่างง่ายใน R
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน R