Finding the exact percentile

Hi. I am trying to where in the predictive distribution our observation is. We have 13 observations and 13 predictive distributions. We know the value of each observation, but we want to find which percentile that specific value has for each observation. How can I find with r code the percentile of a specific value? And how can I implement it into my for loop.

kva_val95 <- numeric(length(y))
kva_val5 <- numeric(length(y))
rmse_val <- numeric(length(y))
for(i in 1:length(x1)){
  x1_new <- x1[i]
  x1_loo <- x1[-i]
  x2_new <- x2[i]
  x2_loo <- x2[-i]
  y_loo <- y[-i]
  stan_data <- list(N = length(y_loo), x1 = x1_loo, x1_new = x1_new, x2 = x2_loo, x2_new = x2_new, y = y_loo, nu = nu)
  
  # Modell
  mod <- stan(file = "stan_model1.stan", data = stan_data)
  # Get predictive distribution
  y_pred <- extract(object = mod, pars = "y_new")$y_new
  
  E_predicted <- mean(y_pred)
  
  # RMSE
  rmse_val[i] <- (E_predicted - y[i])^2
  
  #Percentiler
  kva_val5[i] <- quantile(y_pred, probs = 0.05)
  kva_val95[i] <- quantile(y_pred, probs = 0.95)
  
  
}

Appreciate if someone have any input on this issue.

1 Like

Hi,

so, you have 13 obs → let’s consider ith obs → obs_i

Do you want to find what quantile obs_i is against the predictive distribution for obs_i (pred_i)? I think ecdf works for this

ecdf(y_pred_i)(obs_i)
1 Like