MATLAB数学建模——方差分析降维

% 生成两组多维示例数据,每组数据量不同
% Group1 和 Group2 分别代表两组独立样本,每组数据有不同的维度
Group1 = randn(50, 3) + 1;  % 第一组数据,50个样本,3个维度,均值为1
Group2 = randn(70, 3) + 2;  % 第二组数据,70个样本,3个维度,均值为2

% 初始化p值数组
p_values = zeros(1, size(Group1, 2));  % 存储每个维度的p值
h_values = zeros(1, size(Group1, 2));  % 存储每个维度的检验结果

% 对每个维度进行Mann-Whitney U检验
for i = 1:size(Group1, 2)
    [p_values(i), h_values(i)] = ranksum(Group1(:,i), Group2(:,i), 'tail', 'both');
end

% 打印各维度的检验结果
fprintf('各维度的Mann-Whitney U检验结果:\n');
for i = 1:size(Group1, 2)
    fprintf('维度 %d 的p值: %.4f\n', i, p_values(i));
    if h_values(i) == 1
        fprintf('拒绝零假设:维度 %d 上的两组数据的中位数有显著差异。\n', i);
    else
        fprintf('未拒绝零假设:维度 %d 上的两组数据的中位数无显著差异。\n', i);
    end
end

% 可视化每个维度的分布
figure;

for i = 1:size(Group1, 2)
    % 绘制第一组数据的箱线图
    subplot(3,2,2*i-1);
    boxplot(Group1(:,i), 'Labels', {'组1'});
    title(['维度 ', num2str(i), ' 的组1箱线图']);
    ylabel('值');
    
    % 绘制第二组数据的箱线图
    hold on;
    boxplot(Group2(:,i), 'Labels', {'组2'});
    title(['维度 ', num2str(i), ' 的组2箱线图']);
    ylabel('值');
    hold off;
    
    % 绘制直方图(概率密度)
    subplot(3,2,2*i);
    hold on;
    histogram(Group1(:,i), 'Normalization', 'pdf', 'FaceAlpha', 0.5);
    histogram(Group2(:,i), 'Normalization', 'pdf', 'FaceAlpha', 0.5);
    legend({'组1', '组2'}, 'Location', 'Best');
    title(['维度 ', num2str(i), ' 的分布图']);
    xlabel('值');
    ylabel('概率密度');
    hold off;
end

% 显示图表标题
sgtitle('多维数据的Mann-Whitney U检验及分布可视化');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值