0

I am trying to write a loop for pulling residuals after fitting a multilevel model using rstan. However, one of the variables is contained within `` and I don't think the loop is able to go through this:

For example, this works:

# pull residuals 
strata_residuals = extract(model, pars = paste("b[", 1:16, "]", sep=""))
summary_residuals <- matrix(0, nrow = n_strata, ncol = 3)
summary_residuals[1,] = quantile(strata_residuals$`b[1]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[2,] = quantile(strata_residuals$`b[2]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[3,] = quantile(strata_residuals$`b[3]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[4,] = quantile(strata_residuals$`b[4]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[5,] = quantile(strata_residuals$`b[5]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[6,] = quantile(strata_residuals$`b[6]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[7,] = quantile(strata_residuals$`b[7]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[8,] = quantile(strata_residuals$`b[8]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[9,] = quantile(strata_residuals$`b[9]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[10,] = quantile(strata_residuals$`b[10]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[11,] = quantile(strata_residuals$`b[11]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[12,] = quantile(strata_residuals$`b[12]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[13,] = quantile(strata_residuals$`b[13]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[14,] = quantile(strata_residuals$`b[14]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[15,] = quantile(strata_residuals$`b[15]`, prob = c(0.5, 0.025, 0.975))
summary_residuals[16,] = quantile(strata_residuals$`b[16]`, prob = c(0.5, 0.025, 0.975))
colnames(summary_residuals) = c("Med", "LCI", "UCI")
summary_residuals

However, this does not:

# pull residuals 
strata_residuals = extract(model, pars = paste("b[", 1:16, "]", sep=""))
summary_residuals <- matrix(0, nrow = n_strata, ncol = 3)
for(i in 1:n_strata){
  summary_residuals[i,] = quantile(strata_residuals$`b[i]`, prob = c(0.5, 0.025, 0.975))
}
colnames(summary_residuals) = c("Med", "LCI", "UCI")
summary_residuals

Any help is appreciated!

PotterFan
  • 3
  • 1
  • 3

0 Answers0