#title 런검정 [[TableOfContents]] ==== 기본개념 ==== http://databaser.net/moniwiki/pds/Run/run01.png ==== R 코드 ==== {{{ fit1 <- rlm(dau ~ x, data=tmp) fit.data <- data.frame(predict(fit1, data.frame(x=xx), interval="prediction", level=.95)) library("tseries") run <- fit.data$fit > tmp$dau runs.test(as.factor(run)) }}} 결과 {{{ > runs.test(as.factor(run)) Runs Test data: as.factor(run) Standard Normal = -1.792, p-value = 0.07314 alternative hypothesis: two.sided }}} * 귀무가설: 무작위다. * 결과: p-value 0.07314으로 귀무가설을 기각하지 못함. 즉, 무의미 ==== findruns ==== 이 함수는 k개 이상의 run이 벡터의 어디에서 어디까지 존재하는 찾는 함수다. {{{ findruns <- function(x,k){ k <- k-1 jump <- 0 start <- c() runyn <- 0 for(i in seq(1, length(x))){ if (jump > i) next for(j in seq(i, length(x))){ if (j+k > length(x)) break if (all(x[j:(j+k)])){ #연산자 우선순위 주의 start <- c(start, j) jump <- j+k+1 runyn <- 1 } else break } if (runyn == 1){ s <- paste0(min(start), ":", jump-1) print(s) runyn <- 0 start <- c() } } } x <- c(0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,0) k <- 3 findruns(x, k) }}} 결과 {{{ > findruns(x, k) [1] "2:8" [1] "10:12" }}} [[Include(Run)]]