Skip to main content
View all authors

Kết quả mô hình SARIMAX

· 5 min read

Dưới đây là kết quả từ mô hình SARIMAX được huấn luyện để dự đoán giá đóng cửa (Close) của một tập dữ liệu với 46 quan sát.

Thông tin chung về mô hình

  • Mô hình: ARIMA(5, 1, 0)
  • Số quan sát: 46
  • Log Likelihood: -292.937
  • AIC: 597.873
  • BIC: 608.713
  • HQIC: 601.914

Hệ số ước lượng

Hệ sốGiá trịSai số chuẩnZ-scoreP-value95% CI (dưới)95% CI (trên)
ar.L1-0.17200.126-1.3700.171-0.4180.074
ar.L2-0.27660.185-1.4940.135-0.6400.086
ar.L30.05900.1990.2970.767-0.3310.449
ar.L40.01350.2140.0630.950-0.4060.433
ar.L50.01030.1800.0570.955-0.3430.364
sigma²29,1006820.2584.2670.00015,70042,500

Các kiểm định thống kê

  • Ljung-Box (Q-test): Kiểm định tính độc lập của phần dư
    • Giá trị Q: 1.47
    • P-value: 0.22 (Không có bằng chứng mạnh về sự tự tương quan)
  • Jarque-Bera (JB-test): Kiểm định phần dư có tuân theo phân phối chuẩn không
    • Giá trị JB: 0.04
    • P-value: 0.98 (Không bác bỏ giả thuyết phần dư tuân theo phân phối chuẩn)
  • Heteroskedasticity (H-test): Kiểm định phương sai phần dư có thay đổi theo thời gian không
    • Hệ số H: 0.78
    • P-value: 0.63 (Không có bằng chứng về phương sai không đồng nhất)
  • Skewness: 0.07 (Phần dư không bị lệch nhiều)
  • Kurtosis: 2.96 (Gần với phân phối chuẩn có kurtosis = 3)

Nhận xét

  • Các hệ số AR (tự hồi quy) có ý nghĩa thống kê thấp (p-value > 0.05), cho thấy rằng mô hình có thể cần được tinh chỉnh.
  • Giá trị sigma² cao cho thấy phần dư có mức độ biến động lớn.
  • Không có dấu hiệu của tự tương quan mạnh hay phương sai không đồng nhất.
  • Phần dư có vẻ tuân theo phân phối chuẩn dựa trên kiểm định JB.

Cần tinh chỉnh gì?

1. Kiểm tra bậc của mô hình ARIMA

  • Mô hình hiện tại sử dụng ARIMA(5,1,0), có thể kiểm tra các mô hình khác như ARIMA(1,1,1) hoặc ARIMA(2,1,2) để xem liệu có cải thiện không.
  • Sử dụng tiêu chí AIC/BIC để chọn mô hình tối ưu.

2. Tối ưu hóa dựa trên AIC và BIC

  • AIC (Akaike Information Criterion)BIC (Bayesian Information Criterion) là hai chỉ số quan trọng để so sánh các mô hình ARIMA.
  • Nguyên tắc chung:
    • Chọn mô hình có giá trị AIC/BIC thấp nhất.
    • AIC ưu tiên độ khớp của mô hình, trong khi BIC ưu tiên tính đơn giản (ít tham số hơn).
    • Nếu AIC và BIC cho kết quả khác nhau, nên xem xét thêm yếu tố overfitting. Nếu AIC thấp nhưng BIC cao, mô hình có thể đang bị overfitting (khớp quá mức với dữ liệu huấn luyện), khi đó nên chọn mô hình đơn giản hơn.
    • Để cả AIC và BIC đều nhỏ, cần cân bằng giữa số lượng tham số và độ khớp mô hình. Điều này có thể đạt được bằng cách:
      1. Thử nghiệm các giá trị (p, d, q) khác nhau để tìm ra mô hình tối ưu.
      2. Giảm số bậc của mô hình nếu cần thiết để tránh quá nhiều tham số (tránh overfitting).
      3. Loại bỏ các hệ số không có ý nghĩa thống kê (p-value cao) để làm mô hình gọn hơn.
      4. Xem xét biến ngoại sinh (SARIMAX) nếu có các yếu tố tác động đến chuỗi thời gian.

3. Kiểm tra tính dừng của dữ liệu

  • Đảm bảo rằng chuỗi dữ liệu thực sự cần sai phân bậc 1 (d=1).
  • Sử dụng kiểm định ADF (Augmented Dickey-Fuller) để kiểm tra tính dừng.

