วิธีการคำนวณค่าเฉลี่ยเคลื่อนที่ตามกลุ่มใน 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 ช่วงก่อนหน้า
ตัวอย่างเช่น ยอดขายเฉลี่ยต่อเนื่องในช่วง 3 วันแรกสำหรับร้านค้า A จะถูกคำนวณดังนี้:
ค่าเฉลี่ยเคลื่อนที่ 3 วัน = (4 + 4 + 3) / 3 = 3.67
ค่าเฉลี่ยเคลื่อนที่ของยอดขายในช่วง 3 วันข้างหน้าสำหรับร้านค้า A มีการคำนวณดังนี้:
ค่าเฉลี่ยเคลื่อนที่ 3 วัน = (4 + 3 + 5) / 3 = 4
และอื่นๆ
โปรดทราบว่าค่าเฉลี่ยเคลื่อนที่สองค่าแรกสำหรับแต่ละร้านค้าคือ NA เนื่องจากมีช่วงเวลาก่อนหน้าไม่เพียงพอที่จะใช้สำหรับค่าเฉลี่ยเคลื่อนที่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีพล็อตหลายคอลัมน์ใน R
วิธีเฉลี่ยคอลัมน์ใน R
วิธีคำนวณค่าเฉลี่ยต่อกลุ่มใน R