Nothing
library(fitdistrplus)
set.seed(1234)
nsample <- 10
# (1) uniform distribution fit - no fixed value
#manual check
dunif2 <- function(x, min, max)
dunif(x, min, max)
punif2 <- function(q, min, max)
punif(q, min, max)
x1 <- runif(nsample, 3, 5)
L <- function(a, b, obs)
prod(dunif(obs, min=a, max=b))
l <- Vectorize(L, "a")
curve(l(x, b=5, obs=x1), from=1, to=3)
f1 <- fitdist(x1, "unif")
f2 <- fitdist(x1, "unif2", start=list(min=0, max=10), lower=c(-Inf, max(x1)),
upper=c(min(x1), Inf))
c(logLik(f1), logLik(f2))
delta <- .2
llsurface(x1, "unif", plot.arg = c("min", "max"), min.arg=c(1, 5-delta),
max.arg=c(3+delta, 7), main="likelihood surface for uniform")
abline(v=3, h=5, col="red", lty=2)
points(f1$estimate[1], f1$estimate[2], pch="x", col="violet")
points(f2$estimate[1], f2$estimate[2], pch="o", col="blue")
# (2) uniform distribution fit - fixed value
f3 <- fitdist(x1, "unif", fix.arg=list(min=2.5))
logLik(f3)
llcurve(x1, "unif", plot.arg="max", min.arg = 5-delta, max.arg=7)
f4 <- fitdist(x1, "unif", fix.arg=list(max=5.5))
logLik(f4)
# (3) four parameter beta - also known as PERT distribution
require(mc2d)
x2 <- rpert(2*nsample, 0, 1, 2, 3)
f1 <- fitdist(x2, "pert", start=list(min=-1, mode=0, max=10, shape=1),
lower=c(-Inf, -Inf, max(x2), 0),
upper=c(min(x2), Inf, Inf, Inf))
f2 <- fitdist(x2, "pert", start=list(mode=1, shape=1),
lower=c(-Inf, 0),
upper=c(Inf, Inf),
fix.arg=list(min=min(x2)-1e-6, max=max(x2)+1e-6))
gofstat(list(f1,f2))
cdfcomp(list(f1,f2))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.