pdf("g13.pdf");options(width=64) #setwd("C:\\Users\\kolassa\\Class555") setwd("~/Taught1/960-555/Data")
#*************************************************************/ # Data from http://lib.stat.cmu.edu/datasets/Arsenic */ # reformatted into ASCII on the course home page. Data re- */ # flect arsenic levels in toenail clippings; covariates in- */ # clude age, sex (1=M), categorical measures of quantities */ # used for drinking and cooking, arsenic in the water, and */ # arsenic in the nails. To make arsenic.dat from Arsenic, do*/ #antiword Arsenic|awk '((NR>39)&&(NR<61)){print}'>arsenic.dat*/ #*************************************************************/ arsenic<-read.table("arsenic.dat") names(arsenic)<-c("age","sex","drink","cook","water", "nails") arsenic$status<-(arsenic$water>=.0001)+0 arsenic$water[arsenic$water<.0001]<-.0001 arsenic$lnail<-log(arsenic$nails) arsenic$lwater<-log(arsenic$water) # Block 1 library(boot)#For boot and boot.ci #Define the function to be applied to data sets to get #the parameter to be bootstrapped. boot.ci(boot(arsenic$nails,function(x,index) return(median(x[index])),9999)) # Block 2 library(MultNonParam)#For exactquantileci exactquantileci(arsenic$nails) # Block 3 logscale<-function(x,index) return(log(sd(x[index]))) sdbootsamp<-boot(arsenic$nails,logscale,9999) sdoutput<-boot.ci(sdbootsamp) # Block 4 plot(density(sdbootsamp$t)) # Block 5 boot.ci(boot(arsenic$nails,logscale,99999))$bca # Block 6 library(NonparametricHeuristic)#for fun.testboot t1<-fun.testboot(function(data,indices) return(median(data[indices])), mcsamp=1000, sampsize=20, dists=c("rexp","runif","rcauchy"), true=c(log(2),.5,0),alpha=.1) t1 twinbrain<-as.data.frame(scan("IQ_Brain_Size", what=list(CCMIDSA=0,FIQ=0,HC=0,ORDER=0,PAIR=0,SEX=0, TOTSA=0, TOTVOL=0,WEIGHT=0),skip=27,nmax=20)) fir<-twinbrain[twinbrain$ORDER==1,] fir$v1<-fir$TOTVOL sec<-twinbrain[twinbrain$ORDER==2,] sec$v2<-sec$TOTVOL brainpairs<-merge(fir,sec,by="PAIR")[,c("v1","v2")] brainpairs$diff<-brainpairs$v2-brainpairs$v1 # Block 7 cat("\nParametric Bootstrap for median difference\n") qmed<-function(x,indices) return(median(x[indices])) ran.diff<-function(x,ests) return(ests[1]+ests[2]*rnorm(length(x))) bootout<-boot(brainpairs$diff,qmed,R=999,sim="parametric", ran.gen=ran.diff,mle=c(mean(brainpairs$diff), sd(brainpairs$diff))) boot.ci(bootout,type=c("basic","norm")) # Block 8 rho<-function(d,idx) return(cor(d[idx,1],d[idx,2])) # Block 9 bootout<-boot(brainpairs[,c("v1","v2")],rho,9999) # Block 10 hist(bootout$t,freq=FALSE) legend(-.4,6,lty=1:2, legend=c("Estimate","Confidence Bounds")) abline(v=bootout$t0) abline(v=sort(bootout$t)[(bootout$R+1)*c(.025,.975)],lty=2) # Block 11 boot.ci(bootout) # Block 12 #Second component is an estimate of its scale, squared. regparam<-function(d,idx) return(summary( lm(d[idx,2]~d[idx,1]))$coefficients[2,1:2]^(1:2)) # Block 13 boot.ci(boot(brainpairs[,c("v1","v2")],regparam,9999)) # Block 14 medianiqr2<-function(x,index) return(c(median(x[index]), (quantile(x[index],.75)-quantile(x[index],.25))^2)) medianvar<-function(x,index) return(c(median(x[index]), var(x[index]))) boot.ci(boot(arsenic$nails,medianiqr2,99999),type="stud") boot.ci(boot(arsenic$nails,medianvar,99999),type="stud") # Block 15 residuals<-resid(lm(brainpairs$v2~brainpairs$v1)) fittedv<-brainpairs$v2-residuals # Block 16 regparam<-function(data,indices,fittedv,residuals){ y<-fittedv+residuals[indices] return(summary(lm(y~data[,1]))$coefficients[2,1:2]^(1:2)) } library(boot)#For boot and boot.ci bootout<-boot(brainpairs[,c("v1","v2")],regparam,9999, fittedv=fittedv,residuals=residuals) # Block 17 boot.ci(bootout,type="stud") # Block 18 cat("\n Fixed X bootstrap adjusting for variance \n") modelfit<-lm(brainpairs$v2~brainpairs$v1) hat<-lm.influence(modelfit)$hat adjresid<-resid(modelfit)/sqrt(1-hat) newregparam<-function(data,indices,fittedv,adjresid,hat){ y<-fittedv+sqrt(1-hat)*adjresid[indices] return(summary(lm(y~data[,1]))$coefficients[2,1:2]^(1:2)) } bootout<-boot(brainpairs[,c("v1","v2")],newregparam,9999, fittedv=fittedv,adjresid=adjresid,hat=hat) boot.ci(bootout)$student[4:5] #**********************************************************/ # Chicken weightdata from Example K of Cox & Snell (1981).*/ # Variables represent protein source, protein level, fish */ # solubles level. Two responses representing weight at */ # 16wk in g follow. */ #**********************************************************/ temp1<-temp<-as.data.frame(scan("chicken.dat", what= list(source="", lev=0,fish=0,weight=0,w2=0))) temp1$weight<-temp1$w2;temp$h<-0;temp1$h<-1 temp$w2<-NULL;temp1$w2<-NULL chicken<-rbind(temp,temp1) # Block 19 meandiff<-function(data,indices){ fitv<-fitted(lm(data[,1]~as.factor(data[,2]))) residv<-data[,1]-fitv y<-fitv+residv[indices] return(diff(range(unlist(lapply(split(y,data[,2]), "mean"))))) } cat("Bootstrap CI for maximal difference in means\n") boot.ci(boot(cbind(chicken$weight,chicken$lev),meandiff,9999)) # Block 20 library(bootstrap)#For jackknife jackknife(arsenic$nails,median) # Block 21 jackknife(arsenic$nails,mean) # Block 22 jackknife(arsenic$nails,mean,trim=0.25) # Block 23 jackknife(brainpairs$diff,median) # Block 24 t2<-testjack(list(mean,median,mean),dists=list(rexp,rnorm), others=list(NULL,NULL,list(trim=0.25)),nsamp=100000) t2