Как исправить ошибку "Невозможно напрямую преобразовать неотмеченную оценку с длиной> 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
функция.