4. Xem xét thành phần MA (Trung bình trượt)

  • Hiện tại mô hình chưa có phần MA (q=0), có thể kiểm tra xem thêm phần tử MA giúp cải thiện dự đoán không.

5. Kiểm tra hiệu suất trên tập kiểm tra

  • Chia dữ liệu thành tập huấn luyện và kiểm tra để đánh giá hiệu suất mô hình.
  • Sử dụng RMSE (Root Mean Squared Error) để đánh giá.

6. Xem xét các yếu tố ngoại sinh (SARIMAX)

  • Nếu có yếu tố tác động như chỉ số kinh tế, lãi suất, khối lượng giao dịch, có thể thêm vào mô hình dưới dạng biến ngoại sinh.

👉 Bước tiếp theo: Kiểm tra lại mô hình với các giá trị (p,d,q) khác nhau, thêm yếu tố MA nếu cần, tối ưu AIC/BIC và đánh giá mô hình trên tập kiểm tra.

Code tối ưu mô hình ARIMA

import itertools
import pandas as pd
import statsmodels.api as sm

# Dữ liệu giả định
data = pd.read_csv('data.csv', index_col=0, parse_dates=True)
train = data['Close']

# Tạo danh sách giá trị p, d, q
p = d = q = range(0, 5)
pdq = list(itertools.product(p, d, q))

best_aic, best_bic, best_params = float('inf'), float('inf'), None

for param in pdq:
try:
model = sm.tsa.ARIMA(train, order=param)
results = model.fit()

if results.aic < best_aic and results.bic < best_bic:
best_aic, best_bic, best_params = results.aic, results.bic, param
except:
continue

print(f'Mô hình tối ưu: ARIMA{best_params}, AIC: {best_aic}, BIC: {best_bic}')

Code trên sẽ tự động tìm mô hình có AICBIC thấp nhất bằng cách thử nghiệm các giá trị (p,d,q) khác nhau.

Tự Học Flutter | Kiến Trúc Của Flutter

· 4 min read

Flutter là một framework phát triển ứng dụng đa nền tảng với hiệu suất cao, hỗ trợ Android, iOS, web và desktop. Hệ thống kiến trúc của Flutter bao gồm nhiều thành phần giúp tối ưu hóa trải nghiệm lập trình viên cũng như hiệu suất của ứng dụng.


🎯 1. Cấu Trúc Tổng Thể Của Flutter

Flutter được xây dựng dựa trên bốn thành phần chính:

1️⃣ Flutter Engine – Cốt lõi của Flutter, chịu trách nhiệm xử lý đồ họa, animation, và logic nền tảng.
2️⃣ Thư viện nền tảng (Foundation Library) – Cung cấp các API giúp xây dựng ứng dụng.
3️⃣ Widgets – Thành phần giao diện người dùng (UI), mọi thứ trong Flutter đều là widget.
4️⃣ Các Widget Theo Phong Cách Thiết Kế – Hỗ trợ Material Design (Android) và Cupertino (iOS).


🚀 2. Flutter Engine – Trái Tim Của Flutter

Flutter Engine được viết bằng C++ và sử dụng thư viện đồ họa Skia để hiển thị giao diện với tốc độ cao. Đây là thành phần chính giúp Flutter có thể:

✔ Chạy mượt mà trên nhiều nền tảng khác nhau.
✔ Xử lý animation, render đồ họa và tối ưu hiệu suất UI.
✔ Hỗ trợ biên dịch và chạy code Dart thông qua Dart VM.


📚 3. Thư Viện Nền Tảng (Foundation Library)

Flutter cung cấp Foundation Library được viết bằng Dart, hỗ trợ lập trình viên xây dựng ứng dụng một cách dễ dàng với các công cụ như:

🔹 Hệ thống quản lý trạng thái (State Management).
🔹 Điều hướng giữa các màn hình.
🔹 Hỗ trợ kết nối mạng, xử lý dữ liệu JSON.

Nhờ thư viện nền tảng, lập trình viên có thể tập trung vào logic ứng dụng mà không cần lo về tích hợp với hệ điều hành.


🎨 4. Widgets – Cốt Lõi Của Giao Diện Flutter

Trong Flutter, mọi thứ đều là widget – từ văn bản, hình ảnh, nút bấm, đến toàn bộ màn hình. Có hai loại widget chính:

🔹 StatelessWidget – Không thay đổi trạng thái trong suốt vòng đời.
🔹 StatefulWidget – Có thể thay đổi trạng thái, thích hợp với các UI động.

Ứng dụng Flutter được xây dựng bằng cách lồng ghép nhiều widget để tạo ra giao diện mong muốn.


