这是我第一次使用启动包,而且我在生成一些自举回归数据时遇到问题。
我拥有的数据帧是df
(原始数据要大得多):
aX gX pos
-0.02422145 -0.4127358 14749
0.19770304 -0.3913043 13649
0.01587302 -0.7250000 11349
-0.03744150 -0.2436149 14449
0.05079826 -0.4273319 15349
0.12209738 -0.4259067 13249
我正在应用以下将应用线性回归的函数:
regr.fun <- function(data, indices, step) {
l=20000
data <- data[indices,]
for(i in seq(1,l,step)) {
for(j in seq(1,l,step)) {
for( ind in 1:nrow(data)) {
if( dis(i, j) >= l/2 ){
data[ind,]$nval = dis( data[ind,]$pos, i) )
}
else{
data[ind,]$nval = dis( i, data[ind,]$pos, l )/l
}
}
mAx=lm(ax ~ nval, data)
errorAx=sum(residuals(mAx)^2)
mGx=lm(gx ~ nval, data)
errorGx=sum(residuals(mGx)^2)
resdf <-rbind(resdf, data.frame(resi = i, resj=j, errA=errorAx, errG=errorGx)
}
}
return(resdf)
}
并且函数dis
是一个函数,它做了一些小的计算,此时并不重要。
然后我做的是引导程序:
reg.boot <- boot(data=df,statistic =reg.fun,step=1000, R=10, sim="permutation")
所以我应该得到的是一个自发的置换数据。
所以在这种情况下我有两个问题:
1-当我打印reg.boot时,std.error和bias等于0,我无法理解输出。
DATA PERMUTATION
Call:
boot(data = df, statistic = regr.fun, R = 10,
sim = "permutation", stepsize = 1000)
Bootstrap Statistics :
original bias std. error
t1* 16001.000000 0 0
t2* 16001.000000 0 0
t3* 1.802046 0 0
t4* 1.532456 0 0
在排列测试中,我应该得到p值来检查基于观察到的随机数据中每对i,j的显着性,在这种情况下我可以选择最低的p值,但我没有得到任何人吗?
我做错了分析?