Thuật toán dự báo giá nông sản

Giải thích dữ liệu đầu vào, công thức dự báo, MAE, RMSE và cách đọc khoảng tin cậy.

Nguồn dữ liệu đầu vào

  • Giá lịch sử: scrape hàng ngày từ banggianongsan.com, baonghean.vn, congthuong.vn, baohatinh.vn, sở công thương Đắk Lắk, vietnamvn.com, coffee market.
  • Thời tiết: Open-Meteo API cho từng tỉnh trọng điểm (nhiệt độ tối đa, lượng mưa, độ ẩm).
  • Khối lượng giao dịch: trích xuất từ các bài viết có khối lượng được công bố.
  • Chỉ số chín: dữ liệu cảm biến IoT từ một số vùng pilot, cập nhật qua endpoint maturity-telemetry.
  • Báo cáo của nông dân: giá địa phương được người dùng báo qua form, dùng để cross-check, không đưa vào training trực tiếp.

Cách dự báo

Hiện tại mô hình dự báo dùng baseline statistical kết hợp với gradient boosting (LightGBM khi có đủ artifact). Khi tích lũy đủ ≥ 1000 điểm/series, sẽ chuyển sang LSTM deep learning. Quy trình:

  1. Lấy cửa sổ 60 ngày gần nhất cho cặp (vùng, giống) đang xem.
  2. Tính lag features (giá 1, 2, 3, 7, 14, 30 ngày trước), rolling mean và std (7, 14, 30 ngày), slope tuyến tính 14 ngày.
  3. Bổ sung tín hiệu mùa vụ (tháng, ngày trong tuần, giai đoạn Tết) và tín hiệu thời tiết lag.
  4. Mô hình trả 30 giá trị giá kỳ vọng cho 30 ngày kế tiếp.
  5. Áp dụng giới hạn dưới (price floor) để tránh dự báo phi lý sau biến động lớn.

Khoảng tin cậy

Khoảng tin cậy (confidence interval) được ước tính từ độ biến động (volatility) cửa sổ 30 ngày gần nhất, scale theo giá hiện tại. Mặc định khoảng ±8% cho sầu riêng, cà phê, hồ tiêu; ±5.5% cho lúa do biến động thấp hơn.

Đo độ chính xác

  • RMSE (Root Mean Squared Error): căn bậc hai của trung bình bình phương sai số. Nhạy với outlier lớn. Đo bằng VND/kg.
  • MAE (Mean Absolute Error): trung bình độ lớn sai số tuyệt đối. Robust hơn RMSE.
  • Backtest trượt: mỗi đợt retrain (mặc định 24h/lần) chạy backtest với cửa sổ 60-ngày-train, 30-ngày-test trên dữ liệu lịch sử.
  • Số mẫu backtest và số series được đánh giá hiển thị tại endpoint /api/v1/analytics/model-metrics.

Hạn chế

  • Mô hình không nắm bắt được sự kiện bất thường (kiểm dịch, lệnh cấm xuất khẩu đột ngột, thiên tai lớn).
  • Dữ liệu phụ thuộc nguồn scrape — nếu nguồn thay đổi HTML hoặc dừng cập nhật, dự báo lệch.
  • Forecast càng xa, sai số càng tăng. Ngày 1-7 đáng tin cậy hơn ngày 21-30.
  • Không áp dụng cho mục đích giao dịch tài chính — chỉ tham khảo định hướng cho nông dân và thương lái.

Cập nhật mô hình

Mô hình được retrain định kỳ 24 giờ một lần qua scheduler nội bộ. Khi có model mới, artifact được atomic-swap để tránh API đọc file dở. Phiên bản model hiện tại có thể xem qua endpoint /api/v1/analytics/model-metrics field model_kind.