ฉันได้ติดตั้งแบบจำลอง ARIMA (5,1,2) โดยใช้auto.arima()
ฟังก์ชั่นใน R และโดยลำดับการค้นหาเราสามารถพูดได้ว่านี่ไม่ใช่แบบจำลองที่ดีที่สุดในการคาดการณ์ หากมีค่าผิดปกติอยู่ในชุดข้อมูลวิธีการใดที่จะพอดีกับแบบจำลองกับข้อมูลดังกล่าว
ฉันได้ติดตั้งแบบจำลอง ARIMA (5,1,2) โดยใช้auto.arima()
ฟังก์ชั่นใน R และโดยลำดับการค้นหาเราสามารถพูดได้ว่านี่ไม่ใช่แบบจำลองที่ดีที่สุดในการคาดการณ์ หากมีค่าผิดปกติอยู่ในชุดข้อมูลวิธีการใดที่จะพอดีกับแบบจำลองกับข้อมูลดังกล่าว
คำตอบ:
Michael Chernick ชี้ให้คุณไปในทิศทางที่ถูกต้อง ฉันยังจะดูงานของ Ruey Tsay ซึ่งเพิ่มไว้ในองค์ความรู้นี้ ดูเพิ่มเติมได้ที่นี่
คุณไม่สามารถแข่งขันกับอัลกอริทึมคอมพิวเตอร์อัตโนมัติในปัจจุบัน พวกเขาดูหลายวิธีในการเข้าใกล้อนุกรมเวลาที่คุณไม่ได้พิจารณาและมักไม่ได้จัดทำเป็นเอกสารไว้ในกระดาษหรือหนังสือเล่มใดเลย เมื่อมีคนถามว่าจะทำ ANOVA ได้อย่างไรสามารถคาดเดาคำตอบได้อย่างแม่นยำเมื่อเปรียบเทียบกับอัลกอริธึมที่ต่างกัน เมื่อมีคนถามคำถามว่าฉันจะจดจำรูปแบบได้อย่างไรมีคำตอบมากมายที่เป็นไปได้เนื่องจากฮิวริสติกมีส่วนเกี่ยวข้อง คำถามของคุณเกี่ยวข้องกับการใช้ฮิวริสติก
วิธีที่ดีที่สุดเพื่อให้พอดีกับตัวแบบ ARIMA ถ้าค่าผิดปกติอยู่ในข้อมูลคือการประเมินสถานะของธรรมชาติที่เป็นไปได้และเพื่อเลือกวิธีการที่เหมาะสมที่สุดสำหรับชุดข้อมูลเฉพาะ สภาวะที่เป็นไปได้ประการหนึ่งคือกระบวนการ ARIMA เป็นแหล่งที่มาหลักของการเปลี่ยนแปลงที่อธิบายไว้ ในกรณีนี้เราจะ "ระบุอย่างไม่แน่นอน" กระบวนการ ARIMA ผ่านฟังก์ชั่น acf / pacf จากนั้นตรวจสอบค่าตกค้างสำหรับค่าผิดปกติที่อาจเกิดขึ้นได้ Outliers อาจเป็น Pulses เช่นเหตุการณ์ที่เกิดขึ้นครั้งเดียวหรือตามฤดูกาลซึ่งแสดงให้เห็นจากค่าผิดปกติของระบบที่ความถี่บางอย่าง (เช่น 12 สำหรับข้อมูลรายเดือน) ประเภทที่สามของค่าผิดปกติคือที่หนึ่งมีชุดพัลส์ที่ต่อเนื่องกันซึ่งแต่ละอันมีสัญญาณและขนาดเท่ากันเรียกว่าขั้นตอนหรือการเลื่อนระดับ หลังจากการตรวจสอบส่วนที่เหลือจากกระบวนการ ARIMA ที่ไม่แน่นอนเราสามารถเพิ่มโครงสร้างที่กำหนดอย่างชัดเจนเชิงประจักษ์เพื่อสร้างแบบจำลองรวมที่แน่นอน หรือถ้าแหล่งที่มาหลักของความแปรปรวนเป็นหนึ่งใน 4 ชนิดหรือ "ค่าผิดปกติ" ก็จะสามารถให้บริการที่ดีกว่าโดยการระบุ ab ริเริ่ม (แรก) แล้วใช้ส่วนที่เหลือจาก "รูปแบบการถดถอย" เพื่อระบุโครงสร้างสุ่ม . ตอนนี้กลยุทธ์ทางเลือกทั้งสองนี้มีความซับซ้อนเพิ่มขึ้นเล็กน้อยเมื่อมี "ปัญหา" ที่พารามิเตอร์ ARIMA เปลี่ยนแปลงตลอดเวลาหรือการเปลี่ยนแปลงความผิดพลาดเมื่อเวลาผ่านไปเนื่องจากสาเหตุหลายประการที่อาจเป็นไปได้ เช่นบันทึก / ส่วนกลับเป็นต้น ภาวะแทรกซ้อน / โอกาสอีกอย่างคือวิธีและเวลาในการสร้างการมีส่วนร่วมของซีรีส์ผู้ใช้ที่แนะนำโดยผู้ใช้ในการสร้างแบบจำลองแบบบูรณาการอย่างต่อเนื่องผสมผสานหน่วยความจำสาเหตุและชุดหุ่นจำลอง ปัญหานี้จะทวีความรุนแรงมากขึ้นเมื่อมีแนวโน้มที่ซีรีส์แบบจำลองที่ดีที่สุดกับซีรีส์ตัวบ่งชี้ของแบบฟอร์ม , หรือและการรวมกันของระดับการเปลี่ยนชุดเช่น0,0,1,1,1,1,1 คุณอาจต้องการลองและเขียนขั้นตอนดังกล่าวใน R แต่ชีวิตนั้นสั้น ฉันยินดีที่จะแก้ปัญหาของคุณจริงและแสดงให้เห็นในกรณีนี้วิธีการทำงานกรุณาโพสต์ข้อมูลหรือส่งไปที่ sales@autobox.com
ความคิดเห็นเพิ่มเติมหลังจากได้รับ / วิเคราะห์ข้อมูล / ข้อมูลรายวันสำหรับอัตราแลกเปลี่ยนเงินตราต่างประเทศ / 18 = 765 ค่าเริ่มต้น 1/1/2550
ข้อมูลมี acf:
จากการระบุรูปแบบอาร์ม่าของแบบฟอร์มและจำนวนค่าผิดปกติ acf ของส่วนที่เหลือแสดงถึงการสุ่มเนื่องจากค่า acf มีขนาดเล็กมาก AUTOBOX ระบุจำนวนของค่าผิดปกติ:
รุ่นสุดท้าย:
รวมถึงความจำเป็นในการเพิ่มความแปรปรวนของการปรับความเสถียรของ la TSAY ซึ่งการเปลี่ยนแปลงความแปรปรวนในส่วนที่เหลือถูกระบุและรวมเข้าด้วยกัน ปัญหาที่คุณมีกับการเรียกใช้อัตโนมัติของคุณคือกระบวนการที่คุณใช้เช่นนักบัญชีเชื่อว่าข้อมูลมากกว่าการท้าทายข้อมูลผ่านการตรวจจับการแทรกแซง (aka การตรวจจับก่อนหน้า) ผมได้โพสต์การวิเคราะห์ที่สมบูรณ์ที่นี่
ยังไม่มีความพร้อมที่จะใช้ฟังก์ชัน 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] }
}
มีวรรณคดีขนาดใหญ่เกี่ยวกับโมเดลอนุกรมเวลาที่แข็งแกร่ง มาร์ตินและ Yohai เป็นหนึ่งในผู้มีส่วนร่วมสำคัญ งานของพวกเขากลับไปสู่ทศวรรษ 1980 ฉันทำงานตรวจจับค่าผิดปกติในอนุกรมเวลาด้วยตัวเอง แต่มาร์ตินเป็นหนึ่งในผู้ให้ข้อมูลจำนวนมากทั้งการตรวจหาค่าผิดปกติและการประมาณค่าพารามิเตอร์เมื่อมีค่าผิดปกติหรือเศษซากที่มีน้ำหนักมากในอนุกรมเวลา
จุดประสงค์ของแบบจำลองของคุณในการคาดการณ์หรือวิเคราะห์ประวัติศาสตร์คืออะไร? หากนี่ไม่ใช่การคาดการณ์และคุณรู้ว่าสิ่งเหล่านี้เป็นค่าผิดปกติให้เพิ่มตัวแปรดัมมี่ซึ่งคือ 1 ในวันที่เหล่านั้นและ 0 ในวันที่อื่น ๆ วิธีนี้ค่าสัมประสิทธิ์จำลองจะดูแลค่าผิดปกติและคุณจะสามารถตีความค่าสัมประสิทธิ์อื่น ๆ ในโมเดลได้
หากเป็นการคาดการณ์คุณต้องถามตัวเองสองคำถาม: ค่าผิดปกติเหล่านี้จะเกิดขึ้นอีกหรือไม่ หากพวกเขาต้องการฉันจะต้องบัญชีพวกเขา?
ตัวอย่างเช่นสมมติว่าชุดข้อมูลของคุณมีค่าผิดปกติเมื่อพี่น้องเลห์แมนลงไป เป็นเหตุการณ์ที่คุณไม่มีทางทำนายได้ชัดเจน แต่คุณไม่สามารถเพิกเฉยได้เพราะสิ่งนี้จะเกิดขึ้นในอนาคต หากคุณโยนหุ่นจำลองสำหรับค่าผิดปกติคุณจะลบความไม่แน่นอนของเหตุการณ์นี้ออกจากความแปรปรวนข้อผิดพลาด การคาดการณ์ของคุณจะประเมินความเสี่ยงต่ำสุดซึ่งอาจไม่ใช่สิ่งที่ดีสำหรับการบริหารความเสี่ยง อย่างไรก็ตามหากคุณต้องคาดการณ์ยอดขายพื้นฐานหุ่นจำลองจะทำงานเนื่องจากคุณไม่สนใจหางคุณสนใจสถานการณ์ที่เป็นไปได้มากที่สุดดังนั้นคุณไม่ต้องรับผิดชอบเหตุการณ์ที่ไม่สามารถคาดการณ์ได้สำหรับ จุดประสงค์นี้
ดังนั้นจุดประสงค์ของแบบจำลองของคุณจะมีผลกระทบต่อวิธีจัดการกับค่าผิดปกติ