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