类 GWSS

继承关系

基类

类文档

class GWSS : public gwm::SpatialMonoscaleAlgorithm, public gwm::IMultivariableAnalysis, public gwm::IParallelizable, public gwm::IParallelOpenmpEnabled

地理加权汇总统计分析算法类。 地理加权汇总统计是计算局部加权统计值的方法。 可计算的统计值包括: local mean, local standard deviation, local variance, local skewness, local coefficients of variation, local covariances, local correlations (Pearson’s), local correlations (Spearman’s), local medians, local interquartile ranges, local quantile imbalances and coordinates. 使用下面这些函数获取上述值:

公有类型

typedef void (GWSS::* SummaryCalculator)()

汇总统计计算函数

公有成员函数

inline GWSS()

构造一个新的 GWSS 对象。

inline GWSS(const arma::mat x, const arma::mat coords, const SpatialWeight &spatialWeight)

构造一个新的 GWSS 对象。

inline ~GWSS()

销毁 GWSS 对象。

inline bool quantile() const

获取是否使用基于排序的算法。

返回

true 使用基于排序的算法

返回

false 不使用基于排序的算法

inline void setQuantile(bool quantile)

设置是否使用基于排序的算法

参数

quantile – 是否使用基于排序的算法

inline bool isCorrWithFirstOnly() const

获取是否仅为第一个变量计算与其他变量的相关系数

返回

true 是

返回

false 否

inline void setIsCorrWithFirstOnly(bool corrWithFirstOnly)

设置是否仅为第一个变量计算与其他变量的相关系数

参数

corrWithFirstOnly – 是否仅为第一个变量计算与其他变量的相关系数

inline arma::mat localMean() const

获取每个样本的局部均值。

返回

每个样本的局部均值

inline arma::mat localSDev() const

获取每个样本的局部标准差。

返回

每个样本的局部标准差

inline arma::mat localSkewness() const

获取每个样本的局部偏度。

返回

每个样本的局部偏度

inline arma::mat localCV() const

获取每个样本的局部变化系数。

返回

每个样本的局部变化系数

inline arma::mat localVar() const

获取每个样本的局部方差。

返回

每个样本的局部方差

inline arma::mat localMedian() const

获取每个样本的局部中位数。

返回

每个样本的局部中位数

inline arma::mat iqr() const

获取每个样本的局部四分位距。

返回

每个样本的局部四分位距

inline arma::mat qi() const

获取每个样本的局部分位数不平衡度。

返回

每个样本的局部分位数不平衡度

inline 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 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 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)\)

virtual bool isValid() override

检查算法配置是否合法。

返回

true 如果算法配置是合法的。

返回

false 如果算法配置不合法。

inline virtual arma::mat variables() const override

Get variables.

返回

Vector of variables.

inline virtual void setVariables(const arma::mat &x) override

Set variables.

参数

variables – Vector of variables.

virtual void run() override

Run analysis algorithm.

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 gwmodel_set_gwss_openmp() 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_gwss_openmp() to set this property in shared build.

参数

threadNum – Number of threads.

公有静态方法

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 arma::vec del(arma::vec x, arma::uword rowcount)
static inline arma::vec rank(arma::vec x)

保护静态方法

static arma::vec findq(const arma::mat &x, const arma::vec &w)