dataset=read.table("e:/CH01TA01.txt",T) #使用数据样本
head(dataset)
lm=lm(Y~X,dataset)
summary(lm)
boooootstrap<- function(dataset,m,n) #自编函数实现bootstrap功能 { ff=as.formula(paste(names(dataset)[m],"~.",sep="")) row=nrow(dataset);col=ncol(dataset)
c=matrix(0,n,col)
a=lm(ff,dataset)
dataset_new=dataset
for (i in 1:n)
{
num=sample(1:row,row,replace=T)
dataset_new[,m]=dataset[,m]+(a$resid)[num]
a1=lm(ff,dataset_new)
c[i,]=as.vector(a1$coef)
}
c=as.data.frame(c)
b=list()
for (i in 1:col) b[[i]]=c[,i]
names(b)=c("Intercept",colnames(dataset)[-m])
return(b)
}
(b=boooootstrap(dataset,2,500))
hist(b[[i]]) #i为第i个参数
##################
#函数boooootstrap的输入:1.dataset为数据集
# 2.m为数据集中因变量所在列
# 3.n为所需boooootstrap的次数;
#输出:列表b,每一层为截距以及各自变量在boooootstrap n次所得的值
CI <- function(dataset,m,n,x)
{ a=1-x
b=boooootstrap(dataset,m,n)
ff=as.formula(paste(names(dataset)[m],"~.",sep="")) fit=lm(ff,dataset)
d=list()
for (i in 1:length(b))
{ d1=as.vector(2*fit$coef[i]-quantile(b[[i]],1-a/2))