Hello, Inline. Em 06-12-2012 03:52, Rebecca escreveu: > I'm trying to find a bootstrap based confidence band for a linear model. > I have created a data set with X and Y > X=runif(n,-1.25,1.25) > e=rnorm(n,0,1) > Y=exp(3*X)+5*sin((30*X)/(2*pi))+2*e > fit=lm(Y~X)
You cannot expect this model, a first degree polynomial in X, to fit your data. > summary(fit) > > I define a bootstrap function named PairedBootstrap which is not listed here. > Than I try many ways to find the confidence band. One way is to predict Y > using the model I get above for 1000 times. > Data.Orig=data.frame(cbind(X,Y)) Get rid of cbind(), please. It's doing nothing and the construct data.frame(cbind(...)) is potentially harmful. > B=1000 > Boot.Result=matrix(nrow=B,ncol=n) > for ( b in 1:B){ > Data.Orig.Boot=PairedBootstrap(Data.Orig) > fit.Boot=predict(fit,newdata=Data.Orig.Boot,type="response") > Boot.Result[b,]=fit.Boot > } > > And try to find 95% confidence interval for 1000 copies of y corresponding to > each x. > ConfidenceSet.Pointwise=function(Boot.Result,alpha){ > n=ncol(Boot.Result) > B=nrow(Boot.Result) > SetBounds=matrix(ncol=2,nrow=n) > for(j in 1:n){ > Result.Sort=sort(Boot.Result[,j]) > SetBounds[j,1]=Result.Sort[floor(0.5*B*alpha)] > SetBounds[j,2]=Result.Sort[ceiling(B*(1-0.5*alpha))] > } > return(SetBounds) > } Better could be ConfidenceSet.Pointwise2 <- function(Boot.Result,alpha){ SetBounds <- matrix(ncol=2, nrow=n) for(j in seq_len(ncol(Boot.Result))) SetBounds[j, ] <- quantile(Result.Sort, probs = c(alpha/2, 1 - alpha/2)) SetBounds } Simpler, no? Hope this helps, Rui Barradas > > And then try to line them up. But the result is not what I want. > alpha=0.05 > Boot.Pointwise=ConfidenceSet.Pointwise(Boot.Result,alpha) > lines(Data.Orig[,1],Boot.Pointwise[,1], col=2, lwd=3) > > Could someone tell where I'm wrong, or is there another better way to do it? > Thank you so much! > > [[alternative HTML version deleted]] > > > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.