类 GWRBasic
定义于 文件 GWRBasic.h
继承关系
基类
public gwm::GWRBase
(类 GWRBase)public gwm::IBandwidthSelectable
(结构体 IBandwidthSelectable)public gwm::IVarialbeSelectable
(结构体 IVarialbeSelectable)public gwm::IParallelizable
(结构体 IParallelizable)public gwm::IParallelOpenmpEnabled
(结构体 IParallelOpenmpEnabled)
派生类
public gwm::GWRRobust
(类 GWRRobust)
类文档
-
class GWRBasic : public gwm::GWRBase, public gwm::IBandwidthSelectable, public gwm::IVarialbeSelectable, public gwm::IParallelizable, public gwm::IParallelOpenmpEnabled
基础地理加权回归算法的实现。 该算法可以自动选带宽和变量。 该算法可以通过 OpenMP 加速。
Subclassed by gwm::GWRRobust
公有类型
-
typedef arma::mat (GWRBasic::* PredictCalculator)(const arma::mat&, const arma::mat&, const arma::vec&)
预测函数声明。
-
typedef arma::mat (GWRBasic::* FitCalculator)(const arma::mat&, const arma::vec&, arma::mat&, arma::vec&, arma::vec&, arma::mat&)
拟合函数声明。
-
typedef double (GWRBasic::* BandwidthSelectionCriterionCalculator)(BandwidthWeight*)
带宽优选指标计算函数声明。
公有方法
-
inline GWRBasic()
构造 CGwmGWRBasic 对象。
-
inline GWRBasic(const arma::mat &x, const arma::vec &y, const arma::mat &coords, const SpatialWeight &spatialWeight, bool hasHatMatrix = true, bool hasIntercept = true)
构造 CGwmGWRBasic 对象。
- 参数
x – 自变量矩阵。
y – 因变量。
coords – 坐标矩阵。
spatialWeight – 空间权重配置。
hasHatMatrix – 是否计算帽子矩阵。
hasIntercept – 是否有截距。
-
inline ~GWRBasic()
析构 CGwmGWRBasic 对象。
-
inline bool isAutoselectBandwidth() const
获取是否自动优选带宽。
- 返回
true 如果自动优选带宽。
- 返回
false 如果不自动优选带宽。
-
inline void setIsAutoselectBandwidth(bool isAutoSelect)
设置是否自动优选带宽。
- 参数
isAutoSelect – true 如果要自动优选带宽,否则 false。
-
inline BandwidthSelectionCriterionType bandwidthSelectionCriterion() const
获取带宽自动优选指标值类型。
- 返回
BandwidthSelectionCriterionType 带宽自动优选指标值类型。
-
void setBandwidthSelectionCriterion(const BandwidthSelectionCriterionType &criterion)
设置带宽自动优选指标值类型。
- 参数
criterion – 带宽自动优选指标值类型。
-
inline bool isAutoselectIndepVars() const
获取是否自动优选变量。
- 返回
true 如果自动优选变量。
- 返回
false 如果不自动优选变量。
-
inline void setIsAutoselectIndepVars(bool isAutoSelect)
设置是否自动优选变量。
- 参数
isAutoSelect – true 如果要自动优选变量,否则 false。
-
inline double indepVarSelectionThreshold() const
获取变量优选指标类型。
- 返回
double 变量优选指标类型。
-
inline void setIndepVarSelectionThreshold(double threshold)
设置变量优选指标类型。
- 参数
threshold – 变量优选指标类型。 该值的大小取决于样本的数量。 样本数量越多,值越大。
-
inline VariablesCriterionList indepVarsSelectionCriterionList() const
获取变量优选过程的指标值列表。
- 返回
VariablesCriterionList 变量优选过程的指标值列表。
-
inline BandwidthCriterionList bandwidthSelectionCriterionList() const
获取带宽优选过程的指标值列表。
- 返回
BandwidthCriterionList 带宽优选过程的指标值列表。
-
inline bool hasHatMatrix() const
获取是否计算帽子矩阵。
- 返回
true 如果计算帽子矩阵。
- 返回
false 如果不计算帽子矩阵。
-
inline void setHasHatMatrix(const bool has)
设置是否计算帽子矩阵。
- 参数
has – true 如果计算帽子矩阵,否则 false。
-
inline arma::mat betasSE()
获取回归系数估计值的标准差。
- 返回
arma::mat 回归系数估计值的标准差。
-
inline arma::vec sHat()
获取一个由 \(tr(S)\) 和 \(tr(SS^T)\) 组成的向量。
- 返回
arma::vec 由 \(tr(S)\) 和 \(tr(SS^T)\) 组成的向量。
-
inline arma::vec qDiag()
获取矩阵 \(Q\) 的对角线元素。
- 返回
arma::vec 矩阵 \(Q\) 的对角线元素。
-
inline arma::mat s()
获取帽子矩阵 \(S\)。
- 返回
arma::mat 帽子矩阵 \(S\)。
-
virtual bool isValid() override
检查算法配置是否合法。
- 返回
true 如果算法配置是合法的。
- 返回
false 如果算法配置不合法。
-
virtual arma::mat predict(const arma::mat &locations) override
在指定位置处进行回归系数预测。
- 参数
locations – 指定位置。
- 返回
mat 回归系数预测值。
-
virtual arma::mat fit() override
拟合回归系数估计值。
- 返回
mat 回归系数估计值。
-
inline virtual double getCriterion(BandwidthWeight *weight) override
根据指定的带宽计算带宽优选的指标值。
- 参数
weight – 指定的带宽。
- 返回
double 带宽优选的指标值。
-
inline double getCriterion(const std::vector<size_t> &variables) override
-
inline virtual std::vector<std::size_t> selectedVariables() override
获取优选的变量。
- 返回
std::vector<std::size_t> 优选的变量。
-
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<BandwidthSelectionCriterionType, std::string> BandwidthSelectionCriterionTypeNameMapper
保护方法
-
inline bool isStoreS()
是否保存帽子矩阵 \(S\).
- 返回
true 如果保存帽子矩阵。
- 返回
false 如果不保存帽子矩阵。
-
void createPredictionDistanceParameter(const arma::mat &locations)
生成用于预测的距离参数。
- 参数
locations – 用于预测的距离参数。
保护属性
-
bool mHasHatMatrix = true
是否具有帽子矩阵。
-
bool mIsAutoselectIndepVars = false
是否自动优选变量。
-
double mIndepVarSelectionThreshold = 3.0
变量优选的阈值。
-
IndepVarsSelectCriterionCalculator mIndepVarsSelectionCriterionFunction = &GWRBasic::indepVarsSelectionCriterionSerial
变量优选的指标计算函数。
-
VariablesCriterionList mIndepVarsSelectionCriterionList
每种变量组合对应的指标值。
-
std::vector<std::size_t> mSelectedIndepVars
优选得到的变量。
-
bool mIsAutoselectBandwidth = false
是否自动优选带宽。
-
BandwidthSelectionCriterionType mBandwidthSelectionCriterion = BandwidthSelectionCriterionType::AIC
带宽优选的指标值类型。
-
BandwidthSelectionCriterionCalculator mBandwidthSelectionCriterionFunction = &GWRBasic::bandwidthSizeCriterionCVSerial
带宽优选的指标计算函数。
-
BandwidthCriterionList mBandwidthSelectionCriterionList
每种带宽组合对应的指标值。
-
PredictCalculator mPredictFunction = &GWRBasic::predictSerial
预测的具体实现函数。
-
FitCalculator mFitFunction = &GWRBasic::fitSerial
拟合的具体实现函数。
-
ParallelType mParallelType = ParallelType::SerialOnly
并行方法类型。
-
int mOmpThreadNum = 8
并行计算创建的线程数。
-
arma::mat mBetasSE
回归系数估计值的标准差。
-
arma::vec mSHat
由 \(tr(S)\) 和 \(tr(SS^T)\) 组成的向量。
-
arma::vec mQDiag
矩阵 \(Q\) 的对角线元素。
-
arma::mat mS
帽子矩阵 \(S\)。
-
typedef arma::mat (GWRBasic::* PredictCalculator)(const arma::mat&, const arma::mat&, const arma::vec&)