I'm trying to estimate distribution parameters with Maximum Likelihood Estimator (MLE) and Jackknife estimator based on it. The estimation statistic is mean. Jackknife estimator is considered to be better than MLE, but somehow I get the same numbers. What am I doing wrong? I'm using the following R code:

# Function to return sample mean as estimator
MME_estimate_lambda <- function(vec){

# Function to perform Jackknife estimation
Jacknife_estimate_lambda <- function(vec){
    n <- length(vec)
    estimators <- sapply(seq(n),function(i) MME_estimate_lambda(vec[-i]))
    return(n*MME_estimate_lambda(vec) - (n-1)*sum(estimators)/n)

mysample <- rexp(50,1) # sample from Exponential distribution
Jacknife_estimate_lambda(mysample) # Both estimators are the same

You are not doing anything wrong, the are suppossed to give the same number (in this simple setting):

# the true mean of y is 0
y <- rnorm(1000)

# The MLE estimator is simply the sample mean:
MLE <- mean(y)

# The Jackknife estimator is:  
JKE <- mean(jackknife(y, mean)$jack.values)

# Both estimator's results in:
# 0.009662955
# Exatcly the same number.

# However the estimated standard error is different:
JKE_se <- jackknife(y, mean)$jack.se
# 0.0307548
MLE_se <- sqrt(var(y) * (length(y)-1) * 1/length(y))
# 0.9725519

Oops! The estimated sd for the jackknife is way off. There is general lesson here, provided you are willing to asumme the distributional assumptions imposed by MLE you cannot do any better. The nice thing about the jackknife, and orther resample methods, is that they do not impose such rigorous assumptions.

Of course today, with modern computers, there isnt really a reason to rely on the jackknife, instead you would almost always be better of using a simple bootstrap - because you learn something about the sampling distribution.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.