搜档网
当前位置:搜档网 › R语言自己编程实现bootstrap函数和调用函数包实现

R语言自己编程实现bootstrap函数和调用函数包实现

R语言自己编程实现bootstrap函数和调用函数包实现

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))

相关主题