|
|
|
@ -44,14 +44,10 @@ TTest internal_t_test(auto& first, auto& second) { |
|
|
|
double den = (std::pow(var1 / n1, 2) / (n1 - 1)) + (std::pow(var2 / n2, 2) / (n2 - 1)); |
|
|
|
double den = (std::pow(var1 / n1, 2) / (n1 - 1)) + (std::pow(var2 / n2, 2) / (n2 - 1)); |
|
|
|
double dof = num / den; |
|
|
|
double dof = num / den; |
|
|
|
|
|
|
|
|
|
|
|
// welch calculation
|
|
|
|
|
|
|
|
double temp = first.sample_variance() / first.n + second.sample_variance() / second.n; |
|
|
|
|
|
|
|
double welchs = (first.mean() - second.mean()) / std::sqrt(temp); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double gamm = std::exp( |
|
|
|
double gamm = std::exp( |
|
|
|
std::lgamma(dof / 2.0) + std::lgamma(0.5) |
|
|
|
std::lgamma(dof / 2.0) + std::lgamma(0.5) |
|
|
|
- std::lgamma(dof / 2.0 + 0.5)); |
|
|
|
- std::lgamma(dof / 2.0 + 0.5)); |
|
|
|
double b = dof / ( welchs * welchs + dof); |
|
|
|
double b = dof / (t_stat * t_stat + dof); |
|
|
|
|
|
|
|
|
|
|
|
auto func = [&](const double r) { |
|
|
|
auto func = [&](const double r) { |
|
|
|
return std::pow(r, dof / 2.0 - 1.0) / std::sqrt(1.0 - r); |
|
|
|
return std::pow(r, dof / 2.0 - 1.0) / std::sqrt(1.0 - r); |
|
|
|
|