Dear all,
I am sorry for giving reference to Claude AI in advance, but it was flagged by it recently.
transformed data { real y = 0.865169; }
generated quantities {
real lccdf = beta_lccdf(y | 1, 19); // -inf
real truth = 19 * log1m(y); // -38.0709
}
Analytically that's beta_lccdf(y | 1, 19) = 19·log1m(x) = −38.07, entirely finite. Stan evaluates it as log(1 − inc_beta(...)), and (1−0.865)^19 = 3e-17 vanishes against 1.0 in double precision, so it returns log(0), which leads to initialization error.
Technically, I have also had similar problems working with log_diff_exp for _lcdf. So I replaced it with log(CDF1 - CDF2) and it worked quite fine.
Sorry if I disturbed you without a good reason in advance.
Best wishes,
Andrei
Dear all,
I am sorry for giving reference to Claude AI in advance, but it was flagged by it recently.
Analytically that's
beta_lccdf(y | 1, 19) = 19·log1m(x) = −38.07, entirely finite. Stan evaluates it aslog(1 − inc_beta(...)), and(1−0.865)^19 = 3e-17vanishes against 1.0 in double precision, so it returnslog(0), which leads to initialization error.Technically, I have also had similar problems working with
log_diff_expfor_lcdf. So I replaced it withlog(CDF1 - CDF2)and it worked quite fine.Sorry if I disturbed you without a good reason in advance.
Best wishes,
Andrei