I am trying to get the marginal effects, according to this post: http://andrewgelman.com/2016/01/14/rstanarm-and-more/
td <- readRDS("some data")
CHAINS <- 1
CORES <- 1
SEED <- 42
ITERATIONS <- 2000
MAX_TREEDEPTH <- 9
md <- td[,.(y,x1,x2)] # selection the columns i need. y is binary
glm1 <- stan_glm(y~x1+x2,
data = md,
family = binomial(link="logit"),
prior = NULL,
prior_intercept = NULL,
chains = CHAINS,
cores = CORES,
seed = SEED,
iter = ITERATIONS,
control=list(max_treedepth=MAX_TREEDEPTH)
)
# launch_shinystan(glm1)
tmp <- posterior_predict(glm1,newdata=md[,.(x1,x2)])
Issue
After running this code i get the following error:
I get an error that y
not found, which actually means that i also need to pass y
in the newdata
, which it shouldn't be the case according to ?posterior_predict
Reasoning
I need tmp <- posterior_predict(glm1,newdata=md[,.(x1,x2)])
because according to the post above (as far as i understand), in order to calculate the marginal effect of x1 (if i assume that x1 is binary) would be
temp <- md
temp[,x1:=0]
temp[,x2:=mean(x2)]
number_0 <- posterior_predict(glm1,newdata=temp)
temp <- md
temp[,x1:=1]
temp[,x2:=mean(x2)]
number_1 <- posterior_predict(glm1,newdata=temp)
marginal_effect_x1 <- number_1 - number_0