Re: generate pseudo-absences
Lars Westerberg <
lawes@...>
2012-02-13 13:38:05 GMT
Try:
n <- 10
x <- round(runif(10)) #array with 0 and 1
pos0 <- which(x==0) #position of 0's
n0 <- length(pos0) # number of 0's
npseudo <- round(n0*0.5) # proportion of 0's (here 50%)
pseudo0 <- sort(sample(pos0)[1:npseudo]) #Select and sort 0's to be
pseudo-absence 0's
# alt. pseudo-absence as a proportion of presence
n1 <- n-n0
prop <- 5
#Next line checks that desired number of pseudo-absence is less than
existing absences
if(prop*n1>n0) stop(paste("Too few 0's. Can not create ",prop*n1,"
pseudo-absence's"))
#For this example, set proportion to 30%
prop <- 0.3
npseudo <- round(n1*prop) # Number of pseudo-absence as a proportion of 1's
pseudo0 <- sort(sample(pos0)[1:npseudo]) #Sample/select and sort 0's to
be pseudo-absence 0's
# Observed data with pseduo-absence as presence (1)
x[pseudo0] <- 1
HTH
/Lars
On 2/10/2012 10:39 PM, Frederico Mestre wrote:
> Hello all:
(Continue reading)