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


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

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

บทช่วยสอนนี้จะอธิบายวิธีคำนวณค่าเฉลี่ยเคลื่อนที่แบบเอ็กซ์โพเนนเชียลสำหรับคอลัมน์ของค่าใน Pandas DataFrame

ตัวอย่าง: ค่าเฉลี่ยเคลื่อนที่แบบเอ็กซ์โพเนนเชียลในหมีแพนด้า

สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'period': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   'sales': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19]})

#view DataFrame 
df

        period sales
0 1 25
1 2 20
2 3 14
3 4 16
4 5 27
5 6 20
6 7 12
7 8 15
8 9 14
9 10 19

เราสามารถใช้ฟังก์ชัน pandas.DataFrame.ewm() เพื่อคำนวณค่าเฉลี่ยเคลื่อนที่แบบถ่วงน้ำหนักแบบเอ็กซ์โปเนนเชียลสำหรับช่วงก่อนหน้าจำนวนหนึ่ง

ตัวอย่างเช่น ต่อไปนี้คือวิธีคำนวณค่าเฉลี่ยเคลื่อนที่แบบถ่วงน้ำหนักแบบเอ็กซ์โปเนนเชียลโดยใช้สี่ช่วงก่อนหน้า:

 #create new column to hold 4-day exponentially weighted moving average
df['4dayEWM'] = df['sales']. ewm (span= 4 , adjust= False ). mean ()

#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

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

 import matplotlib.pyplot as plt

#plot sales and 4-day exponentially weighted moving average
plt. plot (df['sales'], label='Sales')
plt. plot (df['4dayEWM'], label='4-day EWM')

#add legend to plot
plt. legend (loc=2)

ค่าเฉลี่ยเคลื่อนที่ถ่วงน้ำหนักแบบเอ็กซ์โพเนนเชียลในหมีแพนด้า

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

วิธีการคำนวณค่าเฉลี่ยเคลื่อนที่ใน Python
วิธีการคำนวณค่าเฉลี่ยของคอลัมน์ใน Pandas
วิธีการคำนวณความสัมพันธ์อัตโนมัติใน Python

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

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