ApEn.R
##
## A p E n . R (Fast) Approximate Entropy
##
ApEn <- function(ts, edim = 2, r = 0.2*sd(ts), elag = 1) {
N <- length(ts)
result <- numeric(2)
for (j in 1:2) {
m <- edim + j - 1
phi <- zeros(1, N-m+1)
dataMat <- zeros(m, N-m+1)
for (i in 1:m)
dataMat[i, ] <- ts[i:(N-m+i)]
for (i in 1:(N-m+1)) {
tempMat <- abs(dataMat - repmat(dataMat[, i, drop = FALSE], 1, N-m+1))
boolMat <- apply(tempMat > r, 2, max)
phi[i] <- sum(!boolMat)/(N-m+1)
}
result[j] <- sum(phi)/(N-m+1)
}
apen <- log(result[1]/result[2])
return(apen)
}