基于密度的LOF异常值检测可见上篇文章。以下介绍基于预测的异常值检测:
1.基于预测的异常值检测方法
基于预测的异常值检测方法,特别是结合线性回归和ARIMA(自回归积分滑动平均模型)模型,是数据分析中常用的技术。这些方法的核心思想是利用模型的预测能力来识别与预期值偏差较大的数据点,这些点往往被视为异常值。以下是对这两种方法及其异常值检测的详细介绍:
2.基于线性回归异常值检测
2.1 线性回归异常检测介绍
线性回归模型:线性回归是统计学中的一个基本模型,用于通过一系列自变量(特征)来预测一个因变量(目标变量)。在线性回归模型中,异常值通常被定义为那些与模型预测值存在显著偏差的数据点。
以标准化残差为依据衡量异常值:为了更好地评估残差的大小,可以将其标准化(即将残差除以其标准差)。标准化残差大于某个阈值(如2或3)的数据点被视为异常值。本文使用正态分布生成随机数据,所以阈值设为3。
2.2 线性回归案例代码
接下来利用matlab实例代码介绍:
% 清除命令窗口 clc % 清除工作空间中的所有变量 clear % 创建示例数据 % 设置随机数生成器的种子为'default',以便得到可重复的结果 rng('default'); % 定义数据点的数量 n = 100; % 创建一个从1到n的列向量作为自变量x x = (1:n)'; % 创建一个因变量y,它是自变量x的两倍加5,再加上一些随机的正态分布噪声 % randn(n,1)*10 生成一个n行1列的矩阵,其元素来自均值为0、标准差为10的正态分布 y = 2*x + 5 + randn(n,1)*10; % 插入一些异常值 % 将第20、50、80个数据点的y值增加50,使其成为异常值 y([20, 50, 80]) = y([20, 50, 80]) + 50; % 绘制原始数据 figure; % 创建一个新的图形窗口 scatter(x, y, 'filled'); % 使用散点图绘制原始数据,'filled'表示填充标记 title('原始数据'); % 设置图形标题 |