施用 JSC 做 Wilcoxon signed-rank test
使用 JSC 做 Wilcoxon signed-rank test
JSC is a project to extend the Java programming language and Java APIs (Application Programming Interfaces) to support educational and enterprise development of statistical software in Java.
http://www.jsc.nildram.co.uk/
看这篇文章的人应该都知道什么是 Wilcoxon signed-rank test , 以及这个 Test 主要用来做什么。 如果不清楚的同学请先移步 wiki: http://en.wikipedia.org/wiki/Wilcoxon_signed-rank_test。
当然用 R 当然也能很容易做这个 test,有兴趣的同学请移步: http://www.r-tutor.com/elementary-statistics/non-parametric-methods/wilcoxon-signed-rank-test。
这里我们主要讨论如何使用JSC这个库来做 Wilcoxon signed-rank test。
在使用之前可以先参照在线的 API: http://www.jsc.nildram.co.uk/api/jsc/onesample/WilcoxonTest.html
以下我们用个例子来说明:
WilcoxonTest(PairedData data, H1 alternative)
, PairedData 对象可以使用一个N行2列的matrix构建。 H1 是 JSC 中的一个枚举类型,可以直接使用。
PairedData pData = new PairedData(g0_div, g1_div); // g0_div 和 g1_div) 是两个等长的一维 double 数组,两个数组中的对应 index 对应的正是数据观测的一个pair。
if(g0_div.length>=500){ //当数据量大于500的时候,大样本可以认为接近正太分布,所以调用 .approxSP() 方法。 if (less) { //Exception here. pValue = new WilcoxonTest(pData, H1.LESS_THAN).approxSP(); }else { pValue = new WilcoxonTest(pData, H1.GREATER_THAN).approxSP(); } }else { // 小样本,样本数小于 500,不需要假设样本服从正太分布。 // 这也是我们使用这个方法的目地所在。 if (less) { //Exception here. pValue = new WilcoxonTest(pData, H1.LESS_THAN).exactSP(); }else { pValue = new WilcoxonTest(pData, H1.GREATER_THAN).exactSP(); } }