องค์ประกอบของอนุกรมเวลาและภาวะสถิต
แนวโน้ม ฤดูกาล สัญญาณรบกวน การทดสอบ ADF สำหรับภาวะสถิต และการหาผลต่างเพื่อให้ข้อมูลมีภาวะสถิต
องค์ประกอบของอนุกรมเวลาและภาวะสถิต เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
อนุกรมเวลาคืออะไร
อนุกรมเวลา คือข้อมูลที่จัดดัชนีตามลำดับเวลา เช่น ยอดขายรายวันหรืออุณหภูมิรายชั่วโมง เนื่องจากข้อมูลถูกเรียงลำดับและมักมีความสัมพันธ์กัน จึงต้องใช้เทคนิคเฉพาะ คุณไม่สามารถสลับแถวแบบสุ่มเหมือนข้อมูลตารางทั่วไปได้
องค์ประกอบสามประการ
มุมมองแบบคลาสสิกจะแยกอนุกรมออกเป็น:
- แนวโน้ม: การเคลื่อนไหวขึ้นหรือลงในระยะยาว
- ฤดูกาล: รูปแบบที่เกิดซ้ำในช่วงเวลาคงที่ เช่น รายสัปดาห์หรือรายปี
- ค่าคงเหลือ: สัญญาณรบกวนแบบสุ่มที่เหลืออยู่หลังจากนำแนวโน้มและฤดูกาลออกแล้ว
แบบบวกกับแบบคูณ
ในแบบจำลอง บวก: y = trend + seasonality + residual ใช้เมื่อความผันผวนตามฤดูกาลมีขนาดคงที่
ในแบบจำลอง คูณ: y = trend * seasonality * residual ใช้เมื่อความผันผวนตามฤดูกาลเพิ่มขึ้นตามแนวโน้ม
seasonal_decompose
ไลบรารีสำหรับแบบจำลองทางสถิติสามารถแยกอนุกรมออกเป็นองค์ประกอบต่าง ๆ ได้โดยอัตโนมัติ
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(series, model="additive", period=12)
result.trend
result.seasonal
result.residการแสดงการแยกองค์ประกอบด้วยภาพ
การวาดผลลัพธ์จะแสดงองค์ประกอบแต่ละส่วนเรียงซ้อนกัน ทำให้มองเห็นแนวโน้มและฤดูกาลได้ง่าย และช่วยให้คุณเลือกแนวทางการพยากรณ์ได้
import matplotlib.pyplot as plt
result.plot()
plt.tight_layout()
plt.show()ภาวะอยู่กับที่คืออะไร
อนุกรมจะอยู่ใน ภาวะอยู่กับที่ เมื่อคุณสมบัติทางสถิติของอนุกรม เช่น ค่าเฉลี่ย ความแปรปรวน และสหสัมพันธ์ในตัวเอง คงที่ตลอดเวลา แบบจำลองคลาสสิกจำนวนมาก เช่น ARIMA ตั้งสมมติฐานว่าอนุกรมอยู่กับที่ ดังนั้นการตรวจสอบและทำให้เกิดภาวะนี้จึงเป็นขั้นตอนแรกที่สำคัญ
เหตุใดภาวะอยู่กับที่จึงสำคัญ
หากค่าเฉลี่ยเปลี่ยนไปเรื่อย ๆ หรือความแปรปรวนเพิ่มขึ้นอย่างรุนแรงตามเวลา แบบจำลองที่ปรับเข้ากับข้อมูลช่วงต้นจะไม่สามารถใช้ได้ดีกับข้อมูลช่วงหลัง การนำแนวโน้มออกและทำให้ความแปรปรวนมีเสถียรภาพช่วยให้พยากรณ์อนุกรมได้อย่างสม่ำเสมอ
การทดสอบ ADF
การทดสอบ Augmented Dickey-Fuller (ADF) ใช้ตรวจสอบภาวะอยู่กับที่ สมมติฐานว่างคือ "ไม่อยู่กับที่ (มีรากหนึ่งหน่วย)" หากค่า p ต่ำกว่า 0.05 คุณสามารถปฏิเสธสมมติฐานว่างและถือว่าอนุกรมอยู่กับที่ได้
from statsmodels.tsa.stattools import adfuller
stat, pvalue, *_ = adfuller(series)
print("p-value:", pvalue)
# pvalue < 0.05 -> stationaryการหาผลต่างเพื่อให้เกิดภาวะอยู่กับที่
การหาผลต่าง นำค่าก่อนหน้ามาลบออกจากแต่ละค่าเพื่อกำจัดแนวโน้ม การหาผลต่างอันดับหนึ่งมักจัดการกับแนวโน้มเชิงเส้นได้ หากจำเป็นให้ทำซ้ำอีกครั้ง
diff1 = series.diff().dropna() # first difference
diff2 = series.diff().diff().dropna() # second differenceการยืนยันหลังการหาผลต่าง
เรียกใช้การทดสอบ ADF อีกครั้งกับอนุกรมที่ผ่านการหาผลต่างแล้ว เมื่อค่า p ลดลงต่ำกว่า 0.05 แสดงว่าคุณทำให้อนุกรมอยู่ในภาวะอยู่กับที่ได้สำเร็จ และได้บันทึกอันดับการหาผลต่าง d ซึ่งจะถูกนำไปใช้โดยตรงใน ARIMA
stat, pvalue, *_ = adfuller(series.diff().dropna())
print("p-value after differencing:", pvalue)การแปลงรูปแบบอื่นเพื่อเพิ่มเสถียรภาพ
หากความแปรปรวนเพิ่มขึ้นตามเวลา การแปลงแบบ log หรือ บ็อกซ์–ค็อกซ์ จะช่วยทำให้ความแปรปรวนมีเสถียรภาพก่อนการหาผลต่าง การใช้การแปลงแบบ log ร่วมกับการหาผลต่างจัดการกับอนุกรมที่มีการเติบโตแบบคูณในโลกจริงได้หลายประเภท
import numpy as np
log_series = np.log(series)
stationary = log_series.diff().dropna()ตรวจสอบอย่างรวดเร็ว
ทดสอบความเข้าใจเกี่ยวกับภาวะอยู่กับที่ของคุณ
ทบทวน
คุณได้แยกอนุกรมเป็น แนวโน้ม ฤดูกาล และค่าคงเหลือ ด้วย seasonal_decompose เรียนรู้แบบจำลองบวกกับแบบคูณ ทดสอบ ภาวะอยู่กับที่ ด้วย การทดสอบ ADF และใช้ การหาผลต่าง (อันดับ d) เพื่อทำให้อนุกรมอยู่กับที่ บทถัดไป: ARIMA และ SARIMA
คำถามที่พบบ่อย
บทเรียน “องค์ประกอบของอนุกรมเวลาและภาวะสถิต” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “องค์ประกอบของอนุกรมเวลาและภาวะสถิต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “องค์ประกอบของอนุกรมเวลาและภาวะสถิต”
แนวโน้ม ฤดูกาล สัญญาณรบกวน การทดสอบ ADF สำหรับภาวะสถิต และการหาผลต่างเพื่อให้ข้อมูลมีภาวะสถิต คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “องค์ประกอบของอนุกรมเวลาและภาวะสถิต” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- องค์ประกอบของอนุกรมเวลาและภาวะสถิต
- แบบจำลอง ARIMA และ SARIMA
- Prophet สำหรับการพยากรณ์อัตโนมัติ
- LSTM สำหรับการพยากรณ์อนุกรมเวลา