我们经常听这样的描述,数据呈上升/下降/无明显趋势,这个结论往往是靠人眼观察出来的,不够严谨。我们需要更科学的方法,下面就借助非参里的符号检验,来谈谈检验趋势存在性的两种常用方法。
- Cox-Stuart趋势检验
-
原理
对于数据序列x1,x2,x3,……,xn,我们以位置中间数c为界把该序列分成两部分,并两两配对成(x1,xc+1),(x2,xc+2),……(xc,xn)的形式。接着我们以每一组中后一个数减去前一个数并记下正负性,s+表示得到正数的个数,s-表示得到负数的个数。如果s+远远大于s-,则我们认为序列存在上升趋势,反之序列存在下降趋势,如果s+与s-很接近,那就无明显趋势,这里度量s+和s-有无明显差异性靠的是binom.test()。 -
实现
R语言里没有现成的函数,需要自己编写,这里给出一种作为参考。案例结果表明,置信水平为0.05时,测试序列customers呈下降趋势,但趋势并不显著(P值0.1094)
cox.stuart.test =
function (x)
{
method = "Cox-Stuart test for trend analysis"
leng = length(x)
apross = round(leng) %% 2
if (apross == 1) {
delete = (length(x)+1)/2
x = x[ -delete ]
}
half = length(x)/