# \donttest{
library(prospectr)
data(NIRsoil)
# Preprocess
sg <- savitzkyGolay(NIRsoil$spc, m = 1, p = 4, w = 15)
Xr <- sg[as.logical(NIRsoil$train), ]
Xu <- sg[!as.logical(NIRsoil$train), ]
Yr <- NIRsoil$CEC[as.logical(NIRsoil$train)]
Yu <- NIRsoil$CEC[!as.logical(NIRsoil$train)]
Xu <- Xu[!is.na(Yu), ]
Xr <- Xr[!is.na(Yr), ]
Yr <- Yr[!is.na(Yr)]
# PCA-based dissimilarity with variance-based selection
d1 <- dissimilarity(Xr, Xu, diss_method = diss_pca())
# PCA with OPC selection (requires Yr)
d2 <- dissimilarity(Xr, Xu,
Yr = Yr,
diss_method = diss_pca(
ncomp = ncomp_by_opc(30),
return_projection = TRUE
)
)
# PLS-based dissimilarity
d3 <- dissimilarity(
Xr, Xu,
Yr = Yr,
diss_method = diss_pls(
ncomp = ncomp_by_opc(30)
)
)
# Euclidean distance
d4 <- dissimilarity(Xr, Xu, diss_method = diss_euclidean())
# Correlation dissimilarity with moving window
d5 <- dissimilarity(Xr, Xu, diss_method = diss_correlation(ws = 41))
# Mahalanobis distance (use only when n > p and low collinearity)
# d6 <- dissimilarity(Xr[, 1:20], Xu[, 1:20],
# diss_method = diss_mahalanobis())
# }
Run the code above in your browser using DataLab