227 double m_ = 0,
double B_ = 1.0,
double v_ = 1.0,
double nu_ = 1.0,
double S0_ = 1.0,
228 const Eigen::VectorXi *old_alloc_provider = {},
229 const std::unordered_map<int, std::vector<int>> *old_cluster_members_provider_ = {})
231 Module(old_alloc_provider, old_cluster_members_provider_),
239 for (
int n = 0; n <= data_.
get_n(); ++n) {
244 for (
int n = 0; n <= data_.
get_n(); ++n) {
245 lgamma_nu_n.push_back(std::lgamma(
nu + 0.5 *
static_cast<double>(n)));
Data structure for managing point distances and cluster allocations.
Base class for modules used in processes.
Cache for spatial model with continuous covariates.
Definition continuos_cache.hpp:16
const double S0
Prior scale parameter for variance (NNIG).
Definition continuos_covariate_module_cache.hpp:48
const double nu
Prior shape parameter for variance (NNIG).
Definition continuos_covariate_module_cache.hpp:47
const double log_v
Log of observation variance.
Definition continuos_covariate_module_cache.hpp:199
const Data & data
Reference to data object with cluster assignments.
Definition continuos_covariate_module_cache.hpp:33
ContinuosCache::ClusterStats compute_cluster_statistics(const Eigen::Ref< const Eigen::VectorXi > obs) const
Compute cluster statistics for covariate similarity.
Definition continuos_covariate_module_cache.cpp:9
const double v
Observation variance for covariate.
Definition continuos_covariate_module_cache.hpp:46
std::vector< double > log_v_plus_nB
Cache for log(v_plus_nB) for NN.
Definition continuos_covariate_module_cache.hpp:206
ContinuosCovariatesModuleCache(const Data &data_, const ContinuosCache &continuos_cache_, bool fixed_v_, double m_=0, double B_=1.0, double v_=1.0, double nu_=1.0, double S0_=1.0, const Eigen::VectorXi *old_alloc_provider={}, const std::unordered_map< int, std::vector< int > > *old_cluster_members_provider_={})
Constructor for CovariatesModule.
Definition continuos_covariate_module_cache.hpp:226
double compute_similarity_obs(int obs_idx, int cls_idx) const __attribute__((hot))
Compute covariate similarity for a single observation in a cluster.
Definition continuos_covariate_module_cache.cpp:38
double compute_log_marginal_likelihood_NNIG(const ContinuosCache::ClusterStats &stats) const __attribute__((hot))
Compute log marginal likelihood for cluster given covariates.
Definition continuos_covariate_module_cache.cpp:66
const double B
Prior variance for covariate.
Definition continuos_covariate_module_cache.hpp:45
double compute_predictive_NNIG(const ContinuosCache::ClusterStats &stats, double covariate_val) const
Compute log predictive density for a new observation (NNIG model).
Definition continuos_covariate_module_cache.cpp:156
const double nu_logS0
ν log(S₀) for NNIG model (v ~ IG(ν, S₀))
Definition continuos_covariate_module_cache.hpp:204
std::vector< double > lgamma_nu_n
Cache for lgamma(nu_n) for NNIG.
Definition continuos_covariate_module_cache.hpp:207
const double m
Prior mean for covariate.
Definition continuos_covariate_module_cache.hpp:44
const double log_B
Log of prior variance.
Definition continuos_covariate_module_cache.hpp:198
double compute_log_marginal_likelihood(const ContinuosCache::ClusterStats &stats) const __attribute__((hot
Compute log marginal likelihood based on model type.
double compute_predictive_NN(const ContinuosCache::ClusterStats &stats, double covariate_val) const
Compute log predictive density for a new observation (Normal-Normal model).
Definition continuos_covariate_module_cache.cpp:139
double always_inline
Product of prior variance and observation variance.
Definition continuos_covariate_module_cache.hpp:164
double compute_similarity_cls(int cls_idx, bool old_allo=false) const
Compute covariate similarity contribution for a cluster.
Definition continuos_covariate_module_cache.cpp:23
const double lgamma_nu
log Gamma(ν) for NNIG model (v ~ IG(ν, S₀))
Definition continuos_covariate_module_cache.hpp:203
const bool fixed_v
Whether observation variance is fixed (NN) or random (NNIG).
Definition continuos_covariate_module_cache.hpp:43
double compute_log_marginal_likelihood_NN(const ContinuosCache::ClusterStats &stats) const __attribute__((hot))
Compute log marginal likelihood for cluster given covariates.
Definition continuos_covariate_module_cache.cpp:103
const double const_term
Constant term in log likelihood.
Definition continuos_covariate_module_cache.hpp:201
const ContinuosCache & continuos_cache
Reference to covariate cache for precomputed stats.
Definition continuos_covariate_module_cache.hpp:35
Manages distance matrices and cluster allocations for points.
Definition Data.hpp:27
int get_n() const
Gets the total number of points.
Definition Data.hpp:78
Module(const Eigen::VectorXi *old_allocations_provider_=nullptr, const std::unordered_map< int, std::vector< int > > *old_cluster_members_provider_=nullptr)
Definition Module.hpp:31
Cache for spatial model with continuous covariates.
Structure to hold statistics for each cluster.
Definition continuos_cache.hpp:25