วิธีปรับให้พอดีกับแบบจำลองสำหรับอนุกรมเวลาที่มีค่าผิดปกติ


9

ฉันได้ติดตั้งแบบจำลอง ARIMA (5,1,2) โดยใช้auto.arima()ฟังก์ชั่นใน R และโดยลำดับการค้นหาเราสามารถพูดได้ว่านี่ไม่ใช่แบบจำลองที่ดีที่สุดในการคาดการณ์ หากมีค่าผิดปกติอยู่ในชุดข้อมูลวิธีการใดที่จะพอดีกับแบบจำลองกับข้อมูลดังกล่าว


คุณมีข้อมูล / ทฤษฏีว่ามีค่าผิดปกติหรือไม่? คุณไม่สามารถคาดเดาได้ว่าคะแนน "ห่างไกล" เป็นค่าผิดปกติ แต่ถ้าคุณรู้ว่ามีอะไรพิเศษเกิดขึ้นในบางวันและเหตุการณ์นั้นจะส่งผลต่อข้อมูลของคุณคุณสามารถเพิ่มตัวแปรตัวบ่งชี้ในแบบจำลองของคุณสำหรับวันนั้น ดูความคิดเห็นของ IrishStat ด้านล่าง
Wayne

หากมีสิ่งใดเกิดขึ้นเป็นพิเศษใน 1 หรือ 2 สัปดาห์ในช่วงเวลานั้นและส่งผลกระทบต่อโมเดลนั้นโมเดลอาจไม่ถูกต้อง เนื่องจากไม่มีเหตุผลอื่น ๆ เช่นความผันแปรตามฤดูกาลฉันจึงสันนิษฐานว่าค่าผิดปกติเป็นสาเหตุที่ส่งผลกระทบต่อโมเดล
Anthony

คำตอบ:


7

Michael Chernick ชี้ให้คุณไปในทิศทางที่ถูกต้อง ฉันยังจะดูงานของ Ruey Tsay ซึ่งเพิ่มไว้ในองค์ความรู้นี้ ดูเพิ่มเติมได้ที่นี่

คุณไม่สามารถแข่งขันกับอัลกอริทึมคอมพิวเตอร์อัตโนมัติในปัจจุบัน พวกเขาดูหลายวิธีในการเข้าใกล้อนุกรมเวลาที่คุณไม่ได้พิจารณาและมักไม่ได้จัดทำเป็นเอกสารไว้ในกระดาษหรือหนังสือเล่มใดเลย เมื่อมีคนถามว่าจะทำ ANOVA ได้อย่างไรสามารถคาดเดาคำตอบได้อย่างแม่นยำเมื่อเปรียบเทียบกับอัลกอริธึมที่ต่างกัน เมื่อมีคนถามคำถามว่าฉันจะจดจำรูปแบบได้อย่างไรมีคำตอบมากมายที่เป็นไปได้เนื่องจากฮิวริสติกมีส่วนเกี่ยวข้อง คำถามของคุณเกี่ยวข้องกับการใช้ฮิวริสติก