🎭 5. Thiết Kế Giao Diện Theo Từng Nền Tảng

Flutter cung cấp hai bộ widget tùy theo nền tảng:

Material Design – Giao diện theo chuẩn Android.
Cupertino – Giao diện theo phong cách iOS.

Lập trình viên có thể chọn các widget phù hợp để tạo trải nghiệm người dùng thống nhất trên mọi nền tảng.


✋ 6. Cử Chỉ (Gestures) – Tạo Trải Nghiệm Tương Tác

Flutter có GestureDetector, giúp nhận diện các thao tác của người dùng như:

🔹 Chạm (Tap)
🔹 Kéo (Drag)
🔹 Vuốt (Swipe)
🔹 Phóng to / thu nhỏ (Pinch Zoom)

Điều này giúp ứng dụng có thể phản hồi linh hoạt với hành động của người dùng.


🔄 7. Quản Lý Trạng Thái (State Management)

Trong Flutter, quản lý trạng thái rất quan trọng để đảm bảo hiệu suất ứng dụng. Một số phương pháp quản lý state phổ biến:

🔹 StatefulWidget – Dùng cho những UI nhỏ có trạng thái đơn giản.
🔹 Provider, Riverpod, Redux – Dùng cho ứng dụng lớn, cần quản lý trạng thái toàn cục.

Sử dụng cách quản lý trạng thái phù hợp giúp ứng dụng chạy mượt mà và dễ bảo trì.


📑 8. Lớp (Layers) Trong Flutter

Flutter được thiết kế theo mô hình phân lớp (Layered Architecture):

1️⃣ Framework Layer – Chứa các thành phần như widgets, animation, gestures.
2️⃣ Rendering Layer – Chịu trách nhiệm hiển thị giao diện.
3️⃣ Flutter Engine – Xử lý đồ họa, animation, và logic nền tảng.
4️⃣ Platform Layer – Kết nối với hệ điều hành (Android, iOS, Web, Desktop).

Cấu trúc này giúp Flutter có hiệu suất cao, dễ mở rộng và bảo trì.


🏁 Kết Luận

Hiểu rõ kiến trúc Flutter giúp lập trình viên phát triển ứng dụng hiệu quả hơn. Nhờ hệ thống widget linh hoạt, engine tối ưu và khả năng tương thích đa nền tảng, Flutter là một công cụ mạnh mẽ để xây dựng ứng dụng hiện đại.

🚀 Bạn đã sẵn sàng học Flutter chưa? Hãy bắt đầu ngay hôm nay!

Tự Học Flutter | Phát Triển 1% Mỗi Ngày

· One min read

Thực hành code hàng ngày

  • Dành ít nhất 1 giờ mỗi ngày để code
  • Tập trung vào một concept mới mỗi ngày
  • Thực hành qua các mini project

Học các widget và API mới

  • Tìm hiểu 1-2 widget mới mỗi ngày
  • Đọc documentation chính thức của Flutter
  • Thử nghiệm các tính năng mới

Tối ưu code

  • Review và refactor code thường xuyên
  • Áp dụng các design pattern
  • Cải thiện performance

Tương tác với cộng đồng

  • Tham gia các diễn đàn Flutter
  • Đọc blog và bài viết về Flutter
  • Chia sẻ kiến thức với người khác

Theo dõi xu hướng

  • Cập nhật các phiên bản mới của Flutter
  • Học hỏi từ các ứng dụng mẫu
  • Tìm hiểu các thư viện phổ biến

Hãy nhớ rằng sự tiến bộ nhỏ mỗi ngày sẽ tạo nên những thay đổi lớn theo thời gian.

Tự Học Flutter | Tìm hiểu Flutter Framework

· 2 min read

Flutter là một framework nguồn mở được phát triển bởi Google, cho phép xây dựng ứng dụng đa nền tảng với một codebase duy nhất.

Tổng quan về Flutter

Flutter là một framework nguồn mở được phát triển và hỗ trợ bởi Google. Nó cho phép các nhà phát triển frontend và fullstack xây dựng giao diện người dùng (UI) cho nhiều nền tảng chỉ với một codebase duy nhất.

Ra mắt vào năm 2018, ban đầu Flutter tập trung vào phát triển ứng dụng di động. Hiện nay, Flutter đã hỗ trợ phát triển ứng dụng trên 6 nền tảng: iOS, Android, web, Windows, MacOS và Linux.

So sánh phát triển ứng dụng

