Wilcoxon符号秩检验

Wilcoxon符号秩检验

   它适用于T检验中的成对比较,但并不要求成对数据之差服从正态分布,只要求对称分布即可。检验成对观测数据之差是否来自均值为0的总体(产生数据的总体是否具有相同的均值)。

在Matlab中,秩和检验由函数ranksum实现。

命令为: [p,h]=ranksum(x,y,alpha)

   其中x,y可为不等长向量,alpha为给定的显著水平,它必须为0和1之间的数量。p返回 产生两独立样本的总体是否相同的显著性概率,h返回假设检验的结果。如果x和y的总 体差别不显著,则h为零;如果x和y的总体差别显著,则h为1。如果p接近于零,则可对 原假设质疑。

clear;
clc;
path1 = 'C:\Users\Administrator\Desktop\重新整理血管网络\真实数据.xls';
path2 = 'C:\Users\Administrator\Desktop\重新整理血管网络\真实数据1.xls';
path3 = 'C:\Users\Administrator\Desktop\重新整理血管网络\生成数据9.xls';
path4 = 'C:\Users\Administrator\Desktop\重新整理血管网络\生成数据1.xls';
path5 = 'C:\Users\Administrator\Desktop\重新整理血管网络\wgan-gp1.xls';
path6 = 'C:\Users\Administrator\Desktop\重新整理血管网络\wgan-gp200.xls';


mypath1  = path1;%对比两个结果
mypath2  = path2;
A = 'A2:A500';
B = 'B2:B500';
C = 'C2:C500';
D = 'D2:D500';
E = 'E2:E500';
F = 'F2:F500';
G = 'G2:G500';
H = 'H2:H500';
I = 'I2:I500';
J = 'J2:J500';
K = 'K2:K500';
L = 'L2:L500';
M = 'M2:M500';
N = 'N2:N500';
O = 'O2:O500';
disp('主分支长度')
[num1] = xlsread(mypath1,A);
[num2] =  xlsread(mypath2,A);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('左分支长度')
[num1] = xlsread(mypath1,B);
[num2] =  xlsread(mypath2,B);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('右分支长度')
[num1] = xlsread(mypath1,C);
[num2] =  xlsread(mypath2,C);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主左长度比')
[num1] = xlsread(mypath1,D);
[num2] =  xlsread(mypath2,D);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主右长度比')
[num1] = xlsread(mypath1,E);
[num2] =  xlsread(mypath2,E);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主分叉卷曲度')
[num1] = xlsread(mypath1,F);
[num2] =  xlsread(mypath2,F);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('左分叉卷曲度')
[num1] = xlsread(mypath1,G);
[num2] =  xlsread(mypath2,G);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('右分叉卷曲度')
[num1] = xlsread(mypath1,H);
[num2] =  xlsread(mypath2,H);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主左角度')
[num1] = xlsread(mypath1,I);
[num2] =  xlsread(mypath2,I);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主右角度')
[num1] = xlsread(mypath1,J);
[num2] =  xlsread(mypath2,J);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('左右角度')
[num1] = xlsread(mypath1,K);
[num2] =  xlsread(mypath2,K);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('主端点长度')
[num1] = xlsread(mypath1,L);
[num2] =  xlsread(mypath2,L);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p);

disp('左端点长度')
[num1] = xlsread(mypath1,M);
[num2] =  xlsread(mypath2,M);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p)

disp('右端点长度')
[num1] = xlsread(mypath1,N);
[num2] =  xlsread(mypath2,N);
mean1 = mean(num1); %平均值
mean2 = mean(num2); 
std1 = std(num1); %标准差
std2 = std(num2); 
var1 = var(num1); %方差
var2 = var(num2);
[p,h] = ranksum(num1,num2);
fprintf('原始数据1--平均值:%f,标准差:%f,方差:%f\n',mean1,std1,var1);
fprintf('原始数据2--平均值:%f,标准差:%f,方差:%f\n',mean2,std2,var2);
fprintf('h值:%d,p值:%f\n\n',h,p)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值