日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

显著性分析-秩和检验与校正

發布時間:2023/12/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 显著性分析-秩和检验与校正 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我錄了一個講解視頻:https://www.bilibili.com/video/BV1Yz411z7j2?pop_share=1

一、理論概括介紹

顯著性分析通常分為參數檢驗方法和非參數檢驗方法,參數檢驗法中常用的是t檢驗,但是t檢驗需要假定兩組樣本都服從正態分布,這樣適用的情況有限。

秩和檢驗是一種非參數檢驗法,不需要對數據分布作特殊假設,因而能適用于更復雜的數據分布情況。秩和檢驗是通過推斷總體的分布是否相同,進而判斷兩組樣本之間的差異是否顯著。

秩和檢驗的做法是:首先把兩組樣本混合,按照所檢驗的特征值大小對所有樣本排序。在兩類樣本中分別計算所得排序序號之和T1 T2,稱作秩和 。秩和檢驗的基本思想是,如果一類樣本的秩和顯著地比另一類小(或大),則兩類樣本在所考察的特征上有顯著差異。

假設檢驗的基本原理是小概率原理,即認為小概率事件在一次試驗中實際上不可能發生。當同一研究問題下進行多次假設檢驗時,不再符合小概率原理所說的“一次試驗”。如果在該研究問題下只要有檢驗是陽性的,就對該問題下陽性結論的話,對該問題的檢驗的犯一類錯誤的概率就會增大。

所以當一個數據集做了多次假設檢驗的時候,就需要進行校正,降低假陽性的概率。顯著性用P值表示,一個數據集有多少個P值就意味進行了多少次假設檢驗,無論這個P值是不是描述同一個基因還是通道。

常見的多重比較情景:1.多組間比較?? 2.多個主要指標?

P值校正方法:1.Bonferroni 稱為“最簡單嚴厲的方法”,直接改小顯著性的閾值,閾值為:0.05/檢驗次或者矯正P=P×檢驗次數2.?? FalseDiscovery Rate(FDR),有一些估算模型,常用的是BH方法,稱為“溫和的校正方法”,首先將各P值從小到大排序,生成順序數排第k矯正P=P×n/k,(n是檢驗次數),另外要保證矯正后的各檢驗的P值大小順序不發生變化。

二、具體實例演示

實際問題:有兩組人,A組33人,B30人,把每個人的大腦按照標準模板(AAL)分成90個腦區,通過某些方法得到每個腦區之間連通性的值,現在要比較這兩組人有沒有顯著性差異,為后來的機器學習或者深度學習分類做可行性分析。

每個通道(90*90=8100)兩組人比較顯著性差異,用ranksum秩和檢驗得到8100個P值,用FDR(BH)進行校正。

? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

MATLAB代碼示意如下:

clear; close all; clc;% 加載JME和NC到變量X和Y JME_address = "D:\python\deep-learning\JME\JME bmp\JME\ICVF\*.mat"; jme_address = "D:\python\deep-learning\JME\JME bmp\JME\ICVF\"; JMEnamelist = dir(JME_address); len = length(JMEnamelist); for i = 1:lenfile_name{i}=JMEnamelist(i).name;x{i}= load(jme_address+file_name{i}); endNC_address = "D:\python\deep-learning\JME\JME bmp\Normal\ICVF\*.mat"; nc_address = "D:\python\deep-learning\JME\JME bmp\Normal\ICVF\"; NCnamelist = dir(NC_address); len = length(NCnamelist); for i = 1:lenfile_name{i}=NCnamelist(i).name;y{i}= load(nc_address+file_name{i}); end% 兩組人的每個通道進行秩和檢驗 JME_ICVF=[]; NC_ICVF=[]; for i = 1:90 %行for j = 1:90 %列JME_ICVF=[];NC_ICVF=[];JME_number = 0;NC_number = 0;for jme = 1:33 %人數j_ICVF = x{1,jme}.ICVF(i,j);JME_number = JME_number + j_ICVF;JME_ICVF = [JME_ICVF;j_ICVF];endfor nc = 1:30 % 人數n_ICVF = y{1,nc}.ICVF(i,j);NC_number = NC_number + n_ICVF;NC_ICVF = [NC_ICVF;n_ICVF];endJME_mean_number(i,j) = JME_number/33;NC_mean_number(i,j) = NC_number/30;[P_temp,H_temp]= ranksum(JME_ICVF,NC_ICVF);P_result(i,j) = P_temp;H_result(i,j) = H_temp;end endP_result(isnan(P_result)) = 1; %只要一樣數字的數目總數小于20就不會出現nan P_result = reshape(P_result,1,8100); FDR = mafdr(P_result,'BHFDR', true); P_result = reshape(FDR,90,90);mycolorbar=zeros(3,1000); %zeros(1,99)+1 % 顏色方案1 % mycolorbar(1,:)=zeros(1,100)+1; % mycolorbar(3,:)=0:0.005:0.495; % mycolorbar(2,:)=0:0.01:0.99; % 顏色方案2 % mycolorbar(1,:)=zeros(1,1000)+1; % mycolorbar(3,:)=0:0.001:0.999; % mycolorbar(2,:)=0:0.001:0.999; mycolorbar(1,:)=zeros(1,1000)+1; mycolorbar(2,:)=[1:-0.0015:0,zeros(1,333)]; mycolorbar(3,:)=[1:-0.003:0,zeros(1,666)]; mycolor=mycolorbar';% thr = 0.967; % 一共是0.0517, 0.05的閾值占其96%,要實現大于所以是97% % col_th = 1000 * thr; % for i=col_th:1000 % mycolor(i,:) = [1,1,1]; %將大于0.05的設置為白色 % endH = figure(); % 建立圖層 % figure(1); % imagesc(P_result); % 把數字矩陣可視化圖像 % figure(2); imagesc(NC_mean_number); % figure(3); % imagesc(NC_mean_number); daspect([1,1,1]); % 讓圖片等比例顯示 colormap(H,mycolor); % caxis([0,0.0517]); % 把colorbar的范圍固定% save_address = "C:\Users\85007\Desktop\"; % xlswrite(save_address + 'P_result.xlsx',P_result); % xlswrite(save_address + 'H_result.xlsx',H_result); % xlswrite(save_address + 'JME_mean_number.xlsx',JME_mean_number); % xlswrite(save_address + 'NC_mean_number.xlsx',NC_mean_number);

三、結果可視化

未校正的P值(取前8*8):

FDRBH)校正后的P值(取前8*8

參考資料

清華大學張學工教授所著模式識別》

知乎Willson Chou 的回答 https://www.zhihu.com/question/23950632

新云舊雨的簡書https://www.jianshu.com/p/e13f535a3313

?

總結

以上是生活随笔為你收集整理的显著性分析-秩和检验与校正的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。