Я конвертирую некоторые Код SAS в C ++, но в настоящее время застрял на том, как рассчитать единица вероятности функция.
Я думаю, что я нашел формулу пробит (http://en.wikipedia.org/wiki/Probit) но мои статистические знания немного ржавые. Поэтому в основном мне нужен кто-то, чтобы преобразовать это в C ++ или сказать, есть ли такой же метод под другим именем.
Используя математическую библиотеку наддува и определение пробита, которое вы нашли в статье в википедии, я придумал следующее. Никаких гарантий здесь 🙂
#include <boost/math/special_functions/erf.hpp>
namespace bm = boost::math;
template<typename T>
T probit(T p)
{
T root_2 = sqrt(2);
return root_2 * bm::erf_inv(2*p-1);
}
int main()
{
double val = 0.9;
double res = probit(val);
}
Других решений пока нет …