I want to develop stan(rstan) code for weibull distribution. With input data:

- tStart_Exposure
- tEnd_Exposure
- tSymptom_Onset.

I didn’t develop issue with ffiting a Weibull distribuiton.

I refer to from Wiki Weibull distribution - Wikipedia

Please teach me how to write with this problem…

We did this actually in one of our earlier works: Jupyter Notebook Viewer - please see Weibull distribution (EL and ER are your exposure times, SL and SR are the onsets). The code is there, but, excuse me, I don’t have time to teach somebody.

ps: source on github

1 Like

Other way, I wrote in here,

#
Weibull Distribution

"data {

int<lower = 1> N; // number of records

vector<lower = 0>[N] EL;

vector<lower = 0>[N] ER;

vector<lower = 0>[N] SL;

vector<lower = 0>[N] SR;

}

parameters {

real<lower = 0> alphaW; // Shape parameter of weibull distributed incubation period

real<lower = 0> sigmaW; // Scale parameter of weibull distributed incubation period

vector<lower = 0, upper = 1>[N] uE_W; // Uniform value for sampling between start and end exposure

vector<lower = 0, upper = 1>[N] uS_W; // Uniform value for sampling between early and late symptom

}

transformed parameters{

vector[N] tE_W; // moment of infection

tE_W = EL + uE_W .* (ER - EL);

tS_W = SL + uS_W .* (SR - SL);

}

model{

// Contribution to likelihood of incubation period

target += weibull_lpdf(tS_W - tE_W | alphaInc, sigmaInc);

}

generated quantities {

// likelihood for calculation of looIC

vector[N] log_lik;

int k =1;

while (k < N+1) {

log_lik[k] = weibull_lpdf(tS_W[k] - tE_W[k] | alphaW, sigmaW);

k = k+1;

}

}

"

Please help me