Class GWCorrelation
Defined in File GWCorrelation.h
Inheritance Relationships
Base Types
public gwm::SpatialMultiscaleAlgorithm(类 SpatialMultiscaleAlgorithm)public gwm::IMultivariateAnalysis(Struct IMultivariateAnalysis)public gwm::IParallelizable(结构体 IParallelizable)public gwm::IParallelOpenmpEnabled(结构体 IParallelOpenmpEnabled)public gwm::IBandwidthSelectable(结构体 IBandwidthSelectable)
Class Documentation
-
class GWCorrelation : public gwm::SpatialMultiscaleAlgorithm, public gwm::IMultivariateAnalysis, public gwm::IParallelizable, public gwm::IParallelOpenmpEnabled, public gwm::IBandwidthSelectable
地理加权汇总统计分析算法类。 地理加权汇总统计是计算局部加权统计值的方法。 可计算的统计值包括: local covariances, local correlations (Pearson's), local correlations (Spearman's), local medians, local interquartile ranges, local quantile imbalances and coordinates. 使用下面这些函数获取上述值:
local mean <- GWCorrelation::localMean()
local standard deviation <- GWCorrelation::localSDev()
local variance <- GWCorrelation::localVar()
local skewness <- GWCorrelation::localSkewness()
local coefficients of variation <- GWCorrelation::localCV()
local covariances <- GWCorrelation::localCov()
local correlations (Pearson's) <- GWCorrelation::localCorr()
local correlations (Spearman's) <- GWCorrelation::localSCorr()
local medians <- GWCorrelation::localMedian()
local interquartile ranges <- GWCorrelation::iqr()
local quantile imbalances and coordinates <- GWCorrelation::qi()
Public Types
-
enum BandwidthInitilizeType
带宽初始值类型。
Values:
-
enumerator Null
-
enumerator Initial
-
enumerator Specified
-
enumerator Null
-
typedef void (GWCorrelation::* SummaryCalculator)()
计算函数
-
typedef double (GWCorrelation::* BandwidthSizeCriterionFunction)(const std::unique_ptr<BandwidthWeight>&)
根据指定带宽大小计算对应指标值的函数。
-
typedef double (GWCorrelation::* BandwidthSelectionCriterionCalculator)(const std::unique_ptr<BandwidthWeight>&)
带宽优选指标计算函数声明。
Public Functions
-
inline GWCorrelation()
构造一个新的 GWCorrelation 对象。
-
inline ~GWCorrelation()
销毁 GWCorrelation 对象。
-
inline const arma::mat &localMean() const
获取每个样本的局部均值。
- 返回:
每个样本的局部均值
-
inline const arma::mat &localSDev() const
获取每个样本的局部标准差。
- 返回:
每个样本的局部标准差
-
inline const arma::mat &localSkewness() const
获取每个样本的局部偏度。
- 返回:
每个样本的局部偏度
-
inline const arma::mat &localCV() const
获取每个样本的局部变化系数。
- 返回:
每个样本的局部变化系数
-
inline const arma::mat &localVar() const
获取每个样本的局部方差。
- 返回:
每个样本的局部方差
-
inline const arma::mat &localCov() const
获取局部协方差。
- 返回:
局部协方差。 如果 corrWithFirstOnly 设置为 true ,则共有 字段数 - 1 列; 否则,有 ((字段数 - 1) * 字段数) / 2 列。 对于变量 \(v_1, v_2, v_3, ... , v_{k-1}, v_k\) 返回字段按如下方式排序: \(cov(v_1,v_2), cov(v_1,v_3), ... , cov(v_1,v_k), cov(v_2,v_3), ... , cov(v_2,v_k), ... , cov(v_{k-1},vk)\)
-
inline const arma::mat &localCorr() const
获取局部皮尔逊相关系数。
- 返回:
局部皮尔逊相关系数。 如果 corrWithFirstOnly 设置为 true ,则共有 字段数 - 1 列; 否则,有 ((字段数 - 1) * 字段数) / 2 列。 对于变量 \(v_1, v_2, v_3, ... , v_{k-1}, v_k\) 返回字段按如下方式排序: \(corr(v_1,v_2), corr(v_1,v_3), ... , corr(v_1,v_k), corr(v_2,v_3), ... , corr(v_2,v_k), ... , corr(v_{k-1},vk)\)
-
inline const arma::mat &localSCorr() const
获取局部斯皮尔曼相关系数。
- 返回:
局部斯皮尔曼相关系数。 如果 corrWithFirstOnly 设置为 true ,则共有 字段数 - 1 列; 否则,有 ((字段数 - 1) * 字段数) / 2 列。 对于变量 \(v_1, v_2, v_3, ... , v_{k-1}, v_k\) 返回字段按如下方式排序: \(corr(v_1,v_2), corr(v_1,v_3), ... , corr(v_1,v_k), corr(v_2,v_3), ... , corr(v_2,v_k), ... , corr(v_{k-1},vk)\)
-
inline bool isAutoselectBandwidth()
-
inline const std::vector<BandwidthInitilizeType> &bandwidthInitilize() const
获取带宽初始化值类型。
- 返回:
std::vector<BandwidthInitilizeType> 带宽初始化值类型。
-
void setBandwidthInitilize(const std::vector<BandwidthInitilizeType> &bandwidthInitilize)
设置带宽初始化值类型。
- 参数:
bandwidthInitilize -- 带宽初始化值类型。
-
inline const std::vector<BandwidthSelectionCriterionType> &bandwidthSelectionApproach() const
获取带宽选择方法。
- 返回:
std::vector<BandwidthSelectionCriterionType> 带宽选择方法。
-
void setBandwidthSelectionApproach(const std::vector<BandwidthSelectionCriterionType> &bandwidthSelectionApproach)
设置带宽选择方法。
- 参数:
bandwidthSelectionApproach -- 带宽选择方法。
-
inline BandwidthSizeCriterionFunction bandwidthSizeCriterionVar(BandwidthSelectionCriterionType type)
获取单个变量带宽优选的指标值计算函数。
- 参数:
type -- 单个变量带宽优选的指标值类型。
- 返回:
BandwidthSizeCriterionFunction 单个变量带宽优选的指标值计算函数。
-
inline virtual Status getCriterion(const std::unique_ptr<BandwidthWeight> &weight, double &criterion) override
根据指定的带宽计算带宽优选的指标值。
- 参数:
weight -- 指定的带宽。
criterion -- [出参] 带宽优选的指标值。
Status -- 算法运行状态。
-
inline virtual int parallelAbility() const override
返回该算法的并行能力。
- 返回:
当前算法并行能力的按位或运算结果。
-
inline virtual ParallelType parallelType() const override
返回当前算法的并行类型。
- 返回:
当前算法的并行类型。
-
virtual void setParallelType(const ParallelType &type) override
Set the parallel type of this algorithm.
Use setParallelType to set parallel type of this algorithm to ParallelType::OpenMP in shared build.
- 参数:
type -- Parallel type of this algorithm.
-
inline virtual void setOmpThreadNum(const int threadNum) override
Set the thread numbers while paralleling.
Use gwmodel_set_GWAverage_openmp() to set this property in shared build.
- 参数:
threadNum -- Number of threads.
-
virtual bool isValid() override
检查算法配置是否合法。
- 返回:
true 如果算法配置是合法的。
- 返回:
false 如果算法配置不合法。
-
inline virtual const arma::mat &variables2() const override
Get variables.
- 返回:
arma::mat of variables.
-
inline virtual void setVariables2(const arma::mat &x) override
设置变量x。
- 参数:
x -- 进行GWCorrelation的变量。
-
inline virtual const arma::mat &variables1() const override
Get response variables.
- 返回:
arma::mat of variables.
-
inline virtual void setVariables1(const arma::mat &y) override
设置变量y。
- 参数:
y -- 进行GWCorrelation的变量。
-
virtual void run() override
Run analysis algorithm.
-
void calibration(const arma::mat &locations, const arma::mat &x)
Public Static Functions
-
static inline double covwt(const arma::mat &x1, const arma::mat &x2, const arma::vec &w)
计算两个矩阵的加权协方差。
- 参数:
x1 -- 矩阵 \( X_1 \)
x2 -- 矩阵 \( X_2 \)
w -- 权重向量 \( w \)
- 返回:
加权协方差
\[ cov(X_1,X_2) = \frac{\sum_{i=1}^n w_i(x_{1i} - \bar{x}_1) \sum_{i=1}^n w_i(x_{2i} - \bar{x}_2)}{1 - \sum_{i=1}^n w_i} \]
-
static inline double corwt(const arma::mat &x1, const arma::mat &x2, const arma::vec &w)
计算两个矩阵的加权相关系数。
- 参数:
x1 -- 矩阵 \( X_1 \)
x2 -- 矩阵 \( X_2 \)
w -- 权重向量 \( w \)
- 返回:
-
static inline arma::vec rank(arma::vec x)
-
static arma::vec del(arma::vec x, arma::uword rowcount)
Public Static Attributes
-
static std::unordered_map<BandwidthInitilizeType, std::string> BandwidthInitilizeTypeNameMapper
带宽初始值类型到其名称的映射表。
-
static std::unordered_map<BandwidthSelectionCriterionType, std::string> BandwidthSelectionCriterionTypeNameMapper
带宽选择指标类型到其名称的映射表。
Protected Functions
-
inline BandwidthWeight &bandwidth(size_t i)