ความคิดเห็นที่: ประการแรกผมอยากจะบอกว่าใหญ่ขอบคุณไปยังผู้เขียนของใหม่tsoutliersแพคเกจซึ่งดำเนินเฉินและหลิวการตรวจสอบอนุกรมเวลาค่าผิดปกติซึ่งได้รับการตีพิมพ์ในวารสารของสมาคมอเมริกันสถิติในปี 1993 อยู่ในซอฟต์แวร์โอเพนซอร์สR
แพ็คเกจตรวจจับค่าผิดปกติ 5 ประเภทที่ซ้ำกันในข้อมูลอนุกรมเวลา:
- สารเติมแต่ง (AO)
- นวัตกรรมล้ำหน้า (IO)
- Level Shift (LS)
- การเปลี่ยนแปลงชั่วคราว (TC)
- การเลื่อนระดับตามฤดูกาล (SLS)
สิ่งที่ดียิ่งกว่าคือแพคเกจนี้ใช้ auto.arima จากแพ็คเกจพยากรณ์เพื่อตรวจจับค่าผิดปกติได้อย่างราบรื่น นอกจากนี้แพ็กเกจยังสร้างพล็อตที่ดีเพื่อความเข้าใจที่ดีขึ้นของข้อมูลอนุกรมเวลา
ด้านล่างเป็นคำถามของฉัน:
ฉันลองใช้งานตัวอย่างโดยใช้แพ็คเกจนี้และมันก็ใช้งานได้ดี ค่าผิดปกติเพิ่มเติมและการเลื่อนระดับนั้นใช้งานง่าย อย่างไรก็ตามฉันมีคำถาม 2 ข้อเกี่ยวกับการส่งค่าผิดปกติชั่วคราวและค่าผิดปกติทางนวัตกรรมซึ่งฉันไม่สามารถเข้าใจได้
ตัวอย่างการเปลี่ยนแปลงค่าผิดพลาดชั่วคราว:
ลองพิจารณาตัวอย่างต่อไปนี้:
library(tsoutliers)
library(expsmooth)
library(fma)
outlier.chicken <- tsoutliers::tso(chicken,types = c("AO","LS","TC"),maxit.iloop=10)
outlier.chicken
plot(outlier.chicken)
โปรแกรมตรวจพบการเลื่อนระดับอย่างถูกต้องและการเปลี่ยนแปลงชั่วคราวที่ตำแหน่งต่อไปนี้
Outliers:
type ind time coefhat tstat
1 LS 12 1935 37.14 3.153
2 TC 20 1943 36.38 3.350
ด้านล่างคือเนื้อเรื่องและคำถามของฉัน
- จะเขียนการเปลี่ยนแปลงชั่วคราวในรูปแบบสมการได้อย่างไร (การเลื่อนระดับสามารถเขียนเป็นตัวแปรไบนารีได้อย่างง่ายดายทุกเวลาก่อน 1935 / Obs 12 คือ 0 และทุกเวลาหลังจาก 1935 และหลังจากนั้นคือ 1)
สมการสำหรับการเปลี่ยนแปลงชั่วคราวในคู่มือแพ็กเกจและบทความได้รับเป็น:
โดยที่คือ 0.7 ฉันแค่ดิ้นรนเพื่อแปลสิ่งนี้เป็นตัวอย่างด้านบน
- คำถามที่สองของฉันเกี่ยวกับการสร้างสรรค์สิ่งใหม่ ๆ ฉันไม่เคย
เจอการสร้างสรรค์ในเชิงนวัตกรรม ตัวอย่างตัวเลขหรือตัวอย่างกรณีใด ๆ จะเป็นประโยชน์มาก
แก้ไข: @Irishstat ฟังก์ชัน tsoutliers ทำงานได้อย่างยอดเยี่ยมในการระบุค่าผิดปกติและแนะนำรูปแบบ ARIMA ที่เหมาะสม ดูที่ชุดข้อมูล Nile ให้ดูด้านล่างแอปพลิเคชันของ auto.arima จากนั้นใช้ tsoutliers (พร้อมค่าเริ่มต้นซึ่งรวมถึง auto.arima):
auto.arima(Nile)
Series: Nile
ARIMA(1,1,1)
Coefficients:
ar1 ma1
0.2544 -0.8741
s.e. 0.1194 0.0605
sigma^2 estimated as 19769: log likelihood=-630.63
AIC=1267.25 AICc=1267.51 BIC=1275.04
หลังจากใช้ฟังก์ชั่น tsoutliers มันจะระบุค่าผิดปกติของ LS และค่าเสริมและแนะนำให้ใช้คำสั่ง ARIMA (0,0,0)
nile.outliers <- tso(Nile,types = c("AO","LS","TC"))
nile.outliers
Series: Nile
ARIMA(0,0,0) with non-zero mean
Coefficients:
intercept LS29 AO43
1097.7500 -242.2289 -399.5211
s.e. 22.6783 26.7793 120.8446
sigma^2 estimated as 14401: log likelihood=-620.65
AIC=1249.29 AICc=1249.71 BIC=1259.71
Outliers:
type ind time coefhat tstat
1 LS 29 1899 -242.2 -9.045
2 AO 43 1913 -399.5 -3.306
tsoutliers
ได้รับการเปลี่ยนชื่อเป็นความขัดแย้งหลีกเลี่ยงการมีฟังก์ชั่นที่มีชื่อเดียวกันในแพคเกจtso
forecast