Auto.arima () में R में xreg तर्क कैसे सेटअप करें? [बन्द है]


19

मैं एक छोटी सी परियोजना पर एक बार की श्रृंखला के साथ काम कर रहा हूं, जो ग्राहक के डेटा (दैनिक) को मापता है। Dayडेटा संग्रह के पहले दिन से कितने दिन बीत चुके हैं और कुछ डमी चर, जैसे कि वह दिन क्रिसमस है, और सप्ताह का कौन सा दिन है, आदि को मापने के लिए मेरे कोवरिएट्स एक निरंतर परिवर्तनशील चर हैं ।

मेरे डेटा का हिस्सा इस तरह दिखता है:

Date    Customer_Visit  Weekday Christmas       Day
11/28/11        2535       2        0            1   
11/29/11        3292       3        0            2   
11/30/11        4103       4        0            3   
12/1/11         4541       5        0            4   
12/2/11         6342       6        0            5  
12/3/11         7205       7        0            6   
12/4/11         3872       1        0            7   
12/5/11         3270       2        0            8   
12/6/11         3681       3        0            9   

मेरी योजना डेटा को फिट करने के लिए ARIMAX मॉडल का उपयोग करना है। यह फ़ंक्शन के साथ आर में किया जा सकता है auto.arima()। मैं समझता हूं कि मुझे अपने कोविरेट को xregतर्क में रखना होगा , लेकिन इस भाग के लिए मेरा कोड हमेशा एक त्रुटि देता है।

यहाँ मेरा कोड है:

xreg     <- c(as.factor(modelfitsample$Christmas), as.factor(modelfitsample$Weekday), 
              modelfitsample$Day)
modArima <- auto.arima(ts(modelfitsample$Customer_Visit, freq=7), allowdrift=FALSE, 
                       xreg=xreg)

R द्वारा दिया गया त्रुटि संदेश है:

Error in model.frame.default(formula = x ~ xreg, drop.unused.levels = TRUE) 
 :variable lengths differ (found for 'xreg')

मैंने बहुत कुछ सीखा कि आर के साथ एक ARIMAX-मॉडल कैसे फिट किया जाए? लेकिन मैं अभी भी बहुत स्पष्ट नहीं हूं कि फ़ंक्शन xregमें तर्क में कोवरिएट्स या डमी को कैसे सेट किया जाए auto.arima()

जवाबों:


32

मुख्य समस्या यह है कि आपका xregमैट्रिक्स नहीं है। मुझे लगता है कि निम्नलिखित कोड आपको क्या चाहिए। मैंने यह जांचने के लिए कुछ कृत्रिम डेटा का उपयोग किया है।

library(forecast)
# create some artifical data
modelfitsample <- data.frame(Customer_Visit=rpois(49,3000),Weekday=rep(1:7,7),
                             Christmas=c(rep(0,40),1,rep(0,8)),Day=1:49)

# Create matrix of numeric predictors
xreg <- cbind(Weekday=model.matrix(~as.factor(modelfitsample$Weekday)), 
                  Day=modelfitsample$Day,
              Christmas=modelfitsample$Christmas)

# Remove intercept
xreg <- xreg[,-1]

# Rename columns
colnames(xreg) <- c("Mon","Tue","Wed","Thu","Fri","Sat","Day","Christmas")

# Variable to be modelled
visits <- ts(modelfitsample$Customer_Visit, frequency=7)

# Find ARIMAX model
modArima <- auto.arima(visits, xreg=xreg)

नमस्ते, प्रो। रोब, कोड सही काम करता है। आपके समाधान के लिए बहुत बहुत धन्यवाद। तुम्हारी मदद के लिए शुक्रिया!
मिशेल

auto.arima (diff (विज़िट)), xreg = xreg) एक ही त्रुटि फेंकता है।
उत्साही

@MdAzimulHaque - जब आप diffएक tsवस्तु, आप कम से कम एक अवलोकन द्वारा इसकी लंबाई को छोटा करते हैं। 49 के साथ बाहरी auto.arima(diff(visits), xreg = xreg)auto.arimanrow
regressors

@ बुलबुले मुझे कुछ समय पहले जवाब मिला। इसे संभालने के 2 तरीके हैं। पहली विधि: auto.arima (अंतर (विचलन) (विज़िट)), xreg = diff (अंतर (xreg))) 2 विधि: auto.arima (विज़िट, d = 2, xreg)
उत्साही
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.