كيفية حساب المتوسط المتحرك الأسي في 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
كيفية حساب المتوسط لكل مجموعة في R

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *