R 巴尔的摩数据中空间相关数据簇的异构回归模型及其错误信息

R 巴尔的摩数据中空间相关数据簇的异构回归模型及其错误信息,r,R,我想为空间相关数据的集群拟合异质回归模型。我的数据是spdep包中的巴尔的摩。当我运行这个模型时,我收到了这个错误消息,我无法理解它。有人能帮我吗 library(spdep) data("baltimore") str(baltimore) N <- S <- 211 ## pairwise matrix of distance distMat <- matrix(nrow = nrow(baltimore), ncol = nrow(

我想为空间相关数据的集群拟合异质回归模型。我的数据是spdep包中的巴尔的摩。当我运行这个模型时,我收到了这个错误消息,我无法理解它。有人能帮我吗

    library(spdep)

data("baltimore")

str(baltimore)

N <- S <- 211

## pairwise matrix of distance

 distMat <- matrix(nrow = nrow(baltimore), ncol = nrow(baltimore))

for (i in 1:nrow(distMat)) {
  for (j in i:nrow(distMat)) {
    distMat[i, j] <- distMat[j, i] <-
      sqrt(sum((baltimore[i, c("X", "Y")] - baltimore[j, c("X", "Y")]))^2)
      }
       }
## normalization
  distMat <- distMat / max(distMat) * 10


library(nimble)
SLMMCode <- nimbleCode({
  for (i in 1:S) {
    y[i] ~ dnorm(mu_y[i], tau = tau_y)
    mu_y[i] <- b[i, 1] * x1[i] + b[i, 2] * x2[i] +
      b[i, 3] * x3[i] + b[i, 4] * x4[i] + b[i, 5] * x5[i] +
      b[i, 6] * x6[i] + b[i, 7] * x7[i] + b[i, 8] * x8[i] + 
      b[i, 9] * x9[i] + b[i, 10]* x10[i] + b[i,11] * x11[i] +
      b[i,12] * x12[i]+ b[i,13] * x13[i] + W[i]
    
    b[i, 1:13] <- bm[latent[i], 1:13]
    
    latent[i] ~ dcat(zlatent[1:M])
  }
  
  
  for (j in 1:S) {
    for (k in 1:S) {
      H[j, k] <- exp(-Dist[j, k]/phi)
    }
  }
  
  W[1:S] ~ dmnorm(mu_w[1:S], prec = prec_W[1:S, 1:S])
  prec_W[1:S, 1:S] <- tau_w * inverse(H[1:S, 1:S])
  
  phi ~ dunif(0, D)
  tau_w ~ dgamma(1, 1)
  
  mu_w[1:S] <- rep(0, S)
  
  for (k in 1:M) {
    bm[k, 1:13] ~ dmnorm(mu_bm[1:13], cov = var_bm[1:13, 1:13])
  }
 
 var_bm[1:13, 1:13] <- 1/tau_bm * diag(rep(1, 13))

  tau_bm ~ dgamma(1, 1)
  
  for (j in 1:13) {
    mu_bm[j] ~ dnorm(0, 1)
  }
  
  zlatent[1:M] <- stick_breaking(vlatent[1:(M - 1)])
  
  for (j in 1:(M - 1)) {
    vlatent[j] ~ dbeta(1, alpha)
  }
  
  alpha ~ dgamma(1, 1)
  tau_y ~ dgamma(1, 1)

})


 
 
 
 SLMMdata <- list(y = baltimore$PRICE, x1 = baltimore$NROOM,
                  x2 = baltimore$DWELL,x3 = baltimore$NBATH,
                  x4 = baltimore$PATIO,x5 = baltimore$FIREPL,
                  x6 =baltimore$AC,    x7 = baltimore$BMENT,
                  x8 =baltimore$NSTOR, x9 = baltimore$GAR,
                  x10 =baltimore$AGE,  x11=baltimore$CITCOU,
                  x12 =baltimore$LOTSZ,x13=baltimore$SQFT,
                  Dist = distMat)
  SLMMConsts <- list(S = 211, M = 50, D = 100)
  SLMMInits <- list(tau_y = 1,
                   latent = rep(1, SLMMConsts$S),
                   alpha = 2,
                   tau_bm = 1,
                   mu_bm = rnorm(13),
                   phi = 1,
                   tau_w = 1,
                   vlatent = rbeta(SLMMConsts$M - 1, 1, 1))
 
  mcmc.out <- nimbleMCMC(code = SLMMCode, data = SLMMdata,
                        constants = SLMMConsts,
                        inits = SLMMInits,
                        monitors = c("bm","b","phi", "tau_w",
                                     "alpha", "latent", "tau_y"),
                        niter = 50000,
                        thin = 10, nchains = 1, setSeed = TRUE)
  ## discard the first 2000 burn-in samples
  library(coda)
  pos_mcmc <- as.mcmc(mcmc.out[-c(1:2000),])
库(spdep)
数据(“巴尔的摩”)
str(巴尔的摩)
N
defining model...
building model...
setting data and initial values...
running calculate on model (any error reports that follow may simply reflect missing values in model variables) ... Error in solve.default(x) : 
  Lapack routine dgesv: system is exactly singular: U[49,49] = 0

checking model sizes and dimensions... This model is not fully initialized. This is not an error. To see which variables are not initialized, use model$initializeInfo(). For more information on model initialization, see help(modelInitialization).
checking model calculations...
Error in solve.default(x) : 
  Lapack routine dgesv: system is exactly singular: U[49,49] = 0
Error in solve.default(x) : 
  Lapack routine dgesv: system is exactly singular: U[49,49] = 0
Note: cannot calculate logProb for node  prec_W[1:211, 1:211] .
Error in chol.default(model$prec_W[1:211, 1:211]) : 
  the leading minor of order 1 is not positive definite
Note: cannot calculate logProb for node  lifted_chol_oPprec_W_oB1to211_comma_1to211_cB_cP[1:211, 1:211] .
NAs were detected in model variables: prec_W, bm, logProb_bm, lifted_chol_oPprec_W_oB1to211_comma_1to211_cB_cP, W, logProb_W, b, mu_y, logProb_y.
model building finished.
compiling... this may take a minute. Use 'showCompilerOutput = TRUE' to see C++ compilation details.
Error: Failed to create the shared library. Run 'printErrors()' to see the compilation errors.
> ## discard the first 2000 burn-in samples
> library(coda)
Warning message:
package ‘coda’ was built under R version 4.0.4 
> pos_mcmc <- as.mcmc(mcmc.out[-c(1:2000),])
Error in as.mcmc(mcmc.out[-c(1:2000), ]) : object 'mcmc.out' not found