আর-তে অটো.রিমা () এ কীভাবে এক্সগ্রিগ আর্গুমেন্ট সেটআপ করবেন? [বন্ধ]


19

আমি এককালীন সিরিজ সহ একটি ছোট প্রকল্পে কাজ করছি যা গ্রাহক পরিদর্শন ডেটা (দৈনিক) পরিমাপ করে। Dayডেটা সংগ্রহের প্রথম দিন থেকে কত দিন কেটে গেছে এবং কিছু ডামি ভেরিয়েবল যেমন such দিনটি ক্রিসমাস কিনা, এবং সপ্তাহের কোন দিন ইত্যাদি হয় তা পরিমাপ করার জন্য আমার কোয়ারিয়্যেটগুলি অবিচ্ছিন্ন পরিবর্তনশীল are

আমার ডেটার অংশটি দেখে মনে হচ্ছে:

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   

আমার পরিকল্পনাটি হ'ল ডেটা ফিট করতে আরিম্যাক্স মডেলটি ব্যবহার করা। এটি ফাংশন সহ আর-তে করা যেতে পারে auto.arima()। আমি বুঝতে পারি যে আমি আমার covariates 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)

আর দ্বারা ফিরে আসা ত্রুটি বার্তাটি হ'ল:

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

আর এর সাথে এরিম্যাক্স-মডেলটি কীভাবে ফিট করব তা থেকে আমি অনেক কিছু শিখেছি ? তবে আমি কীভাবে 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)

হাই, প্রফেসরব, কোডটি নিখুঁতভাবে কাজ করে। আপনার সমাধানের জন্য অনেক ধন্যবাদ। আমি সত্যিই আপনার সাহায্য তারিফ করা!
মিশেল

অটো.রিমা (ডিফ (পরিদর্শন), xreg = xreg) একই ত্রুটি ছুড়ে ফেলে।
উত্সাহ

@MdAzimulHaque - যখন আপনি diffএকটি tsবস্তু, আপনি তার দৈর্ঘ্য অন্তত একটি পর্যবেক্ষণ দ্বারা কমান। auto.arima(diff(visits), xreg = xreg)জিজ্ঞাসা করা হয় auto.arimaসঙ্গে বহিরাগত regressors ব্যবহার 48 পর্যবেক্ষণ উপর একটি Arima মডেল মাপসই nrow49
Jubbles

@ জুবলস আমি উত্তর পেয়েছি কিছুক্ষণ আগে। এটি পরিচালনা করার জন্য 2 টি উপায় রয়েছে। 1 ম পদ্ধতি: auto.arima (পরিবর্তন (পরিবর্তন (ভিজিট)), xreg = পরিবর্তন (পরিবর্তন (xreg))) 2nd পদ্ধতি: auto.arima (পরিদর্শন, D = 2, xreg)
উত্সাহী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.