R语言与抽样技术学习笔记(Jackknife)
R语言与抽样技术学习笔记(Randomize,Jackknife,bootstrap)
Jackknife算法
Jackknife的想法在我很早的一篇博客《R语言与点估计学习笔记(刀切法与最小二乘估计)》就提到过。其思想以一言蔽之就是:将样本视为总体,在“总体”中不放回地抽取一些“样本”来做统计分析。今天我们来讨论Jackknife应该怎么做以及为什么要这么做。
Jackknife的算法描述
Jackknife方法利用系统的划分数据集的办法来推测总体样本估计量的一些性质。Quenouille建议用它来估计偏差,随后John Tukey证实它用来估计估计量的方差也是极好的。
假设我们有随机样本X1,⋯,Xn,并从中计算统计量T去估计总体的参数μ。在Jackknife方法下,我们将给定数据集划分为r组,每组数据量为k。
现在,我们移除样本中第jth组数据,并用剩下的数据来估计参数μ,并将估计量记为T(−j)。T(−j)的均值T¯¯¯(⋅)可以用来估计参数μ,T(−j)也可以用来获取估计量T更多的信息,但是必须要指出的是Jackknife不会提供比总体样本更多的信息(任何抽样技术都是不会的!!!);当T是无偏估计时,T(−j)也是,T是有偏的估计量时,T(−j)也是,但是会有一点点的不同。
我们有时也对T与T(−j)的不同进行加权处理,得到新的统计量:
这就是许多文献中提到的Jackknife“伪值”,并将这些伪值的均值称为“Jackknifed”T,记为T(J)。显然 通常情况下,我们取k=1,r=n。在某些特定条件下,它是最优的。
现在我们来考虑一下Jackknife对估计量偏差与方差的估计。我们这里采用伪值来考虑问题,认为伪值的偏差就是估计量的偏差,伪值的方差就是估计量的方差。那么我们有
我们不妨取r=n,k=1,T对μ的估计的偏差肯定是,忽略高阶量,那么偏差的近似估计量为:
虽然这些伪值不是独立的,但是,我们仍不妨假设他们是独立的,因为这样我们利用伪值估计估计量的方差变得十分简单:
我们以正态总体为例来考虑这个问题。
data.sim <- rnorm(30, 5, 3)
(mu.hat <- mean(data.sim))
## [1] 4.339
[plain] view plain copy
print?
n <- length(data.sim)
mu.jack <- NULL
for (i in 1:n) {
mu.jack[i] <- mean(data.sim[-i])
}
(jack.estimate <- mean(mu.jack))
## [1] 4.339
可以看到,矩估计的估计值为4.3393,Jackknife估计为4.3393,较真值5而言,估计效果还是可以的。我们还可以计算偏差:
(bias <- (n - 1) * (mean(mu.jack) - mu.hat))
## [1] 0
可以看到,这是一个无偏估计,不是吗?
当然,要估计我们采取的估计量的方差也是可以的:
var <- mean((mu.jack - mean(mu.jack))^2) * (n - 1)
print(var)
## [1] 0.4612
可以看到估计量的方差为0.4612与正态总体均值的标准差的理论值0.3相差不大。
Jackknife与偏差纠正
我们这里将要说明Jackknife最大的作用——纠正偏差。
我们都知道,我们对参数估计最常用的办法就是矩估计与极大似然估计。然而这两种估计不一定是无偏的。例如[0,θ]上的均匀分布U(θ)的参数θ的极大似然估计就不是无偏的,在比如正态分布N(μ,σ)中标准差的似然估计也不是无偏的。这些很容易证明,当然,你也可以查阅王兆军的《数理统计讲义》,上面给出了详细的说明。 当然这些偏差我们都可以通过对估计量做一些变换得到无偏估计量,但是这些常数还是不太容易通过普适的办法得到,而大偏差估计往往被视为估计的不足,得到一种在不增加方差的基础上,纠正偏差的办法是很好的,这就是我们现在讨论的Jackknife。
设T(X)是基于样本X的参数g(θ)的估计量,且满足,Jackknife偏差修正估计量为,Jackknife统计量具有如下性质:
证明十分的简单,注意到J(T)的表达式,利用定义即可证明。(上一小节我们也间接地证明过了这一事实)
我们最后来看一个例子:我们知道均匀分布U(θ)的参数θ的极大似然估计是渐进无偏而非真正无偏的,我们假设样本为x1,⋯,xn,θ的极大似然估计是x(n)(即样本中的最大值),我们知道,所以似然估计的偏差是,我们使用Jackknife看看能不能缩减方差:
data.sim <- runif(100, 0, 7)
theta.hat <- max(data.sim)
theta.jack <- NULL
for (i in 1:length(data.sim)) {
theta.jack[i] <- max(data.sim[-i])
}
n <- length(data.sim)
theta.jackestimate <- n * theta.hat - (n - 1) * mean(theta.jack)
cat("original bias is ", 7 - theta.hat, "after jackknife the bias is ", 7 -
theta.jackestimate)
## original bias is 0.002576 after jackknife the bias is -0.1084
我们从上面的运行结果可以清楚的看到Jackknife之后,偏差确实减少了。这也是符合我们的想法的,因为当k变大时,Jackknife估计更接近均值的两倍,即它更接近矩估计,而矩估计是无偏的。当然一味追求无偏是不对的,对于一个有偏估计,其偏差趋于0时,可能导致方差变得很大。
Jackknife失效
若估计量不够平滑,每次删掉一个数据的Jackknife就会失效,估计也不再具备相合性。
例如:利用Jackknife方法估计从1到100中随机抽出的10个数的中位数的标准差。
## M= 46 46 40 40 40 46 40 46 46 40
## [1] 9
我们可以看到这个估计量的标准差很不对的,因为每次缺省1个值,中位数也就至多会有两个取值,无论你的样本容量取值多大,这都是不对的。Enfro(1993)提出了delete K Jackknife算法解决这个问题。但是这个要求还是很高的,它要求n,k都比较大。那么好的估计方法应该是什么呢?这就要用到我们接下来将要介绍的bootstrap方法。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在这个瞬息万变的时代,许多人都在寻找能让他们脱颖而出的职业。而数据分析师,作为大数据和人工智能时代的热门职业,自然吸引了 ...
2025-01-14Python作为一门功能强大的编程语言,已经成为数据分析和可视化领域的重要工具。无论你是数据分析的新手,还是经验丰富的专业人士 ...
2025-01-10完全靠数据决策,真的靠谱吗? 最近几年,“数据驱动”成了商界最火的关键词之一,但靠数据就能走天下?其实不然!那些真正成功 ...
2025-01-09SparkSQL 结构化数据处理流程及原理是什么?Spark SQL 可以使用现有的Hive元存储、SerDes 和 UDF。它可以使用 JDBC/ODB ...
2025-01-09在如今这个信息爆炸的时代,数据已然成为企业的生命线。无论是科技公司还是传统行业,数据分析正在深刻地影响着商业决策以及未来 ...
2025-01-08“数据为王”相信大家都听说过。当前,数据信息不再仅仅是传递的媒介,它成为了驱动经济发展的新燃料。对于企业而言,数据指标体 ...
2025-01-07在职场中,当你遇到问题的时候,如果感到无从下手,或者抓不到重点,可能是因为你掌握的思维模型不够多。 一个好用的思维模型, ...
2025-01-06在现代企业中,数据分析师扮演着至关重要的角色。每天都有大量数据涌入,从社交媒体到交易平台,数据以空前的速度和规模生成。面 ...
2025-01-06在职场中,许多言辞并非表面意思那么简单,有时需要听懂背后的“潜台词”。尤其在数据分析的领域里,掌握常用术语就像掌握一门新 ...
2025-01-04在当今信息化社会,数据分析已成为各行各业的核心驱动力。它不仅仅是对数字进行整理与计算,而是在数据的海洋中探寻规律,从而指 ...
2025-01-03又到一年年终时,各位打工人也迎来了展示成果的关键时刻 —— 年终述职。一份出色的年终述职报告,不仅能全面呈现你的工作价值, ...
2025-01-03在竞争激烈的商业世界中,竞品分析对于企业的发展至关重要。今天,我们就来详细聊聊数据分析师写竞品分析的那些事儿。 一、明确 ...
2025-01-03在数据分析的江湖里,有两个阵营总是争论不休。一派信奉“大即是美”,认为数据越多越好;另一派坚守“小而精”,力挺质量胜于规 ...
2025-01-02数据分析是一个复杂且多维度的过程,从数据收集到分析结果应用,每一步都是对信息的提炼与升华。可视化分析结果,以图表的形式展 ...
2025-01-02在当今的数字化时代,数据分析师扮演着一个至关重要的角色。他们如同现代企业的“解密专家”,通过解析数据为企业提供决策支持。 ...
2025-01-02数据分析报告至关重要 一份高质量的数据分析报告不仅能够揭示数据背后的真相,还能为企业决策者提供有价值的洞察和建议。 年薪 ...
2024-12-31数据分析,听起来好像是技术大咖的专属技能,但其实是一项人人都能学会的职场硬核能力!今天,我们来聊聊数据分析的核心流程,拆 ...
2024-12-31提到数据分析,你脑海里可能会浮现出一群“数字控”抱着电脑,在海量数据里疯狂敲代码的画面。但事实是,数据分析并没有你想象的 ...
2024-12-31关于数据分析师是否会成为失业高危职业,近年来的讨论层出不穷。在这个快速变化的时代,技术进步让人既兴奋又不安。今天,我们从 ...
2024-12-30数据分析师在现代企业中扮演着关键角色,他们的工作内容不仅丰富多样,还对企业的决策和发展起着重要的作用。正如一个经验丰富的 ...
2024-12-29