วิธีการคำนวณค่าเฉลี่ยเคลื่อนที่ในหน่วย r (พร้อมตัวอย่าง)


ในการวิเคราะห์อนุกรมเวลา ค่าเฉลี่ยเคลื่อนที่ แสดงถึงค่าเฉลี่ยของช่วงก่อนหน้าจำนวนหนึ่ง

วิธีที่ง่ายที่สุดในการคำนวณค่าเฉลี่ยกลิ้งใน R คือการใช้ฟังก์ชัน rollmean() จากแพ็คเกจ สวนสัตว์ :

 library (dplyr)
library (zoo)

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

ตัวอย่างนี้จะคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันสำหรับคอลัมน์ชื่อ Values

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ตัวอย่าง: คำนวณค่าเฉลี่ยเคลื่อนที่ในหน่วย R

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ที่แสดงยอดขายของผลิตภัณฑ์เป็นเวลา 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 ในฟังก์ชัน rollmean() จะควบคุมจำนวนงวดก่อนหน้าที่ใช้ในการคำนวณค่าเฉลี่ยเคลื่อนที่

คอลัมน์ avg_sales3 แสดงมูลค่ายอดขายเฉลี่ยเคลื่อนที่สำหรับ 3 ช่วงก่อนหน้า

ตัวอย่างเช่น ค่าแรกของ 19.66667 จะถูกคำนวณดังนี้:

ค่าเฉลี่ยเคลื่อนที่ 3 วัน = (25 + 20 + 14) / 3 = 19.66667

คุณยังสามารถคำนวณค่าเฉลี่ยเคลื่อนที่หลายรายการพร้อมกันได้โดยใช้ฟังก์ชัน rollmean() หลายฟังก์ชันภายในฟังก์ชัน 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 วัน ตามลำดับ

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีพล็อตหลายคอลัมน์ใน R
วิธีเฉลี่ยคอลัมน์ใน R
วิธีคำนวณค่าเฉลี่ยต่อกลุ่มใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *