Type: | Package |
Title: | Geographically Weighted Non-Negative Principal Components Analysis |
Version: | 0.0.5 |
Description: | Implements a geographically weighted non-negative principal components analysis, which consists of the fusion of geographically weighted and sparse non-negative principal components analyses <doi:10.17608/k6.auckland.9850826.v1>. |
License: | GPL (≥ 3) |
URL: | https://github.com/naru-T/GWnnegPCA |
BugReports: | https://github.com/naru-T/GWnnegPCA/issues |
Depends: | R (≥ 3.5.0) |
Imports: | geodist, methods, nsprcomp, sf |
Suggests: | testthat (≥ 3.0.0) |
Config/testthat/edition: | 3 |
Encoding: | UTF-8 |
Language: | en-US |
RoxygenNote: | 7.3.2 |
SystemRequirements: | C++11, GDAL (>= 2.0.1), GEOS (>= 3.4.0), PROJ (>= 4.8.0) |
NeedsCompilation: | no |
Packaged: | 2025-02-05 13:20:19 UTC; nt |
Author: | Narumasa Tsutsumida
|
Maintainer: | Narumasa Tsutsumida <rsnaru.jp@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2025-02-05 13:40:05 UTC |
Geographically Weighted Non-negative Principal Component Analysis
Description
Implementation of geographically weighted non-negative principal component analysis, which consists of the fusion of GWPCA and sparse non-negative PCA.
Usage
gw_nsprcomp(
data,
elocat,
vars,
bw,
k = 2,
kernel = "gaussian",
adaptive = TRUE,
p = 2,
theta = 0,
longlat = FALSE,
geodisic_measure = "cheap",
dMat = NULL,
n.obs = NA,
n.iter = 1,
ncomp = k,
nneg = TRUE,
localcenter = TRUE,
localscale = FALSE,
...
)
Arguments
data |
An sf object containing the spatial data and attributes for analysis |
elocat |
Two-column numeric array or sf object for providing evaluation locations |
vars |
Character vector of variable names to be used in the analysis |
bw |
Bandwidth used in the weighting function |
k |
The number of retained components (default: 2) |
kernel |
Kernel function type: "gaussian", "exponential", "bisquare", "tricube", or "boxcar" |
adaptive |
If TRUE, calculate adaptive kernel (default: TRUE) |
p |
Power of the Minkowski distance (default: 2) |
theta |
Angle in radians to rotate coordinate system (default: 0) |
longlat |
If TRUE, great circle distances will be calculated (default: FALSE) |
geodisic_measure |
Method for geodesic distance calculation (default: "cheap") |
dMat |
Pre-specified distance matrix (default: NULL) |
n.obs |
Number of observations for correlation matrix (default: NA) |
n.iter |
Number of bootstrap iterations (default: 1) |
ncomp |
Number of principal components to compute (default: k) |
nneg |
If TRUE, constrain loadings to be non-negative (default: TRUE) |
localcenter |
If TRUE, center local weighted x (default: TRUE) |
localscale |
If TRUE, scale local weighted x (default: FALSE) |
... |
Additional arguments passed to methods |
Value
A list containing:
loadings |
The localized loadings matrix |
score |
The PC score matrix from the localized non-negative PCA |
sdev |
The localized standard deviation vector of the principal components |
Examples
# Read North Carolina SIDS data from sf package
nc <- sf::st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE)
# Scale selected variables for analysis
vars_to_use <- c("SID74", "NWBIR74", "BIR74")
Data.scaled <- scale(as.matrix(sf::st_drop_geometry(nc[, vars_to_use])))
# Create sf object with scaled data
nc_scaled <- nc
nc_scaled[vars_to_use] <- Data.scaled
gwnnegpca_ans <- gw_nsprcomp(
data = nc_scaled,
vars = vars_to_use,
bw = 0.25,
k = 3,
longlat = TRUE,
kernel = "bisquare",
adaptive = TRUE,
nneg = TRUE,
geodisic_measure = "geodesic"
)