วิธีที่ดีที่สุดเพื่อให้พอดีกับตัวแบบ ARIMA ถ้าค่าผิดปกติอยู่ในข้อมูลคือการประเมินสถานะของธรรมชาติที่เป็นไปได้และเพื่อเลือกวิธีการที่เหมาะสมที่สุดสำหรับชุดข้อมูลเฉพาะ สภาวะที่เป็นไปได้ประการหนึ่งคือกระบวนการ ARIMA เป็นแหล่งที่มาหลักของการเปลี่ยนแปลงที่อธิบายไว้ ในกรณีนี้เราจะ "ระบุอย่างไม่แน่นอน" กระบวนการ ARIMA ผ่านฟังก์ชั่น acf / pacf จากนั้นตรวจสอบค่าตกค้างสำหรับค่าผิดปกติที่อาจเกิดขึ้นได้ Outliers อาจเป็น Pulses เช่นเหตุการณ์ที่เกิดขึ้นครั้งเดียวหรือตามฤดูกาลซึ่งแสดงให้เห็นจากค่าผิดปกติของระบบที่ความถี่บางอย่าง (เช่น 12 สำหรับข้อมูลรายเดือน) ประเภทที่สามของค่าผิดปกติคือที่หนึ่งมีชุดพัลส์ที่ต่อเนื่องกันซึ่งแต่ละอันมีสัญญาณและขนาดเท่ากันเรียกว่าขั้นตอนหรือการเลื่อนระดับ หลังจากการตรวจสอบส่วนที่เหลือจากกระบวนการ ARIMA ที่ไม่แน่นอนเราสามารถเพิ่มโครงสร้างที่กำหนดอย่างชัดเจนเชิงประจักษ์เพื่อสร้างแบบจำลองรวมที่แน่นอน หรือถ้าแหล่งที่มาหลักของความแปรปรวนเป็นหนึ่งใน 4 ชนิดหรือ "ค่าผิดปกติ" ก็จะสามารถให้บริการที่ดีกว่าโดยการระบุ ab ริเริ่ม (แรก) แล้วใช้ส่วนที่เหลือจาก "รูปแบบการถดถอย" เพื่อระบุโครงสร้างสุ่ม . ตอนนี้กลยุทธ์ทางเลือกทั้งสองนี้มีความซับซ้อนเพิ่มขึ้นเล็กน้อยเมื่อมี "ปัญหา" ที่พารามิเตอร์ ARIMA เปลี่ยนแปลงตลอดเวลาหรือการเปลี่ยนแปลงความผิดพลาดเมื่อเวลาผ่านไปเนื่องจากสาเหตุหลายประการที่อาจเป็นไปได้ เช่นบันทึก / ส่วนกลับเป็นต้น ภาวะแทรกซ้อน / โอกาสอีกอย่างคือวิธีและเวลาในการสร้างการมีส่วนร่วมของซีรีส์ผู้ใช้ที่แนะนำโดยผู้ใช้ในการสร้างแบบจำลองแบบบูรณาการอย่างต่อเนื่องผสมผสานหน่วยความจำสาเหตุและชุดหุ่นจำลอง ปัญหานี้จะทวีความรุนแรงมากขึ้นเมื่อมีแนวโน้มที่ซีรีส์แบบจำลองที่ดีที่สุดกับซีรีส์ตัวบ่งชี้ของแบบฟอร์ม0,0,0,0,1,2,3,4,... , หรือและการรวมกันของระดับการเปลี่ยนชุดเช่น0,0,1,1,1,1,1 คุณอาจต้องการลองและเขียนขั้นตอนดังกล่าวใน R แต่ชีวิตนั้นสั้น ฉันยินดีที่จะแก้ปัญหาของคุณจริงและแสดงให้เห็นในกรณีนี้วิธีการทำงานกรุณาโพสต์ข้อมูลหรือส่งไปที่ sales@autobox.com1,2,3,4,5,...n0,0,0,0,0,0,1,1,1,1,1


ความคิดเห็นเพิ่มเติมหลังจากได้รับ / วิเคราะห์ข้อมูล / ข้อมูลรายวันสำหรับอัตราแลกเปลี่ยนเงินตราต่างประเทศ / 18 = 765 ค่าเริ่มต้น 1/1/2550

ป้อนคำอธิบายรูปภาพที่นี่

ข้อมูลมี acf:

ป้อนคำอธิบายรูปภาพที่นี่

จากการระบุรูปแบบอาร์ม่าของแบบฟอร์มและจำนวนค่าผิดปกติ acf ของส่วนที่เหลือแสดงถึงการสุ่มเนื่องจากค่า acf มีขนาดเล็กมาก AUTOBOX ระบุจำนวนของค่าผิดปกติ:(1,1,0)(0,0,0)

ป้อนคำอธิบายรูปภาพที่นี่

รุ่นสุดท้าย:

ป้อนคำอธิบายรูปภาพที่นี่

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

ป้อนคำอธิบายรูปภาพที่นี่


@IrishStat: ในอนาคตคุณสามารถใช้ตัวเลือกการจัดรูปแบบได้หรือไม่? (คีย์ที่ถูกต้องในการแทรกลิงก์คือ ctrl-l ไม่ใช่ ctrl-c)
603

@ user603 ฉันเพิ่งใช้ตัวเลือกเพิ่มกราฟ ฉันไม่รู้ว่าคุณหมายถึงอะไรโดย ctrl-l หรือ cntrl-c บางทีคุณสามารถช่วยฉันได้โปรดติดต่อฉันที่ dave / @ / autobox.com และบางทีคุณสามารถเดิน / คุยฉันผ่านสิ่งนี้ได้
IrishStat

@IrishStat: ได้ดู ที่นี่
603

