Как исправить ошибку «Невозможно напрямую преобразовать неотмеченную оценку с длиной> 1» в R? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь построить линейный график зависимости плотности в реальном масштабе, основываясь на оценках модели (hn.l.s). Но я застрял на обратном преобразовании его в реальный масштаб. Я прав в обратном преобразовании или я должен был идти прямо к сюжету ()?

Я пробовал backTransform (hn.l.s, type = "state") вместо "det", но ни одна из них не работает.

dist<-seq(0,60,15)
obs<-as.matrix(dat[,1:4])
site_covs<-data.frame(shrub=dat[,c("d.shrub")],light=dat[,c("light")])
umf<-unmarkedFrameDS(y=obs,siteCovs=site_covs,dist.breaks=c(dist),survey="point",unitsIn="m")
hn.1.s<-distsamp(~1~shrub,umf,keyfun="halfnorm",output="density",unitsOut="ha")
pred.hn.l.s<-predict(hn.l.s,"state",se.fit=TRUE)
backTransform(hn.l.s, type="det")

Ошибка в .local (obj, ...): Невозможно напрямую выполнить обратное преобразование неотмеченной оценки с длиной> 1.

Я ожидал получить оценку обнаружения от:

backTransform(hn.l.s, type="det") 

Который дал бы мне номер:

sigma<-[the number]

Тогда я бы оценил полунормальный опыт:

hn.l.s@estimates

И получил:

b<-exp([a diff number])

Затем рассчитывается:

p.hn.l.s<-1-exp(-(dist/sigma)^-b)

И получил сюжет с:

plot(dist,p.hn.l.s,type="l",xlim=c(0,60), ylim=c(0,1), xlab="Distance", ylab="Detection probability")
...