आर में मूविंग एवरेज की गणना कैसे करें (उदाहरण के साथ)


समय श्रृंखला विश्लेषण में, एक चलती औसत पिछली कई अवधियों के औसत मूल्य का प्रतिनिधित्व करती है।

आर में रोलिंग औसत की गणना करने का सबसे आसान तरीका ज़ू पैकेज से रोलमीन() फ़ंक्शन का उपयोग करना है:

 library (dplyr)
library (zoo)

#calculate 3-day rolling average
df %>%
  mutate(rolling_avg = rollmean(values, k= 3 , fill=NA, align=' right '))

यह विशेष उदाहरण मान लेबल वाले कॉलम के लिए 3- दिवसीय चलती औसत की गणना करता है।

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस फ़ंक्शन का उपयोग कैसे करें।

उदाहरण: आर में चलती औसत की गणना करें

मान लीजिए कि हमारे पास आर में निम्नलिखित डेटा फ्रेम है जो लगातार 10 दिनों तक किसी उत्पाद की बिक्री दिखाता है:

 #create data frame
df <- data. frame (day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 sales=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19))

#view data frame
df

   day 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

हम avg_sales3 नामक एक नया कॉलम बनाने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं जो डेटा फ़्रेम की प्रत्येक पंक्ति में पिछले 3 दिनों के लिए चलती औसत बिक्री मूल्य प्रदर्शित करता है:

 library (dplyr)
library (zoo)

#calculate 3-day rolling average of sales
df %>%
  mutate(avg_sales3 = rollmean(sales, k= 3 , fill=NA, align=' right '))

   day sales avg_sales3
1 1 25 NA
2 2 20 NA
3 3 14 19.66667
4 4 16 16.66667
5 5 27 19.00000
6 6 20 21.00000
7 7 12 19.66667
8 8 15 15.66667
9 9 14 13.66667
10 10 19 16.00000

नोट : रोलमीन() फ़ंक्शन में k का मान चलती औसत की गणना के लिए उपयोग की जाने वाली पिछली अवधियों की संख्या को नियंत्रित करता है।

avg_sales3 कॉलम पिछली 3 अवधियों के लिए चलती औसत बिक्री मूल्य प्रदर्शित करता है।

उदाहरण के लिए, 19.66667 के पहले मान की गणना इस प्रकार की जाती है:

3-दिवसीय चलती औसत = (25 + 20 + 14) / 3 = 19.66667

आप mutate() फ़ंक्शन के भीतर कई रोलमीन() फ़ंक्शन का उपयोग करके एक साथ कई मूविंग औसत की गणना भी कर सकते हैं।

उदाहरण के लिए, निम्नलिखित कोड दिखाता है कि बिक्री की 3-दिन और 4-दिवसीय चलती औसत की गणना कैसे करें:

 library (dplyr)
library (zoo)

#calculate 3-day and 4-day rolling average of sales
df %>%
  mutate(avg_sales3 = rollmean(sales, k= 3 , fill=NA, align=' right '),
         avg_sales4 = rollmean(sales, k= 4 , fill=NA, align=' right '))

   day sales avg_sales3 avg_sales4
1 1 25 NA NA
2 2 20 NA NA
3 3 14 19.66667 NA
4 4 16 16.66667 18.75
5 5 27 19.00000 19.25
6 6 20 21.00000 19.25
7 7 12 19.66667 18.75
8 8 15 15.66667 18.50
9 9 14 13.66667 15.25
10 10 19 16.00000 15.00

avg_sales3 और avg_sales4 कॉलम क्रमशः बिक्री का 3-दिवसीय और 4-दिवसीय मूविंग औसत प्रदर्शित करते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य कार्य कैसे करें:

आर में एकाधिक कॉलम कैसे प्लॉट करें
आर में कॉलमों का औसत कैसे निकालें
आर में प्रति समूह माध्य की गणना कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *