Outlier (dữ liệu ngoại lai) là những giá trị khác biệt rõ rệt so với phần lớn dữ liệu trong một tập dữ liệu và có thể làm sai lệch kết quả phân tích. Vì vậy, việc phát hiện và loại bỏ Outlier sẽ giúp tăng độ chính xác của dữ liệu. Trong bài viết này, VietGuru sẽ cùng bạn tìm hiểu Outlier là gì và hướng dẫn cách xác định, loại bỏ Outlier trong MySQL.
1. Outlier là gì?
Để hình dung rõ hơn Outlier là gì, bạn có thể quan sát hình minh họa bên dưới và chú ý đến điểm “lạc quẻ” so với những điểm còn lại.

Outlier là gì?
Trong một tập dữ liệu, đôi khi sẽ xuất hiện một vài giá trị khác biệt hẳn so với phần lớn các giá trị khác. Những điểm như vậy được gọi là Outlier, hay còn gọi là dữ liệu ngoại lai. Nói đơn giản, đây là những dữ liệu không đi theo “quy luật chung” của cả tập, có thể do sai lệch khi thu thập dữ liệu, do đặc điểm riêng của đối tượng, hoặc vì một yếu tố bất thường nào đó.
Ví dụ: Bạn đang khảo sát mức thu nhập của người dân trong một thành phố. Phần lớn mọi người có thu nhập khoảng 20.000–100.000 USD mỗi năm. Tuy nhiên, nếu xuất hiện một trường hợp thu nhập tới 1 triệu USD/năm thì giá trị này sẽ lệch hẳn so với mặt bằng chung. Khi đó, mức thu nhập này được xem là Outlier trong tập dữ liệu đang phân tích.
Xem thêm: Cách đặt câu hỏi nghiên cứu khoa học
2. Vì sao cần phát hiện điểm dị biệt (outlier)?
Khi đã hiểu outlier là gì, bạn sẽ nhận ra rằng những giá trị này có thể ảnh hưởng khá lớn đến kết quả phân tích dữ liệu. Trong một tập dữ liệu tưởng chừng bình thường, chỉ cần xuất hiện vài điểm quá lệch so với phần còn lại cũng đủ làm các chỉ số thống kê bị sai lệch.
Một trong những lý do phổ biến khiến outlier xuất hiện là lỗi trong quá trình thu thập hoặc nhập dữ liệu. Chẳng hạn nhập nhầm số, thiết bị đo bị sai hoặc dữ liệu bị ghi nhận không đồng nhất. Nếu những giá trị này không được phát hiện sớm, chúng có thể khiến kết quả phân tích, mô hình dự đoán hoặc báo cáo thống kê trở nên thiếu chính xác.
Tuy nhiên, không phải lúc nào outlier cũng là dữ liệu “cần loại bỏ”. Trong nhiều trường hợp, chúng lại chứa thông tin giá trị. Ví dụ trong phân tích tài chính, một giao dịch có giá trị bất thường có thể là dấu hiệu của gian lận. Hay trong nghiên cứu thị trường, một nhóm khách hàng chi tiêu vượt trội đôi khi lại là phân khúc khách hàng tiềm năng.
Vì vậy, việc hiểu rõ outlier là gì và sớm phát hiện chúng sẽ giúp bạn kiểm soát chất lượng dataset tốt hơn, đồng thời đưa ra quyết định đúng đắn: nên loại bỏ, điều chỉnh hay giữ lại những giá trị đặc biệt này cho mục đích phân tích sâu hơn.

Vì sao cần phát hiện điểm dị biệt (outlier)?
Xem thêm: Conceptual framework
3. Các loại điểm dị biệt trong dữ liệu
Sau khi đã hiểu outlier là gì, nhiều người sẽ nghĩ đơn giản rằng đó chỉ là một vài giá trị “khác thường” trong dataset. Nhưng trong thực tế, điểm dị biệt có thể xuất hiện theo nhiều cách khác nhau. Có trường hợp nó xuất hiện khi xét riêng một biến, nhưng cũng có lúc chỉ lộ ra khi xem xét mối quan hệ giữa nhiều biến cùng lúc.
Dưới đây là những dạng điểm dị biệt thường gặp khi phân tích dữ liệu.
3.1. Dị biệt đơn biến (univariate outlier)
Dị biệt đơn biến là loại dễ nhận ra nhất. Nó xuất hiện khi ta xem xét một biến riêng lẻ và phát hiện ra một giá trị quá cao hoặc quá thấp so với phần còn lại của dữ liệu.
Ví dụ: Khi khảo sát thu nhập của 200 người lao động, phần lớn mức thu nhập dao động khoảng 7–15 triệu đồng mỗi tháng. Tuy nhiên, nếu có một trường hợp ghi nhận thu nhập tới 300 triệu đồng thì giá trị này sẽ nổi bật hẳn so với các dữ liệu còn lại. Khi đó, nó được xem là univariate outlier.
Trong thực hành phân tích dữ liệu, loại dị biệt này thường được phát hiện bằng các công cụ đơn giản như biểu đồ boxplot, kiểm tra giá trị cực trị hoặc tính toán độ lệch chuẩn.
3.2. Dị biệt đa biến (multivariate outlier)
Khác với dạng trên, dị biệt đa biến không phải lúc nào cũng dễ nhận ra nếu chỉ nhìn từng biến riêng lẻ. Nó chỉ thực sự “lộ diện” khi ta xem xét sự kết hợp của hai hoặc nhiều biến cùng lúc.
Ví dụ: Xét riêng từng biến thì chiều cao 1m85 hoặc cân nặng 40kg đều có thể chấp nhận được. Nhưng nếu một người vừa cao 1m80 lại chỉ nặng 45kg thì mối quan hệ giữa hai biến này trở nên khá bất thường. Trong trường hợp này, điểm dữ liệu đó có thể được xem là multivariate outlier.
Loại dị biệt này thường cần đến các kỹ thuật phân tích phức tạp hơn, chẳng hạn như khoảng cách Mahalanobis hoặc các phương pháp phân tích đa biến khác.

Dị biệt đa biến (multivariate outlier)
3.3. Dị biệt do lỗi dữ liệu và dị biệt thực tế
Không phải mọi outlier đều giống nhau. Trong thực tế, các điểm dị biệt thường rơi vào hai nhóm chính: outlier do lỗi dữ liệu và outlier phản ánh hiện tượng thực tế.
- Dị biệt do lỗi dữ liệu thường xuất hiện vì sai sót trong quá trình nhập liệu, đo lường hoặc mã hóa dữ liệu. Ví dụ biến giới tính chỉ được quy định giá trị 1 và 2, nhưng trong bảng dữ liệu lại xuất hiện giá trị 5 – rõ ràng đây là lỗi cần được xử lý.
- Dị biệt thực tế thì khác. Giá trị của nó vẫn hợp lý về mặt logic, chỉ là nó lệch khá xa so với xu hướng chung của dữ liệu. Ví dụ trong khảo sát thu nhập, việc xuất hiện một người có thu nhập cao gấp nhiều lần mức trung bình vẫn có thể xảy ra ngoài đời thật.
Vì vậy, khi phát hiện outlier, nhà phân tích dữ liệu không nên vội loại bỏ ngay. Thay vào đó, họ cần xem xét kỹ nguyên nhân hình thành của điểm dữ liệu đó để quyết định nên giữ lại, điều chỉnh hay loại bỏ cho phù hợp với mục tiêu nghiên cứu.
Xem thêm: Lý thuyết nền trong nghiên cứu khoa học
4. Cách xác định outlier trong dữ liệu
Sau khi đã hiểu outlier là gì cũng như những dạng outlier trong dữ liệu, tiếp theo chúng ta sẽ cùng khám phá cách xác định outlier trong dữ liệu nhé. Để xác định outlier, trước hết cần hiểu rằng mỗi loại dữ liệu sẽ có cách xác định khác nhau. Tuy nhiên, trong nhiều trường hợp thực tế, người ta thường tập trung vào dạng outlier phổ biến nhất: những data point có giá trị quá cao hoặc quá thấp so với phần lớn dữ liệu còn lại.
Cách đơn giản nhất để bắt đầu xác định outlier là nhìn tổng thể dữ liệu. Chỉ cần trực quan hóa bằng biểu đồ hoặc bảng tổng hợp, bạn đã có thể nhanh chóng nhận ra liệu dataset có điểm nào “lệch nhịp” hay không. Nếu mọi giá trị đều nằm trong khoảng hợp lý thì không cần xử lý thêm. Nhưng khi thấy xuất hiện những con số bất thường, bạn có thể làm theo các bước sau để kiểm tra kỹ hơn.
Bước 1: Trực quan hóa dữ liệu
Trước hết hãy tính tổng giá trị cho từng đối tượng cần phân tích, ví dụ như tổng giá trị của mỗi đơn hàng. Tùy dataset mà bạn có thể thay bằng các chỉ số khác như số khách hàng mới, số hợp đồng ký trong ngày,… Sau đó dùng biểu đồ để quan sát xem có giá trị nào nổi bật khác thường hay không.
Bước 2: Tính giá trị trung bình và độ lệch chuẩn
Tiếp theo, tính giá trị trung bình (Mean) và độ lệch chuẩn (Standard Deviation) của dữ liệu. Giá trị trung bình cho ta biết mức “đại diện” của tập dữ liệu, còn độ lệch chuẩn cho thấy dữ liệu phân tán rộng hay hẹp quanh mức trung tâm đó.
Trong nhiều trường hợp, nếu dữ liệu phân bố tương đối bình thường thì khoảng ±3 độ lệch chuẩn quanh giá trị trung bình đã bao phủ gần như toàn bộ dữ liệu (trên 99%). Vì vậy, những giá trị nằm ngoài phạm vi này thường được xem là ứng viên của outlier.

Cách xác định outlier trong dữ liệu
Bước 3: Xác định các ngưỡng biên (Upper/Lower Whisker)
Sau khi có Mean và Standard Deviation, ta có thể thiết lập hai ngưỡng để kiểm tra dữ liệu:
- Upper whisker = AVG + (STDV × Steps)
- Lower whisker = AVG – (STDV × Steps)
Trong đó Steps là hệ số bạn tự chọn dựa vào mức độ phân tán của dữ liệu. Thông thường, Steps = 3 là lựa chọn khá phổ biến vì nó giúp bao phủ phần lớn dữ liệu hợp lệ.
Bước 4: So sánh để phát hiện outlier
Ở bước này, chỉ cần so sánh giá trị của từng bản ghi với hai ngưỡng vừa tính.
- Nếu giá trị nằm giữa Lower whisker và Upper whisker → dữ liệu được xem là bình thường.
- Nếu vượt ra ngoài khoảng này → nhiều khả năng đó là outlier.
Hiểu đơn giản: mọi điểm dữ liệu nằm ngoài vùng biên đều cần được xem xét kỹ hơn.
Bước 5: Tính toán lại sau khi loại bỏ outlier
Sau khi xác định được các điểm dị biệt, bạn có thể loại chúng khỏi dataset và thực hiện lại các phép tính thống kê cần thiết, chẳng hạn như tính lại giá trị trung bình theo từng khu vực, từng nhóm sản phẩm hoặc từng trạng thái dữ liệu.
Bước 6: Kiểm tra lại và điều chỉnh tham số Steps
Cuối cùng, hãy so sánh kết quả trước và sau khi loại bỏ outlier. Đồng thời kiểm tra xem số lượng dữ liệu còn lại có đủ để phân tích hay không.
Nếu loại bỏ quá nhiều dữ liệu, bạn có thể tăng giá trị Steps để nới rộng phạm vi dữ liệu hợp lệ. Ngược lại, nếu vẫn còn nhiều điểm bất thường thì có thể giảm Steps xuống. Thông thường, nên điều chỉnh từng bước nhỏ (ví dụ ±0,5) rồi chạy lại phép tính cho đến khi dataset đạt được sự cân bằng hợp lý.
Xem thêm: PICO trong nghiên cứu khoa học
5. Cách xử lý dữ liệu outlier
Sau khi đã hiểu outlier là gì và biết cách xác định outliner, cuối cùng chúng ta sẽ cùng tìm hiểu cách xử lý dữ liệu này.
Dưới đây là một ví dụ về cách xác định và loại bỏ outlier bằng SQL. Phần này sử dụng CTE (Common Table Expression) thông qua lệnh WITH, giúp chia nhỏ từng bước xử lý dữ liệu để dễ theo dõi hơn.
Bước 1: Tính tổng giá trị của từng đơn hàng
Trước tiên, ta gom dữ liệu theo từng Order_ID và tính tổng giá trị của mỗi đơn. Việc này giúp biến dữ liệu bán hàng chi tiết thành một con số đại diện cho từng order.
with sales_per_order as (
select Order_ID,
state,
sum(Sales) as total_order_sales
from superstore.orders
group by Order_ID, state
)
Bước 2: Tính trung bình và độ lệch chuẩn
Sau khi có tổng giá trị mỗi đơn hàng, bước tiếp theo là tính giá trị trung bình (avg) và độ lệch chuẩn (std) cho từng bang (state). Hai chỉ số này sẽ giúp ta hiểu mức trung tâm của dữ liệu và mức độ phân tán của nó.
, avg_std as (
select state,
sum(total_order_sales) as sum_sales,
count(*) as number_of_orders,
avg(total_order_sales) as avg_sales,
std(total_order_sales) as std_sales
from sales_per_order
group by state
)
Bước 3: Xác định ngưỡng trên và ngưỡng dưới
Tiếp theo, ta thiết lập hai ngưỡng để xác định đâu là dữ liệu bình thường và đâu là dữ liệu có dấu hiệu bất thường.
Công thức khá đơn giản:
- Upper whisker = avg + std × steps
- Lower whisker = avg − std × steps
Ở ví dụ này, Steps được đặt mặc định là 3.
, upper_lower_whisker as (
select state,
std_sales,
avg_sales,
number_of_orders,
(avg_sales + std_sales*3) as upper_whisker,
case
when (avg_sales – std_sales*3) < 0 then 0
else (avg_sales – std_sales*3)
end as lower_whisker
from avg_std
)
Vì đang phân tích giá trị đơn hàng nên những giá trị nhỏ hơn 0 rõ ràng là không hợp lý, do đó ta đặt ngưỡng dưới tối thiểu bằng 0.

Cách xử lý dữ liệu outlier
Bước 4: Xác định đâu là outlier
Sau khi đã có hai ngưỡng trên và dưới, ta chỉ cần so sánh giá trị của từng order với hai mốc này. Nếu vượt ra ngoài phạm vi đó thì đánh dấu là Outlier, ngược lại sẽ được xem là dữ liệu bình thường (Expected).
, find_outliers as (
select spo.Order_ID,
spo.state,
spo.total_order_sales,
ulh.number_of_orders,
ulh.std_sales,
ulh.avg_sales,
ulh.upper_whisker,
ulh.lower_whisker,
case
when spo.total_order_sales > ulh.upper_whisker
or spo.total_order_sales < ulh.lower_whisker
then ‘Outlier’
else ‘Expected’
end as Outlier_status
from sales_per_order as spo
left join upper_lower_whisker as ulh
on ulh.state = spo.state
)
Bước 5: Tính toán lại sau khi loại bỏ outlier
Cuối cùng, ta giữ lại những order được đánh dấu là Expected và tính lại giá trị trung bình. Đồng thời kiểm tra xem sau khi loại bỏ outlier thì còn lại bao nhiêu dữ liệu.
select state,
number_of_orders,
std_sales,
upper_whisker,
lower_whisker,
avg_sales,
avg(total_order_sales) as avg_sales_no_outliers,
count(*) as new_number_of_orders,
count(*)/number_of_orders*100 as remaining_data
from find_outliers
where outlier_status = ‘Expected’
group by state, number_of_orders
Trong ví dụ này, khi đặt Steps = 3, phần lớn dữ liệu vẫn được giữ lại (thường trên 95%). Đồng thời những giá trị quá lệch cũng đã được loại bỏ khá nhiều, nên không cần điều chỉnh thêm tham số này.
Sau khi chạy xong đoạn SQL trên, bạn sẽ thấy ở nhiều bang, giá trị trung bình mỗi đơn hàng giảm đáng kể so với ban đầu. Điều đó cho thấy trước đó dataset có khá nhiều order có giá trị bất thường.
Lúc này, bạn có thể quay lại dashboard hoặc biểu đồ trực quan để so sánh trước và sau khi loại bỏ outlier, đồng thời kiểm tra cụ thể những đơn hàng nào đã bị đánh dấu là dữ liệu ngoại lai.
6. Lời kết
Nếu bạn đang gặp khó khăn trong quá trình thực hiện bài nghiên cứu hay các dự án phân tích dữ liệu, VietGuru hiện cung cấp dịch vụ hỗ trợ viết thuê nghiên cứu khoa học và phân tích dữ liệu bài bản. Đội ngũ chuyên môn của chúng tôi sẽ giúp bạn định hướng phương pháp, xử lý dữ liệu, xây dựng mô hình và hoàn thiện bài nghiên cứu một cách khoa học, rõ ràng và đúng chuẩn học thuật.
Hy vọng qua bài viết này, bạn đã hiểu rõ Outlier là gì, vì sao điểm dị biệt lại xuất hiện trong dữ liệu và cách nhận diện cũng như xử lý chúng trong quá trình phân tích. Việc phát hiện và kiểm soát Outlier không chỉ giúp dữ liệu “sạch” hơn mà còn giúp kết quả phân tích trở nên đáng tin cậy và có giá trị thực tiễn hơn trong nghiên cứu cũng như trong công việc phân tích dữ liệu.
Có thể bạn quan tâm: Viết thuê nghiên cứu khoa học