@ user603 ตกลง แต่ฉันยังไม่รู้ว่าคุณหมายถึงอะไรโดย ctrl-l และ cntrl-c ฉันใช้การถ่ายโอนรูปภาพที่ฉันสามารถแทรกรูปภาพได้ หากฉันพิมพ์ cntrl-g ฉันจะได้รับหน้าจอป๊อปอัปที่ว่างเปล่า
IrishStat

@IrishStat: ไม่เป็นไร - วิธีการเชื่อมโยงดีกว่า ctrl-l :) ป.ล. : เป้าหมายของฉันคือการช่วยให้คุณทำให้คำตอบ / ความคิดเห็นของคุณน่าดึงดูดยิ่งขึ้นโดยการซ่อนลิงก์ยาว ๆ เหล่านี้ซึ่งตัดผ่านการไหลของข้อความ ลิงค์นี้จะอธิบายวิธีการบรรลุเป้าหมายดังกล่าว
user603

6

ยังไม่มีความพร้อมที่จะใช้ฟังก์ชัน arima ในการ R (ยัง) ; ควรหนึ่งปรากฏขึ้นก็จะแสดงที่นี่ บางทีอีกทางเลือกหนึ่งคือลดน้ำหนักการสังเกตที่อยู่นอกกฎการตรวจหาค่าผิดธรรมดาที่ไม่ซับซ้อน แต่ฉันไม่เห็นว่าพร้อมที่จะใช้แพ็คเกจเพื่อเรียกใช้การถดถอย ARMA แบบถ่วงน้ำหนักเช่นกัน อีกทางเลือกที่เป็นไปได้ก็คือการ Winsorize ประเด็นรอบนอก:

#parameters
para     <- list(ar=c(0.6,-0.48), ma=c(-0.22,0.24))
#original series
y1 <- y0 <- arima.sim(n=100, para, sd=sqrt(0.1796)) 
#outliers
out      <- sample(1:100, 20)               
#contaminated series
y1[out]  <- rnorm(20, 10, 1)                
plot( y1, type="l")
lines(y0, col="red")

ตัวอย่างของการปนเปื้อนแบบสุ่ม

#winsorized series
y2      <- rep(NA, length(y1))
a1      <- (y1-median(y1)) / mad(y1)
a2      <- which(abs(a1)>3)
y2[-a2] <- y1[-a2]
for(i in 2:length(y2)){
   if(is.na(y2[i])){ y2[i] <- y2[i-1] }
}       

ชุดทำความสะอาด


โพรซีเดอร์ที่ใช้กฎทำงานกับซีรีย์นี้โดยดูที่อนุกรมเวลาเป็นเวลาเกือบ 42 ปีอาจไม่สามารถใช้งานได้โดยทั่วไปพิจารณาชุดง่าย ๆ ที่มีกระบวนการฉายอัตโนมัติเช่น 1,9,1,9,1,9,5,9 1,9,1,9 โดยที่ค่าที่ 7 เป็นค่าพิเศษหรือโดยทั่วไปของซีรีย์ที่มีโครงสร้างออโตโตโปรเจคทีฟที่แข็งแกร่งของรูปแบบที่ไม่รู้จักหรือชุดที่มี 1,2,1,1,1,1,2,1,1,1 2,1,20,1,2,1,2,1,1,1,2,1,2,2,19,2,1,1,2,1,2,1,1,2,2, 2,21 ซีรี่ส์ต่อเดือนที่ไม่มีพัลส์ แต่มีค่า SEASONAL DUMMY ที่ไม่ระบุ การตรวจจับ 12,24 และ 36 ในขณะที่ BAD จะถูกโยนลงไปในน้ำของทารก
IrishStat

ทุกสิ่งที่คุณพูดนั้นเป็นความจริงนั่นคือคุณกำลังให้ความช่วยเหลือวงดนตรีที่จะช่วยให้แผลถ้า 1) ซีรีส์เป็นเครื่องเขียนที่ถือว่าในสิ่งอื่น ๆ ไม่มีการเปลี่ยนแปลงระดับไม่มีแนวโน้มและอื่น ๆ ไม่มีโครงสร้าง ARIMA; และ 2) ซีรีส์ต้องไม่เป็นไปตามฤดูกาลหรือถูกยกเลิกฤดูกาล . มันเป็นประสบการณ์ของฉันที่สมมติฐานดังกล่าวแทบจะไม่เคยมีมาก่อนและผู้ใช้ไม่สนใจคำเตือนของคุณเนื่องจากพวกเขาพยายามต่อสู้กับอนุกรมเวลาที่มี "ความไม่สมบูรณ์" ความคิดเห็นของฉันที่นี่ไม่ได้หมายถึงเป็นการโต้แย้ง แต่ค่อนข้างส่องสว่าง (ถึงบาง!)
IrishStat