Phát triển ứng dụng gốc

  • Truy cập đầy đủ vào tính năng thiết bị gốc
  • Hiệu suất và tốc độ cao
  • Cần nhiều code và nhà phát triển hơn cho nhiều nền tảng
  • Khó đảm bảo trải nghiệm nhất quán giữa các nền tảng

Phát triển đa nền tảng với Flutter

  • Một codebase cho nhiều nền tảng
  • Tiết kiệm thời gian và chi phí phát triển
  • Trải nghiệm người dùng nhất quán
  • Hiệu suất tốt nhờ biên dịch thành mã máy

Ưu điểm của Flutter

  • Hiệu suất gần với ứng dụng gốc nhờ sử dụng Dart
  • Kết xuất UI nhanh và nhất quán với thư viện đồ họa Skia
  • Công cụ phát triển tiện lợi như hot reload và widget inspector
  • Hệ sinh thái widget phong phú và dễ tùy chỉnh

Widget trong Flutter

Widget là thành phần cơ bản để xây dựng UI trong Flutter. Mọi thành phần hiển thị trên màn hình đều được tạo từ widget. Flutter cung cấp:

Cơ bảnNâng cao
14 danh mục widget có sẵnWidget kiểu Cupertino (iOS)
Widget kiểu Material DesignThư viện widget từ cộng đồng

Hỗ trợ và cộng đồng

  • Được hỗ trợ chính thức bởi Google
  • Cộng đồng lớn mạnh trên nhiều nền tảng
  • Tài liệu và hướng dẫn chi tiết
  • Nhiều package mở rộng trên pub.dev

Flutter là một công nghệ mạnh mẽ cho phép phát triển ứng dụng đa nền tảng hiệu quả, với hiệu suất cao và trải nghiệm người dùng nhất quán.

Hướng Dẫn Sử Dụng Thông Tin Liên Hệ Hướng Nghiệp Dữ Liệu

· 2 min read

Hướng Dẫn Sử Dụng Thông Tin Liên Hệ Hướng Nghiệp Dữ Liệu

📢 Giới Thiệu

Hướng Nghiệp Dữ Liệu là nền tảng cung cấp kiến thức, hướng dẫn và hỗ trợ học tập trong các lĩnh vực lập trình, dữ liệu, tự động hóa và giao dịch thuật toán. Để giúp bạn tiếp cận thông tin nhanh chóng, dưới đây là danh sách các kênh liên hệ chính thức.

📌 Các Kênh Liên Hệ Chính Thức

📞 Zalo

Liên hệ qua Zalo: https://zalo.me/0583587833

Dùng Zalo để nhắn tin trực tiếp với đội ngũ hỗ trợ.

📘 Fanpage Facebook

Theo dõi Fanpage: https://facebook.com/huongnghiepdulieu

Nhận thông tin mới nhất về Các Dịch vụ và Khóa học, tài liệu và sự kiện.

🌐 Website Chính Thức

Website 1: https://huongnghiepdulieu.com

Website 2: https://HuongNghiepLapTrinh.com

Cung cấp bài viết chuyên sâu, khóa học và tài liệu học tập miễn phí.

📧 Email Hỗ Trợ

Email: daotao@huongnghiepdulieu.com

Liên hệ hỗ trợ học viên, tư vấn khóa học và hợp tác.

🎥 Kênh Video Học Tập

📺 YouTube

Kênh tổng hợp: https://www.youtube.com/@HuongNghiepDuLieu

Bot Trading & Tự động hóa: https://www.youtube.com/@HuongNghiepDuLieuBot

Lập trình & Dữ liệu: https://www.youtube.com/@HuongNghiepDuLieuLapTrinh

Tự động hóa quy trình: https://www.youtube.com/@HuongNghiepDuLieuTuDongHoa

Học tiếng Anh nhanh: https://www.youtube.com/@TiengAnhMoiNgay5Phut

🎵 TikTok

Dữ liệu & Lập trình: https://www.tiktok.com/@HuongNghiepDuLieu

Python & Trading: https://www.tiktok.com/@PythonCodingTrading

Tiếng Anh mỗi ngày: https://www.tiktok.com/@TiengAnh5PhutHangNgay

📚 Cộng Đồng Học Tập

❓ Quora

Câu hỏi & Trả lời: https://HuongNghiepDuLieu.quora.com

Chia sẻ kiến thức: https://HNData.quora.com

📷 Instagram

Hình ảnh & nội dung ngắn: https://www.instagram.com/HuongNghiepDuLieu

💼 LinkedIn

Kết nối chuyên nghiệp: https://www.linkedin.com/in/HuongNghiepDuLieu

🖥️ GitHub

Code & Dự án: https://github.com/HuongNghiepDuLieu