【matlab初学】数理统计t检验做相关度排序

问题描述

应用数理统计的t检验方法给出相关度的排序,依据是p值越小,相关度越高。

methylationData.csv包含TCGA数据库一部分甲基化数据,说明如下:

样本编号以“01”结尾的代表癌症组织,“11”结尾的代表正常组织;

求解思路

利用xlread读取文件,根据表头01和11的区别把癌症组织数据和正常组织数据区分开。再通过vartest2求各组数据方差,分别按两种情况进行ttest2检验。去除无效行,并将结果用sort函数排序。将结果输出为result.xls。

程序代码

[data text]= xlsread("methylationData.csv"); %%文件读取

[data_r data_c]=size(data);

[text_r text_c]=size(text);

name=text(2:text_r,1);

cancer=[];

health=[];

for i=2:text_c

k=data(:,i-1);

if contains(cell2mat(text(1, i)), '-01')

cancer=[cancer k];

else

health=[health k];

end

end

all_p=[];%%判断方差做t检验

for i=1:data_r

var=vartest2(cancer(i,:),health(i,:));

if var==0

[h,p]=ttest2(cancer(i,:),health(i,:), 'Vartype', 'equal');

else

[h,p]=ttest2(cancer(i,:),health(i,:), 'Vartype', 'unequal');

all_p=[all_p;p];

end

end

[all_p_sorted,I] = sort(all_p);%%排序

name_sorted=name(I);

all_p_sorted=all_p_sorted(~isnan(all_p_sorted));

[name_r name_c]=size(all_p_sorted);

name_sorted=name_sorted(1:name_r,1);

all_p_sorted=num2cell(all_p_sorted);

result=[name_sorted all_p_sorted];

xlswrite('result.xls',result);

大学在读,一些作业随便发发给自己做个记录。(实验报告删了好多东西)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值