Σ
SDCalc
Trung cấpỨng dụng·12 min

Độ lệch chuẩn trượt cho Chuỗi thời gian

Tìm hiểu cách tính và diễn giải độ lệch chuẩn trượt (rolling) cho phân tích chuỗi thời gian. Bao gồm dải Bollinger, phân cụm biến động, ví dụ mã Python và ứng dụng thực tế trong tài chính.

Độ lệch chuẩn trượt là gì?

Độ lệch chuẩn trượt (còn gọi là SD cuộn hay biến động theo dõi) tính độ lệch chuẩn trên một cửa sổ thời gian trượt. Không giống SD tĩnh sử dụng tất cả dữ liệu lịch sử, SD trượt tập trung vào các quan sát gần đây, khiến nó thiết yếu để phát hiện thay đổi biến động theo thời gian.

Kỹ thuật này là nền tảng trong thị trường tài chính, nơi biến động không cố định mà thay đổi theo thời gian. Một cổ phiếu có thể bình lặng trong nhiều tháng, rồi đột ngột trở nên biến động mạnh trong mùa công bố kết quả kinh doanh hoặc khủng hoảng thị trường. SD trượt nắm bắt những động lực này theo thời gian thực.

Tại sao SD trượt quan trọng

Độ lệch chuẩn tĩnh đối xử bình đẳng với tất cả dữ liệu lịch sử, nhưng biến động gần đây thường dự đoán biến động tương lai tốt hơn lịch sử xa. SD trượt cho bạn thước đo rủi ro hiện tại, có tính hành động và thích ứng với điều kiện thị trường thay đổi.

Cách tính Độ lệch chuẩn trượt

Tại mỗi thời điểm, tính độ lệch chuẩn của n điểm dữ liệu trước đó. Khi tiến về phía trước, cửa sổ trượt, luôn sử dụng n giá trị gần nhất. Điều này tạo ra chuỗi thời gian ước lượng biến động.

1

Xác định cửa sổ

Chọn số kỳ (ví dụ: 20 ngày) bao gồm trong mỗi phép tính.
2

Tính SD đầu tiên

Tính độ lệch chuẩn của n điểm dữ liệu đầu tiên.
3

Trượt cửa sổ

Di chuyển về phía trước một kỳ, bỏ giá trị cũ nhất, thêm giá trị mới nhất.
4

Lặp lại

Tiếp tục cho đến khi hết chuỗi dữ liệu.
python
import pandas as pd
import numpy as np

# Load your time series data
df = pd.read_csv('stock_prices.csv')

# 20-day rolling standard deviation
df['rolling_std_20'] = df['returns'].rolling(window=20).std()

# Annualized volatility (assuming daily returns)
df['annualized_vol'] = df['rolling_std_20'] * np.sqrt(252)

# Multiple windows for comparison
df['rolling_std_10'] = df['returns'].rolling(window=10).std()
df['rolling_std_50'] = df['returns'].rolling(window=50).std()

Lưu ý rằng (window-1) giá trị đầu tiên sẽ là NaN vì bạn cần ít nhất n quan sát để tính. Trong thực tế, bạn có thể dùng tham số min_periods để bắt đầu tính sớm hơn với ít quan sát hơn.

Chọn kích thước cửa sổ phù hợp

Kích thước cửa sổ tạo ra sự đánh đổi giữa khả năng phản ứng và tính ổn định:

  • Cửa sổ ngắn (5-10 ngày):Phản ứng nhanh với thay đổi biến động nhưng nhiễu và có thể tạo tín hiệu giả
  • Cửa sổ trung bình (20-30 ngày):Cân bằng giữa phản ứng và ổn định; 20 ngày là tiêu chuẩn ngành cho dải Bollinger
  • Cửa sổ dài (50-100 ngày):Mượt mà và ổn định nhưng chậm phát hiện thay đổi chế độ; tốt cho phân tích xu hướng

Mẹo hữu ích

Sử dụng nhiều kích thước cửa sổ cùng lúc. So sánh SD trượt 10 ngày, 20 ngày và 50 ngày để hiểu cả biến động ngắn hạn lẫn xu hướng biến động dài hạn. Sự phân kỳ giữa chúng có thể báo hiệu thay đổi chế độ.

Ứng dụng thực tế

