Hiển thị trung bình trượt (rolling averages)
Bạn cũng có thể trực quan hóa các giá trị trung bình trượt của chuỗi thời gian. Điều này tương đương với việc “làm mượt” dữ liệu và đặc biệt hữu ích khi chuỗi thời gian có nhiều nhiễu hoặc ngoại lệ. Với một DataFrame df, bạn có thể lấy trung bình trượt của chuỗi thời gian bằng lệnh:
df_mean = df.rolling(window=12).mean()
Tham số window nên được thiết lập theo độ phân giải (granularity) của chuỗi thời gian. Ví dụ, nếu chuỗi thời gian là dữ liệu theo ngày và bạn muốn lấy giá trị trượt theo cả năm, hãy đặt window=365. Ngoài ra, bạn có thể dễ dàng lấy các giá trị trượt cho những chỉ số khác như độ lệch chuẩn (.std()) hoặc phương sai (.var()).
Bài tập này là một phần của khóa học
Trực quan hóa dữ liệu chuỗi thời gian trong Python
Hướng dẫn bài tập
- Tính trung bình trượt theo 52 tuần của
co2_levelsvà gán vàoma. - Tính độ lệch chuẩn trượt theo 52 tuần của
co2_levelsvà gán vàomstd. - Tính cận trên của chuỗi thời gian được định nghĩa là trung bình trượt + (2 * độ lệch chuẩn trượt) và gán vào
ma[upper]. Tương tự, tính cận dưới là trung bình trượt - (2 * độ lệch chuẩn trượt) và gán vàoma[lower]. - Vẽ biểu đồ đường của
ma.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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()