#-------------------------------------------------------------------------- # distribuzione geometrica che descrive il primo tentativo # al quale si verifica un processo di Bernoulli di prob p # (Nota: nella geometrica standard di R il nr aleatorio # e' pari al numero di volte in cui il successo non si e' verificato # fino a quando esso si verifica per la prima volta, quindi x parte da 0.) # # GdA 19/2/09 #--------------------------------------------------------------------------- dgeom1 <- function(x, p) { if ( as.integer(x) == x && x > 0 && p > 0 && p <= 1 ) return( p*(1-p)^(x-1) ) else return(0) } pgeom1 <- function(x, p) { if ( as.integer(x) == x && x > 0 && p > 0 && p <= 1 ) return( 1-(1-p)^x ) else return(0) } rgeom1 <- function(n, p) { if ( as.integer(n) == n && n > 0 && p > 0 && p <= 1) return( ceiling( log(runif(n), (1-p)) ) ) else return(0) } qgeom1 <- function(P, p) { if ( P > 0 && P <= 1 && p > 0 && p <= 1) return( ceiling( log(1-P, (1-p)) ) ) else return(0) } # tests (da eseguire in modalita' interattiva) # dgeom1(seq(10),1/2) # pgeom1(seq(10),1/2) # x <- rgeom1(10000, 1/18) # mean(x) # sd(x) # seq(from=0.01, to=0.99, by=0.01) -> s # qgeom1(s,1/8) # qgeom1(0.95,s) # confronto con pgeom standard. # qgeom(s,1/8) # qgeom(0.95,s)