เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

แสดงค่าเฉลี่ยเคลื่อนที่

นอกจากนี้ยังสามารถแสดงค่าเฉลี่ยเคลื่อนที่ (rolling average) ของข้อมูลในอนุกรมเวลาได้อีกด้วย วิธีนี้เทียบได้กับการ "ทำให้ข้อมูลเรียบขึ้น" (smoothing) ซึ่งมีประโยชน์มากเมื่ออนุกรมเวลามีสัญญาณรบกวนหรือค่าผิดปกติจำนวนมาก สำหรับ DataFrame df ที่กำหนด สามารถคำนวณค่าเฉลี่ยเคลื่อนที่ของอนุกรมเวลาได้ด้วยคำสั่งต่อไปนี้:

df_mean = df.rolling(window=12).mean()

ค่าพารามิเตอร์ window ควรกำหนดให้สอดคล้องกับความละเอียดของอนุกรมเวลา ตัวอย่างเช่น หากข้อมูลเป็นรายวันและต้องการหาค่าเคลื่อนที่ตลอดทั้งปี ให้กำหนดเป็น window=365 นอกจากนี้ยังสามารถคำนวณค่าเคลื่อนที่ของเมตริกอื่นๆ ได้ง่ายๆ เช่น ส่วนเบี่ยงเบนมาตรฐาน (.std()) หรือความแปรปรวน (.var())

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การแสดงภาพข้อมูล Time Series ด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • คำนวณค่าเฉลี่ยเคลื่อนที่ 52 สัปดาห์ของ co2_levels แล้วกำหนดให้กับตัวแปร ma
  • คำนวณส่วนเบี่ยงเบนมาตรฐานเคลื่อนที่ 52 สัปดาห์ของ co2_levels แล้วกำหนดให้กับตัวแปร mstd
  • คำนวณขอบเขตบนของอนุกรมเวลา ซึ่งนิยามเป็นค่าเฉลี่ยเคลื่อนที่ + (2 * ส่วนเบี่ยงเบนมาตรฐานเคลื่อนที่) แล้วกำหนดให้กับ ma[upper] จากนั้นคำนวณขอบเขตล่างเป็นค่าเฉลี่ยเคลื่อนที่ - (2 * ส่วนเบี่ยงเบนมาตรฐานเคลื่อนที่) แล้วกำหนดให้กับ ma[lower]
  • พล็อตกราฟเส้นของ ma

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Compute the 52 weeks rolling mean of the co2_levels DataFrame
ma = ____.rolling(window=____).____()

# Compute the 52 weeks rolling standard deviation of the co2_levels DataFrame
mstd = ____

# Add the upper bound column to the ma DataFrame
ma['upper'] = ma['co2'] + (____ * ____)

# Add the lower bound column to the ma DataFrame
ma['lower'] = ma['co2'] - (____ * ____)

# Plot the content of the ma DataFrame
ax = ____(linewidth=0.8, fontsize=6)

# Specify labels, legend, and show the plot
ax.set_xlabel('Date', fontsize=10)
ax.set_ylabel('CO2 levels in Mauai Hawaii', fontsize=10)
ax.set_title('Rolling mean and variance of CO2 levels\nin Mauai Hawaii from 1958 to 2001', fontsize=10)
plt.show()
แก้ไขและรันโค้ด