类 GWRMultiscale
继承关系
基类
public gwm::SpatialMultiscaleAlgorithm
(类 SpatialMultiscaleAlgorithm)public gwm::IBandwidthSelectable
(结构体 IBandwidthSelectable)public gwm::IRegressionAnalysis
(结构体 IRegressionAnalysis)public gwm::IParallelizable
(结构体 IParallelizable)public gwm::IParallelOpenmpEnabled
(结构体 IParallelOpenmpEnabled)
类文档
-
class GWRMultiscale : public gwm::SpatialMultiscaleAlgorithm, public gwm::IBandwidthSelectable, public gwm::IRegressionAnalysis, public gwm::IParallelizable, public gwm::IParallelOpenmpEnabled
多尺度GWR算法
公有类型
-
enum BandwidthInitilizeType
带宽初始值类型。
Values:
-
enumerator Null
-
enumerator Initial
-
enumerator Specified
-
enumerator Null
-
typedef double (GWRMultiscale::* BandwidthSizeCriterionFunction)(BandwidthWeight*)
根据指定带宽大小计算对应指标值的函数。
-
typedef arma::mat (GWRMultiscale::* FitAllFunction)(const arma::mat&, const arma::vec&)
根据所有变量拟合模型的函数。
-
typedef arma::vec (GWRMultiscale::* FitVarFunction)(const arma::vec&, const arma::vec&, const arma::uword, arma::mat&)
根据给定变量拟合模型的函数。
公有成员函数
-
inline GWRMultiscale()
构造一个新的 GWRMultiscale 对象。
-
inline GWRMultiscale(const arma::mat &x, const arma::vec &y, const arma::mat &coords, const std::vector<SpatialWeight> &spatialWeights)
构造一个新的 GWRMultiscale 对象。
- 参数
x – 自变量矩阵。
y – 因变量。
coords – 坐标矩阵。
spatialWeight – 空间权重配置。
-
inline virtual ~GWRMultiscale()
销毁 GWRMultiscale 对象。
-
inline std::vector<BandwidthInitilizeType> bandwidthInitilize() const
获取带宽初始化值类型。
- 返回
std::vector<BandwidthInitilizeType> 带宽初始化值类型。
-
void setBandwidthInitilize(const std::vector<BandwidthInitilizeType> &bandwidthInitilize)
设置带宽初始化值类型。
- 参数
bandwidthInitilize – 带宽初始化值类型。
-
inline std::vector<BandwidthSelectionCriterionType> bandwidthSelectionApproach() const
获取带宽选择方法。
- 返回
std::vector<BandwidthSelectionCriterionType> 带宽选择方法。
-
void setBandwidthSelectionApproach(const std::vector<BandwidthSelectionCriterionType> &bandwidthSelectionApproach)
设置带宽选择方法。
- 参数
bandwidthSelectionApproach – 带宽选择方法。
-
inline std::vector<bool> preditorCentered() const
获取是否中心化变量。
- 返回
std::vector<bool> 是否中心化变量。
-
inline void setPreditorCentered(const std::vector<bool> &preditorCentered)
设置是否中心化自变量。
- 参数
preditorCentered – 是否中心化自变量。
-
inline std::vector<double> bandwidthSelectThreshold() const
获取带宽选择阈值。
- 返回
std::vector<double> 带宽选择阈值。
-
inline void setBandwidthSelectThreshold(const std::vector<double> &bandwidthSelectThreshold)
设置带宽选择阈值。
- 参数
bandwidthSelectThreshold – 带宽选择阈值。
-
inline bool hasHatMatrix() const
获取是否有帽子矩阵 \(S\)。
- 返回
true 有帽子矩阵。
- 返回
false 没有帽子矩阵。
-
inline void setHasHatMatrix(bool hasHatMatrix)
设置是否有帽子矩阵 \(S\)。
- 参数
hasHatMatrix – 是否有帽子矩阵 \(S\)。
-
inline size_t bandwidthSelectRetryTimes() const
获取优选带宽时的最大重试次数。
- 返回
size_t 优选带宽时的最大重试次数。
-
inline void setBandwidthSelectRetryTimes(size_t bandwidthSelectRetryTimes)
设置优选带宽时的最大重试次数。
- 参数
bandwidthSelectRetryTimes – 优选带宽时的最大重试次数。
-
inline size_t maxIteration() const
获取最大迭代次数。
- 返回
size_t 最大迭代次数。
-
inline void setMaxIteration(size_t maxIteration)
设置最大迭代次数。
- 参数
maxIteration – 最大迭代次数。
-
inline BackFittingCriterionType criterionType() const
获取后向迭代算法收敛指标值类型。
- 返回
BackFittingCriterionType 后向迭代算法收敛指标值类型。
-
inline void setCriterionType(const BackFittingCriterionType &criterionType)
设置后向迭代算法收敛指标值类型。
- 参数
criterionType – 后向迭代算法收敛指标值类型。
-
inline double criterionThreshold() const
获取指标收敛阈值。
- 返回
double 指标收敛阈值。
-
inline void setCriterionThreshold(double criterionThreshold)
设置指标收敛阈值。
- 参数
criterionThreshold – 指标收敛阈值。
-
inline int adaptiveLower() const
获取优选可变带宽优选下限值。
- 返回
int 优选可变带宽优选下限值。
-
inline void setAdaptiveLower(int adaptiveLower)
设置优选可变带宽优选下限值。
- 参数
adaptiveLower – 优选可变带宽优选下限值。
-
inline arma::mat betas() const
获取回归系数估计值 \(\beta\)。
- 返回
arma::mat 回归系数估计值 \(\beta\)。
-
BandwidthSizeCriterionFunction bandwidthSizeCriterionAll(BandwidthSelectionCriterionType type)
获取所有变量带宽优选的指标值计算函数。
- 参数
type – 所有变量带宽优选的指标值类型。
- 返回
BandwidthSizeCriterionFunction 所有变量带宽优选的指标值计算函数。
-
BandwidthSizeCriterionFunction bandwidthSizeCriterionVar(BandwidthSelectionCriterionType type)
获取单个变量带宽优选的指标值计算函数。
- 参数
type – 单个变量带宽优选的指标值类型。
- 返回
BandwidthSizeCriterionFunction 单个变量带宽优选的指标值计算函数。
-
virtual bool isValid() override
检查算法配置是否合法。
- 返回
true 如果算法配置是合法的。
- 返回
false 如果算法配置不合法。
-
virtual void setSpatialWeights(const std::vector<SpatialWeight> &spatialWeights) override
Set the spatial weight configuration.
Use gwmodel_set_gwr_spatial_weight() to set this property to GWRBasic in shared build.
Use gwmodel_set_gwss_spatial_weight() to set this property to GWSS in shared build.
- 参数
spatialWeights – Reference of spatial weight configuration object.
-
inline virtual double getCriterion(BandwidthWeight *weight) override
根据指定的带宽计算带宽优选的指标值。
- 参数
weight – 指定的带宽。
- 返回
double 带宽优选的指标值。
-
inline virtual arma::vec dependentVariable() const override
获取因变量。
- 返回
arma::vec 因变量。
-
inline virtual void setDependentVariable(const arma::vec &y) override
设置因变量。
- 参数
y – 因变量。
-
inline virtual arma::mat independentVariables() const override
获取自变量。
- 返回
arma::mat 自变量。
-
inline virtual void setIndependentVariables(const arma::mat &x) override
设置自变量。
- 参数
x – 自变量。
-
inline virtual bool hasIntercept() const override
获取是否具有截距。
- 返回
true 如果有截距。
- 返回
false 如果没有截距。
-
inline virtual void setHasIntercept(const bool has) override
Set the Has Intercept object.
- 参数
has – 如果有截距则传入 true ,否则传入 false 。
-
inline virtual RegressionDiagnostic diagnostic() const override
获取诊断信息。
- 返回
RegressionDiagnostic 诊断信息。
-
inline virtual arma::mat predict(const arma::mat &locations) override
在指定位置处进行回归系数预测。
- 参数
locations – 指定位置。
- 返回
mat 回归系数预测值。
-
virtual arma::mat fit() override
拟合回归系数估计值。
- 返回
mat 回归系数估计值。
-
inline virtual int parallelAbility() const override
返回该算法的并行能力。
- 返回
当前算法并行能力的按位或运算结果。
-
inline virtual ParallelType parallelType() const override
返回当前算法的并行类型。
- 返回
当前算法的并行类型。
-
virtual void setParallelType(const ParallelType &type) override
设置当前算法的并行类型。
- 参数
type – 当前算法的并行类型。
-
inline virtual void setOmpThreadNum(const int threadNum) override
设置并行线程数。
- 参数
threadNum – 并行线程数。
公有静态属性
-
static std::unordered_map<BandwidthInitilizeType, std::string> BandwidthInitilizeTypeNameMapper
带宽初始值类型到其名称的映射表。
-
static std::unordered_map<BandwidthSelectionCriterionType, std::string> BandwidthSelectionCriterionTypeNameMapper
带宽选择指标类型到其名称的映射表。
-
static std::unordered_map<BackFittingCriterionType, std::string> BackFittingCriterionTypeNameMapper
后向迭代算法收敛指标类型到其名称的映射表。
-
static int treeChildCount
保护成员函数
-
inline BandwidthWeight *bandwidth(size_t i)
获取第 \(i\) 个带宽。
- 参数
i – 带宽索引值。
- 返回
BandwidthWeight* 第 \(i\) 个带宽。
-
arma::mat fitAllSerial(const arma::mat &x, const arma::vec &y)
拟合所有变量的非并行实现。
- 参数
x – 自变量矩阵 \(X\)。
y – 因变量 \(y\)。
- 返回
arma::mat 回归系数估计值 \(\beta\)。
-
arma::vec fitVarSerial(const arma::vec &x, const arma::vec &y, const arma::uword var, arma::mat &S)
拟合单个变量的非并行实现。
- 参数
x – 自变量矩阵 \(X\)。
y – 因变量 \(y\)。
var – 当前变量的索引值。
S – 帽子矩阵 \(S\)
- 返回
arma::vec 该变量对应的回归系数估计值。
-
arma::mat backfitting(const arma::mat &x, const arma::vec &y)
后向迭代算法。
- 参数
x – 自变量矩阵 \(X\)。
y – 因变量 \(y\)。
- 返回
arma::mat 回归系数估计值 \(\beta\)。
-
double bandwidthSizeCriterionAllCVSerial(BandwidthWeight *bandwidthWeight)
为指定带宽值和所有变量计算CV指标值函数的非并行实现。
- 参数
bandwidthWeight – 带宽值。
- 返回
double CV指标值。
-
double bandwidthSizeCriterionAllAICSerial(BandwidthWeight *bandwidthWeight)
为指定带宽值和所有变量计算AIC指标值函数的非并行实现。
- 参数
bandwidthWeight – 带宽值。
- 返回
double AIC指标值。
-
double bandwidthSizeCriterionVarCVSerial(BandwidthWeight *bandwidthWeight)
为指定带宽值和某个变量计算CV指标值函数的非并行实现。
- 参数
bandwidthWeight – 带宽值。
- 返回
double CV指标值。
-
double bandwidthSizeCriterionVarAICSerial(BandwidthWeight *bandwidthWeight)
为指定带宽值和某个变量计算AIC指标值函数的非并行实现。
- 参数
bandwidthWeight – 带宽值。
- 返回
double AIC指标值。
-
void createInitialDistanceParameter()
创建初始距离参数对象。
-
enum BandwidthInitilizeType