Я хочу построить стандартный (rstan) код для анализа выживания с использованием распределения Вейбулла.
Но мой стандартный код не всегда работает.
Если кто-нибудь знает, как справиться с моей проблемой, пожалуйста, научите меня.
Мои данные такие
Движение: (время, которое заняло поведение oranisum)
Лечить: экспериментальный клад, имеющий две категориальные переменные «А», «В»
r_Day: случайные эффекты, учитывающие специфичные для дня эффекты
А мой код станка такой, как показано ниже.
data {
int N; // all data
int D; // day
int <lower = 0, upper = 1> Treat[N];
int <lower = 0> Movment[N];
int <lower = 1, upper = D> Day[N];
}
parameters {
real <lower = 0> shape; // shape parameter
vector[2] beta;
real r_Day[D];
real <lower = 0> sigma_D;
}
transformed parameters{
vector[N] scale; // scale parameter
for(n in 1:N) scale[n] = beta[1] + beta[2]*Treat[n] + r_Day[Day[n]];
}
model {
for(n in 1:N) Movment[n] ~ weibull(shape, exp(-(scale[n]/shape))) ;
for (d in 1:D) r_Day[d] ~ normal(0, sigma_D);
}
Но этот код всегда выдает ошибку "Вероятность логарифма оценивается как лог (0), то есть отрицательная бесконечность.
Стэн не может начать выборку с этого начального значения.
Отклонение начального значения: «и выборки прекращаются.
Пожалуйста, научите меня, как бороться с этими ошибками.