statcpp
C++17 Header-Only Statistics Library
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
power_analysis.hpp File Reference

Power analysis implementation. More...

#include "statcpp/special_functions.hpp"
#include "statcpp/continuous_distributions.hpp"
#include "statcpp/parametric_tests.hpp"
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <stdexcept>
#include <string>
Include dependency graph for power_analysis.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  statcpp::power_result
 Power analysis result. More...
 

Namespaces

namespace  statcpp
 
namespace  statcpp::detail
 Internal helper functions.
 

Functions

double statcpp::detail::noncentrality_parameter_t (double effect_size, double n)
 Calculate noncentrality parameter for t-distribution.
 
double statcpp::detail::noncentrality_parameter_t_two_sample (double effect_size, double n1, double n2)
 Calculate noncentrality parameter for two-sample case.
 
double statcpp::detail::critical_t_two_sided (double alpha, double df)
 Calculate critical value for two-sided t-test.
 
double statcpp::detail::critical_t_one_sided (double alpha, double df)
 Calculate critical value for one-sided t-test.
 
double statcpp::detail::critical_z_two_sided (double alpha)
 Calculate critical value for two-sided normal test.
 
double statcpp::detail::critical_z_one_sided (double alpha)
 Calculate critical value for one-sided normal test.
 
const char * statcpp::detail::alternative_to_string (alternative_hypothesis alt)
 Convert alternative_hypothesis enum to string.
 
double statcpp::power_t_test_one_sample (double effect_size, std::size_t n, double alpha=0.05, const std::string &alternative="two.sided")
 Calculate power for one-sample t-test.
 
std::size_t statcpp::sample_size_t_test_one_sample (double effect_size, double power=0.80, double alpha=0.05, const std::string &alternative="two.sided")
 Calculate required sample size for one-sample t-test.
 
double statcpp::power_t_test_two_sample (double effect_size, std::size_t n1, std::size_t n2, double alpha=0.05, const std::string &alternative="two.sided")
 Calculate power for two-sample t-test.
 
std::size_t statcpp::sample_size_t_test_two_sample (double effect_size, double power=0.80, double alpha=0.05, double ratio=1.0, const std::string &alternative="two.sided")
 Calculate required sample size for two-sample t-test (per group)
 
double statcpp::power_prop_test (double p1, double p2, std::size_t n, double alpha=0.05, const std::string &alternative="two.sided")
 Calculate power for two-sample proportion test.
 
std::size_t statcpp::sample_size_prop_test (double p1, double p2, double power=0.80, double alpha=0.05, const std::string &alternative="two.sided")
 Calculate required sample size for two-sample proportion test.
 
power_result statcpp::power_analysis_t_one_sample (double effect_size, std::size_t n, double alpha=0.05, const std::string &alternative="two.sided")
 Power analysis for one-sample t-test (calculate power)
 
power_result statcpp::power_analysis_t_one_sample_n (double effect_size, double power=0.80, double alpha=0.05, const std::string &alternative="two.sided")
 Power analysis for one-sample t-test (calculate sample size)
 
double statcpp::power_t_test_one_sample (double effect_size, std::size_t n, double alpha, alternative_hypothesis alt)
 Calculate power for one-sample t-test (enum overload)
 
std::size_t statcpp::sample_size_t_test_one_sample (double effect_size, double power, double alpha, alternative_hypothesis alt)
 Calculate required sample size for one-sample t-test (enum overload)
 
double statcpp::power_t_test_two_sample (double effect_size, std::size_t n1, std::size_t n2, double alpha, alternative_hypothesis alt)
 Calculate power for two-sample t-test (enum overload)
 
std::size_t statcpp::sample_size_t_test_two_sample (double effect_size, double power, double alpha, double ratio, alternative_hypothesis alt)
 Calculate required sample size for two-sample t-test (enum overload)
 
double statcpp::power_prop_test (double p1, double p2, std::size_t n, double alpha, alternative_hypothesis alt)
 Calculate power for two-sample proportion test (enum overload)
 
std::size_t statcpp::sample_size_prop_test (double p1, double p2, double power, double alpha, alternative_hypothesis alt)
 Calculate required sample size for two-sample proportion test (enum overload)
 
power_result statcpp::power_analysis_t_one_sample (double effect_size, std::size_t n, double alpha, alternative_hypothesis alt)
 Power analysis for one-sample t-test (enum overload, returning struct)
 
power_result statcpp::power_analysis_t_one_sample_n (double effect_size, double power, double alpha, alternative_hypothesis alt)
 Power analysis for one-sample t-test, sample size (enum overload, returning struct)
 

Detailed Description

Power analysis implementation.

Provides power calculation and sample size determination for t-tests, proportion tests, and more.

Note
Implementation note (about normal distribution approximation): This implementation uses normal distribution approximation for t-test power calculations. Strictly speaking, the noncentral t-distribution should be used, but the normal approximation provides sufficient accuracy under the following conditions:
  • Large sample sizes (n > 30 approximately)
  • Medium or larger effect sizes

For small samples or small effect sizes, this approximation may slightly overestimate the power. For more precise calculations, consider using specialized software such as R's pwr package or G*Power.

Definition in file power_analysis.hpp.