GLM مع مصطلح الانحدار الذاتي لتصحيح الارتباط التسلسلي

StackOverflow https://stackoverflow.com/questions/1899243

سؤال

لدي سلسلة زمنية ثابتة وأريد أن أتناسب مع نموذج خطي مع مصطلح الانحدار الذاتي لتصحيح الارتباط التسلسلي، أي.باستخدام الصيغة At = c1*Bt + c2*Ct + ut، حيث ut = r*ut-1 + et

(ut هو مصطلح AR(1) لتصحيح الارتباط التسلسلي في مصطلحات الخطأ)

هل يعرف أحد ما يجب استخدامه في R لتصميم هذا؟

شكرا كارل

هل كانت مفيدة؟

المحلول

ال glmmarp. حزمة سوف تناسب هذه النماذج. إذا كنت تريد فقط نموذجا خطيا مع أخطاء Gaussian، يمكنك القيام بذلك مع arima() وظيفة حيث يتم تحديد المتجهين عبر xreg جدال.

نصائح أخرى

هناك عدة طرق للقيام بذلك في R.فيما يلي مثالان باستخدام مجموعة بيانات السلاسل الزمنية "أحزمة الأمان" في حزمة مجموعات البيانات الذي يأتي مع ر.

ال arima() تأتي الوظيفة في الحزمة: الإحصائيات المضمنة مع R.تأخذ الدالة وسيطة النموذج order=c(p, d, q) حيث يمكنك تحديد ترتيب مكون الانحدار التلقائي والمتكامل والمتوسط ​​المتحرك.في سؤالك، تقترح أنك تريد إنشاء نموذج AR(1) لتصحيح الارتباط التلقائي من الدرجة الأولى في الأخطاء وهذا كل شيء.يمكننا القيام بذلك باستخدام الأمر التالي:

arima(Seatbelts[,"drivers"], order=c(1,0,0),
      xreg=Seatbelts[,c("kms", "PetrolPrice", "law")])

تحدد قيمة الطلب أننا نريد نموذج AR(1).يجب أن يكون مكون xreg عبارة عن سلسلة من علامات X الأخرى التي نريد إضافتها كجزء من الانحدار.يبدو الإخراج مشابهًا قليلاً لإخراج summary.lm() انقلبت على جانبها.

قد تكون هناك عملية بديلة أخرى أكثر دراية بالطريقة التي تناسب بها نماذج الانحدار gls() في ال حزمة nlme.تقوم التعليمة البرمجية التالية بتحويل كائن السلسلة الزمنية لحزام الأمان إلى إطار بيانات ثم تقوم باستخراج عمود جديد وإضافته (ر) وهو مجرد عداد في كائن السلسلة الزمنية التي تم فرزها:

Seatbelts.df <- data.frame(Seatbelts)
Seatbelts.df$t <- 1:(dim(Seatbelts.df)[1])

السطران أعلاه يوضحان البيانات في شكلها فقط.منذ arima() تم تصميم الوظيفة للسلاسل الزمنية، ويمكنها قراءة كائنات السلاسل الزمنية بسهولة أكبر.لملاءمة النموذج مع nlme، يمكنك بعد ذلك تشغيل:

library(nlme)
m <- gls(drivers ~ kms + PetrolPrice + law,
         data=Seatbelts.df,
         correlation=corARMA(p=1, q=0, form=~t))
summary(m)

السطر الذي يبدأ بـ "الارتباط" هو الطريقة التي تنتقل بها في بنية ارتباط ARMA إلى GLS.النتائج لن تكون هي نفسها تمامًا لأن arima() يستخدم أقصى احتمال لتقدير النماذج و gls() يستخدم الحد الأقصى من الاحتمالية بشكل افتراضي.اذا اضفت method="ML" إلى الدعوة إلى gls() سوف تحصل على نفس التقديرات التي حصلت عليها باستخدام دالة ARIMA أعلاه.

ما هي وظيفة الرابط الخاصة بك؟

الطريقة التي تصفها تبدو وكأنها الانحدار الخطي الأساسي مع أخطاء التلقائي. في هذه الحالة، خيار واحد هو استخدام lm للحصول على تقدير ثابت لمعاملاتك واستخدامك Newey-West Hac الأخطاء القياسية.

لست متأكدا من أفضل إجابة ل GLIM بشكل عام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top