我使用MoveHMM包(https://cran.r-project.org/web/packages/moveHMM/vignettes/moveHMM-guide.pdf)进行HMM分析,但是当我绘图时,我得到了下面提到的错误。
Error in if (max(stepDensities[[state]][, 2]) > maxdens) maxdens <-
max(stepDensities[[state]][, :
missing value where TRUE/FALSE needed代码:
data <- prepData(output2,type="UTM",coordNames=c("Longitudes","Latitudes"));
## initial parameters for gamma and von Mises distributions
mu0 <- c(0.1,1) # step mean (two parameters: one for each state)
sigma0 <- c(0.1,1) # step SD
zeromass0 <- c(0.1,0.05) # step zero-mass
stepPar0 <- c(mu0,sigma0,zeromass0)
angleMean0 <- c(pi,0) # angle mean
kappa0 <- c(1,1) # angle concentration
anglePar0 <- c(angleMean0,kappa0)
## call to fitting function
m <- fitHMM(data=data,nbStates=2,stepPar0=stepPar0,
anglePar0=anglePar0,formula=~1)
plot(m)


发布于 2018-04-02 14:25:19
当优化器无法收敛并返回极值参数估计(例如Inf)时,通常会出现此错误。如果你打印合适的模型对象,你可以看到这一点。
解决这些数值问题的方法通常是尝试不同的初始参数值("stepPar0“和"anglePar0”在fitHMM中;参见包小体的3.2.2节)。
您的问题似乎来自您为步长分布选择的初始参数。数据集中的步长是1e-4的值,因此您的初始步长参数应该反映这一点。您可以尝试这样的方法,而不是使用小片段中给出的值:
mu0 <- c(5e-5,5e-4) # step length mean
sigma0 <- c(5e-5,5e-4) # step length SD其思想是选择“合理”的参数值,给定观察到的步长和转弯角度。如果观察到的步长都小于一米,你就不会期望一公里的平均步长。
编辑:现在有一个小片段,为初始参数值的选择提供了一些指导:moveHMM中用于估计的初始参数值的选择指南。
发布于 2018-03-14 22:44:43
有两件事:
你试过用plot(data, compact=T)绘制你的数据吗?首先尝试一下,因为在prepData()上指定了prepData(),您的数据是Lat/Long,这可能会对其他函数产生影响。因此,请确保将其更改为type="LL"。
您没有指定错误弹出的位置,但似乎moveHMM包中使用if max(stepDensities[[state]][, 2]) > maxdens) maxdens <- max(stepDensities[[state]][, :的唯一函数是由plot(m)调用的plot.moveHMM函数中的plotHist函数。假设您在拟合模型后得到了错误:您尝试过print(m)吗?
最好的。
https://stackoverflow.com/questions/49173825
复制相似问题