การประมาณแบบเดียวกันกับอนุกรมเวลาหลายชุด


26

ฉันมีพื้นฐานสามเณรในอนุกรมเวลา (ประมาณ ARIMA / การคาดการณ์ / การคาดการณ์) และฉันกำลังประสบปัญหาที่ฉันไม่เข้าใจ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.

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

ฉันถูกขอให้ประเมินแบบจำลองเดียวที่อธิบายชุดทั้งหมด - ตัวอย่างเช่นลองนึกภาพฉันสามารถหา ARIMA (p, d, q) หนึ่งชุดที่มีคำสั่งสัมประสิทธิ์และอื่น ๆ ที่เหมือนกันทุกชุด หัวหน้างานของฉันไม่ต้องการให้ฉันประเมินแต่ละชุดแยกกันและเขาไม่ต้องการให้ฉันทำแบบจำลอง VAR บางประเภทที่มีการพึ่งพาระหว่างชุด

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

คำตอบ:


8

คุณสามารถค้นหากริด: เริ่มต้นด้วย ARIMA (1,0,0) และลองความเป็นไปได้ทั้งหมดจนถึง ARIMA (5,2,5) หรืออะไรก็ได้ ปรับโมเดลให้เหมาะกับแต่ละชุดและประเมินการวัดข้อผิดพลาดที่ไม่ขึ้นกับขนาดเช่น MAPE หรือ MASE (MASE น่าจะดีกว่า) เลือกรุ่น ARIMA ที่มีค่าเฉลี่ยต่ำสุดในทุกรุ่นของคุณ

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

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


2
ขอบคุณ - ฉันจะลองสิ่งนี้ ฉันยอมรับว่านี่ดูเหมือนจะไม่ใช่ความคิดที่ดีที่สุด ข้อโต้แย้งที่ฉันได้รับคือแต่ละชุดมีการสังเกตไม่เพียงพอ (~ 28) สำหรับการประมาณที่ดีและมันจะแข็งแกร่งกว่าที่จะประเมินในทุกซีรี่ส์ ฉันไม่แน่ใจว่าฉันเห็นด้วยกับข้อโต้แย้งนั้น
sparc_spread

21

วิธีหนึ่งในการทำเช่นนั้นคือการสร้างชุดข้อมูลที่มีข้อมูลทั้งหมดของคุณเป็นเวลานานและมีลำดับของค่าที่ขาดหายไประหว่างชุดข้อมูลเพื่อแยกชุดข้อมูลเหล่านั้นออก ยกตัวอย่างเช่นใน R ถ้าคุณมีสามชุด ( x, yและz) แต่ละความยาว 100 และความถี่ 12 คุณสามารถเข้าร่วมได้ดังต่อไปนี้

combined <- ts(c(x,rep(NA,56),y,rep(NA,56),z,rep(NA,56)),frequency=12)

ขอให้สังเกตว่ามีการเลือกจำนวนค่าที่หายไปเพื่อให้แน่ใจว่ามีการเก็บรักษาช่วงเวลาตามฤดูกาลไว้ ฉันปีนเบาะสุดท้ายด้วยค่าที่หายไป 8 ค่าจากนั้นเพิ่มสี่ปีที่หายไป (48 ค่า) ก่อนซีรีส์ถัดไป นั่นควรจะเพียงพอเพื่อให้แน่ใจว่าความสัมพันธ์แบบอนุกรมใด ๆ ถูกล้างออกระหว่างซีรีย์

จากนั้นคุณสามารถใช้auto.arima()เพื่อค้นหารุ่นที่ดีที่สุด:

library(forecast)
fit <- auto.arima(combined)

สุดท้ายคุณสามารถใช้โมเดลรวมกับแต่ละชุดแยกกันเพื่อรับการคาดการณ์:

fit.x <- Arima(x,model=fit)
fit.y <- Arima(y,model=fit)
fit.z <- Arima(z,model=fit)

5
+1 เคล็ดลับเรียบร้อย ตัดสินจากความคิดเห็นของ OP ต่อคำตอบอื่นฉันจะแนะนำรูปแบบข้อมูลพาเนลบางอย่าง แต่วิธีนี้ดีกว่า
mpiktas

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

1
หากมีข้อมูลตามฤดูกาล (ตามที่มีการสังเกตเป็นประจำทุกเดือน) คุณต้องการให้ชุดยาวยังคงมี Januaries หลายตัวแยกจากกัน 12, Februaries แยกกัน 12 และอื่น ๆ จากนั้นเมื่อเลือกแบบจำลองแล้วสามารถจำลองฤดูกาลได้อย่างเหมาะสม
Rob Hyndman

