Docs
Loading...
Searching...
No Matches
BinaryCovariatesModule Class Reference

Module for binary covariate-related computations within clustering processes. More...

#include <binary_covariate_module.hpp>

Inheritance diagram for BinaryCovariatesModule:
Module

Public Member Functions

 BinaryCovariatesModule (const Data &data_, const Eigen::VectorXi binary_covariate, double beta_prior_alpha_, double beta_prior_beta_, const Eigen::VectorXi *old_alloc_provider=nullptr, const std::unordered_map< int, std::vector< int > > *old_cluster_members_provider_=nullptr)
 Constructor for BinaryCovariatesModule.
Similarity Computation Methods
double compute_similarity_cls (int cls_idx, bool old_allo=false) const override __attribute__((hot))
 Compute covariate similarity contribution for a cluster.
double compute_similarity_obs (int obs_idx, int cls_idx) const override __attribute__((hot))
 Compute covariate similarity for a single observation in a cluster.
Eigen::VectorXd compute_similarity_obs (int obs_idx) const override __attribute__((hot))
 Compute covariate similarity contributions for all existing clusters.
Public Member Functions inherited from Module
 Module (const Eigen::VectorXi *old_allocations_provider_=nullptr, const std::unordered_map< int, std::vector< int > > *old_cluster_members_provider_=nullptr)
void set_old_allocations_provider (const Eigen::VectorXi *provider)
void set_old_cluster_members_provider (const std::unordered_map< int, std::vector< int > > *provider)
virtual ~Module ()=default

Protected Attributes

Module References
const double beta_prior_alpha = 1.0
const double beta_prior_beta = 1.0
const Datadata
 Reference to data object with cluster assignments.
const Eigen::VectorXi binary_covariate_data
Precomputed Values
const double log_beta_prior
Protected Attributes inherited from Module
const Eigen::VectorXi * old_allocations_provider
 Provider function for accessing old allocation state.
const std::unordered_map< int, std::vector< int > > * old_cluster_members_provider
 Provider function for accessing old cluster members map.

Detailed Description

Module for binary covariate-related computations within clustering processes.

This class implements covariate-related computations for clustering processes where covariates are binary (0/1). It computes similarity measures based on the distribution of binary covariates within clusters using a Beta-Binomial model.

alpha is associated with the number of successes (1s) and beta with the number of failures (0s).

Constructor & Destructor Documentation

◆ BinaryCovariatesModule()

BinaryCovariatesModule::BinaryCovariatesModule ( const Data & data_,
const Eigen::VectorXi binary_covariate,
double beta_prior_alpha_,
double beta_prior_beta_,
const Eigen::VectorXi * old_alloc_provider = nullptr,
const std::unordered_map< int, std::vector< int > > * old_cluster_members_provider_ = nullptr )
inline

Constructor for BinaryCovariatesModule.

Parameters
data_Reference to data object with cluster assignments
binary_covariateCovariate values (1D vector of 0s and 1s)
beta_prior_alpha_Prior alpha parameter for Beta-Binomial model
beta_prior_beta_Prior beta parameter for Beta-Binomial model
old_alloc_providerOptional pointer to old allocations for split-merge moves
old_cluster_members_provider_Optional pointer to old cluster members for split-merge moves

Member Function Documentation

◆ compute_similarity_cls()

double BinaryCovariatesModule::compute_similarity_cls ( int cls_idx,
bool old_allo = false ) const
overridevirtual

Compute covariate similarity contribution for a cluster.

Computes the log marginal likelihood of the covariates within a cluster under the Beta-Binomial conjugate model. Higher values indicate that observations in the cluster have similar covariate values. ...

The computation follows Müller et al. (2011):

  1. Count successes (1s) and failures (0s)
  2. Compute log marginal likelihood using log-gamma functions

Implements Module.

◆ compute_similarity_obs() [1/2]

Eigen::VectorXd BinaryCovariatesModule::compute_similarity_obs ( int obs_idx) const
overridevirtual

Compute covariate similarity contributions for all existing clusters.

Computes the predictive contributions for adding observation obs_idx to each existing cluster, considering covariate values.

Parameters
obs_idxIndex of the observation
Returns
Vector of log predictive density contributions for each cluster

Implements Module.

◆ compute_similarity_obs() [2/2]

double BinaryCovariatesModule::compute_similarity_obs ( int obs_idx,
int cls_idx ) const
overridevirtual

Compute covariate similarity for a single observation in a cluster.

Computes the predictive contribution when adding observation obs_idx to cluster cls_idx, considering the covariate values.

Parameters
obs_idxIndex of the observation
cls_idxIndex of the cluster
Returns
Log predictive density contribution

Used in Gibbs sampling to compute the probability of assigning an observation to a cluster based on covariate similarity.

Implements Module.

Member Data Documentation

◆ beta_prior_alpha

const double BinaryCovariatesModule::beta_prior_alpha = 1.0
protected

Prior alpha parameter for Beta-Binomial model

◆ beta_prior_beta

const double BinaryCovariatesModule::beta_prior_beta = 1.0
protected

Prior beta parameter for Beta-Binomial model

◆ binary_covariate_data

const Eigen::VectorXi BinaryCovariatesModule::binary_covariate_data
protected

Binary covariate values for observations

◆ data

const Data& BinaryCovariatesModule::data
protected

Reference to data object with cluster assignments.

◆ log_beta_prior

const double BinaryCovariatesModule::log_beta_prior
protected
Initial value:
=
std::lgamma(beta_prior_alpha) + std::lgamma(beta_prior_beta) -
const double beta_prior_beta
Definition binary_covariate_module.hpp:29
const double beta_prior_alpha
Definition binary_covariate_module.hpp:28

Log Beta function for prior parameters


The documentation for this class was generated from the following files: