在r中使用启动包存储系数和向量

在r中使用启动包存储系数和向量,r,statistics-bootstrap,R,Statistics Bootstrap,我正在估算一个y=x+s(z)类型的模型,其中s(z)是一个非参数函数。我想使用bootstrap获得x上系数的标准误差,以及函数s(z)的置信区间。基本上,我的估计结果给出了x的系数,因此是1x1对象,而s(z)的向量nx1。您可以通过使用gam包(gam)函数来实现这一点。为了满足我的需要,我使用了一个手写函数,它返回一个名为result的列表,其中result$betax作为x上的系数,以及result$curve存储向量值的列表(对s(z)的估计给出了一组对应于曲线的值)。我正在使用bo

我正在估算一个
y=x+s(z)
类型的模型,其中
s(z)
是一个非参数函数。我想使用bootstrap获得
x
上系数的标准误差,以及函数
s(z)
的置信区间。基本上,我的估计结果给出了
x
的系数,因此是
1x1
对象,而
s(z)
的向量
nx1
。您可以通过使用
gam
包(
gam
)函数来实现这一点。为了满足我的需要,我使用了一个手写函数,它返回一个名为
result
的列表,其中
result$betax
作为
x
上的系数,以及
result$curve
存储向量值的列表(对
s(z)
的估计给出了一组对应于曲线的值)。我正在使用
boot
包进行引导,如下所示

result.boot <- boot(data, myfunction, R=3, sim = "parametric", 
                    ran.gen = myfunction.sim, mle = myfunction.mle)
我想它应该给出x上的cofficient向量,在此向量上我将计算标准误差,以及
s(z)
值的矩阵
nxn
,在此矩阵上我将为每一行计算一个s.e.,这样我就有了
s(z)
曲线的置信区间。我想这与函数的输出是由

est <- list("betax" = betax, "curve" = s.z, "residuals"=res)
return(est)
当我在做

est <- myfunction(y, x, z)

est解决方案意味着对手写函数的输出进行矢量化,从而使其与要求将结果存储在矢量中的
boot
过程兼容

est <- myfunction(y, x, z)
good.output <- matrix(c(betax, s.z), ncol=1)

est是的,您的
myfunction
需要返回一个简单的向量,这是正确的。(有关该要求的正式文档,请参见
?boot
statistic
参数的文档开头,该参数表示“statistic:应用于数据时返回包含感兴趣的统计信息的向量的函数”。)所以你的工作就是将你想要返回到一个向量中的各种元素进行处理。基本上,我可以通过像
est这样的命令将所有值放到一个向量中。当我使用boot时,我通常只需要很少的参数(1-3的数量级),为此,我只需要
est(c(beta1,beta2,sigma))
或类似的东西,但看起来你也有了一些可以工作的东西。干杯
est <- myfunction(y, x, z)
est <- myfunction(y, x, z)
good.output <- matrix(c(betax, s.z), ncol=1)