3
ในการเพิ่มเคล็ดลับนี้คุณสามารถเพิ่ม regressors ภายนอก (xreg) เพื่อระบุความเป็นสมาชิกหมวดหมู่ สิ่งนี้จะอธิบายถึงวิธีการที่แตกต่างกันสำหรับซีรีส์ที่แตกต่างกันในขณะที่ยังคงค่าสัมประสิทธิ์อื่น ๆ ที่เหมือนกัน
Jameson Quinn

6

การประมาณแบบจำลองเดี่ยวสำหรับอนุกรมเวลาหลาย ๆ ครั้งเป็นขอบเขตของเศรษฐมิติข้อมูลแผงข้อมูล อย่างไรก็ตามในกรณีของคุณที่ไม่มีตัวแปรคำอธิบาย @Rob Hyndman น่าจะเหมาะสมที่สุด อย่างไรก็ตามหากปรากฎว่าค่าเฉลี่ยของอนุกรมเวลาแตกต่างกัน (ทดสอบเนื่องจากในกรณีนี้วิธีการของ @Rob Hyndman น่าจะล้มเหลว!) แต่โครงสร้าง ARMA เหมือนกันคุณจะต้องใช้ Arellano-Bond (ขออภัยวิกิพีเดียมี ไม่มีหน้าอยู่เลยค้นหาใน google) ตัวประมาณประเภท รูปแบบในกรณีนั้นจะเป็น:

yit=αi+ρ1yi,t1+...+ρpyi,tp+εit

iεiti


1
ขอขอบคุณทางออกของคุณและคนอื่น ๆ เช่นกัน คุณพูดถึงว่า: อย่างไรก็ตามถ้าปรากฎว่าค่าอนุกรมเวลาแตกต่างกัน (ทดสอบเพราะในกรณีนี้วิธีการของ @Rob Hyndman น่าจะล้มเหลว!) คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับสาเหตุได้ไหม ขอบคุณ
sparc_spread

2
@sparc_spread สมมติว่าเป็นเพียงสองซีรี่ส์ หนึ่งอยู่ตรงกลางที่ประมาณ 0 กับความแปรปรวน 1 และอีกหนึ่งอยู่ตรงกลางที่ 1,000 กับความแปรปรวน 1 จากนั้นถ้าทั้งสองชุดมีความเหมาะสมโดยใช้ค่าสัมประสิทธิ์เดียวกันนั่นหมายความว่าเรากำลังบังคับ alpha_1 = alpha_2 ดังนั้นการคาดการณ์สำหรับทั้งสองชุด 500 ออกไปอย่างน่ากลัว โดยพื้นฐานแล้วการรักษาทุกซีรีย์ให้เป็นของรุ่นเดียวกันอาจต้องมีการปรับให้เป็นแบบ / การทำให้เป็นมาตรฐานก่อนที่จะทำการปรับโมเดลให้เหมาะสม
zkurtz

4

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

หมายเหตุ: คุณยังคงจบด้วยการอ่าน 28 ครั้งเสียงรบกวนน้อยลงดังนั้นสิ่งนี้อาจไม่เหมาะสมกับสถานการณ์ของคุณ

t1=xts(jitter(sin(1:28/10),amount=0.2),as.Date("2012-01-01")+1:28)
t2=xts(jitter(sin(1:28/10),amount=0.2),as.Date("2012-01-01")+1:28)
t3=(t1+t2)/2

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


สิ่งนี้จะใช้งานได้หากสัญญาณทั้งหมดมีลักษณะใกล้เคียงกัน (เช่นเป็นระยะ) ทั้งหมดอยู่ในเฟส - ในตัวอย่างของคุณหากคลื่นไซน์สองอันอยู่ห่างจากเฟส 180 องศาพวกเขาจะยกเลิกอย่างสมบูรณ์!
tdc

3
ใช่การเฉลี่ยข้อมูลของคุณนั้นเหมาะสมเมื่อแต่ละชุดข้อมูลวันที่ควรจะแสดงข้อมูลเดียวกันและ (คุณยินดีที่จะสมมติว่า) พวกเขาแตกต่างกันเฉพาะในแต่ละที่มีสัญญาณรบกวนที่แตกต่างกัน
Darren Cook

1

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


0

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

http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Holmes~et~al.pdf


วิธีมาตรฐานคือเวกเตอร์ autoregressionและมีเป็นแพคเกจที่เรียกว่า R var
ซีอาน

vector autoregession แตกต่างจากการตอบรับอัตโนมัติบนข้อมูลพาเนลหรือไม่ หรือมันเป็นเรื่องของเขตข้อมูลที่แตกต่างกันชื่อแตกต่างกันอย่างไร แนะนำให้ใช้แพ็คเกจ plm สำหรับข้อมูลพาเนล cran.r-project.org/web/packages/plm/vignettes/plm.pdf clidyn.ethz.ch/papers/arfit.pdf
Mox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.