Error when fitting a Bernoulli logit model with weights

Hi everyone,

I am trying to fit a weighted logistic regression model (using weights as the survey weights).


My code is as follows. Here w corresponds to the weights:

data {
  int<lower=1> N;
  int<lower=1> K1; 
  int<lower=0,upper=1> y1[N];
  matrix[N,K1] x1;
  real w[N];
  
}

parameters {
   real alpha1;
   vector[K1] beta1;
   
}

model {
  
  beta1 ~ normal(0, 5);
    alpha1 ~ normal(0, 5);

   for (k in 1:N)
  target+=  w[k]*bernoulli_logit_glm_lpmf(y1[k]|x1,alpha1,beta1);
}

However, I am getting the following error:

SYNTAX ERROR, MESSAGE(S) FROM PARSER:
No matches for:

bernoulli_logit_glm_lpmf(int, matrix, real, vector)

Available argument signatures for bernoulli_logit_glm_lpmf:

bernoulli_logit_glm_lpmf(int[ ], matrix, real, vector)
bernoulli_logit_glm_lpmf(int[ ], matrix, vector, vector)

It seems there is a problem of how I define parameters inside the bernoulli_logit_glm_lpmf and I couldn’t figure it out by myself.
Can somebody help me to figure this out?

Thank you.

The issue is that this signature for bernoulli_logit_glm_lpmf is not available in rstan, since rstan is a couple of stan versions behind. I can compile your model without issue using the cmdstanR package: https://mc-stan.org/cmdstanr/

1 Like