построение начальных доверительных интервалов - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь построить загрузочную линейную модель и хотел бы включить верхний и нижний доверительные интервалы моделей и не уверен, что правильно вычисляю загрузочные верхние и нижние границы.Ниже приведен пример использования набора данных cars в r в сочетании с библиотекой boot.

library(boot)


plot(speed~dist,cars,pch=21,bg="grey")
## standard linear model
mod<-lm(speed~dist,cars)
new.dat=seq(0,120,10)
mod.fit<-predict(mod,newdata=data.frame(dist=new.dat),interval="confidence")

lines(new.dat,mod.fit[,1]);#line fit
lines(new.dat,mod.fit[,2],lty=2);#lower confidence interval
lines(new.dat,mod.fit[,3],lty=2);#upper confidence interval

##Bootstrapped Confidence Intervals
lm.boot=function(formula, data, indices) {
  d <- data[indices,] # allows boot to select sample 
  fit <- lm(formula, data=d)
  return(coef(fit)) 
}

results <- boot(data=cars, statistic=lm.boot, 
                R=100, formula=speed~dist)
N.mod<-nrow(cars)
x.val<-new.dat
y.boot.fit<-(mean(results$t[,2])*x.val)+mean(results$t[,1])
y.boot.fit.uCI<-y.boot.fit+qt(0.975,N.mod-2)*sd(results$t[,2])
y.boot.fit.lCI<-y.boot.fit-qt(0.975,N.mod-2)*sd(results$t[,2])

lines(new.dat,y.boot.fit,col="red")
lines(new.dat,y.boot.fit.lCI,lty=2,col="red");#lower confidence interval
lines(new.dat,y.boot.fit.uCI,lty=2,col="red");#upper confidence interval

legend("bottomright",legend=c("Linear Model","Bootstrapped Model"),lty=1,
col=c("black","red"),ncol=1,cex=1,bty="n",y.intersp=1.5,x.intersp=0.75,
xpd=NA,xjust=0.5)

Используя этот код, я получаю этот вывод, когда доверительный интервал с начальной загрузкой находится сверху от встроенной линии с начальной загрузкой.

linear model examples

Любая помощь / направление приветствуется.Конечно, это может быть лучше подходит для перекрестной проверки или других статистических плат.

...