如何计算 spatialRF::rf_spatial 函数的 distance.matrix

问题描述 投票:0回答:0

我正在使用 spatialRF 中的包 R 来执行回归任务。从包提供的 example 中,预先计算了 distance.matrix 并在函数 spatialRF::rf 中使用它。这是一个例子:

library(spatialRF)

#loading training data and distance matrix from the package
data(plant_richness_df)
data(distance_matrix)

#names of the response variable and the predictors
dependent.variable.name <- "richness_species_vascular"
predictor.variable.names <- colnames(plant_richness_df)[5:21]

#coordinates of the cases
xy <- plant_richness_df[, c("x", "y")]

#distance matrix
distance.matrix <- distance_matrix

#distance thresholds (same units as distance_matrix)
distance.thresholds <- c(0, 1000, 2000, 4000, 8000)

#random seed for reproducibility
random.seed <- 1

model.non.spatial <- spatialRF::rf(
  data = plant_richness_df,
  dependent.variable.name = dependent.variable.name,
  predictor.variable.names = predictor.variable.names,
  distance.matrix = distance.matrix,
  distance.thresholds = distance.thresholds,
  xy = xy, #not needed by rf, but other functions read it from the model
  seed = random.seed,
  verbose = FALSE)

我很难用我的数据集计算 distance.matrix

block.data = structure(list(ntl = c(11.4058170318604, 13.7000455856323, 16.0420398712158, 
17.4475727081299, 26.263370513916, 30.658130645752, 19.8927211761475, 
20.917688369751, 23.7149887084961, 25.2641334533691), pop = c(111.031448364258, 
145.096557617188, 166.351989746094, 193.804962158203, 331.787200927734, 
382.979248046875, 237.971466064453, 276.575958251953, 334.015289306641, 
345.376617431641), tirs = c(35.392936706543, 34.4172630310059, 
33.7765464782715, 35.3224639892578, 40.4262886047363, 39.6619148254395, 
38.6306076049805, 36.752326965332, 37.2010040283203, 36.1100578308105
), agbh = c(1.15364360809326, 0.177780777215958, 0.580717206001282, 
0.647109687328339, 3.84336423873901, 5.6310133934021, 2.10894227027893, 
3.9533429145813, 2.7016019821167, 4.36041164398193), lc = c(40L, 
40L, 40L, 126L, 50L, 50L, 50L, 50L, 40L, 50L)), class = "data.frame", row.names = c(NA, 
-10L))

在我的数据集中,ntl 是因变量。

当我尝试运行(默认)spatialRF::rf_spatial 函数(无论参数如何)时,我收到此错误:Error in spatialRF::rf_spatial(model = ntl ~ ., data = block.data, distance.matrix = NULL,: The argument 'distance.matrix' is missing.

r random-forest raster spatial distance-matrix
© www.soinside.com 2019 - 2024. All rights reserved.