MATLAB进行数据的各种统计分析
一. 数据的各种分析
数据点数
均值
中位数
众数
标准差
方差
极差
四分位距
偏度
峰度
四分位数
十分位数
百分位数
皮尔逊相关系数
斯皮尔曼相关系数
肯德尔相关系数
协方差
Jarque-Bera正态性检验
Lilliefors正态性检验
Kolmogorov-Smirnov检验
单样本t检验
双样本方差检验
符号检验
3σ原则异常值检测
IQR方法异常值检测
Grubbs异常值检验
自相关函数
移动平均
指数加权移动平均
核密度估计
二. MATLAB代码
% MATLAB对随机数据进行30种统计分析的完整代码
clc;close all;clear all;warning off;%清除变量
rand('seed', 100);
randn('seed', 100);
format long g;% 生成随机数据(正态分布)
n = 1000; % 数据点数
data = randn(n, 1) * 10 + 50; % 均值50,标准差10% 添加一些异常值
data(randperm(n, 20)) = data(randperm(n, 20)) + 30;% 生成第二组数据用于相关性分析
data2 = data * 0.7 + randn(n, 1) * 5 + 20;fprintf('=== 基本描述性统计 ===\n');
% 1. 数据点数
fprintf('1. 数据点数: %d\n', length(data));% 2. 均值
mean_val = mean(data);
fprintf('2. 均值: %.4f\n', mean_val);% 3. 中位数
median_val = median(data);
fprintf('3. 中位数: %.4f\n', median_val);% 4. 众数
mode_val = mode(data);
fprintf('4. 众数: %.4f\n', mode_val);% 5. 标准差
std_val = std(data);
fprintf('5. 标准差: %.4f\n', std_val);% 6. 方差
var_val = var(data);
fprintf('6. 方差: %.4f\n', var_val);% 7. 极差
range_val = range(data);
fprintf('7. 极差: %.4f\n', range_val);% 8. 四分位距
iqr_val = iqr(data);
fprintf('8. 四分位距: %.4f\n', iqr_val);% 9. 偏度
skewness_val = skewness(data);
fprintf('9. 偏度: %.4f\n', skewness_val);% 10. 峰度
kurtosis_val = kurtosis(data);
fprintf('10. 峰度: %.4f\n', kurtosis_val);fprintf('\n=== 分位数分析 ===\n');
% 11. 四分位数
quartiles = quantile(data, [0.25, 0.5, 0.75]);
fprintf('11. 四分位数 - Q1: %.4f, Q2: %.4f, Q3: %.4f\n', quartiles(1), quartiles(2), quartiles(3));% 12. 十分位数
deciles = quantile(data, 0.1:0.1:0.9);
fprintf('12. 十分位数: \n');
for i = 1:9fprintf(' D%d: %.4f\n', i, deciles(i));
end% 13. 百分位数
percentiles = prctile(data, [5, 10, 25, 50, 75, 90, 95]);
fprintf('13. 关键百分位数:\n');
fprintf(' 5th: %.4f, 10th: %.4f, 25th: %.4f\n', percentiles(1), percentiles(2), percentiles(3));
fprintf(' 50th: %.4f, 75th: %.4f, 90th: %.4f, 95th: %.4f\n', percentiles(4), percentiles(5), percentiles(6), percentiles(7));fprintf('\n=== 相关性分析 ===\n');
% 14. 皮尔逊相关系数
pearson_corr = corr(data, data2);
fprintf('14. 皮尔逊相关系数: %.4f\n', pearson_corr);% 15. 斯皮尔曼秩相关系数
spearman_corr = corr(data, data2, 'type', 'Spearman');
fprintf('15. 斯皮尔曼相关系数: %.4f\n', spearman_corr);% 16. 肯德尔秩相关系数
kendall_corr = corr(data, data2, 'type', 'Kendall');
fprintf('16. 肯德尔相关系数: %.4f\n', kendall_corr);% 17. 协方差
covariance = cov(data, data2);
fprintf('17. 协方差矩阵:\n');
disp(covariance);fprintf('\n=== 分布检验 ===\n');
% 18. 正态性检验 (Jarque-Bera)
[h_jb, p_jb] = jbtest(data);
fprintf('18. Jarque-Bera正态性检验 - h: %d, p-value: %.4f\n', h_jb, p_jb);% 19. 正态性检验 (Lilliefors)
[h_lillie, p_lillie] = lillietest(data);
fprintf('19. Lilliefors正态性检验 - h: %d, p-value: %.4f\n', h_lillie, p_lillie);% 20. Kolmogorov-Smirnov检验
pd = fitdist(data, 'Normal');
[h_ks, p_ks] = kstest(data, 'CDF', pd);
fprintf('20. KS检验 - h: %d, p-value: %.4f\n', h_ks, p_ks);fprintf('\n=== 假设检验 ===\n');
% 21. t检验 (检验均值是否为50)
[h_ttest, p_ttest, ci, stats] = ttest(data, 50);
fprintf('21. 单样本t检验 - h: %d, p-value: %.4f\n', h_ttest, p_ttest);
fprintf(' 95%%置信区间: [%.4f, %.4f]\n', ci(1), ci(2));% 22. 方差齐性检验
[h_var, p_var] = vartest2(data, data2);
fprintf('22. 双样本方差检验 - h: %d, p-value: %.4f\n', h_var, p_var);% 23. 符号检验
[h_sign, p_sign] = signtest(data, median_val);
fprintf('23. 符号检验 - h: %d, p-value: %.4f\n', h_sign, p_sign);fprintf('\n=== 异常值检测 ===\n');
% 24. 基于3σ原则的异常值
z_scores = zscore(data);
outliers_3sigma = find(abs(z_scores) > 3);
fprintf('24. 3σ原则检测到的异常值数量: %d\n', length(outliers_3sigma));% 25. 基于IQR的异常值
Q1 = quartiles(1);
Q3 = quartiles(3);
IQR = Q3 - Q1;
lower_bound = Q1 - 1.5 * IQR;
upper_bound = Q3 + 1.5 * IQR;
outliers_iqr = find(data < lower_bound | data > upper_bound);
fprintf('25. IQR方法检测到的异常值数量: %d\n', length(outliers_iqr));% 26. Grubbs检验(简化版)
try[h_grubbs, p_grubbs] = grubbs_test(data);fprintf('26. Grubbs异常值检验 - h: %d\n', h_grubbs);
catch% 如果没有grubbs_test函数,使用替代方法[max_val, max_idx] = max(data);[min_val, min_idx] = min(data);G_max = (max_val - mean_val) / std_val;G_min = (mean_val - min_val) / std_val;fprintf('26. Grubbs检验替代 - 最大G值: %.4f, 最小G值: %.4f\n', G_max, G_min);
endfprintf('\n=== 高级统计分析 ===\n');
% 27. 自相关函数
autocorr_lags = 20;
autocorr_vals = xcorr(data, autocorr_lags);
fprintf('27. 前5个自相关系数: ');
fprintf('%.4f ', autocorr_vals(1:min(5, length(autocorr_vals))));
fprintf('\n');% 28. 移动平均
window_size = 10;
moving_avg = movmean(data, window_size);
fprintf('28. 移动平均计算完成 (窗口大小: %d)\n', window_size);% 29. 指数加权移动平均
alpha = 0.1;
ewma = filter(alpha, [1 alpha-1], data);
fprintf('29. 指数加权移动平均计算完成 (alpha: %.2f)\n', alpha);% 30. 核密度估计
[f, xi] = ksdensity(data);
fprintf('30. 核密度估计完成 (%d个点)\n', length(f));% 创建综合统计图表
figure('Position', [100, 100, 1200, 800]);% 子图1: 直方图和核密度估计
subplot(2,3,1);
histogram(data, 30, 'Normalization', 'pdf', 'FaceColor', [0.7 0.7 0.9]);
hold on;
plot(xi, f, 'r-', 'LineWidth', 2);
xlabel('数值');
ylabel('概率密度');
title('直方图和核密度估计');
legend('直方图', '核密度估计');
grid on;% 子图2: 箱线图
subplot(2,3,2);
boxplot(data);
title('箱线图');
ylabel('数值');
grid on;% 子图3: Q-Q图
subplot(2,3,3);
qqplot(data);
title('Q-Q图 (正态性检验)');
grid on;% 子图4: 自相关函数
subplot(2,3,4);
xcorr(data, autocorr_lags);
title('自相关函数');% 子图5: 散点图和相关分析
subplot(2,3,5);
scatter(data, data2, 20, 'filled', 'MarkerFaceAlpha', 0.6);
xlabel('数据1');
ylabel('数据2');
title(sprintf('散点图 (r=%.3f)', pearson_corr));
grid on;% 子图6: 累积分布函数
subplot(2,3,6);
cdfplot(data);
hold on;
x_values = linspace(min(data), max(data), 100);
plot(x_values, normcdf(x_values, mean_val, std_val), 'r--');
title('累积分布函数');
legend('经验CDF', '正态CDF', 'Location', 'southeast');
grid on;% 添加总体标题
sgtitle('随机数据的综合统计分析', 'FontSize', 14, 'FontWeight', 'bold');% 生成统计摘要报告
fprintf('\n=== 统计摘要报告 ===\n');
fprintf('数据特征:\n');
fprintf(' - 样本大小: %d\n', n);
fprintf(' - 中心趋势: 均值=%.2f, 中位数=%.2f\n', mean_val, median_val);
fprintf(' - 离散程度: 标准差=%.2f, 方差=%.2f\n', std_val, var_val);
fprintf(' - 分布形状: 偏度=%.2f, 峰度=%.2f\n', skewness_val, kurtosis_val);
fprintf(' - 异常值: %d个(3σ), %d个(IQR)\n', length(outliers_3sigma), length(outliers_iqr));if p_jb > 0.05fprintf(' - 正态性: 数据符合正态分布(p=%.3f)\n', p_jb);
elsefprintf(' - 正态性: 数据不符合正态分布(p=%.3f)\n', p_jb);
end% 保存关键统计量到结构体
stats_summary = struct();
stats_summary.data_size = n;
stats_summary.mean = mean_val;
stats_summary.median = median_val;
stats_summary.std = std_val;
stats_summary.skewness = skewness_val;
stats_summary.kurtosis = kurtosis_val;
stats_summary.normality_p = p_jb;
stats_summary.correlation = pearson_corr;
stats_summary.outliers_3sigma = outliers_3sigma;
stats_summary.outliers_iqr = outliers_iqr;fprintf('\n分析完成!共执行了30种统计分析。\n');% 如果需要Grubbs检验函数,这里提供替代版本
function [h, p] = grubbs_test(x, alpha)
if nargin < 2alpha = 0.05;
end
n = length(x);
G = max(abs(x - mean(x))) / std(x);
t_critical = tinv(1 - alpha/(2*n), n-2);
G_critical = (n-1)/sqrt(n) * sqrt(t_critical^2/(n-2 + t_critical^2));
h = G > G_critical;
p = 1 - (2*n)*tcdf(-G_critical*sqrt(n/(n-1+G_critical^2)), n-2);
end
三.程序结果
=== 基本描述性统计 ===
1. 数据点数: 1000
2. 均值: 51.0877
3. 中位数: 50.6482
4. 众数: 13.5539
5. 标准差: 11.3616
6. 方差: 129.0854
7. 极差: 85.5797
8. 四分位距: 15.5018
9. 偏度: 0.2923
10. 峰度: 3.5441
=== 分位数分析 ===
11. 四分位数 - Q1: 43.1583, Q2: 50.6482, Q3: 58.6601
12. 十分位数:
D1: 36.9441
D2: 41.4449
D3: 45.0397
D4: 47.7175
D5: 50.6482
D6: 53.5654
D7: 56.6498
D8: 60.3226
D9: 65.2215
13. 关键百分位数:
5th: 33.5752, 10th: 36.9441, 25th: 43.1583
50th: 50.6482, 75th: 58.6601, 90th: 65.2215, 95th: 70.3906
=== 相关性分析 ===
14. 皮尔逊相关系数: 0.8551
15. 斯皮尔曼相关系数: 0.8417
16. 肯德尔相关系数: 0.6520
17. 协方差矩阵:
129.085411965697 93.3248848960688
93.3248848960688 92.2744793298448
=== 分布检验 ===
18. Jarque-Bera正态性检验 - h: 1, p-value: 0.0010
19. Lilliefors正态性检验 - h: 0, p-value: 0.1714
20. KS检验 - h: 0, p-value: 0.5893
=== 假设检验 ===
21. 单样本t检验 - h: 1, p-value: 0.0025
95%置信区间: [50.3827, 51.7928]
22. 双样本方差检验 - h: 1, p-value: 0.0000
23. 符号检验 - h: 1, p-value: 0.0000
=== 异常值检测 ===
24. 3σ原则检测到的异常值数量: 10
25. IQR方法检测到的异常值数量: 10
26. Grubbs异常值检验 - h: 1
=== 高级统计分析 ===
27. 前5个自相关系数: 2561023.7911 2568998.3224 2553181.0334 2565869.0025 2568982.8220
28. 移动平均计算完成 (窗口大小: 10)
29. 指数加权移动平均计算完成 (alpha: 0.10)
30. 核密度估计完成 (100个点)
=== 统计摘要报告 ===
数据特征:
- 样本大小: 1000
- 中心趋势: 均值=51.09, 中位数=50.65
- 离散程度: 标准差=11.36, 方差=129.09
- 分布形状: 偏度=0.29, 峰度=3.54
- 异常值: 10个(3σ), 10个(IQR)
- 正态性: 数据不符合正态分布(p=0.001)
分析完成!共执行了30种统计分析。
>>
四.代码、程序订制(MATLAB、Python) →QQ:1579325979
4.1 各类智能算法
中文名称 | 英文全称 | 缩写 | 出现年份 |
遗传算法 | Genetic Algorithm | GA | 1975 |
粒子群优化算法 | Particle Swarm Optimization | PSO | 1995 |
蚁群优化算法 | Ant Colony Optimization | ACO | 1992 |
模拟退火算法 | Simulated Annealing | SA | 1983 |
免疫优化算法 | Immune Optimization Algorithm | IA | 1986 |
贪婪算法 | Greedy Algorithm | - | 1970 |
差分进化算法 | Differential Evolution | DE | 1997 |
混合蛙跳算法 | Shuffled Frog Leaping Algorithm | SFLA | 2003 |
人工蜂群算法 | Artificial Bee Colony | ABC | 2005 |
人工鱼群算法 | Artificial Fish Swarm Algorithm | AFSA | 2002 |
萤火虫算法 | Glowworm Swarm Optimization | GSO | 2005 |
果蝇优化算法 | Fruit Fly Optimization Algorithm | FOA | 2011 |
布谷鸟搜索算法 | Cuckoo Search | CS | 2009 |
猴群算法 | Monkey Algorithm | MA | 2008 |
免疫网络算法 | Immune Network Algorithm | aiNet | 2000 |
水滴算法 | Intelligent Water Drops Algorithm | IWD | 2007 |
和声搜索算法 | Harmony Search | HS | 2001 |
克隆选择算法 | Clonal Selection Algorithm | CLONALG | 2000 |
禁忌搜索算法 | Tabu Search | TS | 1986 |
爬山算法 | Hill Climbing | HC | 1940 |
引力搜索算法 | Gravitational Search Algorithm | GSA | 2009 |
细菌觅食优化算法 | Bacterial Foraging Optimization | BFO | 2002 |
蝙蝠算法 | Bat Algorithm | BA | 2010 |
邻域搜索算法 | Neighborhood Search | NS | 1960 |
变邻域搜索算法 | Variable Neighborhood Search | VNS | 1997 |
蜜蜂交配优化算法 | Honey Bees Mating Optimization | HBMO | 2001 |
文化基因算法 | Memetic Algorithm | MA | 1989 |
烟花算法 | Fireworks Algorithm | FWA | 2010 |
思维进化算法 | Mind Evolutionary Algorithm | MEA | 1998 |
蜻蜓算法 | Dragonfly Algorithm | DA | 2016 |
虚拟力场算法 | Virtual Force Field Algorithm | VFF | 1989 |
遗传规划 | Genetic Programming | GP | 1992 |
鲸鱼优化算法 | Whale Optimization Algorithm | WOA | 2016 |
灰狼优化算法 | Grey Wolf Optimizer | GWO | 2014 |
狼群算法 | Wolf Pack Algorithm | WPA | 2007 |
鸡群优化算法 | Chicken Swarm Optimization | CSO | 2014 |
生物地理学优化算法 | Biogeography-Based Optimization | BBO | 2008 |
分布估计算法 | Estimation of Distribution Algorithm | EDA | 1996 |
帝国竞争算法 | Imperialist Competitive Algorithm | ICA | 2007 |
天牛须搜索算法 | Beetle Antennae Search Algorithm | BAS | 2017 |
头脑风暴优化算法 | Brain Storm Optimization | BSO | 2011 |
人工势场法 | Artificial Potential Field | APF | 1986 |
猫群算法 | Cat Swarm Optimization | CSO | 2006 |
蚁狮优化算法 | Ant Lion Optimizer | ALO | 2015 |
飞蛾火焰优化算法 | Moth-Flame Optimization | MFO | 2015 |
蘑菇繁殖优化算法 | Mushroom Reproduction Optimization | MRO | 2020 |
麻雀搜索算法 | Sparrow Search Algorithm | SSA | 2020 |
水波优化算法 | Water Wave Optimization | WWO | 2015 |
斑鬣狗优化算法 | Spotted Hyena Optimizer | SHO | 2017 |
雪融优化算法 | Snow Ablation Optimization | SAO | 2022 |
蝴蝶优化算法 | Butterfly Optimization Algorithm | BOA | 2019 |
磷虾群算法 | Krill Herd Algorithm | KHA | 2012 |
黏菌算法 | Slime Mould Algorithm | SMA | 2020 |
人类学习优化算法 | Human Learning Optimization | HLO | 2014 |
母亲优化算法 | Mother Optimization Algorithm | MOA | 2023 |
4.2各类优化问题
各种优化课题 | 各种优化课题 |
车间调度 | 路由路网优化 |
机场调度 | 顺序约束项目调度 |
工程项目调度 | 双层规划 |
港口调度 | 零件拆卸装配问题优化 |
生产线平衡问题 | 水资源调度 |
用电调度 | 库位优化 |
公交车发车调度 | 库位路线优化 |
车辆路径物流配送优化 | 武器分配优化 |
选址配送优化 | 覆盖问题优化 |
物流公铁水问题优化 | 管网问题优化 |
供应链、生产计划、库存优化 | PID优化 |
库位优化、货位优化 | VMD优化 |
4.3各类神经网络、深度学习、机器学习
序号 | 模型名称 | 核心特点 | 适用场景 |
1 | BiLSTM 双向长短时记忆神经网络分类 | 双向捕捉序列上下文信息 | 自然语言处理、语音识别 |
2 | BP 神经网络分类 | 误差反向传播训练 | 通用分类任务 |
3 | CNN 卷积神经网络分类 | 自动提取空间特征 | 图像、视频分类 |
4 | DBN 深度置信网络分类 | 多层受限玻尔兹曼机堆叠 | 特征学习、降维 |
5 | DELM 深度学习极限学习机分类 | 结合 ELM 与深度架构 | 复杂分类任务 |
6 | ELMAN 递归神经网络分类 | 含反馈连接的递归结构 | 时间序列、语音 |
7 | ELM 极限学习机分类 | 随机生成隐藏层,快速训练 | 小样本学习 |
8 | GRNN 广义回归神经网络分类 | 基于径向基函数回归 | 函数逼近、时间序列 |
9 | GRU 门控循环单元分类 | 门控机制简化 LSTM | 序列建模 |
10 | KELM 混合核极限学习机分类 | 结合多核 ELM | 高维复杂数据 |
11 | KNN 分类 | 基于距离的分类方法 | 模式识别 |
12 | LSSVM 最小二乘法支持向量机分类 | 最小二乘优化 SVM | 小样本分类 |
13 | LSTM 长短时记忆网络分类 | 门控机制处理长期依赖 | 语言建模 |
14 | MLP 全连接神经网络分类 | 多层感知机 | 通用分类 |
15 | PNN 概率神经网络分类 | 基于贝叶斯原理 | 模式识别 |
16 | RELM 鲁棒极限学习机分类 | 增强鲁棒性的 ELM | 噪声数据 |
17 | RF 随机森林分类 | 多棵决策树集成 | 高维、非线性数据 |
18 | SCN 随机配置网络模型分类 | 随机生成网络结构 | 快速训练 |
19 | SVM 支持向量机分类 | 寻找最优分类超平面 | 二分类、多分类 |
20 | XGBOOST 分类 | 梯度提升决策树 | 大规模结构化数据 |
21 | ANFIS 自适应模糊神经网络预测 | 融合模糊逻辑与神经网络 | 复杂非线性系统建模 |
22 | ANN 人工神经网络预测 | 多层神经元网络 | 通用预测任务 |
23 | ARMA 自回归滑动平均模型预测 | 线性时间序列建模 | 时间序列预测 |
24 | BF 粒子滤波预测 | 基于蒙特卡洛采样 | 动态系统状态估计 |
25 | BiLSTM 双向长短时记忆神经网络预测 | 双向捕捉序列信息 | 时间序列、文本预测 |
26 | BLS 宽度学习神经网络预测 | 增量学习结构 | 在线学习 |
27 | BP 神经网络预测 | 误差反向传播训练 | 通用预测 |
28 | CNN 卷积神经网络预测 | 自动特征提取 | 图像、视频预测 |
29 | DBN 深度置信网络预测 | 多层无监督预训练 | 特征学习预测 |
30 | DELM 深度学习极限学习机预测 | 结合 ELM 与深度结构 | 复杂预测任务 |
31 | DKELM 回归预测 | 动态核 ELM 回归 | 时间序列回归 |
32 | ELMAN 递归神经网络预测 | 递归结构处理时序 | 时间序列 |
33 | ELM 极限学习机预测 | 快速训练 | 小样本回归 |
34 | ESN 回声状态网络预测 | 储备池计算 | 时间序列预测 |
35 | FNN 前馈神经网络预测 | 前向传播 | 通用预测 |
36 | GMDN 预测 | 基因表达数据网络建模 | 生物信息学预测 |
37 | GMM 高斯混合模型预测 | 多高斯分布建模 | 密度估计、聚类 |
38 | GRNN 广义回归神经网络预测 | 径向基函数回归 | 函数逼近 |
39 | GRU 门控循环单元预测 | 门控机制简化 LSTM | 时间序列预测 |
40 | KELM 混合核极限学习机预测 | 多核 ELM 回归 | 高维回归 |
41 | LMS 最小均方算法预测 | 线性回归的迭代优化 | 自适应滤波 |
42 | LSSVM 最小二乘法支持向量机预测 | 最小二乘优化 SVM | 回归预测 |
43 | LSTM 长短时记忆网络预测 | 门控处理长期依赖 | 时间序列预测 |
44 | RBF 径向基函数神经网络预测 | 径向基函数逼近 | 函数拟合 |
45 | RELM 鲁棒极限学习机预测 | 增强鲁棒性的 ELM | 噪声数据回归 |
46 | RF 随机森林预测 | 决策树集成 | 回归预测 |
47 | RNN 循环神经网络预测 | 循环连接处理序列 | 时间序列预测 |
48 | RVM 相关向量机预测 | 稀疏贝叶斯学习 | 回归、分类 |
49 | SVM 支持向量机预测 | 寻找最优超平面 | 回归预测 |
50 | TCN 时间卷积神经网络预测 | 一维卷积处理时序 | 时间序列预测 |
51 | XGBoost 回归预测 | 梯度提升决策树 | 大规模回归 |