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


R saddle.distn Bootstrap 统计的鞍点分布近似


R语言 saddle.distn 位于 boot 包(package)。

说明

使用鞍点方法近似整个分布。该函数可以计算感兴趣的单变量量的简单条件鞍点分布近似值。对于简单鞍点,感兴趣的量是 W 的线性组合,其中 W 是随机变量向量。对于条件鞍点,我们需要给定任意数量的其他线性组合的值,得到一个线性组合的分布。 W 的分布必须是多项式、泊松分布或二元分布之一。此函数的主要用途是使用鞍点近似计算引导分布的分位数。函数 control 需要这样的分位数来近似统计量的线性近似分布。

用法

saddle.distn(A, u = NULL, alpha = NULL, wdist = "m", 
             type = "simp", npts = 20, t = NULL, t0 = NULL, 
             init = rep(0.1, d), mu = rep(0.5, n), LR = FALSE, 
             strata = NULL, ...)

参数

A

这是已知系数的矩阵或返回此类矩阵的函数。如果是函数,则其第一个参数必须是需要鞍点的点t。 A 是函数的最常见原因是统计量本身不是 W 的线性组合,而是线性估计方程的解。

u

如果 A 是一个函数,则 u 也必须是一个返回向量的函数,该向量的长度等于 A 返回的矩阵的列数。通常,除了第一个分量之外的所有分量都是常量,因为其他分量是条件变量的值。如果 A 是具有多于一列的矩阵(例如 wdist = "cond" 时),则 u 应该是长度比 ncol(A) 小一的向量。在本例中,u 指定条件变量的值。如果A 是具有一列的矩阵或向量,则不使用u

alpha

应返回的分布分位数的 alpha 水平。默认情况下,计算 0.1、0.5、1、2.5、5、10、20、50、80、90、95、97.5、99、99.5 和 99.9 百分位数。

wdist

W 的分布。可能的值为 "m"(多项式)、"p"(泊松)或 "b"(二进制)。

type

要使用的鞍点类型。可能的值为"simp"(简单鞍点)和"cond"(条件)。如果 wdist"m" ,则 type 设置为 "simp"

npts

应计算鞍点近似值然后用于拟合样条线的点数。

t

计算鞍点近似值的点向量。这些点应超出所需的极端分位数,但仍处于引导分布的可能范围内。统计量的观测值不应包含在 t 中,因为此时分布函数近似会失效。然而,这些点应该覆盖分布的整个有效范围,包括靠近中心的地方。如果提供 t ,则 npts 设置为 length(t) 。当未提供t时,该函数尝试找到分布的有效范围,然后选择点来覆盖该范围。

t0

如果未提供 t ,则应将长度为 2 的向量作为 t0 传递。 t0 的第一个组成部分应该是分布的中心,第二个组成部分应该是分布的估计(例如标准误差)。然后使用这两个来找到分布的有效范围。测距机制确实依赖于 t0[1] 中位置的准确估计。

init

wdist"m" 时,该向量应包含在调用它求解鞍点方程时要传递给 nlmin 的初始值。

mu

分布的参数值向量。默认情况下 W 的分量是同分布的。

LR

一个逻辑标志。当LRTRUE 时,计算Lugananni-Rice cdf 近似值并用于拟合样条曲线。否则,使用的 cdf 近似值基于 Barndorff-Nielsen 的 r*。

strata

当 A 的行与分层数据相关时给出分层的向量。仅当 wdist"m" 时使用。

...

Au 是函数时,每次调用其中之一时,任何附加参数都会原样传递。

细节

使用鞍点的范围使得端点处的 cdf 近似比 alpha 的极值所需的更极端。通过评估 t0[1]-2*t0[2]t0[1]-4*t0[2]t0[1]-8*t0[2] 等点处的鞍点来找到下端点,直到找到 cdf 近似小于 min(alpha)/10 的点,然后使用二分法找到端点其 cdf 近似值在范围( min(alpha)/1000min(alpha)/10 )内。然后在下端点和 t0[1] 之间选择许多等距的点,直到完成总共 npts/2 近似。以类似的方式将剩余的npts/2点选择在t0[1]的右侧。任何非常接近分布中心的点都会被忽略,因为 cdf 近似在中心不可靠。然后将平滑样条拟合到剩余点处的鞍点分布函数近似的概率,并根据样条预测所需的分位数。

有时该函数会终止并显示消息 "Unable to find range" 。出现这种情况的主要原因有两个。一是分布过于离散和/或所需的分位数过于极端,这可能导致函数无法在允许范围内找到超出极端分位数的点。另一种可能性是 t0[2] 的值太小,因此需要太多步骤才能找到范围。第一个问题只能通过要求不太极端的分位数来解决,尽管对于非常离散的分布,近似值可能不是很好。在第二种情况下,使用较大的 t0[2] 值通常可以解决问题。

返回的值是类 "saddle.distn" 的对象。有关此类对象的说明,请参阅 saddle.distn.object 的帮助文件。

例子

#  The bootstrap distribution of the mean of the air-conditioning 
#  failure data: fails to find value on R (and probably on S too)
air.t0 <- c(mean(aircondit$hours), sqrt(var(aircondit$hours)/12))
## Not run: saddle.distn(A = aircondit$hours/12, t0 = air.t0)

# alternatively using the conditional poisson
saddle.distn(A = cbind(aircondit$hours/12, 1), u = 12, wdist = "p",
             type = "cond", t0 = air.t0)

# Distribution of the ratio of a sample of size 10 from the bigcity 
# data, taken from Example 9.16 of Davison and Hinkley (1997).
ratio <- function(d, w) sum(d$x *w)/sum(d$u * w)
city.v <- var.linear(empinf(data = city, statistic = ratio))
bigcity.t0 <- c(mean(bigcity$x)/mean(bigcity$u), sqrt(city.v))
Afn <- function(t, data) cbind(data$x - t*data$u, 1)
ufn <- function(t, data) c(0,10)
saddle.distn(A = Afn, u = ufn, wdist = "b", type = "cond",
             t0 = bigcity.t0, data = bigcity)

# From Example 9.16 of Davison and Hinkley (1997) again, we find the 
# conditional distribution of the ratio given the sum of city$u.
Afn <- function(t, data) cbind(data$x-t*data$u, data$u, 1)
ufn <- function(t, data) c(0, sum(data$u), 10)
city.t0 <- c(mean(city$x)/mean(city$u), sqrt(city.v))
saddle.distn(A = Afn, u = ufn, wdist = "p", type = "cond", t0 = city.t0, 
             data = city)

参考

Booth, J.G. and Butler, R.W. (1990) Randomization distributions and saddlepoint approximations in generalized linear models. Biometrika, 77, 787-796.

Canty, A.J. and Davison, A.C. (1997) Implementation of saddlepoint approximations to resampling distributions. Computing Science and Statistics; Proceedings of the 28th Symposium on the Interface 248-253.

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

Jensen, J.L. (1995) Saddlepoint Approximations. Oxford University Press.

也可以看看

lines.saddle.distn , saddle , saddle.distn.object , smooth.spline

相关用法


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