วิธีการคำนวณค่าเฉลี่ยเคลื่อนที่แบบเอกซ์โปเนนเชียลใน r


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

ค่าเฉลี่ยเคลื่อนที่แบบเอ็กซ์โปเนนเชียล เป็นค่าเฉลี่ยเคลื่อนที่ประเภทหนึ่งที่ให้น้ำหนักกับการสังเกตล่าสุดมากกว่า ซึ่งหมายความว่าสามารถจับแนวโน้มล่าสุดได้รวดเร็วยิ่งขึ้น

บทช่วยสอนนี้จะอธิบายวิธีคำนวณค่าเฉลี่ยเคลื่อนที่แบบเอ็กซ์โพเนนเชียลใน R

ตัวอย่าง: ค่าเฉลี่ยเคลื่อนที่เอ็กซ์โปเนนเชียลในหน่วย R

สมมติว่าเรามี data frame ต่อไปนี้ใน 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

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

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