Permutation Test 置換檢驗
流程
(1) 將兩個條件長呼吸、短呼吸
的訊號合併成單一的檔案
(2) 將合併的檔案進行隨機抽取,並把隨機抽取的檔案放入資料1,剩餘的放入資料2
(3) 計算資料1與資料2隨機分佈的統計量
(4) 多次重複1000次
步驟2和3並構建統計量的直方圖
(5) 根據實際觀察到的統計量和步驟4中的直方圖,計算導致檢驗統計量大於觀察到的檢驗統計量的隨機分區的比例。這個比例稱為p值。
(6) 如果p值小於臨界alpha水平通常為 0.05
,得出結論,這兩個數據實驗條件具有明顯不同。
程式碼
假設我們設計了一個實驗來驗證加入某種生長素後擬南芥的側根數量會明顯增加。A組是加入某種生長素後,擬南芥的側根數量;B是不加生長素時,擬南芥的側根數量均為假定值
。
A組側根數量(共12個數據):24 43 58 67 61 44 67 49 59 52 62 50
B組側根數量(共16個數據):42 43 65 26 33 41 19 54 42 20 17 60 37 42 55 28
clear;
clc;
close all;
A = [24 43 58 67 61 44 67 49 59 52 62 50]; %% SIZE = 12
B = [42 43 65 26 33 41 19 54 42 20 17 60 37 42 55 28]; %% SIZE = 16
PermutationValues = zeros([1 1000]);
statistic= mean(A)-mean(B); %% 觀測值
Group = [A B]; %% 將A B合成一陣列
for i = 1:1000
ra = randperm(length(Group),12);
rb = 1:28;
rb(ra) = 0;
rb(rb==0) = []; %% 將剩餘元素集合成一陣列 Xa = Group(ra); %% random find index of Xa size = (12)
Xa = Group(ra);
Xb = Group(rb);
PermutationValues(i) = mean(Xa) - mean(Xb); %% 計算並記錄Xa和Xb的均值差 並重複999次
end
histogram(PermutationValues);
P_value = find(statistic < PermutationValues);
P_value = length(P_value) / 1000;
根據上述程式碼,我們得到的觀測統計值為 statistic = 14,在抽樣總體右尾附近
說明在零假設條件下這個數值是很少出現的。
直方圖
根據 PermutationValues
繪製而成的直方圖
可用來觀測統計結果
2 comments
這也太厲害ㄌ吧,大神!|´・ω・)ノ
這也太厲害ㄌ吧,大神!|´・ω・)ノ