@IrishStat OP ได้อัปเดตคำถามของเขาและระบุว่าไม่มีฤดูกาล
603

คุณเป็น Christophe หรือไม่?
IrishStat

2

มีวรรณคดีขนาดใหญ่เกี่ยวกับโมเดลอนุกรมเวลาที่แข็งแกร่ง มาร์ตินและ Yohai เป็นหนึ่งในผู้มีส่วนร่วมสำคัญ งานของพวกเขากลับไปสู่ทศวรรษ 1980 ฉันทำงานตรวจจับค่าผิดปกติในอนุกรมเวลาด้วยตัวเอง แต่มาร์ตินเป็นหนึ่งในผู้ให้ข้อมูลจำนวนมากทั้งการตรวจหาค่าผิดปกติและการประมาณค่าพารามิเตอร์เมื่อมีค่าผิดปกติหรือเศษซากที่มีน้ำหนักมากในอนุกรมเวลา

  • นี่คือลิงค์ไปยังบทความสำรวจในหัวข้อที่มีรายการอ้างอิงมากกว่า 100 รายการ มันรวมถึงกระดาษ JASA ของฉันด้วย
  • นี่คือวิทยานิพนธ์ 2000 ปริญญาเอก (pdf)ที่ครอบคลุมทฤษฎีวิธีการและการประยุกต์ใช้การวิเคราะห์อนุกรมเวลาที่มีประสิทธิภาพและรวมถึงบรรณานุกรมที่ดี
  • นี่คือลิงค์ของซอฟต์แวร์ที่มีเครื่องมืออนุกรมเวลาที่มีประสิทธิภาพ

ซอฟต์แวร์ที่ใช้สำหรับการพยากรณ์ที่มีประสิทธิภาพคืออะไร มันเหมาะสำหรับซีรีส์ที่ไม่มีการเปลี่ยนแปลงหรือไม่?
แอนโธนี

@ อันธพาลนั่นเป็นคำถามที่ดีมาก ฉันยังไม่ได้สร้างโมเดลอนุกรมเวลาที่มีประสิทธิภาพ ขุดมาร์ตินก่อตั้ง บริษัท ที่เรียกว่า Insightful (จริง ๆ แล้วพวกเขามีหลายชื่อ chnages) ที่วางตลาด SPlus ฉันค่อนข้างมั่นใจว่าเขาได้รวมเมธิดที่มีประสิทธิภาพในซอฟต์แวร์ SPlus ตอนนี้อาจมีรุ่นใน R. ฉันจะตรวจสอบมัน นี่คือบทความ Wikipedia รวมถึงประวัติของ SPlus en.wikipedia.org/wiki/S-PLUS
Michael R. Chernick

@Anthony นี่คือแหล่งที่มาของ Rob Hyndman เกี่ยวกับสิ่งที่มีอยู่ใน R ในการวิเคราะห์อนุกรมเวลา มันรวมถึงสิ่งที่อยู่ใน CRAN และครอบคลุมวิธีการที่หลากหลายรวมถึงการกรองที่มีประสิทธิภาพ cran.r-project.org/web/views/TimeSeries.html
Michael R. Chernick

2

จุดประสงค์ของแบบจำลองของคุณในการคาดการณ์หรือวิเคราะห์ประวัติศาสตร์คืออะไร? หากนี่ไม่ใช่การคาดการณ์และคุณรู้ว่าสิ่งเหล่านี้เป็นค่าผิดปกติให้เพิ่มตัวแปรดัมมี่ซึ่งคือ 1 ในวันที่เหล่านั้นและ 0 ในวันที่อื่น ๆ วิธีนี้ค่าสัมประสิทธิ์จำลองจะดูแลค่าผิดปกติและคุณจะสามารถตีความค่าสัมประสิทธิ์อื่น ๆ ในโมเดลได้

หากเป็นการคาดการณ์คุณต้องถามตัวเองสองคำถาม: ค่าผิดปกติเหล่านี้จะเกิดขึ้นอีกหรือไม่ หากพวกเขาต้องการฉันจะต้องบัญชีพวกเขา?

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

ดังนั้นจุดประสงค์ของแบบจำลองของคุณจะมีผลกระทบต่อวิธีจัดการกับค่าผิดปกติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.