كيفية حساب المتوسط المتحرك حسب المجموعة في r


في تحليل السلاسل الزمنية، يمثل المتوسط المتحرك متوسط قيمة عدد من الفترات السابقة.

يمكنك استخدام بناء الجملة الأساسي التالي لحساب المتوسط المتحرك للمجموعة في R:

 library (dplyr)
library (zoo)

#calculate moving average by group
df %>%
  group_by(variable1)
  mutate(moving_avg = rollmean(variable2, k= 3 , fill=NA, align=' right '))

يحسب هذا المثال بالتحديد متوسطًا متحركًا لمدة 3 فترات للمتغير2 ، مجمعًا حسب المتغير1 .

يستخدم هذا الرمز الدالة group_by() من حزمة dplyr والدالة rollmean() من حزمة حديقة الحيوان .

يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.

مثال: حساب المتوسط المتحرك حسب المجموعة في R

لنفترض أن لدينا إطار البيانات التالي في R الذي يعرض مبيعات منتج ما لأيام متتالية في متجرين مختلفين:

 #create data frame
df <- data. frame (store=rep(c(' A ', ' B '), each= 7 ),
                 sales=c(4, 4, 3, 5, 6, 5, 7, 4, 8, 7, 2, 5, 4, 6))

#view data frame
df

   blind sales
1 to 4
2 to 4
3 to 3
4 to 5
5 to 6
6 to 5
7 to 7
8 B 4
9 B 8
10 B 7
11 B 2
12 B 5
13 B 4
14 B 6

يمكننا استخدام الصيغة التالية لإنشاء عمود جديد يسمى moving_avg3 يعرض قيمة متوسط المبيعات المتحرك لمدة 3 أيام لكل متجر:

 library (dplyr)
library (zoo)

#calculate 3-day moving average of sales, grouped by store
df %>%
  group_by(store) %>%
  mutate(moving_avg3 = rollmean(sales, k= 3 , fill=NA, align=' right '))

# A tibble: 14 x 3
# Groups: store[2]
   store sales moving_avg3
           
 1 A 4 NA   
 2 A 4 NA   
 3 to 3 3.67
 4 to 5 4   
 5 to 6 4.67
 6 to 5 5.33
 7 to 7 6   
 8 B 4 NA   
 9 B 8 NA   
10 B 7 6.33
11 B 2 5.67
12 B 5 4.67
13 B 4 3.67
14 B 6 5

ملاحظة : تتحكم قيمة k في الدالة rollmean() في عدد الفترات السابقة المستخدمة لحساب المتوسط المتحرك.

يعرض العمود moving_avg3 قيمة مبيعات المتوسط المتحرك للفترات الثلاث السابقة.

على سبيل المثال، يتم حساب المتوسط المتجدد للمبيعات خلال الأيام الثلاثة الأولى للمتجر أ على النحو التالي:

المتوسط المتحرك لمدة 3 أيام = (4 + 4 + 3) / 3 = 3.67

يتم حساب المتوسط المتحرك للمبيعات خلال الثلاثة أيام القادمة للمتجر أ على النحو التالي:

المتوسط المتحرك لثلاثة أيام = (4 + 3 + 5) / 3 = 4

وما إلى ذلك وهلم جرا.

لاحظ أن أول قيمتين للمتوسط المتحرك لكل متجر هي NA لأنه لم تكن هناك فترات سابقة كافية لاستخدامها في المتوسط المتحرك.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:

كيفية رسم أعمدة متعددة في R
كيفية حساب المتوسط على الأعمدة في R
كيفية حساب المتوسط لكل مجموعة في R

Add a Comment

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