server = function(input, output, session) {
mle <- reactiveValues(dats = NULL,
params = NULL,
sims = 0,
dat1 = NULL,
dat2 = NULL,
dat3 = NULL)
observeEvent(input$clear, {
params <- switch(input$correct,
'Green' = c(2.4,40),
'Blue' = c(2.5,50),
'Red' = c(2,50))
mle$sims <- 0 ; mle$dats <- NULL ; mle$dat1 <- NULL ; mle$dat2 <- NULL ; mle$dat3 <- NULL
mle$dats[mle$sims] <- NULL #rweibull(1,params[1], params[2])
mle$dat1[mle$sims] <- NULL #dweibull(mle$dats[mle$sims], 2.5,50)
mle$dat2[mle$sims] <- NULL #dweibull(mle$dats[mle$sims], 2.5,40)
mle$dat3[mle$sims] <- NULL #dweibull(mle$dats[mle$sims], 2.0,50)
})
observeEvent(input$mlesample10, {
params <- switch(input$correct,
'Green' = c(2.4,40),
'Blue' = c(2.5,50),
'Red' = c(2,50))
mle$sims <- mle$sims + 10
mle$dats[(mle$sims-9):mle$sims] <- rweibull(10,params[1], params[2])
mle$dat1[(mle$sims-9):mle$sims] <- dweibull(mle$dats[(mle$sims-9):mle$sims], 2.5,50)
mle$dat2[(mle$sims-9):mle$sims] <- dweibull(mle$dats[(mle$sims-9):mle$sims], 2.5,40)
mle$dat3[(mle$sims-9):mle$sims] <- dweibull(mle$dats[(mle$sims-9):mle$sims], 2.0,50)
})
observeEvent(input$mlesample, {
params <- switch(input$correct,
'Green' = c(2.4,40),
'Blue' = c(2.5,50),
'Red' = c(2,50))
mle$sims <- mle$sims + 1
mle$dats[mle$sims] <- rweibull(1,params[1], params[2])
mle$dat1[mle$sims] <- dweibull(mle$dats[mle$sims], 2.5,50)
mle$dat2[mle$sims] <- dweibull(mle$dats[mle$sims], 2.5,40)
mle$dat3[mle$sims] <- dweibull(mle$dats[mle$sims], 2.0,50)
})
output$plotmle <- renderPlot({
par(family = 'serif', font = 1, mar = c(4.5,6,1,1))
polygon(curve(dweibull(x, 2.5,50),
xlim = c(0,130),
ylim = c(0,.03),
ylab = '',
xlab = '',
col = alpha('blue', 1),
yaxt = 'n',
xaxt = 'n',
yaxs = 'i',
lwd = 2,
xaxs = 'i'),
col = alpha('blue', 0.25),
border = NA)
polygon(curve(dweibull(x, 2.5,40),
xlim = c(0,130),
col = alpha('darkgreen', 1),
add = TRUE,
lwd = 2),
col = alpha('green', 0.25),
border = NA)
polygon(curve(dweibull(x, 2.0,50),
xlim = c(0,130),
col = alpha('red', 1),
add = TRUE, lwd = 2),
col = alpha('pink', 0.25),
border = NA)
box(lwd = 1.5)
mtext(side = 3, 'f(t)', line = -2, at = -1, cex = 2, adj = 1, font = 2)
text(x = 110,
y = .005,
labels = paste('total samples =', mle$sims, sep = " "),
cex = 2,
font = 2)
text(x = rep(60,3),
y = c(0.025,0.0225, 0.02),
labels = c('Blue', 'Green', 'Red'),
col = c('blue', 'darkgreen', 'red'),
cex = 2,
adj = 0,
font = 2)
text(x = rep(70,3),
y = c(0.025,0.0225, 0.02)-.0001,
rep('=',3),
col = c('blue', 'darkgreen', 'red'),
cex = 2,
adj = 0,
font = 2)
text(x = 60,
y = 0.028,
labels = expression(prod(f(t[i]~symbol('|')~theta),i==1,n)
==sum(log~bgroup('[',f(t[i]~symbol('|')~theta),']'),
i==1,n)%->%Log-likelihood),
adj = 0,
cex = 1.8)
if(input$mlesample) {
if(!mle$sims==0) {
dat4 <- max(mle$dat1[mle$sims], mle$dat2[mle$sims], mle$dat3[mle$sims])
segments(x0 <- c(0,0,0,mle$dats[mle$sims]),
y0 <- c(mle$dat1[mle$sims],mle$dat2[mle$sims],mle$dat3[mle$sims],0),
x1 <- rep(mle$dats[mle$sims],4),
y1 <- c(mle$dat1[mle$sims],mle$dat2[mle$sims],mle$dat3[mle$sims], dat4),
col = c('blue', 'darkgreen', 'red', 'black'),
lwd = c(2,2,2,1),
lty = c(1,1,1,3))
points(mle$dats[1:mle$sims],mle$dat1[1:mle$sims], pch = 16, cex = 2, col = alpha('blue', 1))
points(mle$dats[1:mle$sims],mle$dat2[1:mle$sims], pch = 16, cex = 2, col = alpha('darkgreen', 1))
points(mle$dats[1:mle$sims],mle$dat3[1:mle$sims], pch = 16, cex = 2, col = alpha('red', 1))
text(x = rep(74,3), y = c(0.025,0.0225, 0.02),
c(round(sum(log(mle$dat1)), digits = 4),
round(sum(log(mle$dat2)), digits = 4),
round(sum(log(mle$dat3)), digits = 4)),
col = c('blue', 'darkgreen', 'red'),
cex = 2, adj = 0)
dat5 <- max(c(round(sum(log(mle$dat1)), digits = 4),
round(sum(log(mle$dat2)), digits = 4),
round(sum(log(mle$dat3)), digits = 4)))
if (dat5==round(sum(log(mle$dat1)), digits = 4)) points(57.5,.0250,pch=16, col='blue', cex=2)
if (dat5==round(sum(log(mle$dat2)), digits = 4)) points(57.5,.0225,pch=16, col='darkgreen', cex=2)
if (dat5==round(sum(log(mle$dat3)), digits = 4)) points(57.5,.0200,pch=16, col='red', cex=2)
axis(side = 1,
labels = paste('t = ', round(mle$dats[mle$sims], digits = 2), sep = ""),
at = mle$dats[mle$sims],
padj = -.75, cex.axis = 2, line = 1.5, tck = 0)
axis(side = 2,
labels = round(mle$dat1[mle$sims], digits = 4),
line = -.9, at = mle$dat1[mle$sims],
las = 1, cex.axis = 2, col.axis = 'blue', tck = 0)
axis(side = 2,
labels = round(mle$dat2[mle$sims], digits = 4),
line = -.9, at = mle$dat2[mle$sims],
las = 1, cex.axis = 2, col.axis = 'darkgreen', tck = 0)
axis(side = 2,
labels = round(mle$dat3[mle$sims], digits = 4),
line = -.9,
at = mle$dat3[mle$sims], las = 1, cex.axis = 2, col.axis = 'red', tck = 0)
}
}
if(input$mlesample10) {
if(!mle$sims==0) {
points(mle$dats[1:mle$sims],mle$dat1[1:mle$sims], pch = 16, cex = 2, col = alpha('blue', 1))
points(mle$dats[1:mle$sims],mle$dat2[1:mle$sims], pch = 16, cex = 2, col = alpha('darkgreen', 1))
points(mle$dats[1:mle$sims],mle$dat3[1:mle$sims], pch = 16, cex = 2, col = alpha('red', 1))
text(x = rep(74,3), y = c(0.025,0.0225, 0.02),
c(round(sum(log(mle$dat1)), digits = 4),
round(sum(log(mle$dat2)), digits = 4),
round(sum(log(mle$dat3)), digits = 4)),
col = c('blue', 'darkgreen', 'red'), cex = 2, adj = 0)
axis(side = 1, labels = FALSE, at = mle$dats[mle$sims], padj = -.75, cex.axis = 2, tck = 0)
axis(side = 2, labels = FALSE, tck = 0, las = 1, cex.axis = 2)
}
}
})
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.