原來做配對或是雙樣本t檢驗的時候,都是用的matlab裡面自帶的ttest、ttest2來解決,但是遇到一些文獻裡面,有z檢驗是在r語言環境下編寫的,但是如何在matlab 中用z檢驗呢?
fisher z-transform是對資料近似的變異穩定化處理,z變換後近似服從均值為
z變換有好幾種:
如果是相關係數,用fisher z變換。
如果是t值,用spm_t2z(可以搜尋spm8軟體包)
如果是其他值比如量表得分,用減均值除方差方式近似得到z值
(內容感謝zang yf的回答:
這邊我只寫fisher z變換公式,針對相關係數作闡述,具體可以查閱wiki:
z = 0.5* ln( (1+r)/(1-r) )
對於r語言環境中:
diff.corr
diff.corr( r1=0.5, n1=100, r2=0.40, n2=80 )
## two-tailed p-value 0.4103526
diff.corr( r1=0.1, n1=100, r2=-0.1, n2=80 )
## two-tailed p-value 0.1885966
(內容參考
其中r1 r2是兩個樣本的均值,n1 n2是樣本數。
而如是在matlab中如何z檢驗呢?
function [zvalue,pvalue] = zr(r1,n1,r2,n2)
z1 = 0.5*log((1+r1)/(1-r1));
z2 = 0.5*log((1+r2)/(1-r2));
ddiff = z1-z2;
seddiff = sqrt(1/(n1-3)+1/(n2-3));
zvalue = ddiff/seddiff;
pvalue = 2 *(1- normcdf(abs(zvalue)));
end
輸出的duffz ff分別是z值和概率,normcdf是累計正態分佈函式,若是要單尾的話,
pvalue = 2*(1- normcdf(abs(zvalue),0,1));
normcdf不用乘以2,若是2013b版本的matlab可以用upper來代替1減
這個**是z變換**,資料量少的話或不怕麻煩可以進入這個**。
相關係數的檢驗
氣象家園 相關係數的檢驗主要有兩種方法,一種是對假設 相關係數 0 的t檢驗,另一種是對假設 相關係數 0 的z檢驗。關於t檢驗 檢驗r是否顯著,即檢驗r是否不等於零 1 根據r和n計算得到t 2 查表得到 在 顯著性水平 和自由度 n 2 下,t分布的上 分位點t 2 3 判斷t t 2是否成立,...
皮爾遜相關係數和檢驗P值
看兩者是否算相關要看兩方面 顯著水平以及相關係數 1 顯著水平,就是p值,這是首要的,因為如果不顯著,相關係數再高也沒用,可能只是因為偶然因素引起的,那麼多少才算顯著,一般p值小於0.05就是顯著了 如果小於0.01就更顯著 例如p值 0.001,就是很高的顯著水平了,只要顯著,就可以下結論說 拒絕...
R中方差,協方差,相關係數
提到方差,乙個命令var 方差定義用來度量隨機變數和其數學期望 即均值 之間的偏離程度。a sample 10 a 1 4 2 9 3 6 10 8 5 7 1 var a 1 9.166667是協方差。協方差定義用於衡量兩個變數的總體誤差,即描述兩個變數之間的相對於各自的期望值的變化趨勢。方差是協...