Rでベータ関数を描いた
特に、何か面白いことをしたわけではないですが、
ベータ関数を描いたので、コード載せとく。
logf = function(x){ rr = 0 for(i in 1:x){ rr = rr + log(i) } return(rr) } #beta distibutionの点の値を求める関数 d_beta = function(theta,n=129,y=118){ rr = logf(n+1) - logf(y) - logf(n-y) + y*log(theta) + (n-y)*log(1-theta) mle = y/n print(paste("Theta's MLE is",mle,sep=" ")) return(exp(rr)) } theta_mle = 118/129 mle_likeli = purpose(theta_mle) x = seq(0,1,0.0001) y = d_beta(x) plot(x,d_beta(x),type="l",lty=1,xlab=expression(theta),ylab=expression(paste("p(",theta,"|",y[1],",...,",y[129],")"))) lines(c(theta_mle, theta_mle), c(mle_likeli, -1), col = "red4", lwd = 1.5,lty=2) text(theta_mle-0.15, 2.3, expression(paste(hat(theta)[MLE])), adj = 0, col = "red4", cex = 1.8) arrows(x0 = theta_mle-0.1, y0 = 1.5, x1 = theta_mle-0.05, y1 = -0.05, col = "red4", lwd = 1,angle=15,length=0.1) mtext(expression(paste("0.915")), side = 1, line = 2., at = theta_mle, adj = 0.5, col = "red4", cex = 1.0, padj = -2) #背景が必要な場合 library(png) ima = readPNG("~/Desktop/code.png") lim <- par() rasterImage(ima, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4]) grid() points(x,purpose(x),type="l",lty=1,col="black") #segments(theta_mle, 0, theta_mle, mle_likeli,lty=2) #segments(0, mle_likeli, theta_mle, mle_likeli,lty=2)