كيفية حساب المتوسط المتحرك الأسي في r
في تحليل السلاسل الزمنية، المتوسط المتحرك هو ببساطة متوسط قيمة عدد من الفترات السابقة.
المتوسط المتحرك الأسي هو نوع من المتوسط المتحرك الذي يعطي أهمية أكبر للملاحظات الأخيرة، مما يعني أنه قادر على التقاط الاتجاهات الأخيرة بسرعة أكبر.
يشرح هذا البرنامج التعليمي كيفية حساب المتوسط المتحرك الأسي في R.
مثال: المتوسط المتحرك الأسي في R
لنفترض أن لدينا إطار البيانات التالي في R:
#create data frame df <- data.frame(period=1:10, sales=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19)) #view data frame df period sales 1 1 25 2 2 20 3 3 14 4 4 16 5 5 27 6 6 20 7 7 12 8 8 15 9 9 14 10 10 19
يمكننا استخدام الدالة movavg() من حزمة pracma لحساب المتوسط المتحرك المرجح بشكل كبير لعدد من الفترات السابقة.
تستخدم هذه الوظيفة بناء الجملة التالي:
movavg(x, n, type=c(“s”, “t”, “w”, “m”, “e”, “r”))
ذهب:
- x: سلسلة زمنية على شكل متجه رقمي
- n: عدد الفترات السابقة المستخدمة للمتوسط
- النوع: نوع المتوسط المتحرك المطلوب حسابه. سوف نستخدم “e” للمتوسط المتحرك الأسي المرجح.
على سبيل المثال، إليك كيفية حساب المتوسط المتحرك المرجح بشكل كبير باستخدام الفترات الأربع السابقة:
library (pracma) #create new column to hold 4-day exponentially weighted moving average df$EWM_4day <- movavg (df$sales, n=4, type=' e ') #view DataFrame df period sales 4dayEWM 0 1 25 25.000000 1 2 20 23.000000 2 3 14 19.400000 3 4 16 18.040000 4 5 27 21.624000 5 6 20 20.974400 6 7 12 17.384640 7 8 15 16.430784 8 9 14 15.458470 9 10 19 16.875082
يمكننا أيضًا استخدام مكتبة التصور ggplot2 لتصور المبيعات بالنسبة إلى المتوسط المتحرك المرجح بشكل كبير لمدة 4 أيام:
library (ggplot2)
library (reshape2)
#melt data into format for easy plotting
df <- melt (df, id.vars = ' period ', variable.name = ' series ')
#plot sales vs. 4-day exponentially weighted moving average
ggplot(df, aes (period, value)) +
geom_line( aes (color=series))
يظهر الخط الأحمر المبيعات خلال كل فترة ويظهر الخط الأزرق المتوسط المتحرك المرجح أضعافا مضاعفة.
مصادر إضافية
كيفية رسم أعمدة متعددة في R
كيفية حساب المتوسط على الأعمدة في R
كيفية حساب المتوسط لكل مجموعة في R