spmultinom {GSIF} | R Documentation |
Runs the multinomial logistic regression via nnet::multinom
to produce spatial predictions of the target factor-type variable. It requires point locations of observed classes and a list of covariate layers provided as "SpatialPixelsDataFrame-class"
object. The resulting predicted classes are then used to estimate class centres and variances per class.
## S4 method for signature ## 'formula,SpatialPointsDataFrame,SpatialPixelsDataFrame' spmultinom(formulaString, observations, covariates, class.stats = TRUE, predict.probs = TRUE, ...)
formulaString |
formula string |
observations |
object of type |
covariates |
object of type |
class.stats |
logical; species wether to estimate class centres |
predict.probs |
logical; species wether to predict probabilities per class |
... |
optional arguments |
Returns an object of type "SpatialMemberships"
with following slots: predicted
(classes predicted by the multinomial logistic regression, model
(the multinomial logistic regression model), mu
(probabilities derived using the mutinom model), class.c
(derived class centres), class.sd
(derived class deviations), confusion
(confusion matrix).
Bas Kempen and Tomislav Hengl
Multinomial logistic regression (http://en.wikipedia.org/wiki/Multinomial_logit)
Nnet package (https://CRAN.R-project.org/package=nnet)
spfkm
, SpatialMemberships-class
# load data: library(plotKML) library(sp) data(eberg) # subset to 20%: eberg <- eberg[runif(nrow(eberg))<.2,] data(eberg_grid) coordinates(eberg) <- ~X+Y proj4string(eberg) <- CRS("+init=epsg:31467") gridded(eberg_grid) <- ~x+y proj4string(eberg_grid) <- CRS("+init=epsg:31467") # derive soil predictive components: eberg_spc <- spc(eberg_grid, ~PRMGEO6+DEMSRT6+TWISRT6+TIRAST6) # predict memberships: formulaString = soiltype ~ PC1+PC2+PC3+PC4+PC5+PC6+PC7+PC8+PC9+PC10 eberg_sm <- spmultinom(formulaString, eberg, eberg_spc@predicted) ## Not run: # plot memberships: pal = seq(0, 1, 1/50) spplot(eberg_sm@mu, col.regions=pal) image(eberg_sm@mu[1], col=pal) text(eberg@coords, paste(eberg$soiltype), cex=.6, col="black") # classes predicted: Ls = length(levels(eberg_sm@predicted$soiltype)) pnts = list("sp.points", eberg, pch="+", cex=.6, col="black") spplot(eberg_sm@predicted, col.regions=rainbow(Ls)[rank(runif(Ls))], sp.layout=pnts) ## End(Not run)