graph LR
Application_Orchestrator["Application Orchestrator"]
Data_Manager_Simulator["Data Manager & Simulator"]
Matching_Algorithms["Matching Algorithms"]
Feature_Transformer["Feature Transformer"]
Balance_Evaluator["Balance Evaluator"]
Results_Visualizer["Results Visualizer"]
Application_Orchestrator -- "manages workflow for" --> Data_Manager_Simulator
Application_Orchestrator -- "initiates execution of" --> Matching_Algorithms
Data_Manager_Simulator -- "provides raw data to" --> Feature_Transformer
Data_Manager_Simulator -- "provides raw data to" --> Results_Visualizer
Feature_Transformer -- "transforms data from" --> Data_Manager_Simulator
Feature_Transformer -- "supplies processed data to" --> Matching_Algorithms
Feature_Transformer -- "supplies processed data to" --> Balance_Evaluator
Matching_Algorithms -- "consumes processed data from" --> Feature_Transformer
Matching_Algorithms -- "requests evaluation from" --> Balance_Evaluator
Matching_Algorithms -- "generates outcomes for" --> Results_Visualizer
Balance_Evaluator -- "evaluates processed data from" --> Feature_Transformer
Balance_Evaluator -- "provides metrics to" --> Matching_Algorithms
Results_Visualizer -- "displays raw data from" --> Data_Manager_Simulator
Results_Visualizer -- "displays outcomes from" --> Matching_Algorithms
Results_Visualizer -- "displays metrics from" --> Balance_Evaluator
click Application_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pybalance/Application Orchestrator.md" "Details"
click Data_Manager_Simulator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pybalance/Data Manager & Simulator.md" "Details"
click Matching_Algorithms href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pybalance/Matching Algorithms.md" "Details"
click Feature_Transformer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pybalance/Feature Transformer.md" "Details"
click Balance_Evaluator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pybalance/Balance Evaluator.md" "Details"
click Results_Visualizer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pybalance/Results Visualizer.md" "Details"
This graph illustrates the high-level architecture of the pybalance project, a library designed for causal inference matching. It depicts the primary components involved in data handling, feature transformation, various matching algorithms, balance evaluation, and result visualization, all orchestrated by a central application flow.
The central control unit, responsible for initiating the application's workflow, managing data flow, and coordinating the execution of matching, balance calculation, and visualization processes.
Related Classes/Methods:
pybalance.bin.main(full file reference)
Handles all aspects of data, including loading, splitting, and managing datasets. It also provides functionalities for generating synthetic data for testing and simulation.
Related Classes/Methods:
pybalance.pybalance.sim.rng.multivariate_truncnorm(33:49)pybalance.pybalance.sim.rng.generate_random_feature_data_rct(74:118)pybalance.pybalance.sim.rng.generate_random_feature_data_rwd(121:166)pybalance.pybalance.sim.rng.generate_toy_dataset(169:183)pybalance.pybalance.sim.rng.load_paper_dataset(198:204)pybalance.utils.matching_data.MatchingData(101:367)pybalance.utils.matching_data.split_target_pool(370:418)pybalance.utils.matching_data._load_matching_data(91:98)pybalance.pybalance.utils.matching_data.infer_matching_headers(36:72)pybalance.pybalance.utils.matching_data.MatchingHeaders(12:33)pybalance.pybalance.utils.matching_data._make_quantile_function(75:88)
Contains the core logic for various matching strategies (Propensity Score, Linear Programming, Genetic Algorithm). It processes data to find optimal matches and relies on balance metrics for optimization.
Related Classes/Methods:
pybalance.propensity.matcher.PropensityScoreMatcher(36:269)pybalance.propensity.matcher.plot_propensity_score_match_distributions(368:431)pybalance.propensity.matcher.plot_propensity_score_match_pairs(434:453)pybalance.pybalance.propensity.matcher.propensity_score_match(320:365)pybalance.pybalance.propensity.matcher.propensity_score_match_greedy_prio(297:310)pybalance.pybalance.propensity.matcher.propensity_score_match_linear_sum_assignment(313:317)pybalance.pybalance.propensity.matcher._check_fitted(31:33)pybalance.lp.matcher.ConstraintSatisfactionMatcher(148:637)pybalance.pybalance.lp.matcher._rescale_for_discretization(31:72)pybalance.pybalance.lp.matcher.compute_truncation_error(27:28)pybalance.pybalance.lp.matcher.SolutionPrinter(75:145)pybalance.pybalance.lp.matcher._check_fitted(22:24)pybalance.genetic.matcher.GeneticMatcher(79:387)pybalance.pybalance.genetic.matcher.get_global_defaults(30:76)pybalance.genetic.initialization.GeneticMatcherInitializer(14:175)pybalance.genetic.logger.BasicLogger(10:76)
Provides a suite of tools for preprocessing raw data features into suitable formats for downstream components, including encoding, binning, and cross-term generation.
Related Classes/Methods:
pybalance.utils.preprocess.BaseMatchingPreprocessor(26:141)pybalance.utils.preprocess.StandardMatchingPreprocessor(603:616)pybalance.pybalance.utils.preprocess.FloatEncoder(144:196)pybalance.pybalance.utils.preprocess.CategoricOneHotEncoder(199:278)pybalance.utils.preprocess.GammaPreprocessor(619:637)pybalance.pybalance.utils.preprocess.NumericBinsEncoder(281:405)pybalance.pybalance.utils.preprocess.BetaXPreprocessor(640:656)pybalance.pybalance.utils.preprocess.CrossTermsPreprocessor(408:500)pybalance.pybalance.utils.preprocess.GammaXPreprocessor(659:681)pybalance.pybalance.utils.preprocess.DecisionTreeEncoder(503:567)pybalance.utils.preprocess.ChainPreprocessor(570:600)
Implements various metrics to quantify the balance and similarity between matched populations, crucial for assessing matching quality and guiding iterative algorithms.
Related Classes/Methods:
pybalance.utils.balance_calculators.BaseBalanceCalculator(74:322)pybalance.pybalance.utils.balance_calculators.BatchedBalanceCaclulator(643:716)pybalance.pybalance.utils.balance_calculators._get_batch_size(618:640)pybalance.pybalance.utils.balance_calculators.map_input_output_weights(24:61)pybalance.utils.balance_calculators.BalanceCalculator(736:759)pybalance.pybalance.utils.balance_calculators.BetaBalance(325:352)pybalance.pybalance.utils.balance_calculators.BetaSquaredBalance(355:382)pybalance.pybalance.utils.balance_calculators.BetaXBalance(385:414)pybalance.pybalance.utils.balance_calculators.BetaXSquaredBalance(417:444)pybalance.pybalance.utils.balance_calculators.BetaMaxBalance(447:488)pybalance.pybalance.utils.balance_calculators.GammaBalance(491:522)pybalance.pybalance.utils.balance_calculators.GammaSquaredBalance(525:554)pybalance.pybalance.utils.balance_calculators.GammaXBalance(557:592)pybalance.pybalance.utils.balance_calculators.GammaXTreeBalance(595:615)
Generates graphical representations of data characteristics, matching outcomes, and the historical progression of balance metrics for analysis and reporting.
Related Classes/Methods:
pybalance.pybalance.visualization.distributions.plot_categoric_features(88:138)pybalance.pybalance.visualization.distributions.plot_numeric_features(141:183)pybalance.pybalance.visualization.distributions.plot_binary_features(186:384)pybalance.pybalance.visualization.distributions.plot_per_feature_loss(387:503)pybalance.pybalance.visualization.distributions.plot_joint_numeric_categoric_distributions(506:557)pybalance.pybalance.visualization.distributions.plot_joint_numeric_distributions(560:597)pybalance.pybalance.visualization.distributions._get_reference_population(28:49)pybalance.pybalance.visualization.distributions._get_default_hue_order(24:25)pybalance.pybalance.visualization.distributions._plot_1d_marginals(65:85)pybalance.pybalance.visualization.distributions._debin_features(52:62)pybalance.pybalance.visualization.history.plot_history_of_beta_and_gamma(21:29)pybalance.pybalance.visualization.history.plot_density_history_of_metric(32:55)pybalance.pybalance.visualization.history.plot_convergence(58:75)pybalance.pybalance.visualization.history.get_n_colors(14:18)