Độ lệch chuẩn trượt được sử dụng rộng rãi trong tài chính và khoa học dữ liệu:

  • Quản lý rủi ro:Tính Giá trị rủi ro (VaR) sử dụng biến động gần đây thay vì trung bình lịch sử
  • Định giá quyền chọn:Ước lượng tham số biến động ngụ ý cho Black-Scholes và các mô hình khác
  • Quản lý danh mục:Điều chỉnh quy mô vị thế dựa trên biến động hiện tại; giảm mức độ tiếp xúc khi biến động tăng đột biến
  • Phát hiện bất thường:Nhận diện các giai đoạn bất thường khi biến động hiện tại lệch đáng kể so với trung bình trượt
  • Phân tích kỹ thuật:Dải Bollinger, Kênh Keltner và các chỉ báo dựa trên biến động khác

Giải thích dải Bollinger

Dải Bollinger là ứng dụng nổi tiếng nhất của độ lệch chuẩn trượt. Được phát triển bởi John Bollinger vào thập niên 1980, chúng tạo ra đường bao động xung quanh giá thích ứng với biến động.

Dải Bollinger

Upper Band = SMA(20) + 2 × Moving SD(20) Lower Band = SMA(20) - 2 × Moving SD(20)

Các dải mở rộng trong giai đoạn biến động và co lại trong giai đoạn bình lặng. Nhà giao dịch sử dụng điều này để:

  • Nhận diện trạng thái quá mua/quá bán khi giá chạm dải
  • Phát hiện “siết chặt” (biến động thấp) thường báo trước bứt phá
  • Đặt mức dừng lỗ động dựa trên điều kiện thị trường hiện tại

Phân cụm biến động

Một trong những sự kiện thực nghiệm quan trọng nhất trong tài chính là biến động có xu hướng phân cụm—biến động cao có xu hướng theo sau biến động cao, và thấp theo sau thấp. Điều này được Robert Engle (Giải Nobel 2003) công thức hóa trong mô hình ARCH.

SD trượt cho thấy sự phân cụm này một cách trực quan. Khi bạn vẽ biến động cuộn theo thời gian, bạn sẽ thấy các chế độ rõ ràng của biến động cao và thấp thay vì biến động ngẫu nhiên. Điều này có những hàm ý sâu sắc:

  • Khả năng dự đoán:Biến động ngày mai có khả năng giống ngày hôm nay—bạn có thể dự đoán rủi ro
  • Phân bổ rủi ro:Giảm vị thế khi bước vào chế độ biến động cao
  • Lựa chọn chiến lược:Các chiến lược giao dịch khác nhau hoạt động tốt hơn trong các môi trường biến động khác nhau

Lưu ý quan trọng

Dù biến động phân cụm, thay đổi chế độ có thể đột ngột và mạnh mẽ. Tin tức lớn, sụp đổ thị trường hoặc thông báo chính sách có thể chuyển đổi chế độ biến động ngay lập tức. SD trượt sẽ luôn trễ những thay đổi này—vào lúc nó phản ánh thực tế mới, chế độ có thể đã thay đổi lần nữa.

Further Reading

How to Read This Article

A statistics tutorial is a practical interpretation guide, not just a formula dump. It refers to the assumptions, notation, and reporting language that analysts need when they explain a result to a teacher, manager, client, or reviewer. The article body covers the specific topic, while the sections below create a common interpretation frame that readers can reuse across related metrics.

Reading goalWhat to focus onCommon mistake
DefinitionWhat the metric is and what quantity it summarizesTreating the formula as self-explanatory
Formula choiceSample versus population assumptions and notationUsing n when n-1 is required or vice versa
InterpretationWhether the result indicates concentration, spread, or riskCalling a large value good or bad without context

Frequently Asked Questions

How should I interpret a high standard deviation?

A high standard deviation means the observations are spread farther from the mean on average. Whether that spread is acceptable depends on the context: wide dispersion might signal risk in finance, instability in manufacturing, or genuine natural variation in scientific data.

Why do some articles mention n while others mention n-1?

The denominator reflects the difference between population and sample formulas. Population variance and population standard deviation use N because the full dataset is known. Sample variance and sample standard deviation often use n-1 because Bessel’s correction reduces bias when estimating population spread from a sample.

What is a statistical interpretation guide?

A statistical interpretation guide is a page that moves beyond arithmetic and explains meaning. It tells you what a metric is, when the formula applies, and how to describe the result in plain English without overstating certainty.

Can I cite this article in a report?

You should cite the underlying authoritative reference for formal work whenever possible. This page is best used as an explanatory bridge that helps you understand the concept before quoting the original standard or handbook.

Why include direct citations on every article page?

Direct citations give readers a route to verify the definition, notation, and assumptions. That improves trust and reduces the chance that a simplified explanation is mistaken for the entire technical standard.

Authoritative References

These sources define the concepts referenced most often across our articles. Bessel's correction is a sample adjustment, variance is a squared measure of spread, and standard deviation is the square root of variance expressed in the same units as the data.