অভিনন্দন, আপনি একটি বাগ খুঁজে পেয়েছেন। dynlmল্যাগযুক্ত ভেরিয়েবলগুলি ব্যবহার করা হলে নতুন ডেটা সহ প্রেডিকশন ভাঙা is কেন আউটপুট তাকান তা দেখতে
predict(model)
predict(model,newdata=data)
ফলাফলগুলি একই হওয়া উচিত, তবে তা নয়। newdataযুক্তি ছাড়াই , predictফাংশনটি আউটপুট modelথেকে মূলত উপাদানটি ধরে dynlm। newdataযুক্তি দিয়ে predictনতুন মডেল থেকে ম্যাট্রিক্স গঠনের চেষ্টা করে newdata। যেহেতু এতে সরবরাহিত সূত্রটি পার্সিংয়ের সাথে জড়িত dynlmএবং সূত্রটির কার্যকারিতা রয়েছে Lযা কার্যকরীভাবে কেবল ইন্টার্নালি সংজ্ঞায়িত করা হয়েছে dynlm, তাই ভুল মডেল ম্যাট্রিক্স গঠিত হয়। আপনি যদি ডিবাগ করার চেষ্টা করেন, আপনি দেখতে পাবেন যে newdataআর্গুমেন্ট সরবরাহের ক্ষেত্রে পিছিয়ে থাকা নির্ভরশীল ভেরিয়েবলটি পিছিয়ে নেই ।
আপনি যা করতে পারেন তা নির্ভরশীল ভেরিয়েবলকে পিছিয়ে রাখা এবং এটিতে অন্তর্ভুক্ত করা newdata। এই পদ্ধতির চিত্রিত কোড এখানে। আমি set.seedএটি ব্যবহার করি তাই এটি সহজেই পুনরুত্পাদনযোগ্য হবে।
library(dynlm)
set.seed(1)
y<-arima.sim(model=list(ar=c(.9)),n=10) #Create AR(1) dependant variable
A<-rnorm(10) #Create independant variables
B<-rnorm(10)
C<-rnorm(10)
y<-y+.5*A+.2*B-.3*C #Add relationship to independant variables
data=cbind(y,A,B,C)
#Fit linear model
model<-dynlm(y~A+B+C+L(y,1),data=data)
বগী আচরণ এখানে:
> predict(model)
2 3 4 5 6 7 8 9 10
3.500667 2.411196 2.627915 2.813815 2.468595 1.733852 2.114553 1.423225 1.470738
> predict(model,newdata=data)
1 2 3 4 5 6 7 8 9 10
2.1628335 3.7063579 2.9781417 2.1374301 3.2582376 1.9534558 1.3670995 2.4547626 0.8448223 1.8762437
গঠন newdata
#Forecast fix.
A<-c(A,rnorm(1)) #Assume we already have 1-step forecasts for A,B,C
B<-c(B,rnorm(1))
C<-c(C,rnorm(1))
newdata<-ts(cbind(A,B,C),start=start(y),freq=frequency(y))
newdata<-cbind(lag(y,-1),newdata)
colnames(newdata) <- c("y","A","B","C")
মডেল ফিটের সাথে পূর্বাভাসের তুলনা করুন:
> predict(model)
2 3 4 5 6 7 8 9 10
3.500667 2.411196 2.627915 2.813815 2.468595 1.733852 2.114553 1.423225 1.470738
> predict(model,newdata=newdata)
1 2 3 4 5 6 7 8 9 10 11
NA 3.500667 2.411196 2.627915 2.813815 2.468595 1.733852 2.114553 1.423225 1.470738 1.102367
আপনি যেমন historicalতিহাসিক ডেটা দেখতে পাচ্ছেন পূর্বাভাস মিলে যায় এবং শেষ উপাদানটিতে 1-পদক্ষেপের পূর্বাভাস থাকে।
dynlmপ্যাকেজ ব্যবহার করা আপনার নির্ভরশীল ভেরিয়েবলগুলির জন্য পূর্বাভাস সরবরাহ করবে না। আপনার নির্ভরশীল ভেরিয়েবলগুলির জন্য পূর্বাভাস সরবরাহের জন্য তাদের ব্যাখ্যা করার জন্য একটি মডেল এবং সম্ভবত অতিরিক্ত ডেটা প্রয়োজন। আমি আপনাকে পরামর্শ দিচ্ছি যে জনসন এবং উইচারনের "অ্যাপ্লাইড মাল্টিভারিয়েট স্ট্যাটিস্টিকাল অ্যানালাইসিস" এর মতো মাল্টিভারিয়েট রিগ্রেশন সম্পর্কে কিছু পড়ুন। বা পূর্বাভাসের জন্য একটি কোর্স: duke.edu/~rnau/411home.htm