diff --git a/server.r b/server.r new file mode 100644 index 0000000000000000000000000000000000000000..05bb4452efe08d9fb5833ba3444e1e81ba5242af --- /dev/null +++ b/server.r @@ -0,0 +1,103 @@ + +# Define a server for the Shiny app +function(input, output) { + + + + # Fill in the spot we created for a plot + output$Plot <- renderPlot({ + + + + +myalpha1=input$alpha +mu0=input$mu0 +sigma=input$sigma +n=input$n +mu1=input$mu1 + + + +criterion=qnorm(1-myalpha1)*sigma/sqrt(n)+mu0 # criterion c +betamu=pnorm((sqrt(n)/sigma)*(mu0-mu1)+qnorm(1-myalpha1)) #beta +power=1-pnorm((sqrt(n)/sigma)*(mu0-mu1)+qnorm(1-myalpha1)) # power + + + +par(mar=c(4,0, 4, 0)) +# distribut under null \bar{X}~N(mu0,sig/\sqrt{n}) +plot(seq(-3,3,length=1000),dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n)),type="l", + lwd=1,ylim=c(0,max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n)))+0.2),cex.lab=2.2,xlab="", + main="",ylab="",cex=1.4, cex.axis=2,bty="n", + xlim=c(-5,6),yaxt="n",xaxt="n",col="black") +lines(seq(-3,5,length=1000),dnorm(seq(-3,5,length=1000),mu1,sigma/sqrt(n)),type="l", + lwd=1,ylim=c(0,1.5),cex.lab=2.2,xlab="", + main="",ylab="",cex=1.4, cex.axis=2,bty="n", + xlim=c(-5,7),yaxt="n",xaxt="n",col="black") +abline(v=criterion, lty=1, lwd=3, col="red") +axis(1, c(-5:5),cex.axis=2, tck=-.02) +mtext(expression(bar(X)[n]),at=c(0),side=1,line = 3,cex=2) + + +left <- seq(-3, criterion, length.out=100) +right <- seq(criterion, 3, length.out=100) +yH0r <- dnorm(right, mu0, sigma/sqrt(n)) +yH1l <- dnorm(left, mu1, sigma/sqrt(n)) +yH1r <- dnorm(right, mu1, sigma/sqrt(n)) + +polygon(c(right, rev(right)), c(yH0r, numeric(length(right))), border=NA, + density=5, lty=3, lwd=4, angle=-45,col="black") +polygon(c(left, rev(left)), c(yH1l, numeric(length(left))), border=NA, + density=5, lty=3, lwd=4, angle=45,col="black") +polygon(c(right, rev(right)), c(yH0r, numeric(length(right))), border=NA, + col=rgb(1, 0.3, 0.3, 0.6)) +polygon(c(left, rev(left)), c(yH1l, numeric(length(left))), border=NA, + col=rgb(0.3, 0.3, 1, 0.6)) + +text(criterion-1.5, max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n)))+0.2, adj=0, label= +as.expression(bquote(c~"="~.(format(criterion, digits = 3)))),cex=1.5) +text(-2.5, 0.3*max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n))) +, adj=1, label= expression("Distrib. sous "*H[0]),cex=1.5) +text(mu1+4, 0.3*max(dnorm(seq(-3,13,length=1000),mu0,sigma/sqrt(n))), adj=1, label= expression("Distrib. sous "*H[a]),cex=1.5) +text(-2.5, 0.2*max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n))), adj=1, label= expression("N(0,"*sigma/sqrt(n)*")"),cex=1.5) +text(mu1+4, 0.2*max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n))), adj=1, label= expression("N(1,"*sigma/sqrt(n)*")"),cex=1.5) +source("http://www.math.mcmaster.ca/bolker/R/misc/legendx.R") + +legend("topright",c( +as.expression(bquote(alpha[n](mu)~"="~.(format(myalpha1, digits = 3)))), +as.expression(bquote(beta[n](mu)~"="~.(format(betamu,digits = 3))))), +text.col="white", +col = c(NA,NA,NA),lty=c(NA,NA,1), +border = c("#FF4D4D99","#4D4DFF99",NA), +fill=c(rgb(1, 0.3, 0.3, 0.6),rgb(0.3, 0.3, 1, 0.6),NA), +cex=1.5,bty = "n",angle=c(-45,45,90), +box.cex=c(2,2),y.intersp=3) + +legend("topright",c( +as.expression(bquote(alpha[n](mu)~"="~.(format(myalpha1, digits = 3)))), +as.expression(bquote(beta[n](mu)~"="~.(format(betamu,digits = 3))))), +text.col="white", +col = c(NA, NA,NA),lty=c(2,2,NA), +border = c("#FF4D4D99","#4D4DFF99",NA), +fill=c(rgb(1, 0.3, 0.3, 0.6),rgb(0.3, 0.3, 1, 0.6),NA), +cex=1.5,density=c(10,10,0),bty = "n",angle=c(-45,45,90), +box.cex=c(2,2),y.intersp=3) + +legend("topright",c( +as.expression(bquote(alpha[n](mu)~"="~.(format(myalpha1, digits = 3)))), +as.expression(bquote(beta[n](mu)~"="~.(format(betamu,digits = 3))))), +text.col="black", +col = c(NA, NA,NA),lty=c(3,3,NA), +border = c("#FF4D4D99","#4D4DFF99",NA), +cex=1.5,density=c(10,10,0),bty = "n",angle=c(-45,45,90), +box.cex=c(2,2),y.intersp=3) + + + + + }) +} + + + +