如何修改下面的代码以表示三个估计量的偏差?

时间:2018-12-02 15:29:19

标签: r

我有一个参数为(0,$ \ theta $)的Uniform分布, 并且我已经计算出其MME,以及其他两个估算器。 我还在代码中计算了他们的个人偏见。 但是我很难在一个图中正确地绘制三个偏差。 我想知道您是否会为我提供任何有关如何修改“ matplot”部分的建议。也许问题就在那里?非常感谢你!

n <- 1000
theta <- 9
x <- runif(n, 0, theta)


theta.hat.mme <-2*mean(x)
theta.hat.G <-(n*theta)/(n+1)
theta.hat.H <-((n+1)/n)*theta.hat.G 

# theta.hat.G is the max of (x_1, x_2,...,x_n) be an estimator of theta, and theta.hat.H is the modified estimator of theta.hat.G to make it unbiased.

#   Empirical Exploration of properties

M   <- 1000   # Number of sample of size n
L   <- 9     # Different values of n
# create storage variables
mme <- numeric(M) 
vn <- numeric(L)
bias <- variance <- matrix(0, nrow=L, ncol=3)

for(l in 1:L)
{
  n <- 20 + (l-1)*10  
  for(m in 1:M)
  {
    x      <- runif(n, 0, theta)

    mme[m] <-  2*mean(x)          
  }  

  bias[l,1] <- mean(mme)-theta
  bias[1,2] <-mean(theta.hat.G)-theta
  bias[1,3] <-mean(theta.hat.H)-theta

  variance[l,1] <- var(mme) 
  variance[1,2] <-var(theta.hat.G)
  variance[1,3] <-var(theta.hat.H)
  vn[l] <- n 
}        

#windows(5,5)
matplot(vn, bias, type='l', col=1:3, lty=1:3, xlab='n')
abline(h=0, lty=3)
legend('topright', col=1:3,
       c('Method of Moments Estimator', 'Theta G', 'Theta H'),
       inset=0.01, lty=1:2)

0 个答案:

没有答案