Установка длинного вектора сводной статистики в пакете easyABC R

Я запускаю моделирование на основе R с помощью easyABC.

Эти симуляции связаны с несколькими различными программами (dadi, SPLATCHE3 – демографический симулятор) через входной скрипт, все из которых не вызывают ошибок и создают правильные выходные файлы. Он содержит 4 человека для моделирования.

В рамках алгоритма отклонения easyABC я должен установить векторную априорную сводную статистику, чтобы алгоритм проверял свои собственные результаты. В игрушечных моделях я установил 4 сводных статистики, по одной для каждого индивидуума, то есть:

sum_stat_obs = c(8, 8, 6, 4)

Теперь для реальной модели я хочу установить вектор сводной статистики, который намного длиннее (выбранная сводная статистика – это частотный спектр сайта), то есть:

sum_stat_obs = c(0.002,0.0003,0.000566,0.007,0.0002,0.0005,0.0002,0.0005,0.0007,0.0008,0.0009,0.0005,0.0003,0.0005,0.00022,0.00055,0.000099)

Однако, когда я запускаю команду:

abc_sim2 = ABC_rejection(
  model = binary_model('~/run_sim4.sh'),
  prior = prior, #the model priors
  nb_simul = 13000, #number of simulations
  summary_stat_target = sum_stat_obs, #summary statistics
  tol = 0.5 #how many simulations should be saved
# verbose = T
)

Он запускает моделирование, доходит до конца, сколько я запускал, и выдает ошибку:

Error in abc(summary_stat_target, rejection$param, rejection$stats, tol,  : 
  
Number of summary statistics in 'target' has to be the same as in 'sumstat'

Когда я переключил его обратно на 4 sum_stat_obs, эта ошибка не возникла, поэтому я думаю, что она связана с целевым количеством смоделированных особей. Аргумент target недоступен в приведенной выше команде.

Кроме того, в этой ошибке вызывается пакет abc, даже если он не был вызван в исходной команде. Однако пакеты easyABC и abc можно использовать вместе друг с другом.

Есть ли способ обойти эту ошибку, чтобы я мог иметь более длинный вектор sum_stat_obs БЕЗ увеличения количества смоделированных особей?

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *