日期:2014-05-16  浏览次数:20389 次

使用 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();
					}
				}
?

?

?