我正在将一些SAS 代码转换为 C++,但目前停留在如何计算概率函数上。
我相信我已经找到了概率公式(http://en.wikipedia.org/wiki/Probit),但我的统计知识有点生疏。所以基本上我需要有人将它转换为 C++,或者告诉我是否有相同的方法在另一个名称下。
我正在将一些SAS 代码转换为 C++,但目前停留在如何计算概率函数上。
我相信我已经找到了概率公式(http://en.wikipedia.org/wiki/Probit),但我的统计知识有点生疏。所以基本上我需要有人将它转换为 C++,或者告诉我是否有相同的方法在另一个名称下。
使用 boost 数学库和你在维基百科文章中找到的概率定义,我想出了以下内容。这里没有保证:-)
#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);
}