Как исправить ошибку "Невозможно напрямую преобразовать неотмеченную оценку с длиной> 1" в R?

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

Я пробовал backTransform(hn.ls, 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")

0 ответов

Без воспроизводимого примера я не могу дать вам точного ответа, но в основном вы можете использовать только backTransformкогда нет ковариат. Если ковариаты ЕСТЬ, то вам необходимо указать значения ковариат, при которых будет выполнено обратное преобразование. Вы можете сделать это с помощьюlinearCombфункции (см. руководство без пометки здесь). Затем вы можете использоватьbackTransform по результатам linearComb функция.

Другие вопросы по тегам