Currently set to No Index

R Code for Cox & Stuart Test for Trend Analysis

R Code for Cox & Stuart Test for Trend Analysis


Below is an R code for Cox & Stuart Test for Trend Analysis. Simply, copy and paste the code into R workspace and use it. Unlike cox.stuart.test in R package named “randtests”, this version of the test does not return a p-value greater than one. This phenomenon occurs when the test statistic, T is half of the number of untied pairs, N. Here is a simple example that reveals the situtaion:
> x [1] 1 4 6 7 9 7 1 6
> cox.stuart.test(x)
Cox Stuart test
data: x statistic = 2, n = 4, p-value = 1.375 alternative hypothesis: non randomness
> o.Cox.Stuart.test(x)
Cox & Stuart Test for Trend Analysis
data: x Test Statistic = 2, Number of Untied Pairs = 4, p-value = 1 alternative hypothesis: any type of trend, either decreasing or increasing
R Code for Cox & Stuart Test:
o.Cox.Stuart.test <- function(x, alternative=c(“two.sided” ,”left.sided”, “right.sided”)){
dname <- deparse(substitute(x))
alternative <- match.arg(alternative)
stopifnot(is.numeric(x))
n0 <- length(x)
if (n0 < 2){ stop(“sample size must be greater than 1”) }
n0 <- round(length(x)) %% 2
if (n0 == 1) { remove <- (length(x)+1)/2 x <- x[ -remove ] }
half <- length(x)/2 x1 <- x[1:half] x2 <- x[(half+1):(length(x))] n <- sum((x2-x1)!=0) t <- sum(x1<x2)
if (alternative == “left.sided”) { p.value <- pbinom(t, n, 0.5) alternative <- “decreasing trend” }
if (alternative == “right.sided”){ p.value <- 1-pbinom(t-1, n, 0.5) alternative <- “increasing trend” }
if (alternative == “two.sided”){ alternative <- “any type of trend, either decreasing or increasing” if (1-pbinom(t-1, n, 0.5) == pbinom(t, n, 0.5)) { pdist <- dbinom(0:n, n, 0.5) p.value <- sum(pdist[pdist <= t+1]) } else { p.value <- 2*min( 1-pbinom(t-1, n, 0.5), pbinom(t, n, 0.5)) } }
rval <- list(statistic=c(“Test Statistic”=t), alternative=alternative, p.value=p.value, method=”Cox & Stuart Test for Trend Analysis”, parameter=c(“Number of Untied Pairs”=n), data.name=dname)
class(rval) <- “htest” return(rval) }

Link: R Code for Cox & Stuart Test for Trend Analysis