The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
R Package for Computing Scales of Spatial Smoothing for Confounding Adjustment
This package is designed to calculate the effective bandwidth of a spatial smoothing matrix, following two different procedures, described by Keller and Szpiro (2020) and Rainey and Keller (2024). This package also contains a wrapper function to create a thin-plate regression spline basis using the mgcv package (Wood, 2011).
The spconf
package can be installed by running
remotes::install_github("kpkeller/spconf")
The primary function is compute_effective_range()
. The
function takes a matrix of spline values X
, with the
assumption that the splines are nested to that adding additional columns
increases the flexibility of forms that can be fit. For each choice of
degrees of freedom, the function computes the effective range of the
smoothing matrix. Using smoothedCurve = TRUE
, the effective
range is computed using the procedure introduced by Keller and Szpiro
(2020) and requires the span
input; and using
smoothedCurve = FALSE
, the effective range is computed
using the procedure introduced by Rainey and Keller (2024) which no
longer requires the span
input.
# Example using metric of Rainey and Keller (2024)
<- 16
M <- 10
tprs_df <- seq(0, 1, length=M+1)[-(M+1)]
si <- expand.grid(x=si, y=si)
gridcoords <- computeTPRS(coords = gridcoords, maxdf = tprs_df+1)
tprsX compute_effective_range(X=tprsX, coords=gridcoords, namestem = "tprs",
df=3:10, smoothedCurve = FALSE)
#> 3 4 5 6 7 8 9 10
#> 0.3801727 0.3365728 0.3125000 0.3125000 0.3125000 0.3125000 0.3125000 0.3186887
# Example using metric of Keller and Szpiro (2020)
<- runif(n=100, min=0, max=10)
xloc <- splines::ns(x=xloc, df=4, intercept=TRUE)
X colnames(X) <- paste0("s", 1:ncol(X))
<- 0:10
xplot compute_effective_range(X=X, coords=as.matrix(xloc), df=2:4,
smoothedCurve = TRUE, newd=xplot, namestem="s")
#> 2 3 4
#> 4.512474 4.472711 4.215862
Keller and Szpiro (2020). Selecting a scale for spatial confounding adjustment. Journal of the Royal Statistical Society, Series A https://doi.org/10.1111/rssa.12556.
Rainey and Keller (2024). spconfShiny: An R Shiny application for calculating the spatial scale of smoothing splines for point data. PLOS ONE https://doi.org/10.1371/journal.pone.0311440
Wood (2011). Fast Stable Restricted Maximum Likelihood and Marginal Likelihood Estimation of Semiparametric Generalized Linear Models. Journal of the Royal Statistical Society Series B: Statistical Methodology https://doi.org/10.1111/j.1467-9868.2010.00749.x
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.