欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

随机游程检验的实用方式

程序员文章站 2022-09-28 20:11:02
在实际中,我们经常考虑一个序列中的数据出现是否与顺序无关,这关系到数据是否独立。 一个典型的序列是二元0/1序列出现的随机性问题。在一个二元序列中,0和1交替出现。首先引入概念:在一个二元序...

在实际中,我们经常考虑一个序列中的数据出现是否与顺序无关,这关系到数据是否独立。

一个典型的序列是二元0/1序列出现的随机性问题。在一个二元序列中,0和1交替出现。首先引入概念:在一个二元序列中,一个由0或1连续构成的串成为一个游程,一个游程中数据的个数成为游程的长度。一个序列中游程个数用R表示,R表示0和1交替轮换的频繁程度。

例子: 10000111011000011110

解析:总共有20个数,0的总个数为10,1的总个数为10,有4个0游程,4个1游程;R=8

其中|R0-R1| <=1

原假设:数据出现顺序随机

R语言程序

tseries包与lawstat包中runs.test还是有区别的,个人觉得lawstat好用

  library(tseries)
  run1 <- c(1, 1, 1, 0, rep(1, 7), 0, 1, 1, 0, 0, rep(1, 6), 0,
            rep(1, 4), 0, rep(1, 5), rep(0, 4), rep(1, 13))
  y <- factor(run1)
  runs.test(y)
  
  library(lawstat)
  par(mfrow=c(1,1))
  y1 <- rep(c(1,0),5)
  y2 <- c(rep(1,5),rep(0,5))
  y3 <- c(1,0,0,1,1,1,1,0,0,0)
  runs.test(y1, plot.it=T)
  runs.test(y2, plot.it=T)
  runs.test(y3, plot.it=T)