0Pricing
Learn AI with Python · บทเรียน

แบบจำลอง ARIMA และ SARIMA

องค์ประกอบ AR, MA และ I การเลือกพารามิเตอร์ด้วย ACF/PACF และการฟิต ARIMA ด้วย statsmodels

แบบจำลอง ARIMA และ SARIMA เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

ARIMA คืออะไร

ARIMA ย่อมาจาก AutoRegressive แบบบูรณาการและค่าเฉลี่ยเคลื่อนที่ โดยจำลองอนุกรมที่อยู่กับที่ผ่านสามส่วน ได้แก่ อัตถดถอย (p) การบูรณาการหรือการหาผลต่าง (d) และค่าเฉลี่ยเคลื่อนที่ของข้อผิดพลาด (q) ซึ่งเขียนเป็น ARIMA(p, d, q)

AR(p): AutoRegressive

ส่วน AR ใช้ค่าถัดไปจากการรวมเชิงเส้นของค่า p ก่อนหน้าของอนุกรม หากค่าของวันนี้ขึ้นอยู่กับช่วงสองสามวันที่ผ่านมาอย่างมาก คุณต้องใช้ค่า p ที่ไม่เป็นศูนย์

ตัวอย่าง: p=2 ใช้ข้อมูลสองรายการล่าสุดเป็นตัวแปรสำหรับการพยากรณ์

I(d): การบูรณาการ / การหาผลต่าง

ส่วน I คืออันดับการหาผลต่าง d ที่จำเป็นต่อการทำให้อนุกรมอยู่กับที่ ซึ่งตรงกับค่า d ที่คุณหาได้จากการทดสอบ ADF ในบทเรียนก่อนหน้า d=1 จะลบแนวโน้มเชิงเส้นออก

MA(q): ค่าเฉลี่ยเคลื่อนที่

ส่วน MA จำลองค่าถัดไปโดยใช้ข้อผิดพลาดจากการพยากรณ์ q รายการที่ผ่านมา หรือแรงกระแทกของข้อมูล ส่วนนี้จับการแก้ไขสัญญาณรบกวนระยะสั้นที่ส่วน AR ไม่สามารถจับได้

การปรับ ARIMA ให้เข้ากับข้อมูลในไลบรารีสถิติ

ส่งอนุกรมของคุณเป็น endog พร้อมกับทูเพิลอันดับที่เลือก

from statsmodels.tsa.arima.model import ARIMA

model = ARIMA(endog=series, order=(p, d, q))
fit = model.fit()
print(fit.summary())

การพยากรณ์

เมื่อปรับแบบจำลองแล้ว ให้สร้างค่าล่วงหน้าด้วย forecast หรือ get_forecast ซึ่งจะให้ช่วงความเชื่อมั่นมาด้วย

preds = fit.forecast(steps=12)        # next 12 periods
fc = fit.get_forecast(steps=12)
ci = fc.conf_int()                    # confidence intervals

กราฟ ACF และ PACF

หากต้องการเลือกค่า p และ q ให้ตรวจสอบกราฟสหสัมพันธ์ในตัวเอง:

  • ACF (สหสัมพันธ์ในตัวเอง) ช่วยเลือก q (อันดับ MA)
  • PACF (สหสัมพันธ์ในตัวเองบางส่วน) ช่วยเลือก p (อันดับ AR)

ให้มองหาความล่าช้าที่สหสัมพันธ์ลดลงอย่างชัดเจน

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

plot_acf(series.diff().dropna())
plot_pacf(series.diff().dropna())

AIC และ BIC สำหรับการเลือกอันดับ

AIC และ BIC ให้คะแนนความสอดคล้องของแบบจำลองพร้อมลงโทษความซับซ้อน ค่าที่ต่ำกว่าดีกว่า ให้ปรับแบบจำลองสำหรับตัวเลือก (p,d,q) หลายแบบ แล้วเลือกแบบที่มีค่า AIC/BIC ต่ำที่สุด โดย BIC จะลงโทษพารามิเตอร์เพิ่มเติมรุนแรงกว่า

print("AIC:", fit.aic)
print("BIC:", fit.bic)

การค้นหาอันดับแบบตาราง

แนวทางทั่วไปคือวนซ้ำผ่านช่วงเล็ก ๆ ของ p, d และ q ปรับแบบจำลองแต่ละแบบ แล้วเก็บแบบที่มีค่า AIC ต่ำที่สุด ไลบรารีอย่าง pmdarima.auto_arima สามารถทำการค้นหานี้โดยอัตโนมัติ

best = None
for p in range(3):
    for q in range(3):
        try:
            f = ARIMA(series, order=(p, 1, q)).fit()
            if best is None or f.aic < best[1]:
                best = ((p, 1, q), f.aic)
        except Exception:
            pass
print(best)

SARIMA สำหรับฤดูกาล

SARIMA เพิ่มองค์ประกอบตามฤดูกาล: (P, D, Q, m) โดย m คือความยาวของฤดูกาล เช่น 12 สำหรับข้อมูลรายเดือนที่มีรูปแบบรายปี ซึ่งช่วยจัดการรูปแบบที่เกิดซ้ำและ ARIMA แบบธรรมดาจัดการไม่ได้

from statsmodels.tsa.statespace.sarimax import SARIMAX

model = SARIMAX(series,
    order=(1, 1, 1),
    seasonal_order=(1, 1, 1, 12))
fit = model.fit()

ARIMA กับ SARIMA

  • ARIMA(p,d,q): จัดการแนวโน้มและการพึ่งพากันระยะสั้น โดยไม่มีฤดูกาล
  • SARIMA(p,d,q)(P,D,Q,m): เพิ่มพจน์ตามฤดูกาลสำหรับวัฏจักรที่เกิดซ้ำ

หากการแยกองค์ประกอบของคุณแสดงฤดูกาลอย่างชัดเจน ให้เลือก SARIMA

ตรวจสอบอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับ ARIMA ของคุณ

ทบทวน

คุณได้เรียนรู้ ARIMA(p,d,q): AR ใช้ค่าที่ผ่านมา I คืออันดับการหาผลต่าง และ MA ใช้ข้อผิดพลาดที่ผ่านมา คุณปรับแบบจำลองด้วย ARIMA(endog, order=...) เลือกอันดับผ่าน ACF/PACF และ AIC/BIC และขยายไปใช้ SARIMA สำหรับฤดูกาล บทถัดไป: Prophet สำหรับการพยากรณ์อัตโนมัติ

คำถามที่พบบ่อย

บทเรียน “แบบจำลอง ARIMA และ SARIMA” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “แบบจำลอง ARIMA และ SARIMA” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แบบจำลอง ARIMA และ SARIMA”

องค์ประกอบ AR, MA และ I การเลือกพารามิเตอร์ด้วย ACF/PACF และการฟิต ARIMA ด้วย statsmodels คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “แบบจำลอง ARIMA และ SARIMA” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. องค์ประกอบของอนุกรมเวลาและภาวะสถิต
  2. แบบจำลอง ARIMA และ SARIMA
  3. Prophet สำหรับการพยากรณ์อัตโนมัติ
  4. LSTM สำหรับการพยากรณ์อนุกรมเวลา
← กลับไปที่ Learn AI with Python