คำถามที่น่าสนใจมากฉันอยากจะรู้ว่าสิ่งที่คนอื่นพูด ฉันเป็นวิศวกรโดยการฝึกอบรมและไม่ใช่นักสถิติเพื่อให้ใครบางคนสามารถตรวจสอบตรรกะของฉัน ในฐานะวิศวกรเราต้องการจำลองและทดลองดังนั้นฉันจึงมีแรงบันดาลใจในการจำลองและทดสอบคำถามของคุณ
ดังที่แสดงให้เห็นในเชิงประจักษ์ด้านล่างการใช้ตัวแปรเทรนด์ใน ARIMAX ทำให้ไม่ต้องการความแตกต่างและทำให้แนวโน้มชุดคงที่ นี่คือตรรกะที่ฉันใช้ในการตรวจสอบ
- จำลองกระบวนการ AR
- เพิ่มแนวโน้มที่กำหนดขึ้น
- การใช้ ARIMAX แบบจำลองที่มีแนวโน้มเป็นตัวแปรภายนอกชุดข้างต้นโดยไม่มีความแตกต่าง
- ตรวจสอบเสียงสีขาวที่ตกค้างและสุ่มอย่างหมดจด
ด้านล่างคือรหัส R และแปลง:
set.seed(3215)
##Simulate an AR process
x <- arima.sim(n = 63,list(ar = c(0.7)));
plot(x)
## Add Deterministic Trend to AR
t <- seq(1, 63)
beta <- 0.8
t_beta <- ts(t*beta,frequency=1)
ar_det <- x+t_beta
plot(ar_det)
## Check with arima
ar_model <- arima(ar_det,order=c(1,0,0),xreg=t,include.mean=FALSE)
## Check whether residuals of fitted model is random
pacf(ar_model$residuals)
AR (1) พล็อตจำลอง
AR (1) กับแนวโน้มที่กำหนดขึ้น
ARIMAX PACF ที่เหลือมีแนวโน้มเหมือนภายนอก ที่เหลือเป็นแบบสุ่มไม่มีรูปแบบที่เหลือ
ดังที่เห็นได้จากข้างบนการสร้างแบบจำลองแนวโน้มที่กำหนดขึ้นในฐานะตัวแปรภายนอกในแบบจำลอง ARIMAX ทำให้ไม่ต้องการความแตกต่าง อย่างน้อยในกรณีที่กำหนดขึ้นมันทำงานได้ ฉันสงสัยว่าสิ่งนี้จะทำงานอย่างไรกับแนวโน้มสุ่มซึ่งเป็นการยากที่จะทำนายหรือจำลอง
ในการตอบคำถามที่สองของคุณใช่ ARIMA ทั้งหมดรวมถึง ARIMAX ต้องทำเป็นประจำ อย่างน้อยนั่นคือสิ่งที่หนังสือข้อความพูด
นอกจากนี้ยังเป็นความเห็นเห็นนี้บทความ คำอธิบายที่ชัดเจนมากเกี่ยวกับแนวโน้มที่กำหนดขึ้นกับแนวโน้ม Stochastic และวิธีลบออกเพื่อให้เป็นแนวโน้มที่อยู่กับที่และการสำรวจวรรณกรรมที่ดีมากในหัวข้อนี้ พวกเขาใช้มันในบริบทเครือข่ายประสาท แต่มันมีประโยชน์สำหรับปัญหาอนุกรมเวลาทั่วไป ข้อเสนอแนะสุดท้ายของพวกเขาคือเมื่อมีการระบุอย่างชัดเจนว่าเป็นแนวโน้มที่กำหนดไว้แล้วการทำ detrending เชิงเส้นจะใช้ความแตกต่างเพื่อทำให้อนุกรมเวลาหยุดนิ่ง คณะลูกขุนยังคงอยู่ที่นั่น แต่นักวิจัยส่วนใหญ่อ้างในบทความนี้แนะนำความแตกต่างเมื่อเทียบกับ detrending เชิงเส้น
แก้ไข:
ด้านล่างนี้คือการเดินสุ่มด้วยกระบวนการสุ่มดริฟท์โดยใช้ตัวแปรภายนอกและอาริมาต่างกัน ทั้งคู่ดูเหมือนจะให้คำตอบเดียวกันและในสาระสำคัญพวกเขาเหมือนกัน
library(Hmisc)
set.seed(3215)
## ADD Stochastic Trend to simulated Arima this is AR(1) with unit root with non zero mean
y = rep(NA,63)
y[[1]] <- 2
for (i in 2:63) {
y[i] <-3+1*y[i-1]+ rnorm(1, mean = 0, sd = 1)
}
plot(y,type="l")
y_ts <- ts(y,frequency=1)
## Lag to create Xreg
y_1 <- Lag(y,shift=1)
## Start from 2 value to avoid NA and make it equal length with xreg
y <- window(y_ts,start =2,end=63)
xreg1 <- y_1[-1]
## Check the values with ARIMA and xreg
g <- arima(y,order=c(0,0,0),xreg=xreg1)
pacf(g$residuals)
## Check the values with ARIM
g1 <- arima(y,order=c(0,1,0))
pacf(g1$residuals)
##
ARIMA(0,0,0) with non-zero mean
Coefficients:
intercept xreg1
3.1304 0.9976
s.e. 0.2664 0.0025
หวังว่านี่จะช่วยได้!