Вызов GetGUIThreadInfo через P/Invoke

Значения, которые генерирует BLOG, представляют собой точечные оценки после генерации случайных выборок из условной вероятностной графической модели с использованием алгоритма взвешивания правдоподобия (LWA). Отличия от аналитических значений в примере поста, вероятно, связаны с шумом от процесса случайной выборки.

Что может сбивать с толку, так это то, что BLOG по умолчанию инициализирует генератор случайных чисел с тем же фиксированным начальным числом, и поэтому результаты вводятся в заблуждение, как будто они детерминированы. Если вы добавите флаг --randomize к вызову run, вы увидите результаты использования других случайных начальных чисел.

Я не знаю теоретических свойств LWA (например, насколько сильно он ограничивает задние средние), но, по крайней мере, для наивной схемы генеративной выборки, средства, которые вы генерируете, находятся в пределах 95% ДИ. Вот пример Python, имитирующий 1000 прогонов 10K выборок.

import numpy as np
from scipy.stats import binom

np.random.seed(2019)

N, K = 10000, 1000
tp = np.empty(K)

for i in range(K):
    t = binom(n=N, p=0.01).rvs()
    f = N - t
    detect_t = binom(n=t, p=0.800).rvs()
    detect_f = binom(n=f, p=0.096).rvs()
    tp[i] = detect_t / (detect_f + detect_t)

np.quantile(tp, [0.025, 0.5, 0.975])
# array([0.06177242, 0.07714902, 0.09462359])
13
задан Joe White 7 April 2009 в 01:01
поделиться

1 ответ

Я не посмотрел на него слишком тесно, но одна вещь выскакивает. В Вашем вызове GetGUIThreadInfo Вы проходите мимо структуры GUIThreadInfo касательно, но Вы определили его как класс, таким образом, Вы отправляете ссылку касательно, другими словами, указатель на указатель. Или измените свой GUIThreadInfo на структуру или удалите касательно на параметре и добавьте [В] атрибуты.

5
ответ дан 2 December 2019 в 02:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: