|
SedSat3 1.1.6
Sediment Source Apportionment Tool - Advanced statistical methods for environmental pollution research
|
Manages a collection of concentration measurements with statistical analysis. More...
#include <concentrationset.h>


Public Member Functions | |
| ConcentrationSet () | |
| ConcentrationSet (const ConcentrationSet &other) | |
| ConcentrationSet (int n) | |
| ConcentrationSet & | operator= (const ConcentrationSet &other) |
| void | AppendValue (double value) |
| Append a single concentration value. | |
| void | AppendSet (const ConcentrationSet &other) |
| Append all values from another set. | |
| void | AppendSet (ConcentrationSet *other) |
| double | CalculateMean () const |
| Calculate arithmetic mean. | |
| double | CalculateStdDev (double mean_value=-999) const |
| Calculate standard deviation. | |
| double | CalculateMeanLog () const |
| Calculate mean of log-transformed values. | |
| double | CalculateStdDevLog (double mean_value=-999) const |
| Calculate standard deviation of log-transformed values. | |
| double | CalculateSSE (double mean_value=-999) const |
| Calculate sum of squared errors from mean. | |
| double | CalculateSSELog (double mean_value=-999) const |
| Calculate sum of squared errors from log mean. | |
| double | CalculateNorm (double power=2.0) const |
| Calculate sum of values raised to a power. | |
| double | CalculateNormLog (double power=2.0) const |
| Calculate sum of log-transformed values raised to a power. | |
| double | GetMinimum () const |
| Get minimum value. | |
| double | GetMaximum () const |
| Get maximum value. | |
| vector< double > | EstimateDistributionParameters (distribution_type dist_type=distribution_type::none) |
| Estimate distribution parameters from data. | |
| double | CalculateLogLikelihood (const vector< double > ¶ms=vector< double >(), distribution_type dist_type=distribution_type::none) const |
| Calculate log-likelihood of data given distribution parameters. | |
| distribution_type | SelectBestDistribution () |
| Select best-fitting distribution (normal vs lognormal) | |
| Distribution * | GetFittedDistribution () |
| Get fitted distribution (from data) | |
| const Distribution * | GetFittedDistribution () const |
| Distribution * | GetEstimatedDistribution () |
| Get estimated distribution (for MCMC optimization) | |
| const Distribution * | GetEstimatedDistribution () const |
| double | GetEstimatedMu () const |
| Get/set estimated mu parameter. | |
| void | SetEstimatedMu (double value) |
| double | GetEstimatedSigma () const |
| Get/set estimated sigma parameter. | |
| void | SetEstimatedSigma (double value) |
| CMBTimeSeries | CreateDataCDF () const |
| Create empirical CDF from data. | |
| CMBTimeSeriesSet | CreateCDFComparison (distribution_type dist_type) const |
| Create comparison of empirical vs fitted CDF. | |
| CMBTimeSeriesSet | CreateFittedDistribution (distribution_type dist_type) const |
| Create fitted distribution visualization. | |
| double | CalculateKolmogorovSmirnovStatistic (distribution_type dist_type) const |
| Calculate Kolmogorov-Smirnov statistic. | |
| ConcentrationSet | CreateLogTransformed () const |
| Create log-transformed copy. | |
| double | CalculateBoxCoxLogLikelihood (double lambda) const |
| Calculate Box-Cox log-likelihood for given lambda. | |
| ConcentrationSet | ApplyBoxCoxTransform (double lambda, bool normalize) const |
| Apply Box-Cox transformation. | |
| double | FindOptimalBoxCoxParameter (double min_lambda, double max_lambda, int n_intervals) const |
| Find optimal Box-Cox lambda parameter. | |
| vector< unsigned int > | CalculateRanks () const |
| Calculate ranks of values (1 = smallest) | |
Private Attributes | |
| Distribution | fitted_distribution_ |
| Distribution fitted to observed data. | |
| Distribution | estimated_distribution_ |
| Distribution being optimized (e.g., in MCMC) | |
Manages a collection of concentration measurements with statistical analysis.
Inherits from vector<double> to store concentration values and provides:
Definition at line 22 of file concentrationset.h.
| ConcentrationSet::ConcentrationSet | ( | ) |
Definition at line 9 of file concentrationset.cpp.
References vector.
| ConcentrationSet::ConcentrationSet | ( | const ConcentrationSet & | other | ) |
Definition at line 16 of file concentrationset.cpp.
References vector.
| ConcentrationSet::ConcentrationSet | ( | int | n | ) |
Definition at line 23 of file concentrationset.cpp.
References vector.
| void ConcentrationSet::AppendSet | ( | ConcentrationSet * | other | ) |
Definition at line 55 of file concentrationset.cpp.
| void ConcentrationSet::AppendSet | ( | const ConcentrationSet & | other | ) |
Append all values from another set.
Definition at line 50 of file concentrationset.cpp.
Referenced by SourceSinkData::DifferentiationPower_Percentage().
| void ConcentrationSet::AppendValue | ( | double | value | ) |
Append a single concentration value.
Definition at line 45 of file concentrationset.cpp.
Referenced by SourceSinkData::ExtractConcentrationSet().
| ConcentrationSet ConcentrationSet::ApplyBoxCoxTransform | ( | double | lambda, |
| bool | normalize | ||
| ) | const |
Apply Box-Cox transformation.
| lambda | Transformation parameter |
| normalize | If true, scale by standard deviation |
Definition at line 389 of file concentrationset.cpp.
References CalculateStdDev(), GetMinimum(), and log.
Referenced by Elemental_Profile_Set::ApplyBoxCoxTransform(), CalculateBoxCoxLogLikelihood(), Elemental_Profile_Set::DetectOutliers(), and FindOptimalBoxCoxParameter().
| double ConcentrationSet::CalculateBoxCoxLogLikelihood | ( | double | lambda | ) | const |
Calculate Box-Cox log-likelihood for given lambda.
Definition at line 370 of file concentrationset.cpp.
References ApplyBoxCoxTransform(), CalculateMean(), CalculateStdDev(), and log.
| double ConcentrationSet::CalculateKolmogorovSmirnovStatistic | ( | distribution_type | dist_type | ) | const |
Calculate Kolmogorov-Smirnov statistic.
Definition at line 356 of file concentrationset.cpp.
References CreateCDFComparison().
Referenced by FindOptimalBoxCoxParameter().
| double ConcentrationSet::CalculateLogLikelihood | ( | const vector< double > & | params = vector<double>(), |
| distribution_type | dist_type = distribution_type::none |
||
| ) | const |
Calculate log-likelihood of data given distribution parameters.
| params | Distribution parameters (empty to use fitted_distribution_) |
| dist_type | Distribution type (none to use fitted_distribution_) |
Definition at line 233 of file concentrationset.cpp.
References Distribution::distribution, Distribution::Eval(), fitted_distribution_, log, none, and Distribution::parameters.
| double ConcentrationSet::CalculateMean | ( | ) | const |
Calculate arithmetic mean.
Definition at line 64 of file concentrationset.cpp.
Referenced by SourceSinkData::ANOVA(), CalculateBoxCoxLogLikelihood(), CalculateSSE(), CalculateStdDev(), CreateCDFComparison(), CreateFittedDistribution(), Elemental_Profile_Set::DetectOutliers(), SourceSinkData::DifferentiationPower(), EstimateDistributionParameters(), SourceSinkData::GrandMean(), and SourceSinkData::t_TestPValue().
| double ConcentrationSet::CalculateMeanLog | ( | ) | const |
Calculate mean of log-transformed values.
Definition at line 142 of file concentrationset.cpp.
References log.
Referenced by SourceSinkData::ANOVA(), CalculateSSELog(), CalculateStdDevLog(), CreateCDFComparison(), CreateFittedDistribution(), SourceSinkData::DifferentiationPower(), EstimateDistributionParameters(), SourceSinkData::GrandMean(), and SourceSinkData::t_TestPValue().
| double ConcentrationSet::CalculateNorm | ( | double | power = 2.0 | ) | const |
Calculate sum of values raised to a power.
Definition at line 156 of file concentrationset.cpp.
References power.
| double ConcentrationSet::CalculateNormLog | ( | double | power = 2.0 | ) | const |
Calculate sum of log-transformed values raised to a power.
Definition at line 166 of file concentrationset.cpp.
| vector< unsigned int > ConcentrationSet::CalculateRanks | ( | ) | const |
Calculate ranks of values (1 = smallest)
Definition at line 478 of file concentrationset.cpp.
Referenced by SourceSinkData::DifferentiationPower_Percentage().
| double ConcentrationSet::CalculateSSE | ( | double | mean_value = -999 | ) | const |
Calculate sum of squared errors from mean.
Definition at line 114 of file concentrationset.cpp.
References CalculateMean().
Referenced by SourceSinkData::ANOVA().
| double ConcentrationSet::CalculateSSELog | ( | double | mean_value = -999 | ) | const |
Calculate sum of squared errors from log mean.
Definition at line 128 of file concentrationset.cpp.
References CalculateMeanLog(), and log.
Referenced by SourceSinkData::ANOVA().
| double ConcentrationSet::CalculateStdDev | ( | double | mean_value = -999 | ) | const |
Calculate standard deviation.
| mean_value | Pre-calculated mean, or -999 to calculate automatically |
Definition at line 78 of file concentrationset.cpp.
References CalculateMean().
Referenced by ApplyBoxCoxTransform(), CalculateBoxCoxLogLikelihood(), CreateCDFComparison(), CreateFittedDistribution(), Elemental_Profile_Set::DetectOutliers(), SourceSinkData::DifferentiationPower(), EstimateDistributionParameters(), and SourceSinkData::t_TestPValue().
| double ConcentrationSet::CalculateStdDevLog | ( | double | mean_value = -999 | ) | const |
Calculate standard deviation of log-transformed values.
| mean_value | Pre-calculated log mean, or -999 to calculate automatically |
Definition at line 96 of file concentrationset.cpp.
References CalculateMeanLog(), and log.
Referenced by SourceSinkData::ANOVA(), CreateCDFComparison(), CreateFittedDistribution(), SourceSinkData::DifferentiationPower(), EstimateDistributionParameters(), and SourceSinkData::t_TestPValue().
| CMBTimeSeriesSet ConcentrationSet::CreateCDFComparison | ( | distribution_type | dist_type | ) | const |
Create comparison of empirical vs fitted CDF.
Definition at line 287 of file concentrationset.cpp.
References CalculateMean(), CalculateMeanLog(), CalculateStdDev(), CalculateStdDevLog(), CreateDataCDF(), lognormal, normal, and x.
Referenced by CalculateKolmogorovSmirnovStatistic(), Conductor::ExecuteDistributionFitting(), and Conductor::ExecuteKolmogorovSmirnovIndividual().
| CMBTimeSeries ConcentrationSet::CreateDataCDF | ( | ) | const |
Create empirical CDF from data.
Definition at line 272 of file concentrationset.cpp.
Referenced by CreateCDFComparison(), and CreateFittedDistribution().
| CMBTimeSeriesSet ConcentrationSet::CreateFittedDistribution | ( | distribution_type | dist_type | ) | const |
Create fitted distribution visualization.
Definition at line 321 of file concentrationset.cpp.
References CalculateMean(), CalculateMeanLog(), CalculateStdDev(), CalculateStdDevLog(), CreateDataCDF(), Distribution::Eval(), lognormal, normal, and x.
Referenced by Conductor::ExecuteDistributionFitting().
| ConcentrationSet ConcentrationSet::CreateLogTransformed | ( | ) | const |
| vector< double > ConcentrationSet::EstimateDistributionParameters | ( | distribution_type | dist_type = distribution_type::none | ) |
Estimate distribution parameters from data.
| dist_type | Distribution type (normal or lognormal) |
Definition at line 199 of file concentrationset.cpp.
References CalculateMean(), CalculateMeanLog(), CalculateStdDev(), CalculateStdDevLog(), Distribution::distribution, estimated_distribution_, fitted_distribution_, lognormal, none, normal, Distribution::parameters, Distribution::SetDataMean(), Distribution::SetDataSTDev(), and Distribution::SetType().
Referenced by SourceSinkData::AssignAllDistributions().
| double ConcentrationSet::FindOptimalBoxCoxParameter | ( | double | min_lambda, |
| double | max_lambda, | ||
| int | n_intervals | ||
| ) | const |
Find optimal Box-Cox lambda parameter.
| min_lambda | Lower bound for search |
| max_lambda | Upper bound for search |
| n_intervals | Number of intervals for grid search |
Definition at line 430 of file concentrationset.cpp.
References ApplyBoxCoxTransform(), CalculateKolmogorovSmirnovStatistic(), FindOptimalBoxCoxParameter(), GetMaximum(), GetMinimum(), and normal.
Referenced by FindOptimalBoxCoxParameter().
|
inline |
Get estimated distribution (for MCMC optimization)
Definition at line 136 of file concentrationset.h.
References estimated_distribution_.
Referenced by SourceSinkData::LogLikelihoodSourceElementalDistributions().
|
inline |
Definition at line 137 of file concentrationset.h.
References estimated_distribution_.
|
inline |
Get/set estimated mu parameter.
Definition at line 142 of file concentrationset.h.
References estimated_distribution_, and Distribution::parameters.
|
inline |
Get/set estimated sigma parameter.
Definition at line 151 of file concentrationset.h.
References estimated_distribution_, and Distribution::parameters.
|
inline |
Get fitted distribution (from data)
Definition at line 130 of file concentrationset.h.
References fitted_distribution_.
Referenced by SourceSinkData::AssignAllDistributions().
|
inline |
Definition at line 131 of file concentrationset.h.
References fitted_distribution_.
| double ConcentrationSet::GetMaximum | ( | ) | const |
Get maximum value.
Definition at line 192 of file concentrationset.cpp.
Referenced by SourceSinkData::BracketTest(), and FindOptimalBoxCoxParameter().
| double ConcentrationSet::GetMinimum | ( | ) | const |
Get minimum value.
Definition at line 187 of file concentrationset.cpp.
Referenced by ApplyBoxCoxTransform(), Elemental_Profile_Set::CheckForNegativeValues(), FindOptimalBoxCoxParameter(), and SelectBestDistribution().
| ConcentrationSet & ConcentrationSet::operator= | ( | const ConcentrationSet & | other | ) |
Definition at line 30 of file concentrationset.cpp.
References estimated_distribution_, and fitted_distribution_.
| distribution_type ConcentrationSet::SelectBestDistribution | ( | ) |
Select best-fitting distribution (normal vs lognormal)
Definition at line 259 of file concentrationset.cpp.
References GetMinimum(), lognormal, and normal.
|
inline |
Definition at line 143 of file concentrationset.h.
References estimated_distribution_, and Distribution::parameters.
Referenced by SourceSinkData::SetParameterValue().
|
inline |
Definition at line 152 of file concentrationset.h.
References estimated_distribution_, and Distribution::parameters.
Referenced by SourceSinkData::SetParameterValue().
|
private |
Distribution being optimized (e.g., in MCMC)
Definition at line 220 of file concentrationset.h.
Referenced by EstimateDistributionParameters(), GetEstimatedDistribution(), GetEstimatedDistribution(), GetEstimatedMu(), GetEstimatedSigma(), operator=(), SetEstimatedMu(), and SetEstimatedSigma().
|
private |
Distribution fitted to observed data.
Definition at line 219 of file concentrationset.h.
Referenced by CalculateLogLikelihood(), EstimateDistributionParameters(), GetFittedDistribution(), GetFittedDistribution(), and operator=().