Я пытаюсь извлечь др aws из модели Стэна. Файл stan выглядит следующим образом:
data {
int<lower=0> N;
int<lower=0, upper=1> obs_data[N];
}
parameters {
real<lower=0, upper=1> lambda;
}
model {
target += uniform_lpdf(lambda | 0,1);
for (n in 1:N) {
target += bernoulli_logit_lpmf(obs_data[n] | lambda);
}
}
Я использую cmdstanR для компиляции и выборки из модели.
dl <- list(N = 10, obs_data = c(1,0,1,1,1,0,0,1,1,1))
mod <- cmdstan_model("model.stan") // file pasted above
fit <- mod$sample(data, data = dl, num_chains = 4, num_cores = 4)
Полученные объекты подгонки выглядят следующим образом:
> fit$draws()
, , variable = lambda
chain
iteration 1 2 3 4
1 0.419819000 0.85642500 0.319154000 0.73338700
2 0.807612000 0.78189500 0.737518000 0.73338700
3 0.609196000 0.65826000 0.601450000 0.37992200
4 0.390631000 0.84544000 0.601450000 0.17992400
Из объекта fit, который является объектом R6, я хочу получить только значения переменных рисования. как мне это сделать?
На основе последующего комментария я добавляю дополнительную информацию о внутренней структуре объекта R6 для большей ясности:
> str(fit$draws())
'draws_array' num [1:1000, 1:4, 1:2] 0.42 0.808 0.609 0.391 0.391 ...
- attr(*, "dimnames")=List of 3
..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
..$ chain : chr [1:4] "1" "2" "3" "4"
..$ variable : chr [1:2] "lambda" "lp__"