################## # # Intervaly spolehlivosti pro parametr theta v rovnomernem rozdeleni na [0,theta] set.seed(1234) nopak <- 1000; n <- 25; # Rozsah vyberu alfa <- 0.05; # 1-alfa je pst pokryti theta <- 2; # Skutecna hodnota parametru theta u <- qnorm(1-alfa/2) # srovnani odhadu zalozenych na momentovem odhadu IS1 <- matrix(NA, nrow=nopak, ncol=2) IS2 <- matrix(NA, nrow=nopak, ncol=2) IS3 <- matrix(NA, nrow=nopak, ncol=2) for(i in 1:nopak){ # generovani nahodneho vyberu rozsahu n z Poissonova rozdeleni x <- runif(n, min=0,max=theta); xmean=mean(x) IS1[i,] <- 2*xmean + u*c(-1,1) /sqrt(3*n)*2*xmean IS2[i,] <-2*xmean*c(1/(1+u/sqrt(3*n)),1/(1-u/sqrt(3*n))) IS3[i,] <- 2*xmean *c(exp(-u/sqrt(3*n)),exp(u/sqrt(3*n))) } pokryto1 <- as.logical((IS1[,1] <= theta)*(IS1[,2] >= theta)); pokryto2 <- as.logical((IS2[,1] <= theta)*(IS2[,2] >= theta)); pokryto3 <- as.logical((IS3[,1] <= theta)*(IS3[,2] >= theta)); mean(pokryto1); # Odhad skutecneho pokryti mean(IS1[,2]-IS1[,1]); # Odhad stredni hodnoty delky intervalu # mean(pokryto2); # Odhad skutecneho pokryti mean(IS2[,2]-IS2[,1]); # Odhad stredni hodnoty delky intervalu mean(pokryto3); # Odhad skutecneho pokryti mean(IS3[,2]-IS3[,1]); # Odhad stredni hodnoty delky intervalu ### n0 <- 20; # Pocet intervalu, ktere budou na obrazku plot(c(0,0), xlim=range(IS1[1:n0,], IS3[1:n0,]), ylim=2*c(1-0.25,n0+0.75), type="n", ylab="Cislo vyberu", xlab=expression(theta),yaxt="n",main="Rovnomerne rozdeleni"); mtext(1:n0,2,line=1,at=2.05*(1:n0),las=2,cex=0.7) for(i in 1:n0){ if(pokryto1[i]){ col1 <- 1; }else{ col1<- 2; } if(pokryto2[i]){ col2 <- 1; }else{ col2 <- 2; } if(pokryto3[i]){ col3 <- 1; }else{ col3 <- 2; } lines(IS1[i,], 2*c(i,i)-0.25, lty=1, col=col1,lwd=1.2); lines(IS2[i,], 2*c(i,i)+0.25, lty=2, col=col2,lwd=1.2); lines(IS3[i,], 2*c(i,i)+0.75, lty=3, col=col3,lwd=1.2); points(IS1[i,1], 2*i-0.25, pch="|", cex=0.5); points(IS1[i,2], 2*i-0.25, pch="|", cex=0.5); points(IS2[i,1], 2*i+0.25, pch="|", cex=0.5); points(IS2[i,2], 2*i+0.25, pch="|", cex=0.5); points(IS3[i,1], 2*i+0.75, pch="|", cex=0.5); points(IS3[i,2], 2*i+0.75, pch="|", cex=0.5); } abline(v=theta, lty="dotted", lwd=2); ########################################### # srovnani intervalu zalozenem na momentovem odhadu a max X_i (MLE odhad) ISMM <- matrix(NA, nrow=nopak, ncol=2) ISMLE <- matrix(NA, nrow=nopak, ncol=2) u <- qnorm(1-alfa/2) for(i in 1:nopak){ x <- runif(n, 0,theta); xmean=mean(x) xmax=max(x) ISMM[i,] <- 2*xmean + u*c(-1,1) /sqrt(3*n)*2*xmean ISMLE[i,1] <- xmax ISMLE[i,2]=xmax*alfa^(-1/n) } pokryto1 <- as.logical((ISMM[,1] <= theta)*(ISMM[,2] >= theta)); pokryto2 <- as.logical((ISMLE[,1] <= theta)*(ISMLE[,2] >= theta)); mean(pokryto1); # Odhad skutecneho pokryti mean(ISMM[,2]-ISMM[,1]); # Odhad stredni hodnoty delky intervalu # mean(pokryto2); # Odhad skutecneho pokryti mean(ISMLE[,2]-ISMLE[,1]); # Odhad stredni hodnoty delky intervalu n0 <- 20; # Pocet intervalu, ktere budou na obrazku plot(c(0,0), xlim=range(ISMM[1:n0,], ISMLE[1:n0,]), ylim=2*c(1-0.25,n0+0.75), type="n", ylab="Cislo vyberu", xlab=expression(theta),yaxt="n",main="Rovnomerne rozdeleni"); mtext(1:n0,2,line=1,at=2.05*(1:n0),las=2,cex=0.7) for(i in 1:n0){ if(pokryto1[i]){ col1 <- 1; }else{ col1<- 2; } if(pokryto2[i]){ col2 <- 1; }else{ col2 <- 2; } lines(ISMM[i,], 2*c(i,i)-0.25, lty=1, col=col1,lwd=1.2); lines(ISMLE[i,], 2*c(i,i)+0.25, lty=2, col=col2,lwd=1.2); points(ISMM[i,1], 2*i-0.25, pch="|", cex=0.5); points(ISMM[i,2], 2*i-0.25, pch="|", cex=0.5); points(ISMLE[i,1], 2*i+0.25, pch="|", cex=0.5); points(ISMLE[i,2], 2*i+0.25, pch="|", cex=0.5); } abline(v=theta, lty="dotted", lwd=2);