当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R exp.tilt 指数倾斜


R语言 exp.tilt 位于 boot 包(package)。

说明

此函数计算指数倾斜多项式分布,以便统计量的线性近似的重采样分布具有所需的均值。

用法

exp.tilt(L, theta = NULL, t0 = 0, lambda = NULL,
         strata = rep(1, length(L)))

参数

L

基于观测数据的感兴趣统计的经验影响值。 L的长度应与原始数据集的大小相同。通常,L 将通过调用 empinf 来计算。

theta

倾斜分布的中心值。如果提供了lambda,则不需要此操作,但否则需要此操作。

t0

统计数据的当前值。默认情况下统计量等于 0。

lambda

拉格朗日乘子。对于 lambda 的每个值,找到一个多项式分布,其概率与 exp(lambda * L) 成比例。一般来说,lambda 是未知的,因此将提供theta,并找到lambda 的相应值。如果同时提供lambdatheta,则忽略lambda,并找到倾斜到theta 的乘数。

strata

L 长度相同的向量或因子,给出观测数据的层和经验影响值 L

细节

指数倾斜涉及找到数据集的一组权重,以确保感兴趣的统计量的线性近似的自举分布具有平均值 theta 。为实现此目的而选择的权重由 p[j]exp(lambda*L[j]/n) 成比例给出,其中 n 是数据点的数量。然后选择 lambda 以使感兴趣统计量的线性近似的自举分布的平均值等于所需值 theta 。因此lambda被定义为非线性方程的解。通过使用函数 nlmin 最小化方程左侧和右侧之间的欧几里德距离来求解方程。如果该最小值不等于零,则该方法失败。

通常,指数倾斜用于寻找适合重要性重采样的权重。如果需要感兴趣统计量分布的小尾部概率或分位数,则更有效的模拟是将重采样分布集中在感兴趣点附近,然后使用函数 imp.probimp.quantile 来估计所需的数量。

实现类似的分布移位的另一种方法是使用 smooth.f 。函数 tilt.boot 使用 exp.tiltsmooth.f 来查找倾斜引导的权重。

包含以下组件的列表:

p

倾斜的概率。将有m 发行版,其中mtheta 的长度(或lambda,如果提供的话)。如果 m 为 1,则 plength(L) 概率的向量。如果 m 大于 1,则 p 是一个具有 m 行的矩阵,每行包含 length(L) 概率。在这种情况下,矢量 p[i,] 是向 theta[i] 倾斜的分布。 p 的格式是函数 boot 的参数 weights 所需的形式,用于重要性重采样。

lambda

方程中使用拉格朗日乘数来确定倾斜概率。 lambda 是与 theta 长度相同的向量。

theta

分布已倾斜的theta 的值。一般来说,这将是 theta 的输入值,但如果提供了 lambda,则这是相应的 theta 值的向量。

例子

# Example 9.8 of Davison and Hinkley (1997) requires tilting the resampling
# distribution of the studentized statistic to be centred at the observed
# value of the test statistic 1.84.  This can be achieved as follows.
grav1 <- gravity[as.numeric(gravity[,2]) >=7 , ]
grav.fun <- function(dat, w, orig) {
     strata <- tapply(dat[, 2], as.numeric(dat[, 2]))
     d <- dat[, 1]
     ns <- tabulate(strata)
     w <- w/tapply(w, strata, sum)[strata]
     mns <- as.vector(tapply(d * w, strata, sum)) # drop names
     mn2 <- tapply(d * d * w, strata, sum)
     s2hat <- sum((mn2 - mns^2)/ns)
     c(mns[2]-mns[1], s2hat, (mns[2]-mns[1]-orig)/sqrt(s2hat))
}
grav.z0 <- grav.fun(grav1, rep(1, 26), 0)
grav.L <- empinf(data = grav1, statistic = grav.fun, stype = "w", 
                 strata = grav1[,2], index = 3, orig = grav.z0[1])
grav.tilt <- exp.tilt(grav.L, grav.z0[3], strata = grav1[,2])
boot(grav1, grav.fun, R = 499, stype = "w", weights = grav.tilt$p,
     strata = grav1[,2], orig = grav.z0[1])

参考

Davison, A. C. and Hinkley, D. V. (1997) Bootstrap Methods and Their Application. Cambridge University Press.

Efron, B. (1981) Nonparametric standard errors and confidence intervals (with Discussion). Canadian Journal of Statistics, 9, 139-172.

也可以看看

empinf , imp.prob , imp.quantile , optim , smooth.f , tilt.boot

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Exponential Tilting。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。