0

这既是 R 编程问题,也是统计问题。从我的实验来看,R 包 lawstat 中的 runs.test 函数似乎对小样本给出了非常奇怪的结果。任何人都可以确认、反驳和/或解释吗?我的推理如下。

我的测试数据是在 15 年中每年授予一家公司在一个技术类别中的专利数量。

testpats <- c(2,1,2,0,1,4,1,1,2,4,2,6,1,3,3)

跑步

runs.test(testpats, plot.it=T, alternative="positive.correlated")

首先,生成以下运行图。(不会让我发布图片,所以这是我的娱乐。)

B B B B A B B B A A A B A A

根据文档“小于样本中位数的观察值用字母“A”表示,大于或等于样本中值的观察值用字母“B”表示。

testpats 的样本中位数为 2。因此,如果文档正确,则图像应如下所示:

= - = - - + - - = + = + - + +
B A B A A B A A B B B B A B B

显然这是非常不同的,所以我不知道 runs.test 用于“样本中位数”。

二、函数输出给出的检验统计量

        Runs Test - Positive Correlated

data:  testpats 
Standardized Runs Statistic = -0.4877, p-value = 0.3129

与我使用http://www.itl.nist.gov/div898/handbook/eda/section3/eda35d.htm中描述的方法手动计算的结果非常不同

mymid <- median(testpats)
runsdummy <- ifelse(testpats >= mymid, 1, -1)
n1 <- length(which(runsdummy>0)) #number of values above or equal to the median
n2 <- length(which(runsdummy<0)) #number of values below the median
sr2 <- (2*n1*n2*(2*n1*n2 - n1 - n2))/((n1+n2)^2 * (n1+n2-1)) #standard deviation of the number of runs
Rbar <- (2*n1*n2)/(n1+n2) + 1 #expected number of runs
R <- 9 #observed number of runs - how do I automate?
Z <- (R-Rbar)/sr2 #runs test statistics
Z

[1] 0.2508961

请注意,这个手工计算的测试统计数据与 runs.test() 提供的 -0.4877 没有任何相似之处。

或者,我可以使用Swed 和 Eisenhart中解释的测试的小样本版本。小样本方法只是使用上下观察的数量和运行次数。

给定 n1 = 5; n2 = 6; R = 9

单边 pvalue 应该是 0.976。

同样,这甚至不接近 runs.test() 产生的数字

那么,什么给了?我是否完全误解了如何使用 runs.test()?在将数据转换为上/下指标(例如 1/-1)后,我尝试使用该函数,但仍然得到奇怪的结果。

4

2 回答 2

0

我偶然发现了同样的问题,同时在 Excel 中建模并与我的 StatGraphics 软件的输出进行比较。我终于在 StatGraphics 的文档中找到了我的“解决方案”。我以 R 格式记录了它(不再使用 R,但我认为这是正确的):

Z <- (R-0.5-Rbar)/sr2

我还不知道为什么必须减去(或在某些情况下添加)0.5,但我认为它与单面和双面测试有关。然后 +0.5 或 -0.5 将测试单面(更高或更低),如果没有这个添加,我认为是双面的。

不知道我是否正确,但我得到了与使用 -0.5 的 StatGraphics 模型相同的结果。

试试看,让我知道!

编辑(来自软件文档):计算观察到至少 k 次运行的概率:使用 -0.5 计算观察到小于或等于 k ​​次运行的概率:使用 +0.5

编辑 2:+ 或 - 0.5 是连续性校正。您只能观察 3 或 4 次出现,而不是介于两者之间。如果您将 3 处的机会计算为(3.5 或更少的机会),将 4 处的机会计算为(大于 3.5 的机会),那么只有这样总和的机会才会为 1。

于 2013-07-04T11:04:33.680 回答
0

两件事情。sr2 是方差:取根。n1 + n2 == 长度(testpats)!= 5+6。我得到了 6 和 9。

于 2014-10-09T12:35:20.103 回答