了解在R中执行的引导程序的输出(tsboot,MannKendall)


11

我对R中的tsboot调用的解释有疑问。我检查了Kendall和启动软件包的文档,但并不比以前更聪明。

当我使用Kendall包中的示例运行引导程序时,测试统计量为Kendall的tau:

library(Kendall)
# Annual precipitation entire Great Lakes
# The Mann-Kendall trend test confirms the upward trend.
data(PrecipGL)
MannKendall(PrecipGL)

这确认了上升趋势:

tau = 0.265, 2-sided pvalue =0.00029206

然后,该示例继续使用块引导程序:

#
#Use block bootstrap 
library(boot)
data(PrecipGL)
MKtau<-function(z) MannKendall(z)$tau
tsboot(PrecipGL, MKtau, R=500, l=5, sim="fixed")

我收到以下结果:

BLOCK BOOTSTRAP FOR TIME SERIES
Fixed Block Length of 5 
Call:
tsboot(tseries = PrecipGL, statistic = MKtau, R = 500, l = 5, 
sim = "fixed")


Bootstrap Statistics :
 original     bias    std. error
t1* 0.2645801 -0.2670514  0.09270585

如果我理解正确,则“ t1 *原始”是原始MKtau,“偏差”是R = 500自举时间序列中MKtau的平均值,“ std。error”是MKtaus距标准值的标准偏差。 500个样本。

我很难理解这是什么意思-这基本上告诉我所有500 MKTaus都低于原始Mt,原始t1 *处于自举MKtaus的3 sd范围内。Ergo它有明显的不同吗?

还是说数据集的MKtau为0.26正负标准误?

我为这个冗长的问题感到抱歉,但是我是统计学新手,正在通过自学学习,没有人来回弹这个可能非常简单的问题。


6
在输出bias中仅存储的500个引导程序样本的平均值与原始估计值之间的差。的std. error是500个bootstrap样本的标准偏差,并且是标准误差的估计。输出结果告诉您,您的原始估算值高于 500个自举估算值的平均值(因此,并非所有自举MKtaus都较低)。引导程序通常用于计算标准误差/置信区间,而无需对分布进行假设。使用该boot.ci函数计算置信区间。
COOLSerdash 2013年

@COOLSerdash,谢谢你!因此,如果我的原始统计量比自举统计量的平均值高3 sd,那么我是否可以直接得出任何结论(例如:统计量在0.99时有效)?我还使用boot.ci来计算置信区间,同样,最初计算的统计信息不在这些区间之内。
玛丽亚

不,您不会通过假设检验将自举统计与原始统计进行比较。在您的情况下,我只使用/报告自举标准错误和置信区间。
COOLSerdash

Answers:


3

遇到相同的问题并使用受控数据集-y = ax + b的模型(具有N(0,sig)错误)进行了探索,我发现Kendall软件包可能无法像宣传的那样工作。该X在我的情况是1:100,和Y = X,与SIG = 100(误差项的方差)。

回归看起来不错,肯德尔的tau也是如此。除了线性模型引起的自相关之外,这里没有其他自相关。按照公告的块长度分别为1、3、5和10运行Kendall测试会产生非常大的偏差值,并且boot.ci没有趋势。

随后,我使用这些块长度对数据的引导程序进行了手工编码,并通过控制序列,获得了有关引导程序样本的均值及其散布的合理结果。因此,关于块引导程序,软件包Kendall可能出了点问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.